|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
基于论坛的脚本修改了一下,折腾了一天,弄了个带lcation的:
首先在pt_shell添加下面 option:
set all_lef_list " \
./pathto/sc12mc_tech.lef \
./pathto/sc12mc_logic0040ll_base_lvt_c40.lef \
.pathto/dlm_sram.lef \
"
set DECAP_CELLS "FILLCAP4_A12TL40 FILLSGCAP4_A12TL40 FILLCAP8_A12TL40 FILLSGCAP8_A12TL40 FILLCAP16_A12TL40 FILLSGCAP16_A12TL40 FILLCAP32_A12TL40 FILLSGCAP32_A12TL40 FILLCAP64_A12TL40 FILLSGCAP64_A12TL40 FILLCAP128_A12TL40 FILLSGCAP128_A12TL40 FILLCAP128_A12TL40 FILL64_A12TL40 FILL32_A12TL40 FILLCAP16_A12TL40 FILL8_A12TL40 FILL4_A12TL40 FILL2_A12TL40"
set FILLER_CELLS "FILL1_A12TL40 ENDCAPTIE3_A12TL40 FILLTIE8_A12TL40 "
set FILLER_CELL_NAMES_PT "$DECAP_CELLS $FILLER_CELLS"
#set for physic inf
set_app_var eco_allow_filler_cells_as_open_sites true
set read_parasitics_load_locations true
set_eco_options -physical_lib_path $all_lef_list \
-physical_design_path "../../nets/${design}.def.gz" \
-filler_cell_names $FILLER_CELL_NAMES_PT
##-log_file ../system_log/set_eco_options_dmsa.err.log
report_eco_options
....
fix_eco_timing -physical_mode open_site -type hold -group {clk_main clk_dft **clock_gating_default** **async_default**} -methods {insert_buffer} -buffer_list { DLY2_X0P5M_A12TL40 DLY2_X2M_A12TL40 DLY2_X4M_A12TL40 DLY4_X0P5M_A12TL40 DLY4_X2M_A12TL40 }
...icc eco:fix_hold.tcl如下:
current_instance
current_instance u_sram_sp_64x20_wrap
insert_buffer [get_pins {U12/A}] DLY2_X0P5M_A12TL40 -new_net_names {FIX_HOLD_ECO_NET_2024061512391} -new_cell_names {FIX_HOLD_ECO_CELL_2024061512391} -location {547.192 371.7} -orientation N
current_instance
current_instance u_cic
insert_buffer [get_pins {in_differentor1_dly_reg_0_/D}] DLY2_X0P5M_A12TL40 -new_net_names {FIX_HOLD_ECO_NET_2024061512392} -new_cell_names {FIX_HOLD_ECO_CELL_2024061512392} -location {561.36 299.46} -orientation FS
current_instance
current_instance u_clk_gen
insert_buffer [get_pins {cnt_clk_sdm_reg_1_/D}] DLY2_X0P5M_A12TL40 -new_net_names {FIX_HOLD_ECO_NET_2024061512393} -new_cell_names {FIX_HOLD_ECO_CELL_2024061512393} -location {560.315 368.34} -orientation N
.....
.......................source ../scr/icc_2_innovus.tcl 如下:只对insert_buffer做了match修改,其他请类似修改:
set in_icctcl_file [open ${file_fix_hold_icc} r+]
set out_innovus_file [open ${file_fix_hold_inn} w]
while {[gets $in_icctcl_file line]>=0} {
#current_instance#for root instance
if {[regexp {current_instance$} $line ]} {
set hinstGuide $design
set hier_inst ""
puts $out_innovus_file "#$line"
continue
}
#current_instance u_cic#some icc has {} some has no {},so we add [\{]* to match
if {[regexp {current_instance [\{]*(\S+)[\}]*} $line uselessvar_a hier_inst]} {
set hinstGuide $hier_inst
set hier_inst $hier_inst/
puts $out_innovus_file "#$line"
continue
}
switch -regexp $line {
{size_cell} {
regexp {size_cell\s*\{(\S+)\}\s*\{(\S+)\}} $line uselessvar_a inst cell_type
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoChangeCell -inst $hier_inst$inst -cell $cell_type \n"
}
{remove_buffer} {
regexp {remove_buffer\s*\[get_cells\s*\{(\S+)\}\]} $line uselessvar_a inst
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoDeleteRepeater -inst $hier_inst$inst -nonPhysical \n"
}
{insert_buffer} {
#insert_buffer [get_pins {sram_csn_reg/QN}] XXX -new_net_names {FIX_ECO_NET_xx} -new_cell_names {FIX_HOLD_ECO_CELL_xx}
#insert_buffer [get_pins {U12/A}] XX -new_net_names {FIX_HOLD_ECO_NE_XX} -new_cell_names {FIX_HOLD_ECO_CELL_xx} -location {547.192 371.7} -orientation N
regexp {insert_buffer\s*\[get_pins\s*\{(\S+)\}\]\s*(\S+)\s*-new_net_name.*\s*\{(\S+)\}\s*-new_cell_name.*\s*\{(\S+)\}\s*-location\s*\{(.*)\}} $line uselessvar_a term cell_type new_netname new_cellname cell_position
puts $out_innovus_file "#$line"
puts $out_innovus_file "ecoAddRepeater -term $hier_inst$term -cell $cell_type -new_net_name $new_netname -name $new_cellname -hinstGuide $hinstGuide -loc {$cell_position} \n"
}
}
}
close $in_icctcl_file
close $out_innovus_file
.................................
运行后生成innovus运行的tcl如下:
#current_instance
#current_instance u_sram_sp_64x20_wrap
#insert_buffer [get_pins {U12/A}] DLY2_X0P5M_A12TL40 -new_net_names {FIX_HOLD_ECO_NET_2024061512391} -new_cell_names {FIX_HOLD_ECO_CELL_2024061512391} -location {547.192 371.7} -orientation N
ecoAddRepeater -term u_sram_sp_64x20_wrap/U12/A -cell DLY2_X0P5M_A12TL40 -new_net_name FIX_HOLD_ECO_NET_2024061512391 -name FIX_HOLD_ECO_CELL_2024061512391 -hinstGuide u_sram_sp_64x20_wrap -loc {547.192 371.7}
#current_instance
#current_instance u_cic
#insert_buffer [get_pins {in_differentor1_dly_reg_0_/D}] DLY2_X0P5M_A12TL40 -new_net_names {FIX_HOLD_ECO_NET_2024061512392} -new_cell_names {FIX_HOLD_ECO_CELL_2024061512392} -location {561.36 299.46} -orientation FS
ecoAddRepeater -term u_cic/in_differentor1_dly_reg_0_/D -cell DLY2_X0P5M_A12TL40 -new_net_name FIX_HOLD_ECO_NET_2024061512392 -name FIX_HOLD_ECO_CELL_2024061512392 -hinstGuide u_cic -loc {561.36 299.46}
..........
|
|