1、ECO flow
ECO通常包含timing ECO,function ECO,我們本節(jié)看看timing ECO。timing ECO通常先將PD設(shè)計加載到tempus進行timing signoff分析,通過eco_opt_design等命令fix remaining timing violations,并產(chǎn)生ECO腳本,在innovus中執(zhí)行ECO腳本后,QRC提取寄生參數(shù), 再次進行tempus時序分析。
2、ECO目標(biāo)
-
Hold timing
-
Setup timing
-
Design Rule (max_cap/max_tran)
-
SI violations (SI Slew, SI Xtalk and SI Glitch)
- Reduces Power and Area:
- Area reduction
- Leakage power reduction
- Dynamic power reduction
- Leakage and dynamic power reduction concurrently
3、ECO方法
-
cell swapping
-
cell resizing
- buffer/inverter insertion and deletion
4、ECO腳本
batch mode下,tempus的ECO Timing DB文件可以通過eco_opt_design命令自動生成,腳本如下:
read_lib $liberty
read_lib -lef $lef
read_verilog $netlist
set_top_module my_top
source viewDefinition.tcl
read_def $def_file
source spef.tcl
set_distribute_host -local
set_multi_cpu_usage -localCpu 8 -remoteHost 2 -cpuPerRemoteHost 4
eco_opt_design -hold
在芯片規(guī)模較小時,analysis view少于8個時,我們可以自己生成ECO Timing DB,然后在single Tempus session下逐個完成timing ECO。
read_lib -lef $lef
read_verilog $netlist
set_top_module my_top
source viewDefinition.tcl
read_def $def_file
source spef.tcl
set_distribute_host -local
set_multi_cpu_usage -localCpu 8
#注意,下面先保存的ECO Timing DB: myEcoTimingDB
set_eco_opt_mode -save_eco_opt_db myEcoTimingDB
write_eco_opt_db
set_eco_opt_mode -load_eco_opt_db myEcoTimingDB
eco_opt_design -hold
完成timing ECO后,在tempus工作目錄下會生成eco_innouvs.tcl腳本用于innovus完成增量ECO布局布線。
若innovus eco route后有較多DCR violation,可以通過ecoRoute -fixDrc來修復(fù),不一定能100%修好,部分可能需要手動修復(fù)。