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