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

2021-10-01 09:47:26 字數 3609 閱讀 9309

關於cts:

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

前端設計的主要流程:

1、規格制定

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

2、詳細設計

fabless根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模組功能。目前架構的驗證一般基於systemc語言,對構架模型的**可以使用systemc的**工具。其中典型的例子是synopsys公司的cocentric和summit公司的visual elite等。

3、hdl編碼

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

rtl分析檢查工具:synopsys leda

4、**驗證

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

verdi可以結合vcs生成的fsdb,常用作debug使用

5、邏輯綜合――design compiler

**驗證通過,進行邏輯綜合。邏輯綜合的結果就是把設計實現的hdl**翻譯成門級網表netlist。綜合需要設定約束條件(sdc檔案,全稱synopsys design constrains ,設計約束檔案),就是你希望綜合出來的電路在面積,時序等目標引數上達到的標準。邏輯綜合需要基於特定的綜合庫,不同的庫中,閘電路基本標準單元(standard cell)的面積,時序引數是不一樣的。所以,選用的綜合庫不一樣,綜合出來的電路在時序,面積上是有差異的。一般來說,綜合完成後需要再次做**驗證(這個也稱為後**,之前的稱為前**)邏輯綜合工具synopsys的design compiler,**工具選擇上面的三種**工具均可。

sdc的相關:

timing constraint按照它們的用途,大致分為以下幾類:

(1)描述晶元的工作速度,即時鐘的頻率,包括create_clock,create_generated_clock

(2)描述晶元的邊界約束,包括set_input_delay, set_output_delay

(3)描述晶元的一些設計違反rule(drv),包括set_max_fanout,set_max_capacitance, set_max_transition

(4)描述設計中一些特殊的路徑,包括set_false_path,set_multicycle_path

(5)描述設計中一些需要禁止的timing arc,例如set_disable_timing

6、靜態時序分析——sta

static timing analysis(sta),靜態時序分析,這也屬於驗證範疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(setup time)和保持時間(hold time)的違例(violation)。這個是數位電路基礎知識,乙個暫存器出現這兩個時序違例時,是沒有辦法正確取樣資料和輸出資料的,所以以暫存器為基礎的數字晶元功能肯定會出現問題。sta工具有synopsys的prime time。

7、形式驗證

這也是驗證範疇,它是從功能上(sta是時序上)對綜合後的網表進行驗證。常用的就是等價性檢查方法,以功能驗證後的hdl設計為參考,對比綜合後的網表功能,他們是否在功能上存在等價性。這樣做是為了保證在邏輯綜合過程中沒有改變原先hdl描述的電路功能。形式驗證工具有synopsys的formality。前端設計的流程暫時寫到這裡。從設計程度上來講,前端設計的結果就是得到了晶元的門級網表電路。 

backend design flow後端設計流程:

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)在晶圓矽片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的晶元。

IC設計流程

1 設計規劃階段 design specification 乙個design specification的建立有賴於市場人員對所設計晶元的大致功能和成本提出要求,市場人員和工程師互相合作提出晶元的功能 2 架構與設計劃分階段 architecture and design partition 擬訂開...

數字IC設計流程

數字後端 待補充 數字ic設計筆試題簡答 1 專案需求 確定晶元的具體指標 spec 2 系統級設計 用系統建模語言對各模組進行描述 3 前端設計 rtl設計 硬體原型驗證 電路綜合 4 後端設計 版圖設計 物理驗證 後 5 封裝和測試 工具 designcompiler rtl compiler。...

數字IC的基本流程

verilog hdl可以在不同的的抽象層次進行描述電路下面的它們的具體層次分類 可分為前端與後端 前端 後端 1 系統級設計 系統建模語言對各個模組描述,功能 2 前端設計 rtl設計 電路綜合 3 後端設計 版圖設計 物理驗證 後 邏輯綜合需要基於特定的綜合庫,不同庫中,閘電路的基本標準單位 s...