天天看點

IC設計流程IC設計流程描述IC設計流程分塊介紹

IC設計流程描述

IC設計流程IC設計流程描述IC設計流程分塊介紹
IC設計流程IC設計流程描述IC設計流程分塊介紹
IC設計流程IC設計流程描述IC設計流程分塊介紹

IC設計流程分塊介紹

系統總體規劃(system global plan)

項目策劃完成,上司開始讓勞工們幹活。

首先就是進階勞工—系統算法工程師根據要求,搞一堆算法出來,看看哪一個比較符合老大的項目策劃書要求;系統架構工程師根據系統算法工程師提出的算法,想想怎麼用詳細的特定功能硬體實作,發現算法的硬體實作比較坑爹,就去找系統算法工程師理論。然後這兩類系統工程師通過對系統的方案、設計、仿真跟各種撕逼之後(他們撕逼的内容聽說有這些:浮點數算法,軟硬體劃分,IC設計中資料的定點表示,定點算法表示,結構的并行性跟流水線,存儲器配置設定,還有其他等),達到平衡點後(就是算法能夠較好地使用良好架構跟電路的實作),一份系統設計規格書就出來了。

子產品設計(module design)

進階的系統工程師工作完畢,就到我們這些螺絲釘進行子產品設計了。

子產品設計也還是分等級,人家有進階數字IC設計工程師。而真正專門寫子產品的就是螺絲釘級的一般數字IC工程師,透露一下,系統設計規格書裡面就有進行子產品劃分的内容,這裡就是進行設計子產品了。一般,子產品設計使用HDL語言進行輸入,輸入工具使用GVIM。寫完一個子產品,(進行代碼設計規則檢查,這個靠檢查工具來工作,檢查工具可以檢測幾百個設計規則,檢查的内容主要有:标準規則檢查、可重用性檢查、競争條件檢查、可綜合性、可測試性、時鐘域、結構性、加速政策、使用者自定義的規則等),然後進行功能驗證,就是驗證你寫的這個電路是不是符合子產品的功能要求,使用的工具是synopsys公司的VCS。仿真通過之後,就可以把子產品送出上去了給上層負責管理頂層子產品的進階數字IC工程師了。有興趣的話,可以自己綜合一下自己負責維護的子產品。

------仿真驗證工具Synopsys的VCS

頂層子產品內建(top level integration)

底層的的子產品寫完之後,開始進行子產品內建,新子產品跟複用的舊子產品內建、I/O、時鐘等子產品的基礎,把系統內建起來,構成整個系統後,就完成了系統子產品的內建。

頂層功能子產品驗證(top level verification)

頂層子產品內建完畢之後,檢測內建之後子產品是否還能正常工作,驗證功能是否正确,各項名額是否完好。在這裡,數字IC驗證工程師就可以放大招了。驗證也使用synopsys公司的VCS進行。驗證是一門雜活,各種方法學UVM之類的,還是我們矽農的小子產品驗證比較好。

邏輯綜合(logic synthesis)

邏輯綜合就是通過EDA工具把頂層的HDL子產品,在一定的限制情況下,映射到制造廠家标準單元庫元件的門級電路的過程。通過這個步驟,從HDL代碼,得到了門級網表,也就是得到了電路。具體的有關綜合的知識将在後文聯合synopsys的綜合工具design compiler進行描述。

------邏輯綜合工具Synopsys的Design Compiler

形式驗證(formal verification)

形式驗證,就是對設計過程中不同階段的輸出結果進行邏輯功能一緻性的對比,根據電路的結構,判斷兩個設計在邏輯功能上是否對等。有關形式驗證的知識将在後文中描述。

------形式驗證工具有Synopsys的Formality

靜态時序分析(static time analysis,STA)

靜态時序分析,就是通過EDA工具,提取電路中所有路徑的延遲資訊進行分析,計算出信号在路徑上的延時,檢查時序是否滿足設定的時序限制要求。靜态時序分析将在後文中結合synopsys的PT工具進行描述。

STA工具有Synopsys的Prime Time

可測性設計插入(design for test,DFT)

可測性設計是指:在進行電路的前端設計時,就預先規劃、設計出如何在樣片中進行電路的測試方案和辦法,并通過邏輯綜合過程完成晶片内部專用測試結構的插入,一遍在晶片形成後能按照預先制定的方案進行相應的電路功能測試的一種設計方法。也就是進行可測性設計,就是在原有的電路中插入專門測試的電路(插入電路)。

------DFT工具Synopsys的DFT Compiler

從設計程度上來講,前端設計的結果就是得到了晶片的門級網表電路;

------------------------------------------------------前、後端分界線--------------------------------------------------

版圖實體規劃(floor-plan)

這一步主要是通過對EDA工具進行輸入标準單元庫、标準I/O庫、綜合後的網表、各種限制檔案等,規劃好讓EDA工具完成各子產品的位置擺放、電源網絡的設定、I/O信号出口位置、同時确定面積、封裝、工藝、噪聲、負載能力等參數。

------工具為Synopsys的Astro

功耗分析(power analysis)

在完成版圖實體規劃後,需要進行功耗分析。功耗分析可以确定電源引腳的位置和電源線的寬度是否滿足要求。對整個版圖進功耗分析,即要進行動态功耗分析和靜态功耗分析,找出主要的功耗單元或者子產品,以供優化。

單元布局與優化(placement & optimistic)

根據floor-plan中的布局規劃,擺放網表中調用的所有标準單元,EDA工具自動對時序限制、布線面積、布線擁堵等綜合考慮标準單元的擺放,進而依靠EDA工具完成電路的布局設計和優化。

EDA主要進行自動對floor-plan的具體工作的标準單元實作:确定各功能子產品的位置和整個晶片的尺寸;确定I/O buffer 的位置,定義電源和地PAD的位置;定義各種實體的組、區域或子產品,對大的宏單元進行放置;設計整個供電網絡,基于電勢降和電遷移進行拓撲優化;通過布局調整、限制修改、屬性添加、密度、高速信号分析等手段達到優化的目的。

時鐘樹綜合(clock tree synthesis,CTS)

要了解時鐘樹綜合,那麼就得中斷什麼是時鐘樹。時鐘樹就是分布在晶片内部的的寄存器跟數字的驅動電流構成的一種樹狀結構的電路。時鐘樹綜合就是EDA工具按照限制,插入buffer,使時鐘的源頭(時鐘根節點)到達各個需要時鐘驅動的器件(各葉子節點,如觸發器)的時間基本一緻的過程。時鐘樹綜合通常使用EDA工具自動進行。

------CTS工具,Synopsys的Physical Compiler

布線(routing)

布線就是完成子產品、節點的互相連線。EDA工具可以分成全局布線和詳細布線。一般情況下先使用EDA工具布線,然後在人工幹預的情況下局部自動或者手工進行連接配接一些比較關鍵地連線,進行修複連接配接上的問題和時序限制上的問題。注意,關鍵路徑跟時鐘上的連接配接線要盡量最先連接配接,以免繞線,導緻時序問題。

信号完整性分析(signal competition analysis)

信号完整性分析是通常是進行分析噪聲。随着器件尺寸的下降,器件的供電電壓、噪聲容限均下降。也就是說,也許由于某一根導線可能電阻過大,帶來的壓降過大,導緻器件的供電電壓達不到而不能正常工作等等的一系列問題。對這些問題進行分析,是信号完整分析的一部分。

寄生參數提取(parasitic extraction)

根據布線完成得版圖提前RC(電阻電容)參數檔案。對EDA工具輸入相應的工藝參數(廠家提供)後,EDA工具根據這些參數和版圖實際幾何形體的面積計算出RC值,然後通過存儲進而提取出RC參數。提取出來的RC參數,可以直接用于靜态時序分析,也可以在計算出相應的路徑延時時,用于反标功能後仿真。

------ 工具Synopsys的Star-RCXT

後仿真(post-layout simulation)

後仿真也叫門級仿真、時序仿真、帶反标的仿真。它是通過采用外部激勵和布局布線後産生的标準延時檔案(*.sdf),對布局布線後的門級電路網表進行功能和時序驗證,來檢驗門級電路是否符合功能要求。

工程更改指令(engineering change order,ECO)

在設計的最後階段發現個别路徑有時序問題或者邏輯錯誤時,通過晶片内部專門留下的寄存器跟組合邏輯,對設計部分進行必要的小範圍的修改和重新連線。

ECO在是在網表上做文章,在非必須的情況下(如時間充足,人員充足),不要進行ECO。

實體驗證(physical verification)

實體驗證主要是一個對版圖的設計結果是否預定要求而進行的驗證過程。

首先是通過DRC(design rule check,設計規則檢查)對版圖設計中的限制違規情況進行檢查,以保證各層版圖都符合設計的要求。然後是進行LVS(layout vs. Schematic,版圖網表與電路原理圖比較),進行版圖網表跟原始電路圖的一緻性對比檢查,即通過版圖寄生參數提取工具得到一個有版圖寄生參數的電路圖,将它跟原理電路圖進行比較,以確定版圖設計與原要求的電路圖的邏輯功能一緻性。

------工具為Synopsys的Hercules

實體版圖驗證完成也就是整個晶片設計階段完成,下面的就是晶片制造了;實體版圖以GDS II的檔案格式交給晶片代工廠(稱為Foundry)在晶圓矽片上做出實際的電路,再進行封裝和測試,就得到了我們實際看見的晶片 ;

繼續閱讀