芯片ECO(一)
扫描二维码
随时随地手机看文章
1、ECO flow
ECO通常包含timing ECO,function ECO,我们本节看看timing ECO。timing ECO通常先将PD设计加载到tempus进行timing signoff分析,通过eco_opt_design等命令fix remaining timing violations,并产生ECO脚本,在innovus中执行ECO脚本后,QRC提取寄生参数, 再次进行tempus时序分析。
2、ECO目标
-
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
在芯片规模较小时,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来修复,不一定能100%修好,部分可能需要手动修复。