IC前端設計(邏輯設計)和後端設計(物理設計)的區分:以設計是否與工藝有關來區分兩者;從設計程度上來說,前端設計的結果就是獲得了芯片的門級網表電路。前端
前端設計的流程及使用的EDA工具例如如下:後端
一、架構的設計與驗證:依照要求,對整體的設計劃分模塊。網絡
架構模型的仿真可以使用Synopsys公司的CoCentric軟件,它是基於System C的仿真工具。架構
二、HDL設計輸入:設計輸入方法有:HDL語言(Verilog或VHDL)輸入、電路圖輸入、狀態轉移圖輸入。工具
使用的工具備:Active-HDL,而RTL分析檢查工具備Synopsys的LEDA。佈局
三、前仿真工具(功能仿真):初步驗證設計是否知足規格要求。性能
使用的工具備:Synopsys的VCS,Mentor的ModelSim,Cadence的Verilog-XL,Cadence的NC-Verilog。優化
四、邏輯綜合:將HDL語言轉換成門級網表Netlist。綜合需要設定約束條件,就是你但願綜合出來的電路在面積,時序等目標參數上達到的標ui
準;邏輯綜合需要指定基於的庫,使用不一樣的綜合庫,在時序和麪積上會有差別。邏輯綜合以前的仿真爲前仿真,以後的仿真爲後仿真。spa
使用的工具備:Synopsys的Design Compiler,Cadence的 PKS,Synplicity的Synplify等。
五、靜態時序分析工具(STA):在時序上,檢查電路的創建時間(Setuptime)和保持時間(Hold time)是否有違例(Violation)。
使用的工具備:Synopsys的Prime Time。
六、形式驗證工具:在功能上,對綜合後的網表進行驗證。常用的就是等價性檢查(Equivalence Check)方法,以功能驗證後的HDL設計爲參
考,對照綜合後的網表功能,他們是否在功能上存在等價性。這樣作是爲了保證在邏輯綜合過程當中沒有改變原先HDL描寫敘述的電路功能。
使用的工具備:Synopsys的Formality
1. 數據準備。對於 CDN 的 Silicon Ensemble而言後端設計所需的數據主要有是
Foundry廠提供的標準單元、宏單元和I/O Pad的庫文件,它包含物理庫、時序庫及網表庫
,分別以.lef、.tlf和.v的形式給出。前端的芯片設計通過綜合後生成的門級網表,具備
時序約束和時鐘定義的腳本文件和由此產生的.gcf約束文件以及定義電源Pad的DEF(Desi
gn Exchange Format)文件。(對synopsys 的Astro 而言, 通過綜合後生成的門級網表,
時序約束文件 SDC 是同樣的,Pad的定義文件--tdf , .tf 文件 --technology file,
Foundry廠提供的標準單元、宏單元和I/O Pad的庫文件 就與FRAM, CELL view, LM view
形式給出(Milkway 參考庫 and DB, LIB file)
2. 佈局規劃。主要是標準單元、I/O Pad和宏單元的佈局。I/OPad預先給出了位
置,而宏單元則依據時序要求進行擺放,標準單元則是給出了必定的區域由工具本身主動擺放
。佈局規劃後,芯片的大小,Core的面積,Row的形式、電源及地線的Ring和Strip都肯定
下來了。假設必要 在本身主動放置標準單元和宏單元以後, 你可以先作一次PNA(power netw
ork analysis)--IR drop and EM .
3. Placement -本身主動放置標準單元。佈局規劃後,宏單元、I/O Pad的位置和放置
標準單元的區域都已肯定,這些信息SE(Silicon Ensemble)會經過DEF文件傳遞給PC(Ph
ysical Compiler),PC依據由綜合給出的.DB文件得到網表和時序約束信息進行本身主動放置標
準單元,同一時候進行時序檢查和單元放置優化。假設你用的是PC +Astro
那你可用write_milkway, read_milkway 傳遞數據。
4. 時鐘樹生成(CTS Clock tree synthesis) 。芯片中的時鐘網絡要驅動電路中所
有的時序單元,因此時鐘源端門單元帶載很是多,其負載延時很是大並且不平衡,需要插入緩
衝器減少負載和平衡延時。時鐘網絡及其上的緩衝器構成了時鐘樹。通常要重複幾回纔可
以作出一個比較理想的時鐘樹。---Clock skew.
5. STA 靜態時序分析和後仿真。時鐘樹插入後,每個單元的位置都肯定下來了,
工具可以提出Global Route形式的連線寄生參數,此時對延時參數的提取就比較準確了。
SE把.V和.SDF文件傳遞給PrimeTime作靜態時序分析。確認沒有時序違規後,將這來兩個文
件傳遞給前端人員作後仿真。對Astro 而言,在detail routing 以後,用starRC XT 參
數提取,生成的E.V和.SDF文件傳遞給PrimeTime作靜態時序分析,那將會更準確。
6. ECO(Engineering Change Order)。針對靜態時序分析和後仿真中出現的問題,
對電路和單元佈局進行小範圍的修改.
7. Filler的插入(padfliier, cell filler)。Filler指的是標準單元庫和I/O P
ad庫中定義的與邏輯無關的填充物,用來填充標準單元和標準單元之間,I/O Pad和I/O P
ad之間的間隙,它主要是把擴散層鏈接起來,知足DRC規則和設計需要。
8. 佈線(Routing)。Global route-- Trackassign --Detail routing--Routing
optimization 佈線是指在知足工藝規則和佈線層數限制、線寬、線間距限制和各線網可
靠絕緣的電性能約束的條件下,依據電路的鏈接關係將各單元和I/O Pad用互連線鏈接起來
,這些是在時序驅動(Timing driven ) 的條件下進行的,保證關鍵時序路徑上的連線長度
能夠最小。--Timing report clear
9. Dummy Metal的添加。Foundry廠都有對金屬密度的規定,使其金屬密度不要低
於必定的值,以防在芯片製造過程當中的刻蝕階段對連線的金屬層過分刻蝕從而減小電路的
性能。添加Dummy Metal是爲了添加金屬的密度。
10. DRC和LVS。DRC是對芯片版圖中的各層物理圖形進行設計規則檢查(spacing ,
width),它也包含天線效應的檢查,以確保芯片正常流片。LVS主要是將版圖和電路網表進
行比較,來保證流片出來的版圖電路和實際需要的電路一致。DRC和LVS的檢查--EDA工具
Synopsy hercules/ mentor calibre/ CDN Dracula進行的.Astro also include LVS/DRC
check commands.
11. Tape out。在所有檢查和驗證都正確無誤的狀況下把最後的版圖GDSⅡ文件傳
遞給Foundry廠進行掩膜製造