?本附錄將介紹標準寄生參數(shù)提取格式(SPEF),它是 IEEE Std 1481 標準的一部分。?
C.1 基礎(chǔ)
SPEF 允許以 ASCII 交換格式描述設(shè)計的寄生信息(R,L 和 C)。用戶可以讀取和檢查 SPEF 文件中的值,盡管用戶永遠不會手動創(chuàng)建此文件。它主要用于將寄生信息從一個工具傳遞到另一個工具。圖 C-1 顯示了 SPEF 可以由諸如布局布線工具或寄生參數(shù)提取工具之類的工具生成,然后交由時序分析工具用于電路仿真或執(zhí)行串擾分析。
圖 C-1
寄生參數(shù)可以在許多不同的層次上表示。SPEF 支持分布式(distributed)網(wǎng)絡(luò)模型、(reduced)簡化網(wǎng)絡(luò)模型和(lumped)集總電容模型。在分布式網(wǎng)絡(luò)模型(D_NET)中,網(wǎng)絡(luò)走線的每段都有其自己的 R 和 C。在簡化網(wǎng)絡(luò)模型(R_NET)中,在網(wǎng)絡(luò)的負載引腳上考慮一個簡化的 R 和 C,而在網(wǎng)絡(luò)的驅(qū)動引腳上考慮一個π模型(C-R-C)。在集總電容模型中,僅為整個網(wǎng)絡(luò)指定一個電容。圖 C-2 顯示了物理網(wǎng)絡(luò)走線的一個示例,圖 C-3 顯示了分布式網(wǎng)絡(luò)模型,圖 C-4 顯示了簡化的網(wǎng)絡(luò)模型,圖 C-5 顯示了集總電容模型。
圖 C-2
圖 C-3
圖 C-4
圖 C-5
互連寄生效應(yīng)取決于工藝,SPEF 支持最佳(best-case)、典型(typical)和最差(worst-case)三種情況。允許 R、L 和 C 值、端口壓擺和負載使用此三種不同情況下的值。
通過提供一個包含網(wǎng)絡(luò)名稱和實例名稱映射到索引的一個名稱映射(name map),可以有效地減小 SPEF 文件的大小,更重要的是,所有較長名稱僅出現(xiàn)在一個位置。
設(shè)計的 SPEF 文件可以拆分為多個文件,也可以分層。
C.2 格式
SPEF 文件的格式如下:
header_definition 包含了基本信息,例如 SPEF 版本號、設(shè)計名稱以及 R,L 和 C 的單位。name_map 指定了網(wǎng)絡(luò)名稱和實例名稱到索引的映射。power_definition 聲明了電源網(wǎng)絡(luò)和地網(wǎng)絡(luò)。external_definition 定義了設(shè)計的端口。define_definition 中指出了 SPEF 還在其它文件中進行了描述的那些實例。internal_definition 包含的是文件的核心——設(shè)計的寄生參數(shù)。
圖 C-6 顯示了 header_definition 的示例:
圖 C-6
SPEF name 指定了 SPEF 的版本號;
DESIGN name 指定了設(shè)計的名稱;
DATE string 指定了創(chuàng)建文件時的時間戳;
VENDOR string 指定了用于創(chuàng)建 SPEF 的供應(yīng)商工具;
PROGRAM string 指定了用于生成 SPEF 的程序;
VERSION string 指定了用于創(chuàng)建 SPEF 的程序的版本號;
DESIGN_FLOW string string string . . . 指定了在什么階段創(chuàng)建 SPEF 文件。它描述了有關(guān) SPEF 文件的信息,這些信息無法通過讀取文件來獲得。
預(yù)定義的字符串值為:
EXTERNAL_LOADS:外部載荷在 SPEF 文件中完全指定。
EXTERNAL_SLEWS:外部壓擺在 SPEF 文件中完全指定。
FULL_CONNECTIVITY:SPEF 中存在邏輯網(wǎng)表連接。
MISSING_NETS:SPEF 文件中可能缺少某些邏輯網(wǎng)絡(luò)。
NETLIST_TYPE_VERILOG:使用 Verilog HDL 類型命名約定。
NETLIST_TYPE_VHDL87:使用 VHDL87 命名約定。
NETLIST_TYPE_VHDL93:使用 VHDL93 網(wǎng)表命名約定。
NETLIST_TYPE_EDIF:使用 EDIF 類型命名約定。
ROUTING_CONFIDENCE:(正整數(shù))所有網(wǎng)絡(luò)的默認走線置信度,基本上是寄生精度的水平。
ROUTING_CONFIDENCE_ENTRY:補充走線置信度值。
NAME_SCOPE_LOCAL | FLAT:指定了 SPEF 文件中的路徑是相對于文件還是相對于設(shè)計頂層。
SLEW_THRESHOLDS:(low_input_threshold_percent,high_input_threshold_percent)指定了設(shè)計的默認輸入轉(zhuǎn)換閾值。
PIN_CAP NONE | INPUT_OUTPUT | INPUT_ONLY:指定了作為總電容一部分的引腳電容類型,默認值為 INPUT_OUTPUT。
DIVIDER / 指定了層次結(jié)構(gòu)分隔符??梢允褂玫钠渌址?quot; . " , " : "和" / "。
DELIMITER :指定了實例與其引腳之間的分隔符??梢允褂玫钠渌赡茏址?quot; . " , " / " , " : " 或者 "|"。
BUS_DELIMITER [ ] 指定了用于標識總線位的前綴和后綴??梢杂糜谇熬Y和后綴的其他可能字符是" { " , " ( " , " < " , " : "," ."和" } " , " ) ", " > "。
T_UNIT 正整數(shù) NS | PS 指定了時間單位。
C_UNIT 正整數(shù) PF | FF 指定了電容單位。
R_UNIT 正整數(shù) OHM| KOHM 指定了電阻單位。
L_UNIT 正整數(shù) HENRY | MH | UH 指定了電感單位。
SPEF 文件中的注釋可以兩種形式出現(xiàn):
圖 C-7 顯示了一個名稱映射的示例。它的形式為:
圖 C-7
名稱映射將指定名稱到唯一整數(shù)值(它們的索引)的映射。名稱映射有助于通過索引來對名稱進行引用從而減小文件的大小,名稱可以是網(wǎng)絡(luò)名稱或?qū)嵗Q??紤]圖 C-7 中的名稱映射,以后可以使用它們的索引在 SPEF 文件中引用這些名稱,例如:
因此,名稱映射會通過使用其唯一的整數(shù)表示來避免重復(fù)長名稱及其路徑。
power definition 部分定義了電源和接地網(wǎng)絡(luò):
以下是一些例子:
external_definition 包含了設(shè)計的邏輯和物理端口的定義。圖 C-8 顯示了邏輯端口的示例,邏輯端口可以以下形式描述:
圖 C-8
其中 port_name 可以是形式為*正整數(shù)的端口索引。方向為 I 表示輸入,O 表示輸出,B 表示雙向。連接屬性(conn_attribute)是可選的,可以是以下屬性:
*C number number:端口的坐標。
*L par_value:端口的電容負載。
*S par_value par_value:定義端口上的波形。
*D cell_type:定義端口的驅(qū)動單元。
可以使用以下命令定義 SPEF 文件中的物理端口:
define definition 部分定義了當前 SPEF 文件中引用的實例,但其寄生參數(shù)在其它 SPEF 文件中進行了描述:
當實例是物理分區(qū)(而不是邏輯層次結(jié)構(gòu))時,將使用*PDEFINE。以下有些例子:
這意味著將存在另一個帶有*DESIGN 值 ddrphy 的 SPEF 文件,該文件將包含設(shè)計 ddrphy 的寄生參數(shù),其可能具有物理和邏輯層次結(jié)構(gòu)??缭綄哟芜吔绲娜魏尉W(wǎng)絡(luò)都必須描述為分布式網(wǎng)絡(luò)(D_NET)。
internal definition 部分包含了 SPEF 文件的核心,即設(shè)計中網(wǎng)絡(luò)的寄生參數(shù)?;旧嫌袃煞N形式:分布式網(wǎng)絡(luò) D_NET 和簡化網(wǎng)絡(luò) R_NET。圖 C-9 中為一個分布式網(wǎng)絡(luò)定義的示例:
圖 C-9
第一行中的*5426 是網(wǎng)絡(luò)的索引號(網(wǎng)絡(luò)名稱請參見名稱映射),0.899466 是網(wǎng)絡(luò)上的總電容值。電容值是網(wǎng)絡(luò)上所有電容的總和,其中包括假定為接地的交叉耦合電容,還包括負載電容。它可能包含也可能不包含引腳電容,具體取決于 DESIGN_FLOW 定義中的 PIN_CAP 設(shè)置。
connectivity section 描述了網(wǎng)絡(luò)的驅(qū)動和負載引腳:
*I 表示內(nèi)部引腳( * P 表示端口),*14212:D 表示實例*14212 的 D 引腳,14212 是一個索引號(有關(guān)實際名稱需參見名稱映射)。“ I”表示網(wǎng)絡(luò)上的負載(輸入引腳),“ O”表示網(wǎng)絡(luò)上的驅(qū)動(輸出引腳)。*C 和 *D 如先前在 connection attributes 中所定義的那樣,*C 定義了引腳的坐標,*D 定義了引腳的驅(qū)動單元。
capacitance section 描述了分布式網(wǎng)絡(luò)的電容,電容單位在之前已用* C_UNIT 指定。
第一個數(shù)字是電容標識符。電容規(guī)范有兩種形式:第一種到第四種一種形式,第五種是另一種形式。第一種形式(第一至第四種)指定兩個網(wǎng)絡(luò)之間的交叉耦合電容,而第二種形式(id 為 5)指定接地電容。因此,在電容 id1 中,網(wǎng)絡(luò)*5426 和*5290 之間的交叉耦合電容為 0.217446;在電容 id5 中,接地電容為 0.529736。請注意,第一個節(jié)點名稱必須是所描述的 D_NET 的網(wǎng)絡(luò)名稱。網(wǎng)絡(luò)索引后面的正整數(shù)(*5426:10278 中的 10278)指定內(nèi)部節(jié)點或連接點。因此,電容 id4 表示在內(nèi)部節(jié)點 10278 的網(wǎng)絡(luò)*5426 和內(nèi)部節(jié)點 9922 的網(wǎng)絡(luò)*5116 之間存在耦合電容,該耦合電容的值為 0.113918。
resistance section 描述了分布式網(wǎng)絡(luò)的電阻,電阻單位在之前已用* R_UNIT 指定。
第一個字段是電阻標識符。因此,該網(wǎng)絡(luò)具有三個電阻部分。第一個在內(nèi)部節(jié)點*5426:10278 與*14212 上的 D 引腳之間,電阻值為 0.34。使用圖 C-10 中所示的 RC 網(wǎng)絡(luò)可以更好地理解電容和電阻部分。
圖 C-10
圖 C-11 顯示了分布式網(wǎng)絡(luò)的另一個示例。該網(wǎng)絡(luò)具有一個驅(qū)動和兩個負載,網(wǎng)絡(luò)上的總電容為 2.69358。圖 C-12 顯示了與分布式網(wǎng)絡(luò)相對應(yīng)的 RC 網(wǎng)絡(luò)。
圖 C-11
圖 C-12
通常,內(nèi)部定義(internal definition)可以包含以下規(guī)范:
D_NET:邏輯網(wǎng)絡(luò)的分布式 RC 網(wǎng)絡(luò)形式。
R_NET:邏輯網(wǎng)絡(luò)的簡化 RC 網(wǎng)絡(luò)形式。
D_PNET:物理網(wǎng)絡(luò)的分布式形式。
R_PNET:物理網(wǎng)絡(luò)的簡化形式。
語法如下:
inductance section 用于指定電感,其格式類似于電阻部分。* V 用于指定網(wǎng)絡(luò)寄生參數(shù)的準確性。這些可以單獨使用網(wǎng)絡(luò)指定,也可以使用帶有 ROUTING_CONFIDENCE 值的* DESIGN_FLOW 語句進行全局指定,例如:
它指定了寄生參數(shù)是在最終單元布局和最終布線之后提取得到的,并且使用了 3d 提取。走線置信度的其它可能值為:
10:統(tǒng)計線負載模型
20:物理線負載模型
30:具有位置但沒有單元布局的物理分區(qū)
40:使用基于斯坦納樹(steiner tree)的走線估計的單元位置
50:使用全局走線估計的單元位置
60:使用斯坦納走線進行的最終單元布局
70:使用全局走線進行的最終單元布局
80:最終單元布局,最終走線,2d 提取
90:最終單元布局,最終走線,2.5d 提取
100:最終單元布局,最終走線,3d 提取
reduced net 是從分布式網(wǎng)絡(luò)形式簡化而來的網(wǎng)絡(luò)。網(wǎng)絡(luò)上每個驅(qū)動都有一個驅(qū)動精簡部分(driver reduction section)。驅(qū)動精簡部分的形式為:
*C2_R1_C1 表示在網(wǎng)絡(luò)的驅(qū)動引腳上使用π模型的寄生參數(shù)。* RC 結(jié)構(gòu)中的 rc_value 是指 Elmore 延遲(R * C)。圖 C-13 顯示了簡化后的網(wǎng)絡(luò)的 SPEF 示例,圖 C-14 以圖形方式顯示了 RC 網(wǎng)絡(luò)。
圖 C-13
圖 C-14
可使用*D_NET 或*R_NET 結(jié)構(gòu)描述集總電容模型(lumped capacitance model),該結(jié)構(gòu)僅具有總電容而沒有其它信息。以下是集總電容聲明的示例:
SPEF 文件中的值可以采用三元數(shù)組的形式來表示工藝變化,例如:
- 0.243 :0.269 :0.300
最佳情況下值為 0.243,典型情況下值為 0.269,最差情況下值為 0.300。
C.3 完整語法
本節(jié)描述了 SPEF 文件的完整語法。
可以在字符前面加上反斜杠()來對其進行轉(zhuǎn)義。注釋有兩種形式:// 開始注釋直到行尾,而 / * . . . * / 是多行注釋。
在以下語法中,粗體字符如(,[是語法的一部分。所有結(jié)構(gòu)均按字母順序排列,起始符號為 SPEF_file:
打個廣告
?
新一期的路科驗證春季班已經(jīng)開始了!現(xiàn)在報名早鳥班(開班之前)即可享受 500 優(yōu)惠,此外在文末掃描二維碼聯(lián)系路科驗證 MOMO,然后報出 a 暗號
摸魚范式
就能獲得額外的200 優(yōu)惠券
!可以和早鳥班的 500 優(yōu)惠疊加!對于課程學習有任何問題,都可以掃描下面的二維碼,加我微信咨詢。除了這門升級中的 V2Pro 課程,恐怕你找不到更好的學驗證的途徑了
?
?
貝塔的微信?
?
MOMO 的微信?