天天看點

數字vlsi晶片設計_數字晶片設計全流程概述

概括說,數字晶片設計流程分為,晶片設計,晶片制造,晶片封裝。本芯隻從事過設計部分工作,對其他兩部分不熟悉,隻在這裡講一講晶片設計部分。

晶片設計分為四部分:需求分析、系統設計、前端設計、後端設計。

數字vlsi晶片設計_數字晶片設計全流程概述
需求分析

晶片設計之初,需要進行市場調研明确晶片用途。晶片主要的應用領域大緻有:民用/商用,工業,軍工。平時我們聽到和見到最多的就是民用/商用,特别是手機、電腦需要用到的各種處理器、存儲器、電源管理、RF前端等,應用在該領域晶片的總體特點就是高內建度和低功耗。工業領域對晶片的各方面性能要求,較之于民用來說要高得多,随着工業物聯網時代的到來,在原有性能的基礎上,對相應晶片的內建度、功耗以及低延遲等名額的要求更高。

設計一個晶片,如果不從0開始,通常需要先分析前代晶片/競争對手晶片的優缺點;例如幾納米工藝,價格多少,面積多大,功耗多少,頻率多高,有什麼特殊功能/IP等等。在此基礎上,做出工藝、面積、功耗、頻率、功能上的改進。工藝的選擇非常重要,會直接影響設計成本流片成本以及後續封裝技術難度。

系統設計

1. 規格制定

如果是design house(自己設計自己的産品),那就自己定自己的晶片規格,也就是具體的實作功能清單。例如生物識别,紅外/藍牙,人像處理等;性能要求,比如2G頻率,100W功耗,圖像處理速度等。如果是design service(幫别人設計産品), 那就需要跟客戶溝通具體的晶片細節,這個是一個讨價還價的過程,不合理或者實作不了的要求要謹慎對待,反正會有各種坑。。。

2. 詳細設計

根據制定的晶片規格,拿出具體的解決方案,并且所有的方案都需要落地到文檔。系統架構,子產品劃分,每個子產品的功能等等。

晶片前端設計:

晶片前端設計(邏輯設計)的産出是門級網表GateLevel Netlist。

數字vlsi晶片設計_數字晶片設計全流程概述

1. RTL Coding

RTL(Register Transfer Level)使用硬體描述語言,依據詳細設計中的文檔描述的子產品功能,以代碼來描述實作。這裡的Coding 跟software coding 不盡相同,software coding 更注重算法複雜度;RTL coding描述的電路邏輯:易實作,穩定,邏輯深度更低的電路是好電路。同樣,RTL coding 也有自己的代碼風格。

主要的硬體設計語言是VHDL和Verilog HDL。也會搭配一些進階語言比如C語言。

2. 仿真驗證 Simulation and Verification

仿真:檢查代碼功能正确,時序滿足。一邊寫代碼,一邊做仿真。著名的仿真工具Modelsim。

3. 邏輯綜合 Logic Synthesis

邏輯綜合是一個很複雜的過程,大廠會有專門的工程師來做邏輯綜合的工作,小廠可能是交給前端或者後端去做。

邏輯綜合的過程是翻譯+優化+映射

a. 翻譯:讀入電路的RTL級描述,并将語言描述翻譯成相應的功能塊以及功能塊之間的拓撲結構。這一過程的結果是在綜合器内部生成電路的布爾函數表達式,不做任何邏輯重組和優化。

b. 優化:根據所施加的時序和面積限制,按照一定的算法對翻譯結果進行邏輯重組和優化。

c. 映射:根據所施加的時序和面積限制,從目标工藝庫中搜尋符合條件的單元來構成實際電路的邏輯網表。

邏輯綜合的結果就是把設計實作的HDL代碼翻譯成門級網表Gate-Level Netlist。

邏輯綜合工具S的Design Compiler,C的Genus(RTL Complier)。

4.DFT:随着晶片越來越大,DFT也就成為必不可少的一步。DFT通常要做scan chain, mbist ,ATPG等工作

晶片後端設計:

又稱實體設計,傳遞物是GDSII。

最初制定晶片規格也是在後端設計這裡落地:面積、頻率、功耗等。後端設計對晶片功能的感覺不太強,是以有一套相對成熟後端實體設計方法學。

後端的設計主要步驟分為floorplan,place,cts,route,其中EDA工具會加入若幹優化(optimization)的步驟,比如floorplan, place, opt-place,cts,opt-cts,route,opt-route 這樣。

主流後端EDA工具是ICC2和Innovus

數字vlsi晶片設計_數字晶片設計全流程概述

1. 布局規劃Floorplan

主要是I/O Pad,宏單元Macro的布局,建構電源網格。I/O Pad的位置有晶片規格預先設定,宏單元則根據一定要求進行擺放,電源網格需要保證整個晶片的供電均衡。Floorplan一般會反複修改調整。

2.布局Place

Place按照時序來擺放标準單元。一個好的place結果是各子產品擺放規整,同時時序滿足。

3.時鐘樹綜合Cts

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

4.布線Route

布線是指在滿足工藝規則和布線層數限制、線寬、線間距限制和各線網可靠絕緣的電性能限制的條件下,根據電路的連接配接關系将各單元和I/OPad用互連線連接配接起來,這些是在時序驅動(Timing driven )的條件下進行的,保證關鍵時序路徑上的連線長度能夠最小。

5.ECO

ECO(Engineering Change Order)晶片上其他問題修修補補。DRC/LVS, etc。

此外,還有兩個功能貫穿IC設計始終,包括前端和後端,在這裡單獨列出來:

時序分析:

Static Timing Analysis(STA),靜态時序分析,這也屬于驗證範疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(setup time)和保持時間(hold time)的違例(violation)。這個是數字電路基礎知識,一個寄存器出現這兩個時序違例時,是沒有辦法正确采樣資料和輸出資料的,是以以寄存器為基礎的數字晶片功能肯定會出現問題。

STA工具有Prime Time和Tempus。

形式驗證

這也是驗證範疇,它是從功能上(STA是時序上)對綜合後的網表進行驗證。常用的就是等價性檢查方法,以功能驗證後的HDL設計為參考,對比綜合後的網表功能,他們是否在功能上存在等價性。這樣做是為了保證在邏輯綜合過程中沒有改變原先HDL描述的電路功能。

形式驗證工具有Formality和Conformal。

歡迎大家關注微信公衆号"芯觀點",一起學習一起進步。

http://weixin.qq.com/r/_y46IozEbNETrchB93vp (二維碼自動識别)