文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.004
中文引用格式: 蔡琰,季昊,施建安. 采用Mult-tap標(biāo)準(zhǔn)單元PGV以獲取精準(zhǔn)的Power EM違例[J].電子技術(shù)應(yīng)用,2016,42(8):25-27.
英文引用格式: Cai Yan,Ji Hao,Shi Jian′an. Application of multi-tap standard cell PGV to capture accurate power EM violations[J].Application of Electronic Technique,2016,42(8):25-27.
0 引言
電源電子遷移(Power Electromigration,Power EM)檢查在高速芯片設(shè)計(jì)中起著重要的作用。Voltus在進(jìn)行電源網(wǎng)格分析時(shí)會(huì)對(duì)電源電子遷移進(jìn)行檢查。在先進(jìn)工藝制程下,由于較高的時(shí)鐘頻率,M1電源網(wǎng)格上會(huì)出現(xiàn)一些Power EM違例。這些違例是假的,并且無(wú)法用像增強(qiáng)電源網(wǎng)格,把其他標(biāo)準(zhǔn)單元從違例區(qū)域移走之類的常規(guī)方法修掉。這些假的違例出現(xiàn)的根本原因是單個(gè)電流接入點(diǎn)(tap)過(guò)于簡(jiǎn)單,無(wú)法正確引導(dǎo)電流分布。因而,在下文中,我們會(huì)描述針對(duì)大型時(shí)鐘單元抽取多電流接入點(diǎn)(multi-tap)PGV以獲得更精確Power EM違例的方法。
1 常規(guī)標(biāo)準(zhǔn)單元PGV生成方法
標(biāo)準(zhǔn)單元PGV生成流程如圖1所示,Voltus會(huì)讀取以下文件以產(chǎn)生標(biāo)準(zhǔn)單元PGV[1]。
圖1 標(biāo)準(zhǔn)單元PGV生成流程
(1)工藝LEF文件
(2)標(biāo)準(zhǔn)單元LEF文件
(3)QRC提取工藝文件(qrcTechFile)
(4)GDS圖層映射文件
(5)LEF圖層映射文件
(6)SPICE模型
(7)SPICE網(wǎng)表
此外生成標(biāo)準(zhǔn)單元PGV,還需要腳本命令輔助。以下是一個(gè)范例。
read_lib -lef $tech_lef $std_lef_list
set_pg_library_mode \
-ground_pins { GND } \
-power_pins { VDD 1.0 } \
-decap_cells { $decap_cell_parttern } \
-filler_cells { $fill_cell_pattern } \
-celltype stdcells \
-spice_subckts $std_spice_netlist \
-spice_models $spice_models_file \
-spice_corners {$spice_corners} \
-temperature 0 \
-lef_layermap $lef_layermap_file \
-extraction_tech_file $ex_tech_file
generate_pg_library \
-output ./pgv/stdcell_pgv
通常PGV會(huì)有EARLY,IR和EM三種視圖。對(duì)于標(biāo)準(zhǔn)單元來(lái)說(shuō), 這三種視圖是完全一致的,僅在電源端口包含電流分布參數(shù)和SPICE仿出來(lái)的電容信息。Tap通常產(chǎn)生在電源端口的中心位置。如圖2中的BIGBUFFERD1 PGV所示,VDD和GND各自只有一個(gè)tap。因此,在Voltus網(wǎng)格分析中,流入每個(gè)標(biāo)準(zhǔn)單元的電流都聚集在一點(diǎn)。這也是為什么假的Power EM違例發(fā)生在tap位置的原因。
圖2 BIGBqUFFERD1 PGV圖形
2 Multi-tap標(biāo)準(zhǔn)單元生成方法
在現(xiàn)實(shí)世界中,電流是通過(guò)多個(gè)V0流入標(biāo)準(zhǔn)單元的。如圖3所示,大型標(biāo)準(zhǔn)單元的VDD和GND 端口各自有很多V0。所以每個(gè)端口只抽取一個(gè)tap并不符合實(shí)際情況,無(wú)法真實(shí)反應(yīng)電流分布。
圖3 BIGBUFFETRD1 GDS圖形
所以若產(chǎn)生multi-tap 標(biāo)準(zhǔn)單元PGV, 電流是可以均勻分布到所有tap上,結(jié)果會(huì)更加準(zhǔn)確。基于這個(gè)方案,我們還需要解決以下三個(gè)問(wèn)題。
(1)哪些標(biāo)準(zhǔn)單需要產(chǎn)生multi-ap PGV?
(2)怎么產(chǎn)生multi-tap 標(biāo)準(zhǔn)單元 PGV ?
(3)如何在電源網(wǎng)格分析中應(yīng)用multi-tap 標(biāo)準(zhǔn)單元PGV?
2.1 哪些標(biāo)準(zhǔn)單元需要產(chǎn)生multi-tap PGV?
考慮到運(yùn)行時(shí)間,內(nèi)存消耗等因素,對(duì)所有的標(biāo)準(zhǔn)單元進(jìn)行multi-tap PGV 抽取是不明智的。而且在我們的設(shè)計(jì)中,除了關(guān)鍵路徑上的時(shí)鐘單元,絕大多數(shù)標(biāo)準(zhǔn)單元的翻轉(zhuǎn)率很低。所以對(duì)大多數(shù)標(biāo)準(zhǔn)單元來(lái)說(shuō),它們的電流不會(huì)太高,一個(gè)tap已經(jīng)能夠反映電流分布。然而,對(duì)關(guān)鍵路徑上的時(shí)鐘單元來(lái)說(shuō),它們分布的地方有很大幾率出現(xiàn)M1電源網(wǎng)格的Power EM違例。因此,我們僅需對(duì)大型時(shí)鐘單元抽取multi-tap PGV。
2.2 怎么產(chǎn)生multi-tap 標(biāo)準(zhǔn)單元PGV?
基于標(biāo)準(zhǔn)的PGV生成的流程,我們還可以加一些特殊指令去調(diào)節(jié)節(jié)點(diǎn)之間的距離以控制tap的數(shù)量(Voltus默認(rèn)節(jié)點(diǎn)距離是50)。以下是節(jié)點(diǎn)距離為0.15腳本示例。
set_advanced_pg_library_mode \
-libgen_command_file libgen.cmd
libgen.cmd:
setvar max_itfnode_dist 0.15
如圖4所示, VDD和GND端口各抽取了16個(gè)tap。
圖4 Multi-tap BIGBUFFERD1圖形
2.3 如何應(yīng)用multi-tap標(biāo)準(zhǔn)單元PGV
當(dāng)multi-tap PGV應(yīng)用于電源網(wǎng)格分析中時(shí),我們必須把這些特殊的PGV放到其他常規(guī)PGV的前面。對(duì)于有多個(gè)PGV的標(biāo)準(zhǔn)單元,Voltus僅會(huì)采用第一個(gè)非工藝的 PGV。此外,為了能在電源網(wǎng)格分析中保留所有的tap,我們必須關(guān)掉“-optimize_stdcells_library” 這個(gè)選項(xiàng)。以下有個(gè)例子。其中BIGBUFFERD1.cl是multi-tap PGV。
set_rail_analysis_mode \
-method static \
-accuracy hd \
-power_grid_library { \
techonly.cl \
BIGBUFFERD1.cl \
Stdcell.cl \
Ram.cl \
Analog.cl \
…}
-optimize_stdcells_library false \
…
3 結(jié)果分析
在Power EM分析中,我們的目標(biāo)是當(dāng)前流過(guò)的電流與可承受的最大電流的比率小于1。在圖5~圖11中,Run1是標(biāo)準(zhǔn)流程,Run2是對(duì)所有標(biāo)準(zhǔn)單元做multi-tap PGV抽取,而Run3只對(duì)大的時(shí)鐘單元做這樣的特殊處理;ChipA和ChipB是兩塊不同的芯片。
圖5 VDD EM違例數(shù)量對(duì)比圖
圖6 GND EM違例數(shù)量對(duì)比圖
圖7 VDD最差電流比率對(duì)比圖
圖8 GND最差電流比率對(duì)比圖
圖9 歸一化運(yùn)行時(shí)間對(duì)比圖
圖10 歸一化內(nèi)存消耗對(duì)比圖
從圖5和圖6中可以看出,對(duì)于ChipA,Run1中產(chǎn)生19個(gè) VDD違例和19個(gè)GND違例,Run2和Run3沒(méi)有違例。同樣,對(duì)于ChipB,Run1中產(chǎn)生14個(gè) VDD違例和14個(gè)GND違例,Run2和Run3沒(méi)有違例。因此,采用multi-tap 標(biāo)準(zhǔn)單元PGV能有效減少違例數(shù)量。
圖7和圖8是最差電流比率的對(duì)比圖。對(duì)于ChipA和ChipB,與Run1相比,Run2和Run3的最差電流比率下降了37%~40%。因此,采用multi-tap 標(biāo)準(zhǔn)單元PGV能有效降低最差電流比率,從而減少違例數(shù)量。
圖9是歸一化運(yùn)行時(shí)間的對(duì)比圖。和Run1相比,Run2運(yùn)行時(shí)間增長(zhǎng)了30%~37%,而Run3增長(zhǎng)了-0.4%~0.1%。因此,對(duì)所有標(biāo)準(zhǔn)單元進(jìn)行multi-tap PGV抽取會(huì)大量增加運(yùn)行時(shí)間,而僅對(duì)大型時(shí)鐘單元進(jìn)行multi-tap PGV抽取基本不影響運(yùn)行時(shí)間。
圖10是歸一化內(nèi)存消耗的對(duì)比圖。和Run1相比,Run2內(nèi)存消耗增長(zhǎng)了5%~15%,而Run3增長(zhǎng)了-0.2%~0.1%。因此,對(duì)所有標(biāo)準(zhǔn)單元進(jìn)行multi-tap PGV抽取會(huì)大量增加部分內(nèi)存消耗,而僅對(duì)大型時(shí)鐘單元進(jìn)行multi-tap PGV抽取基本不影響內(nèi)存消耗。
圖11是歸一化硬盤消耗的對(duì)比圖。和Run1相比,Run2硬盤消耗增長(zhǎng)了56%~59%,而Run3增長(zhǎng)了-0.1%~0.1%。因此,對(duì)所有標(biāo)準(zhǔn)單元進(jìn)行multi-tap PGV抽取會(huì)大量增加硬盤消耗,而僅對(duì)大型時(shí)鐘單元進(jìn)行multi-tap PGV抽取基本不影響硬盤消耗。
圖11 歸一化硬盤消耗對(duì)比圖
綜上所述,僅對(duì)大型時(shí)鐘單元做multi-tap PGV抽取可以在幾乎不增加運(yùn)行成本的前提下去除假的Power EM 違例。
4 結(jié)論
通過(guò)只對(duì)大型時(shí)鐘單元做multi-tap PGV抽取可以得到精確的Power EM違例結(jié)果,并且運(yùn)行時(shí)間和內(nèi)存消耗增加不到2%。在高性能的芯片設(shè)計(jì)中,這是一種分析Power EM違例的有效方法。
參考文獻(xiàn)
[1] Voltus IC Power Integrity solution User Guide Version14.21,November 2014.