update the script with the modified spef and signoff sdc directories

update spef mapping proc to match the new RAM names
This commit is contained in:
Passant 2022-10-12 07:32:07 -07:00
parent 67e564c00f
commit d784fd2dd1
2 changed files with 170 additions and 147 deletions

View File

@ -45,168 +45,179 @@ if {$::env(PROC_CORNER) == "t"} {
# TODO: get chip io netlist instead of reading the RTL
set search_path "$::env(CARAVEL_ROOT)/verilog/gl $::env(MCW_ROOT)/verilog/gl $::env(PT_LIB_ROOT)"
foreach verilog "[glob $::env(CARAVEL_ROOT)/verilog/gl/*.v] [glob $::env(MCW_ROOT)/verilog/gl/*.v]" {
if {$verilog != "$::env(CARAVEL_ROOT)/verilog/gl/chip_io.v"} {
read_verilog $verilog
}
}
read_verilog $::env(CARAVEL_ROOT)/verilog/rtl/defines.v
read_verilog $::env(CARAVEL_ROOT)/verilog/rtl/mprj_io.v
read_verilog $::env(CARAVEL_ROOT)/verilog/rtl/chip_io.v
current_design $::env(DESIGN)
link
# Reading constraints (signoff)
if {$::env(DESIGN) == "mgmt_core_wrapper"} {
read_sdc $::env(MCW_ROOT)/openlane/$::env(DESIGN)/signoff.sdc
if {$::env(DESIGN) == "mgmt_core_wrapper" | $::env(DESIGN) == "RAM256" | $::env(DESIGN) == "RAM128"} {
read_sdc $::env(MCW_ROOT)/sdc/$::env(DESIGN).sdc
} else {
read_sdc $::env(CARAVEL_ROOT)/openlane/$::env(DESIGN)/signoff.sdc
read_sdc $::env(CARAVEL_ROOT)/sdc/$::env(DESIGN).sdc
}
# Reading parasitics based on the RC corner specified
proc read_spefs {design rc_corner} {
set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/multicorner/xres_buf.${rc_corner}.spef
set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/multicorner/chip_io.${rc_corner}.spef
set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/multicorner/housekeeping.${rc_corner}.spef
set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/multicorner/digital_pll.${rc_corner}.spef
set spef_mapping(clock_ctrl) $::env(CARAVEL_ROOT)/spef/multicorner/caravel_clocking.${rc_corner}.spef
set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/multicorner/mgmt_protect.${rc_corner}.spef
set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/multicorner/mgmt_protect_hv.${rc_corner}.spef
set spef_mapping(powergood_check) $::env(CARAVEL_ROOT)/spef/multicorner/mgmt_protect_hv.${rc_corner}.spef
set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj_logic_high.${rc_corner}.spef
set spef_mapping(mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj_logic_high.${rc_corner}.spef
set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj2_logic_high.${rc_corner}.spef
set spef_mapping(mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj2_logic_high.${rc_corner}.spef
set spef_mapping(soc) $::env(MCW_ROOT)/spef/multicorner/mgmt_core_wrapper.${rc_corner}.spef
set spef_mapping(soc/\core.DFFRAM) $::env(MCW_ROOT)/spef/multicorner/DFFRAM.${rc_corner}.spef
set spef_mapping(\core.DFFRAM) $::env(MCW_ROOT)/spef/multicorner/DFFRAM.${rc_corner}.spef
set spef_mapping(soc/\core.DFFRAM_512) $::env(MCW_ROOT)/spef/multicorner/DFFRAM_512.${rc_corner}.spef
set spef_mapping(\core.DFFRAM_512) $::env(MCW_ROOT)/spef/multicorner/DFFRAM_512.${rc_corner}.spef
set spef_mapping(gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[11]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[12]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[13]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[14]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[15]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
if {$design == "caravel"} {
set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/xres_buf/xres_buf.${rc_corner}.spef
set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/chip_io/chip_io.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[0]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[1]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[2]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[3]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[4]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[5]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(padframe/\constant_value_inst[6]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/housekeeping/housekeeping.${rc_corner}.spef
set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/digital_pll/digital_pll.${rc_corner}.spef
set spef_mapping(clock_ctrl) $::env(CARAVEL_ROOT)/spef/caravel_clocking/caravel_clocking.${rc_corner}.spef
set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/mgmt_protect/mgmt_protect.${rc_corner}.spef
set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv/mgmt_protect_hv.${rc_corner}.spef
set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high/mprj_logic_high.${rc_corner}.spef
set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high/mprj2_logic_high.${rc_corner}.spef
set spef_mapping(soc) $::env(MCW_ROOT)/spef/mgmt_core_wrapper/mgmt_core_wrapper.${rc_corner}.spef
set spef_mapping(soc/\core.RAM256) $::env(MCW_ROOT)/spef/RAM256/RAM256.${rc_corner}.spef
set spef_mapping(soc/\core.RAM128) $::env(MCW_ROOT)/spef/RAM128/RAM128.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_0) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_1803.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_1) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_1803.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_2) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_3) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_4) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_bidir_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_1a[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[11]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[12]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[13]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[14]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[15]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(\gpio_control_in_2[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_0) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803/gpio_defaults_block_1803.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_1) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803/gpio_defaults_block_1803.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_3) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0801/gpio_defaults_block_0801.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_2) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_4) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
} elseif {$design == "mgmt_core_wrapper"} {
set spef_mapping(\core.RAM128) $::env(MCW_ROOT)/spef/RAM128/RAM128.${rc_corner}.spef
set spef_mapping(\core.RAM256) $::env(MCW_ROOT)/spef/RAM512/RAM512.${rc_corner}.spef
} elseif {$design == "gpio_control_block"} {
set spef_mapping(gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
} elseif {$design == "mgmt_protect"} {
set spef_mapping(powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv/mgmt_protect_hv.${rc_corner}.spef
set spef_mapping(mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high/mprj_logic_high.${rc_corner}.spef
set spef_mapping(mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high/mprj2_logic_high.${rc_corner}.spef
}
foreach key [array names spef_mapping] {
read_parasitics -path $key $spef_mapping($key)
}
if {$design == "mgmt_core_wrapper"} {
read_parasitics -verbose $::env(MCW_ROOT)/spef/multicorner/$::env(DESIGN).${rc_corner}.spef -pin_cap_included
if {$design == "mgmt_core_wrapper" | $design == "RAM128" | $design == "RAM256"} {
read_parasitics -verbose $::env(MCW_ROOT)/spef/${design}/${design}.${rc_corner}.spef -pin_cap_included
} else {
read_parasitics -verbose $::env(CARAVEL_ROOT)/spef/multicorner/$::env(DESIGN).${rc_corner}.spef -pin_cap_included
read_parasitics -verbose $::env(CARAVEL_ROOT)/spef/${design}/${design}.${rc_corner}.spef -pin_cap_included
}
}

View File

@ -43,18 +43,25 @@ def run_sta (
PT_tcl = f"{SCRIPT_DIR}/pt_sta.tcl"
pt_command = f"source /tools/bashrc_snps; pt_shell -f {PT_tcl} -output_log_file {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log"
os.system(pt_command)
# Check if there exists any violations
sta_pass=search_viol(f"{output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
log = open(f"{log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log", "a")
if sta_pass == "pass":
print (f"STA run passed!")
log.write(f"STA run passed!")
else:
print (f"STA run failed!")
log.write(f"STA run failed!")
if sta_pass == "viol":
print(f"There are violations. check report: {output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
log.write(f"There are violations. check report: {output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
elif sta_pass== "no cons":
print(f"Reading constraints SDC file failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
log.write(f"Reading constraints SDC file failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
else:
print(f"Linking failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
log.write(f"Linking failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
log.close()
# Check the required env variables
def check_env_vars():
pdk_root = os.getenv('PDK_ROOT')
@ -93,7 +100,12 @@ def search_viol(
return "viol"
elif "Could not auto-link design" in data:
return "no link"
else:
report_path = report_path.replace("all_viol", "min_timing")
with open(report_path, 'r') as report:
data = report.read()
if "No constrained paths" in data:
return "no cons"
else:
return "pass"
if __name__ == "__main__":