芯片设计流程及各步骤使用工具简介
IC的設計過程可分為兩個部分,分別為:前端設計(也稱邏輯設計)和后端設計(也稱物理設計),這兩個部分并沒有統一嚴格的界限,凡涉及到與工藝有關的設計可稱為后端設計。
有人將IC設計和房屋設計做了比較詳細的類比:
一、前端設計的主要流程:
1、規格制定
芯片規格,也就像功能列表一樣,是客戶向芯片設計公司(稱為Fabless,無晶圓設計公司)提出的設計要求,包括芯片需要達到的具體功能和性能方面的要求。
2、詳細設計
Fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模塊功能。
3、HDL編碼
使用硬件描述語言(VHDL,Verilog HDL,業界公司一般都是使用后者)將模塊功能以代碼來描述實現,也就是將實際的硬件電路功能通過HDL語言描述出來,形成RTL(寄存器傳輸級)代碼。
語言輸入工具:
- Summit 公司的 VisualHDL
- Mentor 公司的 Renoir
圖形輸入工具:
- Cadence的composer
- viewlogic的viewdraw
4、仿真驗證
仿真驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格??丛O計是否精確地滿足了規格中的所有要求。規格是設計正確與否的黃金標準,一切違反,不符合規格要求的,就需要重新修改設計和編碼。設計和仿真驗證是反復迭代的過程,直到驗證結果顯示完全符合規格標準。
仿真工具:
Verilog HDL:
- Mentor公司的Modelsim
- Synopsys公司的VCS
- Cadence公司的NC-Verilog、Verilog—XL
VHDL:
- Mentor公司的Modelsim
- Synopsys公司的VSS
- Cadence公司的NC-VHDL、Leapfrog
它們均可以對RTL級的代碼進行設計驗證。邏輯綜合之前的該部分仿真稱為前仿真,也即功能仿真/行為仿真/邏輯仿真。接下來在版圖設計完成之后還要再進行一次仿真,稱為后仿真,也即時序仿真 。
5、邏輯綜合
仿真驗證通過,進行邏輯綜合。邏輯綜合的結果就是把設計實現的HDL代碼翻譯成門級網表netlist。綜合需要設定約束條件,就是你希望綜合出來的電路在面積,時序等目標參數上達到的標準。邏輯綜合需要基于特定的綜合庫,不同的庫中,門電路基本標準單元(standard cell)的面積,時序參數是不一樣的。所以,選用的綜合庫不一樣,綜合出來的電路在時序,面積上是有差異的。
邏輯綜合工具:
- Synopsys的Design Compiler、Behavial Compiler、DC-Expert
- Cadence的buildgates、Envisia Ambit?
- Mentor的Leonardo
6、STA
Static Timing Analysis(STA),靜態時序分析,這也屬于驗證范疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(setup time)和保持時間(hold time)的違例(violation)。這個是數字電路基礎知識,一個寄存器出現這兩個時序違例時,是沒有辦法正確采樣數據和輸出數據的,所以以寄存器為基礎的數字芯片功能肯定會出現問題。
STA工具:
- Synopsys的Prime Time。
- Cadence的Pearl、Tempus
- Mentor的SST Velocity
7、形式驗證
這也是驗證范疇,它是從功能上(STA是時序上)對綜合后的網表進行驗證。常用的就是等價性檢查方法,以功能驗證后的HDL設計為參考,對比綜合后的網表功能,他們是否在功能上存在等價性。這樣做是為了保證在邏輯綜合過程中沒有改變原先HDL描述的電路功能。
形式驗證工具:
- Synopsys的Formality。
- Cadence的LEC、FormalCheck
- Mentor的FormalPro
前端設計的流程到這里就結束了。從設計程度上來講,前端設計的結果就是得到了芯片的門級網表電路。
二、Backend design flow后端設計流程 :
1、DFT
Design For Test,可測性設計。芯片內部往往都自帶測試電路,DFT的目的就是在設計的時候就考慮將來的測試。DFT的常見方法就是,在設計中插入掃描鏈,將非掃描單元(如寄存器)變為掃描單元。關于DFT,有些書上有詳細介紹,對照圖片就好理解一點。
DFT工具:
- BSCAN技術– 測試IO pad,主要實現工具是:Mentor的BSDArchit、sysnopsy的BSD Compiler;
- MBIST技術– 測試mem,主要實現工具是:Mentor的MBISTArchitect 、Tessent mbist;
- ATPG 技術– 測試std-logic,主要實現工具是:產生ATPG使用Mentor的 TestKompress 、synopsys TetraMAX,插入scan chain主要使用synopsys 的DFT compiler。
2、布局規劃(FloorPlan)
布局規劃就是放置芯片的宏單元模塊,在總體上確定各種功能電路的擺放位置,如IP模塊,RAM,I/O引腳等等。布局規劃能直接影響芯片最終的面積。
布局規劃工具:
- Synopsys的Astro、Physical Compiler、IC Compiler
- Cadence的Encounter、PKS、Silicon Ensemble、Design Planner
3、CTS
Clock Tree Synthesis,時鐘樹綜合,簡單點說就是時鐘的布線。由于時鐘信號在數字芯片的全局指揮作用,它的分布應該是對稱式的連到各個寄存器單元,從而使時鐘從同一個時鐘源到達各個寄存器時,時鐘延遲差異最小。這也是為什么時鐘信號需要單獨布線的原因。
CTS工具:
- Synopsys的Clock Tree Compiler
- Cadence的CT-Gen
4、布線(Place & Route)
布線就是將前端提供的網表(netlist),實現成版圖(layout),包括各種標準單元(基本邏輯門電路)之間的走線。比如我們平常聽到的0.13um工藝,或者說90nm工藝,實際上就是這里金屬布線可以達到的最小寬度,從微觀上看就是MOS管的溝道長度。
布線工具:
- Synopsys的Astro、Physical Compiler、IC Compiler
- Cadence的Encounter、PKS、Silicon Ensemble、Design Planner
5、寄生參數提取
由于導線本身存在的電阻,相鄰導線之間的互感,耦合電容在芯片內部會產生信號噪聲,串擾和反射。這些效應會產生信號完整性問題,導致信號電壓波動和變化,如果嚴重就會導致信號失真錯誤。提取寄生參數進行再次的分析驗證,分析信號完整性問題是非常重要的。
寄生參數提取工具:
- Synopsys的Star-RCXT
- Mentor的Calibre xRC
- Cadence的 Assure RCX
6、物理版圖驗證
對布線完成的版圖我們還需要進行功能和時序上的驗證,驗證項目很多,如:
- LVS(Layout Vs Schematic)驗證:簡單說,就是版圖與邏輯綜合后的門級電路圖的對比驗證
- DRC(Design Rule Checking):設計規則檢查,檢查連線間距,連線寬度等是否滿足工藝要求
常用的LVS/DRC工具:
- Synopsys的Hercules
- Cadence的Dracula、diva、assura
- Mentor的Calibre
版圖驗證部分,我們還需要進行時序仿真,也就是之前說的后仿真。這次的仿真不再是簡單的功能仿真,而是需要考慮實際的時延等因素。
后仿真工具:和前仿真工具一樣。
實際的后端流程還包括電路功耗分析,以及隨著制造工藝不斷進步產生的DFM(可制造性設計)問題,在此不說了。
物理版圖驗證完成也就是整個芯片設計階段完成,下面的就是芯片制造了。物理版圖以GDSII的文件格式交給芯片代工廠(稱為Foundry)在晶圓硅片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的芯片。
參考鏈接:中文系同學都能聽懂的集成電路設計流程
參考鏈接:芯片設計流程和實用工具詳解
總結
以上是生活随笔為你收集整理的芯片设计流程及各步骤使用工具简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt系列文章之 QMessageBox
- 下一篇: 抖音小姐姐太好看了,我用Python把视