Professional Documents
Culture Documents
CIC Referenced Flow For Cell-Based IC Design
CIC Referenced Flow For Cell-Based IC Design
設計服務組
Version 1.0
中 華 民 國 九 十 七 年 五 月
版本說明
1
Abstract
CIC 整合了一個數位電路設計流程,並提供給學術界。本設計流程包含各階段的實
現及驗證的方法,驗證的目的是確保各個實現階段結果的正確性,項目包括有
function、timing、power、DRC 等,越到實體階段所須驗證的項目就越多。CIC 提
供的 Cell-Based Design Flow 從 Logic Synthesis、Place&Route、Layout Merging
到最後 Tape out 的步驟。每個步驟階段都有對應的軟體,學生只要遵循此流程,配
合 CIC 提供的 Cell Library,就可以完成電路晶片的實作。
1 The CIC Cell-Based Design Flow Overview
2 RTL Verification
2.1 RTL Code
2.2 Code Coverage Analysis
2.3 RTL Simulation
3 Gate-level Pre-layout Verification
3.1 To Generate Gate-level Netlist Using Logic Synthesis Tool
3.2 Gate-level Simulation
3.3 Gate-level Power Analysis
3.4 Formal Verification
4 Gate-level Post-layout Verification
4.1 To Generate GDSII & Gate-level Netlist Using APR Tool
4.2 RC Extraction
4.3 Gate-level STA & Simulation
4.4 Gate-level Power Analysis
4.5 Formal Verification
4.6 DRC/LVS
5 Circuit-level Verification
5.1 Replace True Layout
5.2 DRC/LVS
5.3 Circuit Extraction
5.4 Circuit-level STA & Simulation
2
目錄
版本說明.................................................................................................................................... 1
Abstract ...................................................................................................................................... 2
目錄............................................................................................................................................ 3
1 The CIC Cell-Based Design Flow Overview..................................................................... 4
2 The RTL Verification.......................................................................................................... 5
2-1 RTL Code ..................................................................................................................... 5
2-2 RTL Simulation............................................................................................................ 7
2-3 Code Coverage Analysis .............................................................................................. 8
3 Gate-level Pre-Layout Verification .................................................................................... 9
3-1 To Generate Gate-level Netlist Using Logic Synthesis Tool ..................................... 10
3-2 Gate-level Simulation ................................................................................................ 11
3-3 Gate-level Power Analysis......................................................................................... 12
3-4 Formal Verification .................................................................................................... 13
4 Gate-level Post-layout Verification .................................................................................. 14
4-1 To Generate GDSII & Gate-level Netlist Using APR Tool........................................ 15
4-2 RC Extraction............................................................................................................. 16
4-3 Gate-level STA & Simulation .................................................................................... 17
4-4 Gate-level Power Analysis......................................................................................... 17
4-5 Formal Verification .................................................................................................... 18
4-6 DRC/LVS ................................................................................................................... 19
5 Circuit-level Verification.................................................................................................. 20
5-1 Replace True Layout .................................................................................................. 20
5-2 DRC/LVS ................................................................................................................... 21
5-3 Circuit Extraction....................................................................................................... 21
5-4 Circuit-level Simulation............................................................................................. 21
參考文獻.................................................................................................................................. 22
3
1 The CIC Cell-Based Design Flow Overview
對於數位電路設計,CIC 整合了一個基本的數位電路設計流程,並提供給學術界。
不同的驗證,驗證的目的是確保各個實現階段結果的正確性,項目包括有 function、
Library,就可以完成電路晶片的實作,提高學術界 IC 設計的水準。
RTL Code
RTL Verification
Code coverage RTL
Analysis simulation
Logic synthesis
Gate-level Netlist
Gate-level Pre-layout
Verification
Gate-level
Gate-level Formal
Power
simulation verification
Analysis
Place&Route
Gate-level Post-
layout Verification
Layout Gate-level Netlist
RC Extraction
Gate-level
Gate-level Formal
DRC/LVS Delay Power
simulation verification
Caculation Analysis
Gate-level
Layout Merging
STA
Layout
Circuit-level
Verification
Circuit Circuit-level Netlist
DRC/LVS
Extraction
Tapeout
4
2 The RTL Verification
暫存器轉換階層(Register Transfer Level),簡稱 RTL Level 主要特色就是大量的使用
暫存器與算數邏輯元件來描述電路,是最廣泛被運用的初期 IC 設計和驗證的方式。最
於所設計晶片的要求,指定此晶片的功能、介面與整體的線路的架構,此時不用考慮將
如何完成晶片等的細部問題。只需利用硬體描述語言來描述電路的行為,並且將這些資
料傳送的情形詳細的描述出來即可。最後配合模擬軟體的使用,針對剛剛完成的電路做
功能性的初步驗證。
設計需求描述
RTL 描述
功能驗證與測
試
架構的資訊但是對於內部詳細的技術不干涉。使用者只要專心確保設計的功能正確性就
存器,利用這樣的方式來完成使用者自己定義的一些 Function。例如表一所示,利用
5
表一 RTL Code by VHDL
呼叫使用它。
表二 RTL Code by Verilog
endmodule
語法,這些語法可參考[2]。HDL 語言風格強烈左右邏輯合成的結果,好的寫法會產生
硬體沒有直接的關係,所以有可能產生一些不需要的硬體。但是通常與硬體有密切關係
的寫法,卻又會犧牲設計的可攜性與再使用性。如何針對這個問題做改進,提出一些看
法。
1. 針對 module 與連線做有意義的命名:讓使用者一看就知道是什麼用途,有益
於線路的除錯以及避免出錯。
2. 避免混用正緣與負緣觸發的暫存器:同時使用正緣與負緣觸發的暫存器,會在
時脈的路徑上加入反向器與緩衝器,會產生 clock skew,將會發生不可預期的
結果。
6
3. 使用多工器與使用 if-else 敘述的不同:雖然是用 if-else 或是 case 的語法,都會
對應到多工器的線路,但是如果使用者本來就是需要多工器的架構時,建議最
好還是使用多工器的指定敘述。因為如果使用 if-else 的敘述,有可能再合成的
時候多合成出一些多餘的邏輯閘。
4. 使用括號來作邏輯最佳化:利用括號增加程式的閱讀性。
5. 避免針對同一個變數做重複的指定:如果同時有兩個區塊,都同時對同一變數
作重複的指定,合成的時候,會出現不可預期的電路產生。
6. 清楚定義 if-else 與 case 的敘述:這兩種判斷式都必須要明確的指定,合成的工
作才能正常的運作,合成出預期的邏輯電路。
撰寫完的電路設計,需要驗證電路的正確與否。通常是利用測試平台(Test Bench)的方
式,提供一種自動模擬、檢查與驗證,以提高電路設計的錯誤涵蓋率(Fault Coverage),
並降低人為作波形(Waveform),檢查時容易造成的疏忽與不完成。
一般而言,在數位電路的設計上,在驗證的過程中往往所花費的時間,通常比設計
驗證(Function Verification),早期發現設計的錯誤,早期更正,以免浪費後段已經完成的
Place&Route 的工作。初期的驗證,主要針對邏輯設計來模擬,又稱為原始程式碼模擬
1. 將結果輸出成向量格式(Vector Format),再利用波形圖的方式,將結果利用波
形的方式輸出,方便觀察。
2. 將輸出的結果的資料利用一個檔案儲存起來,再利用分析工具加以檢查與驗
證。
出來加以驗證。
7
輸出訊號 x,並將最後的輸出結果顯示在監視器上。
的輸入訊號,例如 t_x,將最後的輸出結果利用波形秀出,以方便檢查錯誤。
圖三
圖四
測試完整程度。並可針對已測試過的程式原始碼,追蹤其所做的新增或修改狀況,得知
作做得更完整,換句話說,可以將錯誤找出的機率也越高。舉一個簡單的範例來說,電
8
電路的功能是否正常工作。假設此電路擁有 100 個功能,可是 Test Bench 只測試 70 個
用。
一般而言,Code Coverage 可分為六大類:
1. Function coverage:主要是測試在電路中每個 Function 是否都有被完整執行。
2. Statement coverage:主要是測試電路程式原始碼每一個 Statement 是否有被完
整執行。
3. Condition coverage:主要是測試每個 Condition 測試點是否有被完整執行,例
如 True、False…等條件判斷式。
4. Path coverage:主要是測試電路中每條 Path 是否有被完整執行。
5. Entry/exit coverage:主要是測試在 Function 中有 call 或是 return 語法是否有被
完整執行。
9
3-1 To Generate Gate-level Netlist Using Logic Synthesis Tool
片的周遭環境為何?這包括使用哪一種製程(Process)的標準元件庫(Standard-Cell)製作作
端要延遲多久時間才收得到輸入訊號?自己的晶片要延遲多久時間才可以傳送到下一
Constraint就是根據該晶片規格設定Timing需要跑多快以滿足規格?功率消耗要多低才
可以滿足規格?晶片面積需要多小以滿足需求?最後還須讓合成軟體知道每個Cell最大
推動力為何以防止合成後之電路有前一級Cell推不動下一級的問題發生。完成這些設定
便可以開始進行合成也就是圖五中的Compiler Design。Compiler時,合成軟體會以現有
給定的Standard Cell資源,由Tool自行挑選最合適的Cell來完成邏輯電路。最後再經由
Analysis以確認合成軟體有滿足規格後,即可將該電路存檔成Gate-level Netlist,電路中
Simulation之用。關於Logic Synthesis較細節的操作步驟與設定可參考CIC訓練課程講義
[5]。
10
另外,假使設計者有用到一些合成軟體所提供的 Low Power 技術[6],像是 Clock
Gate-level Netlist 中。
RTL
design
Clock Gating
Power Opt.
RTL
Operand Isolation
MVMS
(Power Intent)
Compiler Design
Technology
library
Insert DFT Circuit
分析之 Timing 修改適當的 Period 值並附加 sdf 於其中讓 Simularor 知道電路每個 Cell、
11
Net 的 Delay Time 以及 Simulation Model 像是每個 Standard Cell Behavior Model、Memory
其準確度又是如何?這是一般設計者第一個會想到的問題。論準確度其實不準,因為合
率消耗,實際上電路動作時不可能剛好如此,一個準確的功率量測必須要灌入大量且實
12
.lib file有提供每個Cell之
Select libraries Dynamic/Leakage Power Info.
Gate-level Netlist
Read Netlist
式秀出來,讓設計者知道需改善的地方。
13
圖十 Formal Verification Flow
14
module CONTROL ….
input A, B, C;
output reg X;
………..
and2 U1 (.I0(B), .I1(C), .Z(T1);
APR
or2 U2 (.I0(B), .I1(C), .Z(T2); IP
mux2 U3 (.S(A),.I1(T1),.I2(T2), .Z(X);
………..
create_clock –period 10 ……
set_input_delay –max 1.2 ….
set_output_delay –max 2.5 ….
set_load 0.25 …..
……….
二所示。圖十三為整個APR的流程,Floorplan前先準備已合成好的Gate-level Netlist、
Macro(如Memory、ARM Processor等)。在Floorplan步驟中由設計者決定該晶片Die面積
captbl)。在Placement步驟中,APR軟體會根據設計者的Constraint將Cell擺放至適當方位
以滿足規格,假使未滿足規格,設計者可再透過Placement Optimization取得更好的
並作Routing Optimization達成規格,完成Routing步驟。完成整個晶片P&R後,確認都沒
步驟與設定可以參考CIC訓練課程講義[10][11]。
15
從整個 APR Flow 可以發現,Placement、CTS、Routing 這些都是軟體在作的,這對
4-2 RC Extraction
16
路再作一次 RC Extraction,以取得精確地 Delay Calculation,直到最後 Layout 完成產生
17
Activity 資訊輸入給 Tool 計算,才可以得到精準的 Power Analysis 結果。經 Power Analysis
程講義[10][11][12]。
(a) (b)
18
圖十六 Design Rule Check Item
4-6 DRC/LVS
Rule 的地方予以修正。
19
Layout vs. Schematic (LVS)顧名思義就是將 Layout 結果與 Schematic 作比對,比較
5 Circuit-level Verification
由於 Gate-level 模擬使用了大量的 model 以化簡龐大的計算量,因而犧牲了相當的精
體來觀察。
圖十八
5-1 Replace True Layout
20
5-2 DRC/LVS
階段,電路已經轉成真實的電路佈局,所以其主要的重點在於轉換之後繞線是否符合製
程的規定,或是在轉換的過程出現連線的問題,以便修正錯誤,減少下線之後失敗的機
率。
路是否在轉換成真實佈局後產生短路,避免電路出錯。
設定項目包括模擬電路之腳位負載、設定所要觀看輸出節點之模擬結果、模擬電路工作
電壓位準、模擬所需精確度控制方式等。以之配合事先準備好的測試向量檔即可以使用
以驗證最後電路的完整正確性。
21
參考文獻
22