晶片設計分為前端設計和後端設計,前端設計(也稱邏輯設計)和後端設計(也稱物理設計)並沒有統一嚴格的界限,涉及到與工藝有關的設計就是後端設計。
前端設計全流程:
1. 規格制定
晶片規格,也就像功能列表一樣,是客戶向晶片設計公司(稱為Fabless,無晶圓設計公司)提出的設計要求,包括晶片需要達到的具體功能和效能方面的要求。
2. 詳細設計
Fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模組功能。
3. HDL編碼
使用硬體描述語言(VHDL,Verilog HDL,業界公司一般都是使用後者)將模組功能以程式碼來描述實現,也就是將實際的硬體電路功能透過HDL語言描述出來,形成RTL(暫存器傳輸級)程式碼。
4. 模擬驗證
模擬驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格。看設計是否精確地滿足了規格中的所有要求。規格是設計正確與否的黃金標準,一切違反,不符合規格要求的,就需要重新修改設計和編碼。 設計和模擬驗證是反覆迭代的過程,直到驗證結果顯示完全符合規格標準。
模擬驗證工具Synopsys的VCS,還有Cadence的NC-Verilog。
5. 邏輯綜合――Design Compiler
模擬驗證透過,進行邏輯綜合。邏輯綜合的結果就是把設計實現的HDL程式碼翻譯成門級網表netlist。綜合需要設定約束條件,就是你希望綜合出來的電路在面積,時序等目標引數上達到的標準。邏輯綜合需要基於特定的綜合庫,不同的庫中,閘電路基本標準單元(standard cell)的面積,時序引數是不一樣的。所以,選用的綜合庫不一樣,綜合出來的電路在時序,面積上是有差異的。一般來說,綜合完成後需要再次做模擬驗證(這個也稱為後模擬,之前的稱為前模擬)。
邏輯綜合工具Synopsys的Design Compiler。
6. STA
Static Timing Analysis(STA),靜態時序分析,這也屬於驗證範疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(setup time)和保持時間(hold time)的違例(violation)。這個是數位電路基礎知識,一個暫存器出現這兩個時序違例時,是沒有辦法正確取樣資料和輸出資料的,所以以暫存器為基礎的數字晶片功能肯定會出現問題。
STA工具有Synopsys的Prime Time。
7. 形式驗證
這也是驗證範疇,它是從功能上(STA是時序上)對綜合後的網表進行驗證。常用的就是等價性檢查方法,以功能驗證後的HDL設計為參考,對比綜合後的網表功能,他們是否在功能上存在等價性。這樣做是為了保證在邏輯綜合過程中沒有改變原先HDL描述的電路功能。
形式驗證工具有Synopsys的Formality
後端設計流程:
1. DFT
Design For Test,可測性設計。晶片內部往往都自帶測試電路,DFT的目的就是在設計的時候就考慮將來的測試。DFT的常見方法就是,在設計中插入掃描鏈,將非掃描單元(如暫存器)變為掃描單元。關於DFT,有些書上有詳細介紹,對照圖片就好理解一點。
DFT工具Synopsys的DFT Compiler
2. 佈局規劃(FloorPlan)
佈局規劃就是放置晶片的宏單元模組,在總體上確定各種功能電路的擺放位置,如IP模組,RAM,I/O引腳等等。佈局規劃能直接影響晶片最終的面積。
工具為Synopsys的Astro
3. CTS
Clock Tree Synthesis,時鐘樹綜合,簡單點說就是時鐘的佈線。由於時鐘訊號在數字晶片的全域性指揮作用,它的分佈應該是對稱式的連到各個暫存器單元,從而使時鐘從同一個時鐘源到達各個暫存器時,時鐘延遲差異最小。這也是為什麼時鐘訊號需要單獨佈線的原因。
CTS工具,Synopsys的Physical Compiler
4. 佈線(Place & Route)
這裡的佈線就是普通訊號佈線了,包括各種標準單元(基本邏輯閘電路)之間的走線。比如我們平常聽到的0.13um工藝,或者說90nm工藝,實際上就是這裡金屬佈線可以達到的最小寬度,從微觀上看就是MOS管的溝道長度。
工具Synopsys的Astro
5. 寄生引數提取
由於導線本身存在的電阻,相鄰導線之間的互感,耦合電容在晶片內部會產生訊號噪聲,串擾和反射。這些效應會產生訊號完整性問題,導致訊號電壓波動和變化,如果嚴重就會導致訊號失真錯誤。提取寄生引數進行再次的分析驗證,分析訊號完整性問題是非常重要的。
工具Synopsys的Star-RCXT
6. 版圖物理驗證
對完成佈線的物理版圖進行功能和時序上的驗證,驗證專案很多,如LVS(Layout Vs Schematic)驗證,簡單說,就是版圖與邏輯綜合後的門級電路圖的對比驗證;DRC(Design Rule Checking):設計規則檢查,檢查連線間距,連線寬度等是否滿足工藝要求, ERC(Electrical Rule Checking):電氣規則檢查,檢查短路和開路等電氣 規則違例;等等。
工具為Synopsys的Hercules
實際的後端流程還包括電路功耗分析,以及隨著製造工藝不斷進步產生的DFM(可製造性設計)問題,在此不說了。
物理版圖驗證完成也就是整個晶片設計階段完成,下面的就是晶片製造了。物理版圖以GDS II的檔案格式交給晶片代工廠(稱為Foundry)在晶圓矽片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的晶片
晶片設計分為前端設計和後端設計,前端設計(也稱邏輯設計)和後端設計(也稱物理設計)並沒有統一嚴格的界限,涉及到與工藝有關的設計就是後端設計。
前端設計全流程:
1. 規格制定
晶片規格,也就像功能列表一樣,是客戶向晶片設計公司(稱為Fabless,無晶圓設計公司)提出的設計要求,包括晶片需要達到的具體功能和效能方面的要求。
2. 詳細設計
Fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模組功能。
3. HDL編碼
使用硬體描述語言(VHDL,Verilog HDL,業界公司一般都是使用後者)將模組功能以程式碼來描述實現,也就是將實際的硬體電路功能透過HDL語言描述出來,形成RTL(暫存器傳輸級)程式碼。
4. 模擬驗證
模擬驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格。看設計是否精確地滿足了規格中的所有要求。規格是設計正確與否的黃金標準,一切違反,不符合規格要求的,就需要重新修改設計和編碼。 設計和模擬驗證是反覆迭代的過程,直到驗證結果顯示完全符合規格標準。
模擬驗證工具Synopsys的VCS,還有Cadence的NC-Verilog。
5. 邏輯綜合――Design Compiler
模擬驗證透過,進行邏輯綜合。邏輯綜合的結果就是把設計實現的HDL程式碼翻譯成門級網表netlist。綜合需要設定約束條件,就是你希望綜合出來的電路在面積,時序等目標引數上達到的標準。邏輯綜合需要基於特定的綜合庫,不同的庫中,閘電路基本標準單元(standard cell)的面積,時序引數是不一樣的。所以,選用的綜合庫不一樣,綜合出來的電路在時序,面積上是有差異的。一般來說,綜合完成後需要再次做模擬驗證(這個也稱為後模擬,之前的稱為前模擬)。
邏輯綜合工具Synopsys的Design Compiler。
6. STA
Static Timing Analysis(STA),靜態時序分析,這也屬於驗證範疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(setup time)和保持時間(hold time)的違例(violation)。這個是數位電路基礎知識,一個暫存器出現這兩個時序違例時,是沒有辦法正確取樣資料和輸出資料的,所以以暫存器為基礎的數字晶片功能肯定會出現問題。
STA工具有Synopsys的Prime Time。
7. 形式驗證
這也是驗證範疇,它是從功能上(STA是時序上)對綜合後的網表進行驗證。常用的就是等價性檢查方法,以功能驗證後的HDL設計為參考,對比綜合後的網表功能,他們是否在功能上存在等價性。這樣做是為了保證在邏輯綜合過程中沒有改變原先HDL描述的電路功能。
形式驗證工具有Synopsys的Formality
後端設計流程:
1. DFT
Design For Test,可測性設計。晶片內部往往都自帶測試電路,DFT的目的就是在設計的時候就考慮將來的測試。DFT的常見方法就是,在設計中插入掃描鏈,將非掃描單元(如暫存器)變為掃描單元。關於DFT,有些書上有詳細介紹,對照圖片就好理解一點。
DFT工具Synopsys的DFT Compiler
2. 佈局規劃(FloorPlan)
佈局規劃就是放置晶片的宏單元模組,在總體上確定各種功能電路的擺放位置,如IP模組,RAM,I/O引腳等等。佈局規劃能直接影響晶片最終的面積。
工具為Synopsys的Astro
3. CTS
Clock Tree Synthesis,時鐘樹綜合,簡單點說就是時鐘的佈線。由於時鐘訊號在數字晶片的全域性指揮作用,它的分佈應該是對稱式的連到各個暫存器單元,從而使時鐘從同一個時鐘源到達各個暫存器時,時鐘延遲差異最小。這也是為什麼時鐘訊號需要單獨佈線的原因。
CTS工具,Synopsys的Physical Compiler
4. 佈線(Place & Route)
這裡的佈線就是普通訊號佈線了,包括各種標準單元(基本邏輯閘電路)之間的走線。比如我們平常聽到的0.13um工藝,或者說90nm工藝,實際上就是這裡金屬佈線可以達到的最小寬度,從微觀上看就是MOS管的溝道長度。
工具Synopsys的Astro
5. 寄生引數提取
由於導線本身存在的電阻,相鄰導線之間的互感,耦合電容在晶片內部會產生訊號噪聲,串擾和反射。這些效應會產生訊號完整性問題,導致訊號電壓波動和變化,如果嚴重就會導致訊號失真錯誤。提取寄生引數進行再次的分析驗證,分析訊號完整性問題是非常重要的。
工具Synopsys的Star-RCXT
6. 版圖物理驗證
對完成佈線的物理版圖進行功能和時序上的驗證,驗證專案很多,如LVS(Layout Vs Schematic)驗證,簡單說,就是版圖與邏輯綜合後的門級電路圖的對比驗證;DRC(Design Rule Checking):設計規則檢查,檢查連線間距,連線寬度等是否滿足工藝要求, ERC(Electrical Rule Checking):電氣規則檢查,檢查短路和開路等電氣 規則違例;等等。
工具為Synopsys的Hercules
實際的後端流程還包括電路功耗分析,以及隨著製造工藝不斷進步產生的DFM(可製造性設計)問題,在此不說了。
物理版圖驗證完成也就是整個晶片設計階段完成,下面的就是晶片製造了。物理版圖以GDS II的檔案格式交給晶片代工廠(稱為Foundry)在晶圓矽片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的晶片