張家訓(xùn)
(深圳市國微電子有限公司,廣東 深圳 518057)
NanoTime在65nm高速SRAM IP設(shè)計中的應(yīng)用
張家訓(xùn)
(深圳市國微電子有限公司,廣東 深圳 518057)
隨著集成電路制造工藝發(fā)展到90nm以下,納米級效應(yīng)對時序的影響越來越顯著。對于全定制數(shù)字電路,精確評估內(nèi)部信號完整性(SI)尤為重要。高速SRAM IP采用65nm工藝全定制設(shè)計,我們選擇Synopsys公司的NanoTime來分析信號完整性。本文詳細(xì)介紹了NanoTime靜態(tài)時序分析、SI分析、時序模型提取在SRAM IP設(shè)計中的應(yīng)用。
NanoTime;靜態(tài)時序分析;SI分析;時序模型提取
NanoTime是Synopsys公司的晶體管級靜態(tài)時序分析工具。它集對晶體管級全定制模塊電路完整的靜態(tài)時序分析(包括SI分析)和提取時序模型等強(qiáng)大功能于一身。本文采用版本是J-2014.12。
2.1 NanoTime靜態(tài)時序分析基本流程
NanoTime支持兩種分析流程,F(xiàn)latten Analysis flow和Hierarchical Analysis flow。前者相對耗時較多,比較適合用于較小的底層模塊的時序分析和lib生成。當(dāng)我們需要對一個大的模擬IP進(jìn)行數(shù)模混合集成時序分析時,建議采用HierarchicalAnalysis flow。分析過程分為以下幾個主要步驟:
2.1.1 網(wǎng)表讀入
(1)首先設(shè)置NanoTime的網(wǎng)表讀入路徑,在該路徑下需要存放設(shè)計網(wǎng)表、底層模塊的.db文件,晶體管的model文件等,并使用命令讀入這些文件,例如
set search_path{./designs./basic_blocks}
set library_path{./spice_models}
read_library basic_blocks.db
register_netlist–format spice{sram4K16_cmax.sp}
read_spice_model–name tech_tt./designs/tech.sp
(2)讀入網(wǎng)表后,在link_design時,NanoTime會自動根據(jù)網(wǎng)表中的模塊名稱,用底層模塊的.db時序模型替代該模塊的Spice網(wǎng)表。
2.1.2 時鐘傳播和拓?fù)浣Y(jié)構(gòu)識別
(1)在該階段需要指定時鐘類型以及任何NanoTime不能自動識別的拓?fù)浣Y(jié)構(gòu)。該階段以check_topology命令結(jié)束,該命令對定義的時鐘信號進(jìn)行傳播并識別電路包含的拓?fù)浣Y(jié)構(gòu)。
(2)NanoTime擁有強(qiáng)大的邏輯電路拓?fù)渥R別能力,可自動識別諸如:inverter、mux、xor、nand、nor、clockgate、turnoff、cross_coupled、latch、precharge、pulldown、pullup、feedback、weak_pullup等大多數(shù)常見的電路結(jié)構(gòu)。
(3)對于部分復(fù)雜的電路如latch、ram、flip-flop,可以借助某些命令加以識別,例如 mark_latch、mark_flip_flop、mark_register_file等。
(4)在識別這些邏輯電路并設(shè)置了時序約束和工作條件后,NanoTime會提取所有的數(shù)據(jù)和時鐘路徑的延遲信息(trace path)并會根據(jù)設(shè)置的時序約束(constrain)對內(nèi)部的時序電路,如latch、DFF等進(jìn)行setup/hold,recovery/remove等檢查。
2.1.3 時序約束指定
在此階段需要指定輸入/輸出時序約束、時序期望、運(yùn)行條件以及讀入寄生參數(shù)數(shù)據(jù)。該階段以check_design命令結(jié)束,該命令檢查時序的要求和一致性。
2.1.4 時序路徑分析
在此階段,trace_paths命令用來運(yùn)行正常的時序分析,extract_model命令用來創(chuàng)建時序模型,characterize_context命令用來提取設(shè)計的特征內(nèi)容。
2.1.5 分析報告輸出
(1)在此階段報告時序分析的結(jié)果,用戶可以使用re-port_paths/report_constraint等命令產(chǎn)生結(jié)果報告文件。
(2)在進(jìn)行timing library提取前,我們要首先對時序分析的結(jié)果進(jìn)行檢查,保證IP內(nèi)部的時序是完全覆蓋的,可以使用下面的命令報告時序分析結(jié)果:當(dāng)有路徑的slack為正時說明內(nèi)部的時序是足夠的。
report_paths-max-max_paths 10
report_paths-min-max_paths 10
report_paths-max-clock_only
(3)我們可以通過write_spice命令將某條時序路徑的Spice網(wǎng)表提取出來,調(diào)用HSPICE進(jìn)行動態(tài)仿真,對比靜態(tài)時序分析和動態(tài)仿真的結(jié)果可以對NanoTime時序分析的精度有更深刻的了解。
2.2 全定制4K×16bit IP靜態(tài)時序分析
由于無法識別SRAM IP中的靈敏放大器電路,所以不能精確分析出與靈敏放大器相關(guān)的時序路徑。該項(xiàng)目進(jìn)行NanoTime靜態(tài)時序分析有以下三個主要目的:
(1)電路CDL網(wǎng)表分析結(jié)果與版圖C+CC寄生參數(shù)網(wǎng)表分析結(jié)果對比;
(2)檢查時序均衡性,如各地址到cell單元的使能端時序是否均衡;
(3)檢查時序路徑上是否有延時比較大的線或單元。下面列出部分NanoTime時序分析報告。
圖1是電路CDL網(wǎng)表的地址到靈敏放大器使能端的時序分析結(jié)果:
圖1 電路CDL網(wǎng)表的地址到靈敏放大器使能端的時序分析結(jié)果
圖2 版圖帶C+CC寄生參數(shù)網(wǎng)表與上面電路CDL對應(yīng)的時序分析結(jié)果
圖2 是版圖帶C+CC寄生參數(shù)網(wǎng)表與上面電路CDL對應(yīng)的時序分析結(jié)果,對比可以看到,版圖帶寄生參數(shù)網(wǎng)表的時序比電路網(wǎng)表時序慢了30%左右,模擬人員用Nanosim仿真SRAM IP結(jié)果顯示,版圖帶寄生參數(shù)網(wǎng)表的時序(5.55ns)比電路網(wǎng)表時序(4.23ns)也慢了30%左右。
圖3是單條路徑的時序分析,從報告中看出沒有大的延時單元。
圖3 單條路徑的時序分析
3.1 NanoTime噪聲分析基本流程
對于65nm工藝的設(shè)計而言,噪聲是一個不得不考慮的嚴(yán)重問題。而使用HSPICE之類的工具來分析大規(guī)模電路中的耦合噪聲影響是不現(xiàn)實(shí)的。NanoTime Ultra版提供了分析耦合噪聲對時序影響的強(qiáng)大功能。在進(jìn)行NanoTime SI分析之前,需要在抽取寄生參數(shù)文件時保留耦合電容的信息。在進(jìn)行耦合噪聲對信號影響的分析時,NanoTime綜合評估入侵線和受侵線之間的耦合電容、兩者的驅(qū)動強(qiáng)度以及互相施加影響的窗口重疊程度等因素,然后經(jīng)過多次的反復(fù)迭代分析,保證最后計算出耦合噪聲對受侵線的影響是最悲觀的情況。噪聲分析包括對信號延時和對信號串?dāng)_大小的分析。
噪聲分析需要通過set si_enable_analysis true打開噪聲分析功能,通過set si_xtalk_exit_on_max_iteration_count 3設(shè)置迭代分析的次數(shù)。
(1)延時影響分析
通過report_path–path_type full–nets報出時序路徑上串?dāng)_帶來的延時。
(2)串?dāng)_影響分析
通過update_noise打開串?dāng)_噪聲幅度分析功能,report_noise命令可以報出噪聲幅值。
噪聲類型如圖4所示,分為above low、below low、above high、below high四種。
圖4 噪聲類型
3.2 全定制4K×16bit IP噪聲分析
下面是NanoTime進(jìn)行噪聲分析的部分結(jié)果,可以看出噪聲對信號延時的影響小于0.08ns,噪聲幅度都在230mV以下,并且最大噪聲不在靈敏放大器電路上。
(1)對信號延時影響分析
圖5 信號延時影響
(2)AH-Above high類型串?dāng)_
圖6 AH-Above high類型串?dāng)_
(3)AL-Above low類型串?dāng)_
圖7 AL-Above low類型串?dāng)_
(4)BH-Below high類型串?dāng)_
圖8 BH-Below high類型串?dāng)_
(5)BL-Below low類型串?dāng)_
圖9 BL-Below low類型串?dāng)_
4.1 NanoTime時序模型提取基本流程
NanoTime的Hierarchical Analysis flow可以跟Prime-Time無縫鏈接。Top-down(PrimeTime SDC Constraints to NanoTime)和Bottom-up(NanoTime Export Model to Prime-Time)相結(jié)合的流程實(shí)現(xiàn)了定制IP在芯片中的精確集成。NanoTime通過自動生成符合Liberty語法規(guī)范格式的timing library文件,IP設(shè)計用戶可以根據(jù)應(yīng)用實(shí)際情況設(shè)置輸入端口信號transition和輸出端口負(fù)載。根據(jù)設(shè)置值在lib文件中查表即可獲取該模塊內(nèi)部準(zhǔn)確的時序信息以完成IP集成后的時序檢查。
timing library的提取是在完成靜態(tài)時序分析基礎(chǔ)上進(jìn)行的。
(1)timing library的提取步驟其實(shí)非常方便,示例腳本如下:
reset_design–path
時序路徑分解:
set_model_input_transition_index– nomina 0.1{0.05 0.1 0.3 0.5}{A,B,C}
輸入端口transition列表設(shè)置:
set_model_load_indexes{0.05 0.1 0.5 1.0}{D,E,F}
輸出端口load列表設(shè)置:
extract_model–name analog_top–bus–debug_paths
(2)執(zhí)行完上述命令就可以完成Timing library提取。
4.2 全定制IO時序模型提取
高速SRAM項(xiàng)目采用的高速IO是全定制設(shè)計的電路,我們需要對IO電路進(jìn)行時序模型提取,包括輸入PAD、輸入上拉PAD、輸入下拉PAD、雙向PAD四種IO的五個Corner時序模型。時序模型提供給前端PrimeTime和后端Encounter進(jìn)行時序分析。
下面是提取的輸入PAD的部分時序描述:
pin("IN"){
direction:output;
max_capacitance:0.819877;
min_capacitance:0.023877;
capacitance:0.019877;
rise_capacitance_range(0.019877,0.019877);
fall_capacitance_range(0.019877,0.019877);
timing(){
min_delay_flag:true;
related_pin:"PAD_I";
timing_type:combinational;
timing_sense:positive_unate;
/*comment:block combinational(combinational), path 5,path 8;*/
cell_rise(f_itrans_ocap){
index_1("0.112000,1.937600,3.920000, 4.640000,6.400000");
index_2("0.023877,0.127877,0.221877, 0.431877,0.819877");
values ("0.414613,0.434118,0.445821, 0.472251,0.521945", "0.500900, 0.520406, 0.532109, 0.558539,0.608233", "0.466224, 0.485730, 0.497432, 0.523863,0.573556", "0.443048, 0.462554, 0.474256, 0.500687,0.550380", "0.375176, 0.394681, 0.406384, 0.432814,0.482508");
}
rise_transition(f_itrans_ocap){
index_1("0.112000,1.937600,3.920000, 4.640000,6.400000");
index_2("0.023877,0.127877,0.221877, 0.431877,0.819877"); values("0.020502,0.045251,0.069034, 0.125630,0.235773", "0.020502, 0.045251, 0.069034, 0.125630,0.235773", "0.020502, 0.045251, 0.069034, 0.125630,0.235773", "0.020502, 0.045251, 0.069034, 0.125630,0.235773", "0.020502, 0.045251, 0.069034, 0.125630,0.235773");
}
cell_fall(f_itrans_ocap){
index_1("0.112000,1.937600,3.920000, 4.640000,6.400000");
index_2("0.023877,0.127877,0.221877, 0.431877,0.819877");
values("0.343788,0.358353,0.369156, 0.394108,0.440498", "0.677281, 0.692083, 0.702910, 0.727849,0.774232", "0.914579, 0.929382, 0.940208, 0.965147,1.011530", "0.995558, 1.010596, 1.021447, 1.046372,1.092749", "1.181865, 1.197029, 1.207892, 1.232810,1.279184");
}
fall_transition(f_itrans_ocap){
index_1("0.112000,1.937600,3.920000, 4.640000,6.400000");
index_2("0.023877,0.127877,0.221877, 0.431877,0.819877");
values("0.014476,0.034802,0.056102, 0.106900,0.203564", "0.014717, 0.035113, 0.056344, 0.107025,0.203577", "0.014717, 0.035113, 0.056344, 0.107025,0.203577", "0.014957, 0.035423, 0.056584,0.107149,0.203591", "0.015085, 0.035588, 0.056712, 0.107215,0.203598");
}
}/*end of arc PAD_I_IN_una_min*/
}/*end of pin IN*/
在65nm高速SRAM項(xiàng)目中,NanoTime的時序分析和SI分析功能對全定制電路和版圖設(shè)計有重要指導(dǎo)作用,Nano-Time的時序模型提取功能節(jié)約了電路時序建模時間。
[1]Lin Wei,Yao Gang,Ji Bingwu,Zhao Tanfu,Transistor Level STA and SI Analysis with NanoTime on Custom Digital Blocks,SNUG 2009.
[2]Synopsys,NanoTime and NanoTime Ultra User Guide,Version 1.0,August 2009.
[3]Synopsys,PrimeTime User Guide,Version B-2008.06,June 2008.
TheApplication of NanoTime in High Speed SRAM IP Designing with 65nm Process
Zhang Jiaxun
(Shenzhen State Microelectronics Co.,Ltd.,Shenzhen 518057,Guangdong)
As the IC process below 90nm,nanometer effect is more evident.For custom digital logic,how to analyze Signal Integrity(SI)is very important.The high speed SRAM IP is designed by 65nm process.Our design team used NanoTime for signal integrity checking.This paper introduces NanoTime application of static timing analysis,timing model generation and SI analysis in the high speed SRAM IP design.
NanoTime;static timing analysis;SI analysis;timing model generation
TP333
A
1008-6609(2017)07-0051-05
張家訓(xùn)(1982-),男,山東煙臺人,碩士研究生,工程師,研究方向?yàn)榧呻娐吩O(shè)計。