數字晶元的設計流程及其使用工具

2021-08-28 19:04:05 字數 2845 閱讀 4828

ic的設計過程可分為兩個部分,分別為:前端設計(也稱邏輯設計)和後端設計(也稱物理設計),這兩個部分並沒有統一嚴格的界限,凡涉及到與工藝有關的設計可稱為後端設計。

1、規格制定

晶元規格,也就像功能列表一樣,是客戶向晶元設計公司(稱為fabless,無晶圓設計公司)提出的設計要求,包括晶元需要達到的具體功能和效能方面的要求。

2、詳細設計

fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模組功能。

3、hdl編碼

使用硬體描述語言(vhdl,verilog hdl,業界公司一般都是使用後者)將模組功能以**來描述實現,也就是將實際的硬體電路功能通過hdl語言描述出來,形成rtl(暫存器傳輸級)**。

4、**驗證

**驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格。看設計是否精確地滿足了規格中的所有要求。規格是設計正確與否的**標準,一切違反,不符合規格要求的,就需要重新修改設計和編碼。設計和**驗證是反覆迭代的過程,直到驗證結果顯示完全符合規格標準。**驗證工具mentor公司的modelsim,synopsys的vcs,還有cadence的nc-verilog均可以對rtl級的**進行設計驗證,該部分個人一般使用第乙個-modelsim。該部分稱為前**,接下來邏輯部分綜合之後再一次進行的**可稱為後**。

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 fortest,可測性設計。晶元內部往往都自帶測試電路,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(可製造性設計)問題,在此不說了。物理版圖驗證完成也就是整個晶元設計階段完成,下面的就是晶元製造了。物理版圖以gdsii的檔案格式交給晶元代工廠(稱為foundry)在晶圓矽片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的晶元。

數字晶元設計流程之verilog設計

數字晶元設計流程 功能驗證之前與工藝庫沒多大聯絡,驗證晶元設計的功能是否正確,針對抽象的 進行功能驗證理想值。一致性驗證確保生成的網表和 設計功能一致 dft之後是數字後端。靜態時序分析,從邏輯綜合開始拿給後端,確保每乙個階段沒有問題。後 證明加入延遲後功能是否正確。一 verilog設計 可綜合語...

FPGA與普通數字晶元設計流程的差異

fpga與普通數字晶元設計流程的差異 設計步驟 fpga 數字晶元 邏輯設計與 在這一點上二者非常接近,一般採用硬體設計語言進行設計,並進行功能 fpga的 一般採用modelsim或由fpga廠商提供的 工具。近年來一些開源的 工具 如verilator等 也開始等到採用 綜合多採用一種綜合軟體或...

IC設計流程以及使用的工具

關於cts ic的設計過程可分為兩個部分,分別為 前端設計 也稱邏輯設計 和後端設計 也稱物理設計 這兩個部分並沒有統一嚴格的界限,凡涉及到與工藝有關的設計可稱為後端設計。前端設計的主要流程 1 規格制定 晶元規格,也就像功能列表一樣,是客戶向晶元設計公司 稱為fabless,無晶圓設計公司 提出的...