0515-cic referenced flow for cell-based ic...

22
CIC Referenced Flow for Cell-based IC Design 設計服務組 Version 1.0

Upload: others

Post on 20-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • CIC Referenced Flow for Cell-based IC Design

    設計服務組

    Version 1.0

    中 華 民 國 九 十 七 年 五 月

  • 1

    版本說明

    版本編號

    (Version)

    日期(Date) 說明(Description)

    V. 1.0 2008/5/ 初版

    Abstract

    CIC 整合了一個數位電路設計流程,並提供給學術界。本設計流程包含各階段的實

    現及驗證的方法,驗證的目的是確保各個實現階段結果的正確性,項目包括有

    function、timing、power、DRC 等,越到實體階段所須驗證的項目就越多。CIC 提

    供的 Cell-Based Design Flow 從 Logic Synthesis、Place&Route、Layout Merging

    到最後 Tape out 的步驟。每個步驟階段都有對應的軟體,學生只要遵循此流程,配

    合 CIC 提供的 Cell Library,就可以完成電路晶片的實作。

  • 2

    目錄 版本說明 .................................................................................................................................... 1 Abstract ...................................................................................................................................... 1 目錄 ............................................................................................................................................ 2 1 The CIC Cell-Based Design Flow Overview..................................................................... 3 2 The RTL Verification.......................................................................................................... 4

    2-1 RTL Code..................................................................................................................... 4 2-2 RTL Simulation............................................................................................................ 6 2-3 Code Coverage Analysis .............................................................................................. 7

    3 Gate-level Pre-Layout Verification .................................................................................... 8 3-1 To Generate Gate-level Netlist Using Logic Synthesis Tool ....................................... 9 3-2 Gate-level Simulation ................................................................................................ 10 3-3 Gate-level Power Analysis......................................................................................... 11 3-4 Formal Verification .................................................................................................... 12

    4 Gate-level Post-layout Verification .................................................................................. 13 4-1 To Generate GDSII & Gate-level Netlist Using APR Tool........................................ 14 4-2 RC Extraction............................................................................................................. 15 4-3 Gate-level STA & Simulation .................................................................................... 16 4-4 Gate-level Power Analysis......................................................................................... 16 4-5 Formal Verification .................................................................................................... 17 4-6 DRC/LVS ................................................................................................................... 18

    5 Circuit-level Verification.................................................................................................. 19 5-1 Replace True Layout .................................................................................................. 19 5-2 DRC/LVS ................................................................................................................... 20 5-3 Circuit Extraction....................................................................................................... 20 5-4 Circuit-level Simulation............................................................................................. 20

    參考文獻 .................................................................................................................................. 21

  • 1 The CIC Cell-Based Design Flow Overview 對於數位電路設計,CIC 整合了一個基本的數位電路設計流程,並提供給學術界。

    圖一所示,Cell-Based Design implementation 流程包含幾個主要的實現步驟:RTL

    coding、Logic synthesis、Place&Route、Layout Merge,在這些實現步驟當中還穿插各種

    不同的驗證,驗證的目的是確保各個實現階段結果的正確性,項目包括有 function、

    timing、power、DRC 等,越到實體階段所須驗證的項目就越多。CIC 提供的 Cell-Based

    Design Flow 從 Logic Synthesis、Place&Route、Layout Merging 到最後 Tape out 的步驟。

    每個步驟階段都有對應的軟體,學生只要遵循此相關流程,配合 CIC 提供的 Cell

    Library,就可以完成電路晶片的實作,提高學術界 IC 設計的水準。

    RTL Code

    Logic synthesis

    RTL simulation

    Code coverage Analysis

    Gate-level Netlist

    Gate-level simulation

    Gate-level Power

    Analysis

    Formal verification

    Place&Route

    Gate-level Netlist

    DRC/LVS

    Layout

    Formal verification

    Gate-level simulation

    Gate-level Power

    AnalysisDelay

    Caculation

    RC Extraction

    Layout Merging

    Layout

    Circuit ExtractionDRC/LVS

    Circuit-level Netlist

    Circuit -level Simulation

    Tapeout

    RTL Verification

    Gate-level Pre-layout Verification

    Gate-level Post-layout Verification

    Circuit-level Verification

    Circuit -level STA

    Gate-level STA

    圖一、The CIC Cell-Based Design Flow

  • 4

    2 The RTL Verification 暫存器轉換階層(Register Transfer Level),簡稱 RTL Level 主要特色就是大量的使用

    暫存器與算數邏輯元件來描述電路,是最廣泛被運用的初期 IC 設計和驗證的方式。最

    熱門的語言莫過於硬體描述語言(Hardware Description Language),主要以 VHDL[1]與

    Verilog HDL[2]為主流。整個 RTL Design Flow 如圖二所示,在任何的設計中,首先是對

    於所設計晶片的要求,指定此晶片的功能、介面與整體的線路的架構,此時不用考慮將

    如何完成晶片等的細部問題。只需利用硬體描述語言來描述電路的行為,並且將這些資

    料傳送的情形詳細的描述出來即可。最後配合模擬軟體的使用,針對剛剛完成的電路做

    功能性的初步驗證。

    設計需求描述

    RTL 描述

    功能驗證與測試

    圖二 RTL Level Design Flow

    2-1 RTL Code

    在 RTL Level 的階段,定義暫存器及暫存器間的邏輯閘。設計的電路將會包含整個

    架構的資訊但是對於內部詳細的技術不干涉。使用者只要專心確保設計的功能正確性就

    好。作完功能驗證之後,就丟給邏輯合成的軟體去處理。RTL Code 就像是以前在用繪

    圖設計時畫方塊流程圖一樣,使用者可以自己定義一些 Function Unit,然後加上一些暫

    存器,利用這樣的方式來完成使用者自己定義的一些 Function。例如表一所示,利用

    VHDL 舉個簡單的實例,完成部份的 RTL Code。表二所示為利用 Verilog 舉個簡單的實

    例,完成部份的 RTL Code。

  • 5

    表一 RTL Code by VHDL

    其中,a、b、x 都是我宣告的訊號,在 VHDL 中可以將他視做連接線或是暫存器,B); assign lt = (A

  • 6

    3. 使用多工器與使用 if-else 敘述的不同:雖然是用 if-else 或是 case 的語法,都會

    對應到多工器的線路,但是如果使用者本來就是需要多工器的架構時,建議最

    好還是使用多工器的指定敘述。因為如果使用 if-else 的敘述,有可能再合成的

    時候多合成出一些多餘的邏輯閘。

    4. 使用括號來作邏輯最佳化:利用括號增加程式的閱讀性。

    5. 避免針對同一個變數做重複的指定:如果同時有兩個區塊,都同時對同一變數

    作重複的指定,合成的時候,會出現不可預期的電路產生。

    6. 清楚定義 if-else 與 case 的敘述:這兩種判斷式都必須要明確的指定,合成的工

    作才能正常的運作,合成出預期的邏輯電路。

    2-2 RTL Simulation

    撰寫完的電路設計,需要驗證電路的正確與否。通常是利用測試平台(Test Bench)的方

    式,提供一種自動模擬、檢查與驗證,以提高電路設計的錯誤涵蓋率(Fault Coverage),

    並降低人為作波形(Waveform),檢查時容易造成的疏忽與不完成。

    一般而言,在數位電路的設計上,在驗證的過程中往往所花費的時間,通常比設計

    過程所花費的時間來的多。利用 Test Bench,在設計的初期,也就是在作邏輯性的功能

    驗證(Function Verification),早期發現設計的錯誤,早期更正,以免浪費後段已經完成的

    Place&Route 的工作。初期的驗證,主要針對邏輯設計來模擬,又稱為原始程式碼模擬

    (Source Code Level),最後的結果輸出與驗證,可以分為下列三種方式:

    1. 將結果輸出成向量格式(Vector Format),再利用波形圖的方式,將結果利用波

    形的方式輸出,方便觀察。

    2. 將輸出的結果的資料利用一個檔案儲存起來,再利用分析工具加以檢查與驗

    證。

    3. 將資料結果的驗證工作,包含在 Test Bench,利用 HDL 硬體描述語言直接描述

    出來加以驗證。

    Test Bench 主要是用來驅動設計好的電路並檢查輸出的結果是否符合要求,因此通常

    合理的設計方式是將 Test Bench 與設計電路分開,較常見的作法有兩種分別如下:

    1. 在設計電路內使用 module,並直接驅動這些 module 的輸入訊號,如圖三所示。

    Test Bench 為最上層的電路,直接驅動設計電路的輸入訊號 clk 與 reset,檢查

  • 7

    輸出訊號 x,並將最後的輸出結果顯示在監視器上。

    2. 將 Test Bench 當做訊號產生器,另外再建一個 module,如圖四所示。Test Bench

    的輸出訊號例如 t_clk 與 t_reset,輸入到設計電路中當作輸入訊號,例如 clk 與

    reset。將設計電路的輸出訊號,例如 x,輸出到 Test Bench,當作是 Test Bench

    的輸入訊號,例如 t_x,將最後的輸出結果利用波形秀出,以方便檢查錯誤。

    圖三

    圖四

    2-3 Code Coverage Analysis

    Code Coverage 又稱測試覆蓋率,它是軟體測試的方法之一,用以評估程式原始碼的

    測試完整程度。並可針對已測試過的程式原始碼,追蹤其所做的新增或修改狀況,得知

    測試效果的優劣。程式設計時須確保每次的變更都經過 Code Coverage 測試,因為程式

    原始碼變更時,經常會導致錯誤的出現。Code Coverage 的數值越高,代表著測試的工

    作做得更完整,換句話說,可以將錯誤找出的機率也越高。舉一個簡單的範例來說,電

    路在 RTL Level 的時候,進入 Place&Route 之前,都會寫一連串的 Test Bench 用來測試

  • 8

    電路的功能是否正常工作。假設此電路擁有 100 個功能,可是 Test Bench 只測試 70 個

    功能,則在功能項目的 Code Coverage 是 70/100 = 70%。換句話說,只有測試了 70%的

    功能,最多能保證 70%的功能可以使用,另外 30%功能則無法確定是否能夠保證正常使

    用。 一般而言,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 語法是否有被

    完整執行。

    3 Gate-level Pre-Layout Verification

    Pre-layout 為整個 Cell-Based Design Flow 中 Front-End 的部分,主要是將已撰寫好

    的 RTL Code 開始進行 Logic Synthesis,以產生 ASIC 晶片 Layout 時需要的 Gate-level

    Netlist,在 Layout 前產生的該檔案,必須要先確認有 Logic Synthesis 後有滿足規格及

    Function 正確,因此以下將針對 Logic Synthesis、Gate-level Simulation、Power Analysis、

    Formal Verification 作說明,其詳細內容茲分述如下:

    圖五 From RTL To Gate-level Netlist Using Logic Synthesis

  • 9

    3-1 To Generate Gate-level Netlist Using Logic Synthesis Tool

    Logic Synthesis在Front-End Design中扮演非常重要角色,可以將設計者撰寫之RTL

    Code轉換成Gate-level Netlist,如圖五所示。圖六為ASIC Synthesis Design Flow所示,設

    計者完成RTL Code設計後,開始進行Logic Synthesis。在Compiler Design前需設定該晶

    片的周遭環境為何?這包括使用哪一種製程(Process)的標準元件庫(Standard-Cell)製作作

    晶片?工作電壓範圍(Voltage Range)是多少?工作溫度範圍(Temperature Range)?輸入

    端要延遲多久時間才收得到輸入訊號?自己的晶片要延遲多久時間才可以傳送到下一

    塊晶片去?此外設計者還需提供標準元件庫的Timing Model給合成軟體計算Cell Delay,

    提供Wire Load Model計算Net Delay,以完成整個Design Environment的設定。Design

    Constraint就是根據該晶片規格設定Timing需要跑多快以滿足規格?功率消耗要多低才

    可以滿足規格?晶片面積需要多小以滿足需求?最後還須讓合成軟體知道每個Cell最大

    推動力為何以防止合成後之電路有前一級Cell推不動下一級的問題發生。完成這些設定

    便可以開始進行合成也就是圖五中的Compiler Design。Compiler時,合成軟體會以現有

    給定的Standard Cell資源,由Tool自行挑選最合適的Cell來完成邏輯電路。最後再經由

    Analysis以確認合成軟體有滿足規格後,即可將該電路存檔成Gate-level Netlist,電路中

    的Timing Delay Information可以使用Standard Delay Format存成sdf檔案作為Gate-level

    Simulation之用。關於Logic Synthesis較細節的操作步驟與設定可參考CIC訓練課程講義

    [5]。

    圖六 ASIC Synthesis Design Flow

  • 10

    另外,假使設計者有用到一些合成軟體所提供的 Low Power 技術[6],像是 Clock

    Gating、Operand Isolation、Dynamic & Leakage Power Optimization、Multi-Voltage

    Multi-Supply (Power Intent)等功能時,需在 Compiler Design 步驟前下好相對的指令與

    Support Low Power Library 的準備,如圖七所示,合成軟體即可在 Compiler Design 步驟

    時,作出 Low Power 電路來,以滿足設計者的需求。若設計者考量晶片下線後會有失敗

    的情形發生,往往為了查出錯誤發生點在哪裡,會在Compiler Design步驟後,加入Testing

    Circuit[7]於電路中,最後合成出來的電路便擁有 Low Power 及 Testing 電路功能於

    Gate-level Netlist 中。

    RTLdesign

    RTL

    Pow

    er O

    pt. Clock Gating

    Operand Isolation

    MVMS (Power Intent)

    Compiler Design

    Insert DFT Circuit

    Power Opt & Testing Netlist

    Technologylibrary

    RTLdesign

    RTL

    Pow

    er O

    pt. Clock Gating

    Operand Isolation

    MVMS (Power Intent)

    Compiler Design

    Insert DFT Circuit

    Power Opt & Testing Netlist

    Technologylibrary

    圖七 To Append Low Power Technology & Insert DFTC Flow

    3-2 Gate-level Simulation

    合成後,Gate-level 電路的 Function 有可能因合成後而有所改變,假使設計者撰寫

    RTL Code 因一些語法或特殊狀況沒有注意到,往往就會造成合成前後 Function 不一致,

    至於在寫 Code 有哪些地方要特別注意的可以參考[5]的第二章便有提到。因此在 Layout

    之前須先確認 Function 是否正確,要作 Pre-layout Simulation 也稱作 Gate-level Simulation

    如圖八所示,Gate-level Simulation 至少須準備四種類型檔案,包括合成後得到的

    Gate-level Netlist、SDF 及之前 RTL Simulation 用的 Test Bench 檔案根據合成軟體 STA

    分析之 Timing 修改適當的 Period 值並附加 sdf 於其中讓 Simularor 知道電路每個 Cell、

  • 11

    Net 的 Delay Time 以及 Simulation Model 像是每個 Standard Cell Behavior Model、Memory

    Behavior Model、ARM Processor Model 等,此外設計者有時也會用一些特殊的 PLI 程式

    如 Low Power Design 會額外用到的 PLI 程式[6]也一同加入一起模擬,接著 Simulator 模

    擬後即可從文字介面得知結果是否正確或產生 Waveform Format 檔案作驗證其 Function

    正確性,假使 Function 不正確可透過 Debug 軟體[4]找出其問題點所在處。

    圖八 Gate-level Pre-Layout Simulation

    3-3 Gate-level Power Analysis

    在合成軟體中就有 Power Analysis的功能,但是合成軟體是根據什麼來Report Power

    其準確度又是如何?這是一般設計者第一個會想到的問題。論準確度其實不準,因為合

    成軟體 Report Power 會假設整個電路中的所有電晶體電路 on / off 機率為 50%去考量功

    率消耗,實際上電路動作時不可能剛好如此,一個準確的功率量測必須要灌入大量且實

    際的 Pattern 去測試得到的 on/off 資訊即 Switch Activity 給軟體去作 Power Analysis 才會

    準確,整個 Power Analysis 流程如圖九所示。首先告知軟體所有會用到的 Library 其 Lib

    檔,因為 Library 或 IP 廠商會定義其 Cell 或 Macro Power Information 於 lib 檔中,Power

    Analysis 軟體只需透過 lib 檔即可計算 Cell / Macro 內部之功率消耗,接著將合成完之電

    路 Gate-level Netlist 讀入,再從 Gate-level Simulation 中得到實際 Switch Activity 資訊[6],

    如此便可以得較準確之功率消耗資訊。Pre-Layout 的 Power Analysis 由於受到 WLM 不

    準確[9]、Clock Tree Synthesis 還未實際產生及 Layout 後電路還會再變化等因素影響,所

    以 Pre-layout Power Analysis 並非完全精準的。

  • 12

    Select libraries

    Read Netlist

    Read Gate SAIF

    Report power

    .lib file有提供每個Cell之Dynamic/Leakage Power Info.

    Gate-level Netlist

    Switch Activity Info.

    Pre-layout Power Report

    圖九 Pre-Layout Power Report/Analysis Flow

    3-4 Formal Verification

    依前述所言,合成前後Function可能會不一致,我們可以考量用Gate-level Simulation

    得知合成後 Function 之正確性,但假使驗證後發現 Function 不正確,要用 Debug Tool[8]

    來抓錯誤點,往往需要耗上相當多的時間,為解決這問題,可以使用 Formal Verification

    工具找出其問題點。Formal Verification 是作為合成前後驗證 Function 是否會一致的工

    具,其操作流程如圖十所示。設計者須準備合成前的 Golden RTL Code 與合成後產生的

    Gate-level Netlist (Revised Code)及其相關 Library 檔,當合成時有額外添加電路如 Testing

    Circuit,可以給定Constraints予以Mask掉,接著Tool會從電路的Key Point開始比對(Key

    Point 意指 Primary Input / Output、Flip-Flop、Latch、Black Box 等)作 Logic Equivalence

    Check 如圖十一所示,比對完全正確。假使比對有錯,Tool 會將錯誤點以 Schematic 方

    式秀出來,讓設計者知道需改善的地方。

  • 13

    圖十 Formal Verification Flow

    圖十一 Logic Equivalence Check

    4 Gate-level Post-layout Verification

    Post-layout 為整個 Cell-Based Design Flow 中 Back-End 的部分,主要是將合成完的

    Gate-level Netlist 使用 APR(Auto Placement & Route)軟體開始進行 Auto-layout,以產生

    ASIC 晶片的 Layout 檔案 GDSII 及 Post-layout Gate-level Netlist,為驗證 Layout 後

    Function 是否依然正確,以下將針對 Post-layout RC Extraction、Gate-level Simulation、

    Power Analysis、Formal Verification、DRC/LVS 作說明,其詳細內容茲分述如下:

  • 14

    module CONTROL ….

    input A, B, C;

    output reg X;

    ………..

    and2 U1 (.I0(B), .I1(C), .Z(T1);

    or2 U2 (.I0(B), .I1(C), .Z(T2);

    mux2 U3 (.S(A),.I1(T1),.I2(T2), .Z(X);

    ………..

    APR

    Gate-level Netlist

    Standard Cell Library

    P&R’d Layout

    create_clock –period 10 ……

    set_input_delay –max 1.2 ….

    set_output_delay –max 2.5 ….

    set_load 0.25 …..

    ……….

    Timing Constraints

    IP

    module CONTROL ….

    input A, B, C;

    output reg X;

    ………..

    and2 U1 (.I0(B), .I1(C), .Z(T1);

    or2 U2 (.I0(B), .I1(C), .Z(T2);

    mux2 U3 (.S(A),.I1(T1),.I2(T2), .Z(X);

    ………..

    APR

    Gate-level Netlist

    Standard Cell Library

    P&R’d Layout

    create_clock –period 10 ……

    set_input_delay –max 1.2 ….

    set_output_delay –max 2.5 ….

    set_load 0.25 …..

    ……….

    Timing Constraints

    IPIPIP

    圖十二 From Pre-layout Gate-level Netlist to Layout

    4-1 To Generate GDSII & Gate-level Netlist Using APR Tool

    APR(Auto Placement & Route)在Back-End Design中扮演非常重要角色,可以將已合

    成好的Pre-layout Gate-level Netlist轉換成Post-layout GDSII & Gate-level Netlist,如圖十

    二所示。圖十三為整個APR的流程,Floorplan前先準備已合成好的Gate-level Netlist、

    Standard Cell Library、IO Pad Library、Technology File(讓APR Tool得知P&R之Rule)、

    Macro(如Memory、ARM Processor等)。在Floorplan步驟中由設計者決定該晶片Die面積

    大小、Power/Ground Pad的配置、IO Constraint(決定IO擺放順序)、Macro擺置及Power

    Mesh的配置。在Placement前準備好Timing Constraint(告知APR Tool該晶片的規格為何?

    包括Design Environment、Design Constraint)及計算Net Delay的RC Table檔(如TLU+、

    captbl)。在Placement步驟中,APR軟體會根據設計者的Constraint將Cell擺放至適當方位

    以滿足規格,假使未滿足規格,設計者可再透過Placement Optimization取得更好的

    Performance。另外假使有Testing Circuit,需要在Placement時將Scan Chain作Re-order,

    以取得較好的Performance。完成Placement後即可開始進行Clock Tree Synthesis(CTS),

    目的讓每個Clock Signal可以balance送至Flip-Flop的末端,以降低Clock Skew及增加Clock

    Signal的推動力。最後再將Standard Cell、IO Pad Cell、Macro等Cell之Signal Pin進行繞線,

    並作Routing Optimization達成規格,完成Routing步驟。完成整個晶片P&R後,確認都沒

    Violation後即可存成Post-layout GDSII及Gate-level Netlist檔案。關於APR比較細節的操作

    步驟與設定可以參考CIC訓練課程講義[10][11]。

  • 15

    從整個 APR Flow 可以發現,Placement、CTS、Routing 這些都是軟體在作的,這對

    設計者來說並非是難事,但是在 Floorplan 及 Power 的規劃卻是要花最多 Effort 的,這

    是因為 Design 中如果有多個 Macro 時會不知道怎麼擺放才可以做到滿足 Timing 規格,

    也不知道要如何作出一個好的 Power Mesh 規劃,像是 P/G Cell 個數要多少?、Metal

    寬度要多少?Stripe 要幾條?才不會造成 IR Drop 過多或 Electro-Migration(EM)問題發

    生。這些問題常常困擾著設計者,也是 Layout 最花時間的部分,關於這問題在 Layout

    軟體之進階功能中就有 Solution,可參考 CIC 的技術文章[12]有詳細介紹。

    圖十三 Auto Placement & Route Flow

    4-2 RC Extraction

    如圖十三所示,晶片在 Layout 過程中,每作一道關卡設計者最好隨時都要確認

    Timing 規格是否依然滿足,以決定各關卡 Optimization 功能之啟用。然而在 Timing 的

    Report 中,Tool 是根據什麼來計算的?這和合成時的分析方式又有何不同?在 Layout

    時,設計者要提供 RC Table 給 Tool 計算 Net 的 Delay,RC Table 如 TLU+或 capTbl 都是

    由 Library 廠商會提供,該 Table 可以查到每 unit 長度的 Metal 其 RC 值為多少,Tool 會

    自動查表並計算 Net 長度為多少,來決定每條 Net 的 Delay 是多少。由於 Layout 時已有

    實際電路存在,Tool 可以依據實際長度計算出 Net Delay 時間,因此跟合成時所使用的

    WLM 準確度差異甚多。因此每次設計者要 Report Timing 前,都要針對目前 Layout 電

  • 16

    路再作一次 RC Extraction,以取得精確地 Delay Calculation,直到最後 Layout 完成產生

    正確的 sdf 檔,作為 Post-layout Gate-level Simulation 之用。

    4-3 Gate-level STA & Simulation

    Layout 後,電路的 Function 有可能因 Layout 而有所改變。會造成電路 Function 錯

    誤原因一般是 Signal Pin 被 floating 掉或 CTS 出了問題。因此在 Layout 後還要再作

    Gate-level Post-layout Simulation 以確認 Function 是否正確。其方法與圖八之 Pre-layout

    Simulation 相似,不同處為 Gate-level Netlist 與 sdf 檔要改用 Layout 後產生的即可。Test

    Bench 中的 Period,依據 Layout 後的 STA 結果作設定。

    圖十四 Power Analysis Data Preparation v.s. Data Output

    4-4 Gate-level Power Analysis

    在 Layout 過程中,當完成 Power Mesh 規劃及 Cell、Macro 擺定位後,為了確認目

    前規劃的 Power Mesh 夠 Robust,不會造成 IR Drop 超過合理範圍(一般為工作電壓 10%

    以下)及 EM Violations 發生,因此要使用 Layout 軟體之 Power Analysis 的功能進行分析。

    Power Analysis 前須準備包括,P/G Cell 個數及方位、該晶片的 Input 端的 Transition

    Time(因一個 Cell Power Consumption 是根據 Input Transition 與 Output Capacitance 查表

    得知的 )、Net Switch Activity。前面兩項可依實際電路給定,Switch Activity 須將目前

    Layout 結果存成 Gate-level Netlist 並灌入實際的 Pattern 進行 Simulation,得到的 Switch

  • 17

    Activity 資訊輸入給 Tool 計算,才可以得到精準的 Power Analysis 結果。經 Power Analysis

    工具分析後會產生 IR Drop Map、Electro-Migration Map 如圖十五所示。假設工作電壓為

    1.2V,Max IR Drop 為 39.58mV 僅降 3.27%(未超過 10%)表示 Power Mesh 建構的很好。

    另外,每條 Metal 在 Technology File 都有定義每 1um 最大可以承受的電流量,如表一所

    示。從圖十五(b) EM Map 我們可以看出 Worst EM 僅有 3.89mA/um 發生於 Metal3,然而

    Metal3 最大可以承受到 19.3mA/um,因此設計者可以斷定如此的 Power Mesh 規劃對 EM

    也是無任何的 Violation。關於 Power Analysis 的操作細節與分析方法可參考 CIC 訓練課

    程講義[10][11][12]。

    (a) (b) 圖十五 Power Analysis Output(a)IR Drop Map、(b)Electro-Migration Map

    表一 Example for Max Current Density

    4-5 Formal Verification

    依前述所言,合成前後 Function 可能會不一致,同樣地 Layout 前後 Function 也可

    能會不一致。因此我們可以考量用 Post-layout Gate-level Simulation 得知 Layout 後

    Function 之正確性,但假使驗證後發現 Function 不正確,要用 Debug Tool[8]來抓錯誤

    點,往往需要耗上相當多的時間,為解決這問題,同樣地我們可以使用 Formal Verification

    工具找出其問題點。Formal Verification 也可作為 Layout 前後驗證 Function 是否會一致

    的工具,其操作流程與之前相同,流程如圖十所示。

  • 18

    圖十六 Design Rule Check Item

    4-6 DRC/LVS

    Design Rule Check(DRC)顧名思義就是將 Layout 結果,依據 Foundry 對該製程定義

    的 Max or Min Width、Area、Inside/Outside Spacing 等 Rule 作確認有無違反,如圖十六

    所示。假如發現有違反 Rule 時,設計者可以將 Layout 完的 GDSII 檔用 Layout 軟體(如

    Virtuoso、Laker)開啟,再點選 DRC 軟體所發現的錯誤點座標,即可將 Layout 有違反

    Rule 的地方予以修正。

    圖十七 (a)Transistor LVS (b)Black Box LVS

  • 19

    Layout vs. Schematic (LVS)顧名思義就是將 Layout 結果與 Schematic 作比對,比較

    兩者間 Instance、Port(PIN)、Net 等個數、Cell 連線情況及 Power/Ground 連接是否一致,

    以確認 Layout 完結果之正確性,如圖十七(b)所示。LVS 原本應該是要像圖十七(a)作

    Transistor LVS,例如 Full-Custom Flow 便是如此,由於 Library 廠商當初在製作 Standard

    Cell 時,早已針對所有的 Cell 內部電晶體電路作過 LVS 比對,因此為了加快整體電路

    的 LVS 驗證速度,在 Cell-Based Flow 中都會將所有 Cell 視為 Black Box,略過其內部檢

    查,僅需驗證 Black Box 的個數與連線正確性等作確認即可。關於 DRC/LVS 相關操作

    細節可以參考 CIC 訓練教材[10][11]。

    5 Circuit-level Verification

    由於 Gate-level 模擬使用了大量的 model 以化簡龐大的計算量,因而犧牲了相當的精

    準度以及忽略各種 transistor-level 中可能出現的效應,因此會須要以 Cirucit-level 模擬來

    確保晶片的正確性。為了讓使用者能夠順利進行 Transistor-level Simulation,CIC 提供

    Post-layout Verification System,簡稱 PVS。整個流程如圖十八所示,過程包含有替換真

    實的佈局、進行 LPE 轉換成 Transistor-level Netlist 並淬取電路中的寄生元件,最後搭配

    測試輸入訊號進行 Transistor-level Simulation,由於此時的電路通常相當龐大以至於無法

    用一般 spice 軟體進行模擬,在這裏使用的軟體是屬於 fast spice 種類,其以 event driven

    配合 transition table 的方式使得可以進行大電路模擬,模擬結果則可用相關波形顯示軟

    體來觀察。

    圖十八

    5-1 Replace True Layout

    對於 CIC Cell-Based Design Flow 而言,因為智慧財產權保密協定之考量,所以 CIC

    無法將真實電路佈局提供給學校。使用者需要透過 CIC 將自己設計的電路 GDSII 檔案

    替換成真實的佈局。在替換成真實電路佈局的同時,之前使用者在 Gate-level Post-layout

    Verification 的步驟所碰到缺少 Metal Density 的問題,系統會自動在這個步驟中將 Metal

    Density 補上,完成最後完整的電路佈局。

  • 20

    5-2 DRC/LVS

    轉換成真實電路佈局後,最後的電路佈局給果須再做一次 DRC 檢查。由於在這個

    階段,電路已經轉成真實的電路佈局,所以其主要的重點在於轉換之後繞線是否符合製

    程的規定,或是在轉換的過程出現連線的問題,以便修正錯誤,減少下線之後失敗的機

    率。

    另外會對電路的 Power 例如 VDD、VSS,作最後的 LVS 檢查,主要目的是檢查電

    路是否在轉換成真實佈局後產生短路,避免電路出錯。

    5-3 Circuit Extraction

    在 PVS 系統上是利用電晶體層次的電路佈局寄生元件萃取功能(Layout Parasitic

    Extract),簡稱 LPE,萃取電路的雜散電容。將之前已經轉換成真實的電路佈局執行 LPE

    指令轉換成 Transistor-level Netlist。 5-4 Circuit-level Simulation

    在進行 Circuit-level Simulation 之前,必須先提供 IO 及環境的設定檔,環境設定檔

    設定項目包括模擬電路之腳位負載、設定所要觀看輸出節點之模擬結果、模擬電路工作

    電壓位準、模擬所需精確度控制方式等。以之配合事先準備好的測試向量檔即可以使用

    fast spice 軟體進行模擬,模擬後的波形檔可以一般波形顯示軟體來觀察模擬輸出結果,

    以驗證最後電路的完整正確性。

  • 21

    參考文獻

    [1] CIC 訓練課程– VHDL. [2] CIC 訓練課程– Verilog. [3]林俊賓, “如何在 Post-layout Verification System(PVS)中進行 Post-layout Simulation”,

    PDS-031218-00-002.pdf. , pp. 1-5, Dec 2003. [4] CIC 訓練課程– Nanosim. [5]王旭昇,”Logic Synthesis with Design Compiler,” CIC 訓練課程 2008。 [6]王旭昇,”Power Optimization / Analysis with Synopsys Tool Power Compiler and

    PrimePower,”CIC 技術文章 2006。 [7]蔡振宇,”Design for Testability with TurboBist-Memory, DFT Compiler and TetraMAX,”

    CIC 訓練課程 2008。 [8]陳獻文,”Advanced Debugging with Verdi,” CIC 訓練課程 2008。 [9]王旭昇,”A Timing Closed Approach for Block Implementation of a 300MHZ DCT/IDCT

    Processor,”CIC 技術文章 2005。 [10]張年翔,”Cell-Based IC Physical Design and Verification with SOC Encounter,” CIC 訓練

    課程 2008。 [11]莊宗桓,”Cell-Based IC Physical Design and Verification with Astro,” CIC 訓練課程

    2008。 [12]王旭昇,”Automatic Floorplan and Power Network Synthesis / Analysis with Synopsys

    Tool : JupiterXT,”CIC 技術文章 2006。