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