本節開始簡單介紹后端流程。后面會以實際例程說明后端的基本操作。
簡單來說后端就是將RTL變為GDS版圖,再交由晶圓廠(TSMC臺積電和SMIC中芯國際)生產制造。大多數IC設計公司都是fabless公司,做到GDS這一步就OK。
GDS:Geometry Data Standard。它是描述電路版圖的一種格式:包括晶體管大小,數量,物理位置和尺寸信息,連接線的物理尺寸和位置信息等等。晶體管+連接線組成龐大的電路邏輯。一般GDS可通過calibre,virtuoso,laker等查看。
GDS交由晶圓廠后,在一片wafer上切割成多個小塊,每塊為一個Die,就是芯片的最小核心。
真實的芯片結構如下圖所示。最底層是晶體管結構,晶體管接口和連接線的接觸部分叫Contact。Contact上面是Metal金屬層,金屬層就是連接線,密密麻麻的晶體管很多,因此連線分了好幾層才能走通,一層的連接線要穿到其它層就需要打過孔(Via),就像搭積木一樣實現整個電路。每層連線之間都插有Isolator隔離。
至于電路的具體制作過程如下所示。特殊頻譜的光可以蝕刻電路,通過掩膜(mask),照射在wafer上,wafer涂有光刻膠,被照射的地方被腐蝕,剩下的部分形成電路。
流片成本很高,絕大部分是Mask(掩膜)的費用,Die面積XMask數就是主要的流片成本。
從RTL到GDS版圖,要遵守以下要求,符合要求的GDS才能拿去流片
后端第一步是將RTL+SDC約束轉換為網表,該步驟通過綜合實現。通常工具會先將RTL轉換為GTECH格式,然后再將GTECH轉換為工藝庫中的標準單元。整體來看是分兩步走。轉換為門級網表的過程中,綜合工具會對RTL進行修改和優化,這些修改記錄保存在svf文件。svf文件在后面的FM形式驗證中會被使用。轉換后的Netlist要滿足設置的約束(包括時序,面積,功耗)。此外邏輯綜合要滿足sdc約束下的setup timing,不需要理會hold timing。常用的工具有synopsys的Design Compiler和cadence的RTL Compiler。邏輯綜合涉及時序問題,延遲計算使用線負載模型(RC寄生參數)因為綜合還沒有涉及到布局布線,因此timing通常是不準的。下圖給出了delay延遲的計算。
線延遲的計算通過長度衡量,長度越長RC值越大,扇出能力越弱。綜合工具吐出Netlist網表后,需要進行FM形式驗證,比對RTL和網表在功能上是否等價,常用的工具有synopsys的formality(fm)和Cadence的Conforml(lec)
如果FM通過了,那么下一步進行物理實現:從Netlist到GDS。通常需要經過以下步驟:
綜合之后網表和約束已經有了,下一步進行ICC布局布線。Design Setup & In步驟中讀入相關的網表、SDC和所需的工藝庫文件。Floorplan步驟設置尺寸大小,擺放port位置,設置物理約束。Placement步驟中由工具自動擺放stdcel,進行時序、功耗、面積優化。Clock Tree Synthesis構建時鐘樹,這之前時鐘都是假設為理想的,從clock port到reg/CK的延時都為0。對于時序分析而言,時鐘樹長出來之前所有的Timing問題其實都不準的,hold無需關注,setup需留有余量,因為布局布線的影響,時序會再次變化。Routing步驟中將所有net用物理連接線實現。Chip Finish步驟中為提高良率和解決物理規則違規對芯片做一些特殊處理。Write Design Out將所需的文件導出。
上圖中給出ICC執行所需的兩類文件:
1、一類是DC綜合時的文件,包括library的db文件、sdc約束文件、綜合后的網表文件;
2、一類是物理數據文件,包括library中db文件對應的Milkyway文件,技術文件(abc_6m.tf),RC模型文件(TLU+)用于提取寄生參數計算線延遲。
這里我們首先說下物理庫,ICC中所有物理庫都以Milkway的格式存在包括stdcell、memory等物理庫,也包括設計本身。以stdcell為例,一般包含三類:CEL、FRAM和LM。其中CEL和FRAM是View信息,CEL包括所有的物理信息,FRAM只包含pin的位置和形狀以及routing blocage。PnR過程中,ICC只會把FRAM View讀進memory,CEL View數據量太大,CEL View只在最后寫GDS時用。Routing blockage是繞線阻礙物,就是給某些金屬加上blockage屬性,讓工具走線時不通過該區域,避免route時把連線伸進去,造成短路;
上圖左側為INV的CEL View,右側為INV的FRAM View。從圖中可看出FRAM中信息量確實很少。
一個FRAM View中包含Pin的方向、位于哪一層、形狀。左下角是cell的參考點,坐標為(0,0)自動布局時會被使用。還有中間的Blockage區域(避免走線)。通常一個cell放在Row中的一個site上,cell的高度和Row的高度是相同的,這些都在tf文件中有定義。VDD位于頂層,GND位于最下面,這些和row的線對齊。
tf技術文件包括以下信息:
1、layer/via的數量和名字
2、每層layer的物理和電參數
3、每層layer的設計規則(最小線寬,線間距)
4、每個cell的單位和精度
5、每層的layer的顯示顏色和模式
技術文件內容如上圖所示,里面定義了很多物理參數。
至于tlu+文件用于對線負載模型建模,ICC的RC估算比DC精確的多,已經可以表達真實的線延遲。后端工具基于此可計算wire的寄生參數:包括電阻、電容、耦合電容。
在ICC處理的第一步中就是創建milkway_lib,它會創建名為oc8051_mwLIB文件夾。并將技術文件和mw文件導入其中。
接下來讀入網表文件和約束文件,同時保存CEL View數據
此時原有文件夾下會新建CEL文件,并將mw數據保存為init_design庫文件。在Design Setup & In階段,讀入所有文件后,此時并沒有floorplan操作,所有cell堆積在左下角。
floorplan步驟:先擺放大的mcro cell,然后擺放stdcell,這期間需要固定IO位置。對于最底層晶體管的供電而言,M1或M2與Row平行的會放置metal,依次與cell的VDD和VSS相連,在M6或M7放置供電網,高層次的layer通過via與底層次的Layer相連,從而搭建整體的電源系統。這里需要說明一點,如果M1是橫向的,那么M2必須是縱向的,以此減少線干擾,相隔兩層的metal必須正交,不能平行(與硬件PCB多層板布線很相似)。
floorplan本質是包含三方面:PPA(功耗性能面積),這三方面需要折中處理。這之后就到了Placement階段,工具會自動將每個cell放入site中。
在Route之前,ICC做place_opt進行優化時用Virtual Route估計連接線的長度和形狀,以此根據TLU+模型估計RC參數。事實上,在后面的CTS階段,由于沒有route,所以也通過同樣的方法估計RCPlacement階段,需要滿足sdc約束下的setup timing,所以完成place后,要分析Timing。
-
IC設計
+關注
關注
37文章
1291瀏覽量
103770 -
晶體管
+關注
關注
77文章
9635瀏覽量
137856 -
晶圓廠
+關注
關注
7文章
617瀏覽量
37809
原文標題:IC后端概述(上)
文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論