一顆小小芯片的誕生,主要可以分為芯片設計和芯片制造兩個環(huán)節(jié)。以建造房子為例,芯片設計就等同于描繪建筑圖紙,而芯片制造就是進行房子的實際建造。
芯片設計環(huán)節(jié)主要是明確芯片的用途、規(guī)格和性能表現(xiàn),可分為規(guī)格定義、系統(tǒng)級設計、前端設計和后端設計四大過程。這四個過程循序漸進,一環(huán)緊扣一環(huán),最后完成芯片的“建筑圖紙”,為之后的芯片制造提供藍圖。
“建筑圖紙”設計
在芯片設計的四大過程中,又以前端設計和后端設計最為主要。在前端設計時,設計人員根據(jù)之前兩個環(huán)節(jié)擬定的方案,進行具體的電路設計,使用專門的硬件描述語言,如Verilog或VHDL,對具體的電路實現(xiàn)進行RTL級別的代碼描述;代碼生成后,還需要通過仿真驗證來反復檢驗代碼設計的正確性。之后,再使用邏輯綜合工具,把這些RTL級代碼轉成門級網(wǎng)表。最后,再進行靜態(tài)時序分析。整個設計流程是一個迭代的過程,任何一步不能滿足要求都需要重頭再來。
完成前端設計后,緊接著就是后端設計。后端設計基于之前前端設計生成的門級網(wǎng)表,在給定大小的硅片面積內(nèi),對電路進行布圖規(guī)劃(FloorPlanning)和布局布線(Placement and Routing,P&R),再對布線的物理版圖進行功能、時序以及物理規(guī)則上的各種驗證。后端設計和前端設計一樣也是一個迭代的過程,只要有一步錯,那么就有可能一朝回到解放前。在完成各種驗證后,最終生成用于芯片制造的GDS(Geometry Data Standard)版圖。
承上啟下的布圖規(guī)劃
在后端設計中,布圖規(guī)劃是最重要的步驟之一,它是芯片設計能否成功的先決條件。傳統(tǒng)上,芯片布圖規(guī)劃一般都是手動將集成電路的每一個主要功能區(qū)塊——即宏(Marco),放置到最佳的位置。然后再由工具完成標準單元(Standard Cells)的擺放,以實現(xiàn)設計方案所需的功耗、性能和面積目標(Power,Performance,Area),即PPA目標。這和房子的裝修類似,在給定的建筑面積中,盡可能多地容納家具等物件,同時還讓房子顯得溫馨宜居。芯片的布圖規(guī)劃也是一樣,在盡可能小的空間內(nèi)容納足夠多的組件,同時又需兼顧芯片的功耗和性能指標。
理論上,無論有再多的功能模塊、晶體管或者宏要在布圖規(guī)劃和布局布線時放置,只要設計團隊將完整的門級網(wǎng)表提交至P&R流程,就能獲得最終結果。對于中小型尺寸的芯片設計來說,目前手動的布圖規(guī)劃方式還能很好地發(fā)揮作用。但對于大型的芯片設計,如果沒有很好的布圖規(guī)劃,在實施P&R時就很難保證芯片的運行和設計需求,在之后的靜態(tài)時序分析時也經(jīng)常會出現(xiàn)不符合設計時鐘周期的時序路徑,很可能最后的layout也不能滿足芯片的PPA要求,從而影響芯片性能。
除了發(fā)生上述問題之外,還有可能產(chǎn)生最終設計的芯片面積過大而超出產(chǎn)品的目標成本,或者功耗不符合芯片預期用途等問題。對于大型芯片設計,調(diào)整約束并重新運行整個P&R過程非常繁瑣且耗時,并且可能需要進行多次迭代,每次迭代都需要花費數(shù)周的時間和數(shù)TB的磁盤空間。即使,這些問題都解決了,最終的結果可能仍然無法實現(xiàn)芯片的PPA目標。
可以說,布圖規(guī)劃決定了項目的整體進度。高質(zhì)量的布圖規(guī)劃有助于準確實施后續(xù)的P&R,更快地實現(xiàn)PPA目標。
目前,大多數(shù)布圖規(guī)劃通過分組或分級布圖的方式,來讓問題變得簡單化。例如,一塊擁有超過一千萬個組件的芯片,它可以被分成幾個獨立的功能模塊,這些模塊可以同時獨立地完成布圖規(guī)劃和布局布線,這樣就減少了總體的運行時間。
而宏的放置則是布圖規(guī)劃中的關鍵一步,因為它們比標準單元大得多,而且它們的寬總線接口有很多連接線,可能會造成嚴重的走線擁塞。宏的放置就如搭積木一樣,每個積木都有特定的位置,一旦所有的宏都被準確放置,剩余的空間就用于放置標準單元。
傳統(tǒng)布圖規(guī)劃為何跟不上芯片發(fā)展腳步?
如前所述,目前布圖規(guī)劃操作一般多為手動完成,所以它也是最為耗時的一個階段,業(yè)內(nèi)人士也一直想要尋找更快、更有效率的布圖規(guī)劃方法以盡量縮短芯片設計的時間。自20世紀60年代以來,業(yè)內(nèi)人士也提出了許多自動化芯片布局規(guī)劃的方法,但到目前為止還沒有找到一種能完全替代人類專家的方法。
此外,隨著人工智能(AI)、高性能運算(HPC)以及超大規(guī)模數(shù)據(jù)中心等新興領域的崛起,芯片的復雜度呈現(xiàn)指數(shù)級增長,規(guī)模也越來越大,采用的架構也越來越獨特,如2.5D IC和3D IC。以蘋果最新發(fā)布的M3系列芯片為例,它包括了M3、M3 Pro以及M3 Max三款采用不同堆疊技術的芯片產(chǎn)品。其中,M3和M3 Pro分別擁有250億和370億個晶體管,而M3 Max更是擁有驚人的920億個晶體管??梢姡壳暗南冗M芯片產(chǎn)品的復雜度已經(jīng)不能和之前的芯片同日而語了。
此外,這些大型芯片中包含的宏的數(shù)量也在迅速增加,當宏的數(shù)量增長到數(shù)千個時,手動操作的速度將會受到很大限制。所以,傳統(tǒng)的布圖規(guī)劃方式已經(jīng)無法滿足目前芯片,尤其是大型芯片的設計需求了。通過自動化來提升布圖規(guī)劃的效率已經(jīng)刻不容緩。自動化有助于減少布圖規(guī)劃的迭代,縮短設計時間,并加快tapeout速度。
機器學習讓布圖規(guī)劃更高效
機器學習(Machine Learning,ML)自動化布圖規(guī)劃或許會是一個很好的自動化方式。如圖2所示,基于機器學習的布圖規(guī)劃執(zhí)行即時布局探索的速度比任何手動過程都要快得多。而且,機器學習不僅僅是執(zhí)行這些布圖規(guī)劃的相關操作,它也能從中學習,然后舍棄較差的布局結果,最后的算法會收斂至最有效的布局上。
圖2:利用ML提升布圖規(guī)劃效率
在實踐中不斷地學習是機器學習模型的最大優(yōu)勢,它可以通過不斷地訓練,積累足夠多的數(shù)據(jù),隨著時間的推移,它接受的訓練越來越多,積累的能力也會越來越強,技術也會越來越智能。此外,它也可以對擁塞、線路長度、功耗以及總負時序裕量(TNS)等參數(shù)進行預測,產(chǎn)生優(yōu)于手動方式生成的平面布局圖,這可以大大減少布圖規(guī)劃的工作量,縮短芯片設計周期,加快最終產(chǎn)品的上市時間。
新思MLMP技術解決傳統(tǒng)布圖規(guī)劃關鍵挑戰(zhàn)
新思科技的機器學習宏布局(Machine Learning Marco Placement,MLMP)就是一個很好的基于機器學習技術的自動化布圖規(guī)劃工具,它解決了傳統(tǒng)手動布圖規(guī)劃所面臨的關鍵挑戰(zhàn)。
新思科技的宏布局技術支持多種布局模式,包括邊緣布局、自由式布局和混合式布局。其中邊緣布局是在芯片的邊緣堆疊宏,留下芯片中間的一大塊空白區(qū)域放置標準單元,以減少擁塞;自由式布局則是將宏放置在靠近相關邏輯單元的中間位置,以減少繞線長度,從而提供更優(yōu)的時序和功耗;混合式布局顧名思義就是將上述兩種方式進行智能選擇。
新思科技將其MLMP技術應用于一些不同的芯片設計中,并與傳統(tǒng)手動布局方式進行了對比,發(fā)現(xiàn)很多設計的參數(shù)都獲得了提升,包括TNS、泄露功耗、最高工作頻率(Fmax)等(如圖3所示)。MLMP技術目前已經(jīng)基礎在Synopsys IC Compiler? II和Synopsys Fusion Complier? P&R解決方案中,為布圖規(guī)劃過程帶來自動化和智能化。
圖3:使用MLMP與手動布圖規(guī)劃結果對比
值得一提的是,新思科技的DSO.ai也可以作為MLMP的補充,可以提供除了宏布局之外的更多設計選項,來進一步提高QoR(Quality of Results)。
寫在最后
布圖規(guī)劃作為芯片設計過程中的關鍵一步,起著承前啟后的作用。它的本質(zhì)是為芯片中所包含的各個組件找到最佳的位置,并充分考慮它們之間的往來延遲。未來,隨著芯片復雜度、架構以及規(guī)模的進一步提升,傳統(tǒng)手動布圖規(guī)劃方式所面臨的挑戰(zhàn)和問題肯定會越來越多,自動化的布圖規(guī)劃將是大勢所趨,人工智能技術在布圖規(guī)劃中的應用也必將越來越多,因為它能幫助大大提高布圖規(guī)劃的效率,縮短設計芯片所需的時間,并獲得理想的PPA目標。
目前,谷歌和英偉達都先后發(fā)表過將人工智能應用于芯片布圖規(guī)劃中的技術,并獲得了不錯的結果。未來,隨著對相關人工智能機器學習大模型的不斷訓練和學習,人工智能在布圖規(guī)劃領域完全取代人類也只是一個時間問題。