久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    標準單元工藝庫(TSMC 90nm)文件詳解

     AMS1117LIB 2022-11-13

    工藝庫詳解

    參考:
    Tcl與Design Compiler (五)——綜合庫(時序庫)和DC的設計對象
    https://www.cnblogs.com/IClearner/p/6622524.html
    

    本文章以TSMC 90nm的標準單元庫slow.lib作為示例,解釋工藝庫內容。

    一. 概述

    一個ASIC綜合庫包括如下信息:

    • 一系列單元(包括單元的引腳)。
    • 每個單元的面積(在深亞微米中,一般用平方微米表示,在亞微米工藝下,一般用門來稱呼,至于具體的單位,可以咨詢半導體制造商)。
    • 每個輸出引腳的邏輯功能。
    • 每個輸入到輸出的傳遞延時,輸出到輸出的傳遞延時;inout到輸出的傳遞延時。

    二. 內容與結構

    Synopsys的工藝庫是一個.lib文件,經過LC編譯后,產生.db文件。工藝庫文件主要包括如下信息:

    • 單元(cell)(的信息):(主要有)功能、時間(包括時序器件的約束,如建立和保持)、面積(面積的單位不在里面定義,可按照規律理解,一般詢問半導體廠商)、功耗、測試等。
    • 連線負載模型(wire load models):電阻、電容、面積。
    • 工作環境/條件(Operating conditions):制程(process)(電壓和溫度的比例因數k,表示不同的環境之間,各參數縮放的比例)。
    • 設計規則約束(Design ):最大最小電容、最大最小轉換時間、最大最小扇出。

    工藝庫的結構如下所示:
    在這里插入圖片描述
    下面分別詳細講解:

    1. 庫注釋

    最前面的是這些注釋,描述的是:制程(是慢的模型)、電壓、溫度等數據信息。
    在這里插入圖片描述

    2. 庫組

    2.1 庫的屬性

    在這里插入圖片描述

    2.1.1 通用屬性描述(general attribute):

    主要是工藝類型、延遲模型、替代交換方式、庫特征、總線命名方式等信息。

    工藝類型:這個庫沒有給出,主要用來說明這個庫是CMOS工藝還是FPGA工藝。默認是CMOS工藝。

    延遲模型:指明在計算延遲時用的那個模型,主要有generic_cmos(默認值)、table-lookup(非線性模型)、piecewise-cmos(optional)、dcm(Delay Calculation Module)、polynomial。這個庫使用的非線性模型。

    替代交換方式:這里選的是匹配封裝的方式。具體的信息可以查閱其他治療或者詢問半導體廠商。

    庫特征:報告延遲計算,也就是這個庫具有延遲計算的特征。

    總線命名方式:定義庫中總線命名規則。例如:bus_naming_style:“Bus%spin%d”;這個庫沒有進行總線規則的命名。

    2.1.2 庫的文檔資料屬性(document attribute):

    主要是庫的版本、庫的日期、還有注釋。

    日期:用庫報告命令report_lib可顯示日期例如:Date:“Wed Jun 22 12:31:54 2005”。

    版本:修正版屬性定義庫的版本號碼,例如Revision:1.3;

    注釋:注釋屬性用于報告report_lib命令所顯示的信息,如版權或其他產品信息。例如:Comment:"Copyright ? 2005 Artisan Components, Inc. All Rights Reserved.”

    2.1.3 定義單位屬性(unit attribute):

    Design Compiler工具本身是沒有單位的。然而在建立工藝庫和產生報告時,必須要有單位。庫中有6個庫級屬性定義單位。

    time_ unit(時間單位)、voltage_unit(電壓單位)、current_ unit(電流單位)、pulling_resistance_unit(上/下拉電阻單位)、capacitive_load_unit(電容負載單位)、leakage_power_unit(漏電功耗單位)。

    2.2 環境描述

    主要包括操作條件(operation conditions)、臨界條件定義(threshold definitions)、默認的一些環境屬性(default attributes)、一些(時序、功耗)模型(templates)、比例縮放因子(k-factors)、I/O pad屬性(pad attributes)、線負載模型(wire-loads)。

    2.2.1 操作條件(operation conditions):

    在工藝庫中,用操作條件設置了制程(process)、溫度(temperature)、電壓(voltage)與RC樹模型(tree_type)。
    在這里插入圖片描述
    在綜合和靜態時序分析時,DC要用到這些信息來計算電路的延遲,而庫中的這組操作條件為基礎(也就是nom_xxxx)操作條件。一個工藝庫只有這么一組基礎的操作條件,如果要使用不同的操作條件,則需要借助K參數進行縮放。制程、溫度、電壓這些很好理解,下面主要說一下這個RC樹模型(tree_type)

    tree-type屬性定義了布局之前延時的計算方式。此外,線負載模型是根據連線的扇出來估算連線的RC寄生參數的,RC如何分配就是根據這個tree-type屬性來的。

    連線延時(從驅動引腳的狀態變化到每個接受單元輸入引腳的狀態變化,線負載模型設每個分枝的延遲是一樣的。)的一個示例如下圖所示:
    在這里插入圖片描述
    在這個簡單的電路中,BUF1的輸出驅動兩個單元BUF2與BUF3。在物理上,這是兩根連線。而在網表中,兩根連線用一個net來表示。 在布局前,假設這兩根線有相同的寄生電阻與寄生電容,即Cwire1-Cwire2=R1-R2 。

    假設我們想了解從BUF1的輸出到BUF2的輸入端的延時。這個延時實際上是給連線及BUF2的輸入引腳負載進行充、放電所消耗的時間。如何計算這個延時呢? tree-type就是為此而定義的。

    Tree-type有三種取值,這個延時就有三種計算模型。如下圖所示:
    在這里插入圖片描述

    2.2.2 臨界條件定義(threshold definitions):

    主要是定義一些極限值,比如時鐘抖動的最大最小值、輸出輸出的上升下降沿的最大最小值等等信息。

    2.2.3 默認的一些環境屬性(default attributes):

    主要是默認漏電流功耗密度、標準單元的漏電流功耗、扇出負載最大值、輸出引腳的電容、IO類型的端口電容、輸入引腳的電容、最大轉換時間。

    2.2.4 一些(時序、功耗)模型(templates):

    都是寫查找表模型,主要是功耗(比如輸入轉移時間的功耗)、時序(比如輸入線轉換的延時、建立時間和保持時間的延時)等等,根據不同的操作環境,進行查表進行選擇對應的參數。
    在這里插入圖片描述

    2.2.5 比例縮放因子(k-factors):

    由于一般庫中只有單元“nom_xxx”的值,為了計算不同的制程、電壓和溫度下單元的延遲(或者說是計算不同的操作條件),庫中提供了比例縮放因子。

    根據提供的K參數,DC按下面的公式計算不同的制程,電壓和溫度的單元延遲:
    D e l a y = ( n o m i n a l   d e l a y ) × ( 1 + ( D P ? K f a c t o r P ) ) × ( 1 + ( D V ? K f a c t o r V ) ) × ( 1 + ( D T ? K f a c t o r T ) ) Delay= (nominal\ delay)×(1+(DP*K_{factor}P))×(1+(DV*K_{factor}V))×(1+(DT*K_{factor}T)) Delay=(nominal delay)×(1+(DP?Kfactor?P))×(1+(DV?Kfactor?V))×(1+(DT?Kfactor?T))

    其中:
      DP = CP-NP,CP為current process,NP為nominal process;
      DV=CV-NV,CV為current voltage,NP為nominal voltage;
      DT=CT-NT,CT為current temperature,NT為nominal temperature.
      KfactorP、KfactorV、KfactorT分別是對于的K參數,表示制程、電壓、溫度對延時的影響。
    在這里插入圖片描述

    2.2.6 I/Opad屬性(pad attributes):

    主要就是定義I/O引腳的電平屬性,告訴你輸入是COMS還是TTL,什么時候達到高電平、什么時候是低電平。
    在這里插入圖片描述

    2.2.7 線負載模型(wire-loads):

    DC采用wire-load模型在布局前預估連線的延時。通常,在工藝庫中,根據不同的芯片面積給出了幾種模型(上圖所示)。這些模型定義了電容、電阻與面積因子。此外,導線負載模型還設置了slope與fanout_length,fanout-length設置了與扇出數相關的導線的長度。

    有時候,除了扇出與長度,該屬性還包括其他參數的值(這個工藝庫沒有),例如average_capacitance、standard_deviation與number_of_nets,在DC產生導線負載模型時會自動寫出這些值。對于超過fanout-length屬性的節點,可將該導線分成斜率不同的幾段,以確定它的值。

    2.3 標準單元(cell)的描述

    在這里插入圖片描述

    2.3.1 標準單元內容概述:

    綜合庫中的每個單元都包括一系列的屬性,以描述功能、時序與其他的信息。 在單元的引腳描述中,包含了如下內容:輸入引腳的fanout-load屬性、輸出引腳的max_fanout屬性、輸入或輸出引腳的max_transition屬性、輸出或者inout引腳的max_capacitance屬性。利用這些描述,可以對設計進行DRC(設計規則檢查)。如果某個單元的輸出最大只能接0.2pF的負載,但在實際綜合的網表中卻連接了0.3pF的負載,這時候綜合工具就會報出DRC錯誤。

    通常,fanout_load與max_fanout一起使用max_transition與max_capacitance一起使用。 如果一個節點的扇出為4,它驅動3個與非門,每個與非門的fanout-load是2,則這三個與非門無法被驅動(因為3*2>4)。

    max_transition通常用于單元的輸入引腳,max_capacitance一般用于單元的輸出引腳。如果任何節點的transition時間大于引腳的max_transition值,則該節點不能連接。如果發生違例,則DC用一個具有更大max_capacitance值的單元來取代驅動單元。

    在對輸出引腳的描述中,給出了該引腳的功能定義,以及與輸入引腳相關的延時。輸入引腳定義了它的引腳電容與方向。這個電容值不能與max_capacitance值相混。DC利用輸入引腳的電容值進行延時計算,而max_capacitance僅用來進行設計規則檢查。

    對于時序元件中的時鐘引腳,專門用clock類型進行說明,如下所示:
    在這里插入圖片描述
    單元的延時
    在一個單元的綜合庫中,最核心的是對時序和功耗的描述。一個單元的延時跟以下因素有關:器件內部固有的延時、輸入轉換時間(也稱為輸入上升/下降時間)、負載(驅動的負載及連線)、溫度、電壓、制程變化。

    前三個因素是由電路本身的特性所決定的,后三個因素是由環境決定的。在實際電路中,輸入轉換時間、負載與連接單元的電路有關,所以我們只需要列出在不同的輸入轉換時間、不同的負載下單元的延時就可以了。這個延時包括器件的內部固有延時。此外,利用前面提到K縮放因子,將溫度、電壓、制程的影響也考慮進來。如下面的這個反相器單元,它的延時就可以通過輸入轉換時間和負載決定:
    在這里插入圖片描述
    說到單元的延時,不得不說計算單元延時的模型。Synopsys支持的延時模型包括:CMOS通用延時模型、CMOS分段線性延時模型和CMOS非線性延時查找表模型(Nonlinear Delay Model)。前兩種模型精度較差,已經被淘汰,主要用非線性延時模型。下面進行解釋非線性延時模型。

    非線性延時模型也稱為二維非線性延時模型。在該模型中,用二維列表的形式給出單元在特定的輸入轉換時間、輸出負載下的延遲(包括單元的延時和單元的輸出轉換時間):
    在這里插入圖片描述
    單元的輸出轉換時間又成為其驅動的下級單入的輸ru轉換時間。庫中每個單元有兩個NLDM表。上面的圖中,當輸出負載和輸入轉換時間為0.05 pF和0.5 ns時,從表中可查出單元的延遲為0.23 ns,輸出轉換時間為0.30 ns 。

    對于在范圍之內的點,可以用插值的方法得到;對于在范圍之外的點,可以用外推的方法得到。線性插值如下圖所示:
    在這里插入圖片描述
    輸入的上升、下降時間是由上一級輸出的上升、下降時間得到的。輸出節點的電容可以由負載的輸入引腳電容及連線負載計算得到。在綜合時,使用導線負載表可以預測導線負載。導線負載模型在綜合庫中進行了定義。當然,用戶也可以自己生成連線負載模型。該模型也是用查找表的方式,列出在不同負載下的平均連線延遲。在布局之后,可以得到更為精確的導線長度。在布線后,可以得到最確切的導線長度。可以用該導線負載來計算最終的延時,以便進行靜態時序分析與時序計算。

    說明:利用DC中的report_power_calculation命令,可以顯示出某一節點處energy的具體求解過程;利用DC中的report_delay_calculation命令,可以顯示出某一節點處延遲或輸出轉換時間的具體求解過程。

    2.3.2 反相器的綜合模型:

    綜合庫中主要給出了各端口的功能、電容、功耗及延時等信息(不同的庫模型信息種類可能不一樣)。反相器的功耗主要分為兩部分:靜態功耗和動態功耗。 其中靜態功耗是指泄漏功耗,動態功耗包括翻轉時的短路功耗及節點電容的充放電所消耗的功耗。節點電容充放電消耗的功耗僅跟VDD、節點翻轉率及節點電容有關。其中,VDD和節點電容是固定的,節點翻轉率跟輸入激勵有關,需要通過仿真激勵進行計算。因此,在綜合庫中,不列出充放電功耗。而短路功耗跟輸入轉換時間和節點電容有關,一般以查找表的形式給出(在綜合庫中,用internal_power表示)。

    具體的反相器的綜合模型如下所示:
    在這里插入圖片描述
    在這里插入圖片描述
    當然,上面看到的只是部分內容,有些內容折疊起來了比如輸入引腳的等效負載、輸出引腳的短路功耗等被折疊起來了,下面進行講解:
    在這里插入圖片描述
    引腳A表示反相器的輸入(上圖),展開后可以看到輸入的引腳的等效負載,也就是等效電容的大小。

    輸出管腳Y有:
    在這里插入圖片描述
    里面主要包含了引腳的功能(function)、短路功耗(internal_power)、時序信息(timing)、輸出的最大負載(max_capacitance)等信息。

    短路功耗信息(internal_power):

    展開短路信息如下圖所示:
    在這里插入圖片描述
    短路功耗與A管腳相關聯,也就是與A管腳有關系。

    rise_power給出了Y從低到高時的短路功耗,功耗跟輸入信號的轉換時間(index_1)及節點電容(index_2)有關;根據不同的信息進行查表,表的值就是(value),7X7表示index_1是7,index_2也是7,因此value是7X7=49,如下圖所示:
    在這里插入圖片描述
    也給出了從高到低的短路功耗(fall_power),功耗跟輸入信號的轉換時間及節點電容有關;具體內容類似從低到高時的短路功耗,不再詳述。

    時序信息(timing):
    在這里插入圖片描述
    主要包括相關引腳、時序敏感類型、單元延時、轉換時間等。

    Cell_rise 給出了Y從低到高時單元的延時,延時跟輸入轉換時間和節點電容有關:
    在這里插入圖片描述
    Rise_transition給出Y從低到高時輸出的延時(transtion),跟輸入轉換時間和節點電容有關:
    在這里插入圖片描述
    Cell_fall、fall_transition:則是對應Y從高到低時的單元延時和輸出延時,也是跟輸入轉換時間和節點電容有關。

    單元的泄漏功耗(cell_leakage_power):

    有時候,也給出在不同條件時的泄漏功耗(也就是查表的方式):
    在這里插入圖片描述
    反相器作為組合邏輯最簡單、最經典的模型,其綜合庫的模型內容就如上所示了,下面介紹時序邏輯的。

    2.3.3 寄存器單元的綜合模型:

    寄存單元綜合庫模型主要包括以下內容:

    • 單元面積
    • D端短路功耗
    • D端的建立時間約束和保持時間約束
    • 時鐘引腳上的短路功耗
    • 時鐘引腳上的最小脈寬要求
    • 輸出端的短路功耗
    • 輸出端的延時
    • 輸出端的最大負載約束
    • 單元的泄漏功耗

    其綜合庫內容如下所示:
    在這里插入圖片描述
    上面綜合庫的具體內容下面進行具體敘述:

    D端口(引腳):

    輸入端口,主要包含輸入的等效負載、短路功耗、時序信息。
    在這里插入圖片描述
    D端消耗的短路功耗(internal_power):
    在這里插入圖片描述
    rise_power給出D端由低電平變到高電平時的短路功耗,跟輸入轉換時間有關,電容為定值:
    在這里插入圖片描述
    fall-power則給出D端由高電平變到低電平時的短路功耗,跟輸入轉換時間有關,電容為定值。

    時序信息(Timing):
    在這里插入圖片描述
    D的時序信息與“CK”端口有關,Setup_rising表明是setup(建立時間)的時序信息。

    rise-constraint:給出D端由低電平變到高電平時的setup約束,跟D端輸入轉換時間和時鐘的轉換時間有關:
    在這里插入圖片描述
    fall-constraint則給出D端由高電平變到低電平時的setup約束,跟輸入轉換時間和時鐘的轉換時間有關。

    前面我們看到,有兩個timing,一個既然是建立時間了,那么另外一個就是保持時間了:
    在這里插入圖片描述
    rise-constraint:給出D端由低電平變到高電平時的hold約束,跟輸入轉換時間和時鐘的轉換時間有關。fall-constraint:給出D端由高電平變到低電平時的hold約束,跟輸入轉換時間和時鐘的轉換時間有關。

    CK端口

    這個是時鐘端口,主要給出了輸入的負載、最大轉換時間約束、短路電流、高低電平的最小脈寬要求,如下圖所示。
    在這里插入圖片描述
    短路功耗(Internal_power):

    在這里插入圖片描述
    也是分為CK上升時跟下降時的短路功耗,與D端有關。

    min_pulse_width_high、min_pulse_width_low : 給出了時鐘高低電平的最小脈寬要求。

    ff:描述寄存器的功能。
    在這里插入圖片描述
    Q端口
    在這里插入圖片描述
    主要描述Q的功能,短路功耗,時序信息,輸出最大的負載電容。

    短路功耗(Internal_power):
    在這里插入圖片描述
    rise_power給出了輸出端由低電平變到高電平時的短路功耗,跟輸入轉換時間、Q端負載及QN端負載有關:
    在這里插入圖片描述
    fall_power則輸出端由高電平變到低電平時的短路功耗,跟輸入轉換時間、Q端負載及QN端負載有關。

    時序信息(Timing):
    在這里插入圖片描述
    說明Q端口與CK的上升沿有關。

    cell-rise給出Q端由低電平變到高電平時CK到Q的延時,跟輸入轉換時間和輸出節點電容有關:
    在這里插入圖片描述
    rise-transitio給出了Q端由低電平變到高電平時Q端轉換時間,跟輸入轉換時間和輸出節點電容有關:
    在這里插入圖片描述
    cell-fall給出了Q端由高電平變到低電平時CK到Q的延時,跟輸入轉換時間和輸出節點電容有關;

    fall-transition給出了Q端由高電平變到低電平時Q端轉換時間,跟輸入轉換時間和輸出節點電容有關。

    max_capacitance: 是最大輸出負載電容約束。

    QN管腳:跟Q管腳類似,不進行陳述了。

    cell_leakage_power:給出了默認單元漏電流大小。而下面的不同漏電流,則是根據端口信號處在不同狀態時的漏電流大小:
    在這里插入圖片描述
    注:對于有復位信號的寄存器,還有可能有下面的信息:

    • 復位引腳上的短路功耗;
    • 復位引腳上的最小脈寬要求;
    • 復位引腳上的recovery/removal時序約束;
    • 輸出端的輸出轉換時間(相對于時鐘);
    • 輸出端的輸出轉換時間(相對于異步復位信號);
    • 輸出端的延時(相對于異步復位信號);

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 成人免费一区二区三区| 久久午夜夜伦鲁鲁片免费无码影视| 久久久噜噜噜久久| 欧美成人精品三级在线观看| 国产99青青成人A在线| 天码AV无码一区二区三区四区| 亚洲精品麻豆一二三区| 国产免费一区二区三区不卡| 亚洲AV综合色区在线观看| 国内熟妇人妻色在线视频| 内射毛片内射国产夫妻| 国产啪视频免费观看视频| 97人妻人人揉人人躁人人| 色狠狠色噜噜AV一区| 自拍日韩亚洲一区在线| 亚洲精品无码久久一线| 日本精品人妻无码77777| 乱码视频午夜在线观看| 国产对白老熟女正在播放| 韩国午夜理论在线观看 | 美女黄18以下禁止观看| 无码免费大香伊蕉在人线国产| 色屁屁WWW影院免费观看入口| 国产明星精品无码AV换脸| 97人妻碰碰视频免费上线| 一二三四免费中文字幕| 日韩有码精品中文字幕| 国产又爽又黄无码无遮挡在线观看| 色爱综合激情五月激情| 色偷偷AV男人的天堂京东热| 亚洲夂夂婷婷色拍WW47| 丰满无码人妻热妇无码区| 久久午夜无码鲁丝片| 免费人成视频在线观看网站 | 成 人 在 线 免费观看| 福利一区二区视频在线| 亚洲AV无码专区在线播放中文 | 国产成人不卡无码免费视频| 精品无码国产污污污免费| 亚洲国产精品久久久久久无码| 欧美综合婷婷欧美综合五月|