IC數字設計

Augusdi發表於2018-09-20

根據個人掌握的知識,寫寫自己的理解。前端設計(也稱邏輯設計)和後端設計(也稱物理設計)並沒有統一嚴格的界限,涉及到與工藝有關的設計就是後端設計。

1.規格制定

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

2.詳細設計

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

3.HDL編碼

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

4.模擬驗證

模擬驗證就是檢驗編碼設計的正確性,檢驗的標準就是第一步制定的規格。看設計是否精確地滿足了規格中的所有要求。規格是設計正確與否的黃金標準,一切違反,不符合規格要求的,就需要重新修改設計和編碼。

設計和模擬驗證是反覆迭代的過程,直到驗證結果顯示完全符合規格標準。

模擬驗證工具 Synopsys的VCS。

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。

前端設計的流程暫時寫到這裡。從設計程度上來講,前端設計的結果就是得到了晶片的門級網表電路。

 

ic後端設計

  IC(“積體電路”)產業是全球高新技術產業的前沿與核心,是最具活力和挑戰性的戰略產業。自2000年來,在國家政策的大力支援下,我國積體電路產業得到了長足的發展,而作為積體電路產業最前沿的設計業更是呈現出“百花齊放”的繁榮景象,作為產業命脈的IC設計人才,在IC產業最集中的長三角地區也僅僅只有幾千人。所以擁有一定工作經驗的設計工程師,目前已成為人才獵頭公司,比如烽火獵聘公司爭相角逐的“寵兒”。

  IC後端設計是指將前端設計產生的門級網表通過EDA設計工具進行佈局佈線和進行物理驗證並最終產生供製造用的GDSII資料的過程。其主要工作職責有:晶片物理結構分析、邏輯分析、建立後端設計流程、版圖佈局佈線、版圖編輯、版圖物理驗證、聯絡代工廠並提交生產資料。作為連線設計與製造的橋樑,合格的版圖設計人員既要懂得IC設計、版圖設計方面的專業知識,還要熟悉製程廠的工作流程、製程原理等相關知識。

  正因為其需要掌握的知識面廣,而國內高校開設這方面專業比較晚,IC後端設計工程師的人才缺口更為巨大。

  數字後端設計流程

  1. 資料準備。

  對於 CDN 的 Silicon Ensemble而言後端設計所需的資料主要有是Foundry廠提供的標準單元、巨集單元和I/O Pad的庫檔案,它包括物理庫、時序庫及網表庫,分別以.lef、.tlf和.v的形式給出。前端的晶片設計經過綜合後生成的門級網表,具有時序約束和時鐘定義的指令碼檔案和由此產生的.gcf約束檔案以及定義電源Pad的DEF(DesignExchange Format)檔案。(對synopsys 的Astro 而言,經過綜合後生成的門級網表,時序約束檔案 SDC是一樣的,Pad的定義檔案--tdf , .tf 檔案 --technology file, Foundry廠提供的標準單元、巨集單元和I/OPad的庫檔案就與FRAM, CELL view, LM view 形式給出(Milkway 參考庫 and DB, LIB file)

  2. 佈局規劃。

  主要是標準單元、I/O Pad和巨集單元的佈局。I/OPad預先給出了位置,而巨集單元則根據時序要求進行擺放,標準單元則是給出了一定的區域由工具自動擺放。佈局規劃後,晶片的大小,Core的面積,Row的形式、電源及地線的Ring和Strip都確定下來了。如果必要在自動放置標準單元和巨集單元之後,你可以先做一次PNA(power network analysis)--IR drop and EM .

  3. Placement -自動放置標準單元。

  佈局規劃後,巨集單元、I/O Pad的位置和放置標準單元的區域都已確定,這些資訊SE(SiliconEnsemble)會通過DEF檔案傳遞給PC(PhysicalCompiler),PC根據由綜合給出的.DB檔案獲得網表和時序約束資訊進行自動放置標準單元,同時進行時序檢查和單元放置優化。如果你用的是PC+Astro那你可用write_milkway, read_milkway 傳遞資料。

  4.時鐘樹生成(CTS Clock tree synthesis) 。

  晶片中的時鐘網路要驅動電路中所有的時序單元,所以時鐘源端門單元帶載很多,其負載延時很大並且不平衡,需要插入緩衝器減小負載和平衡延時。時鐘網路及其上的緩衝器構成了時鐘樹。一般要反覆幾次才可以做出一個比較理想的時鐘樹。---Clock skew.

  5. STA 靜態時序分析和後模擬。

  時鐘樹插入後,每個單元的位置都確定下來了,工具可以提出GlobalRoute形式的連線寄生引數,此時對延時引數的提取就比較準確了。SE把.V和.SDF檔案傳遞給PrimeTime做靜態時序分析。確認沒有時序違規後,將這來兩個檔案傳遞給前端人員做後模擬。對Astro 而言,在detail routing 之後,

  用starRC XT 引數提取,生成的E.V和.SDF檔案傳遞給PrimeTime做靜態時序分析,那將會更準確。

  6. ECO(Engineering Change Order)。

  針對靜態時序分析和後模擬中出現的問題,對電路和單元佈局進行小範圍的改動.

  7. Filler的插入(pad fliier, cell filler)。

  Filler指的是標準單元庫和I/O Pad庫中定義的與邏輯無關的填充物,用來填充標準單元和標準單元之間,I/O Pad和I/O Pad之間的間隙,它主要是把擴散層連線起來,滿足DRC規則和設計需要。

  8. 佈線(Routing)。

  Global route-- Track assign --Detail routing--Routing optimization佈線是指在滿足工藝規則和佈線層數限制、線寬、線間距限制和各線網可靠絕緣的電效能約束的條件下,根據電路的連線關係將各單元和I/OPad用互連線連線起來,這些是在時序驅動(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廠進行掩膜製造。

https://blog.csdn.net/yyt7529/article/details/5804673

 

相關文章