Fixing loads and wire loading for physical synthesis. Also put Milkyway library in each run directory so they don't conflict across runs

This commit is contained in:
David Harris 2023-02-17 10:52:17 -08:00
parent 41fbe32489
commit 1f9d425eab
2 changed files with 20 additions and 15 deletions

View File

@ -54,18 +54,20 @@ set MY_LIB_NAME $my_toplevel
# Create MW
if { [shell_is_in_topographical_mode] } {
echo "In Topographical Mode...processing\n"
if {[file isdirectory $MY_LIB_NAME]} {
echo "MW directory already here, deleting/readdding."
[exec rm -rf $my_toplevel]
create_mw_lib -technology $MW_REFERENCE_LIBRARY/$MW_TECH_FILE.tf \
-mw_reference_library $mw_reference_library $MY_LIB_NAME
} else {
create_mw_lib -technology $MW_REFERENCE_LIBRARY/$MW_TECH_FILE.tf \
-mw_reference_library $mw_reference_library $MY_LIB_NAME
}
create_mw_lib -technology $MW_REFERENCE_LIBRARY/$MW_TECH_FILE.tf \
-mw_reference_library $mw_reference_library $outputDir/$MY_LIB_NAME
# if {[file isdirectory $MY_LIB_NAME]} {
#echo "MW directory already here, deleting/reading."
#[exec rm -rf $my_toplevel]
# create_mw_lib -technology $MW_REFERENCE_LIBRARY/$MW_TECH_FILE.tf \
# -mw_reference_library $mw_reference_library $MY_LIB_NAME
# } else {
# create_mw_lib -technology $MW_REFERENCE_LIBRARY/$MW_TECH_FILE.tf \
# -mw_reference_library $mw_reference_library $MY_LIB_NAME
# }
# Open MW
open_mw_lib $MY_LIB_NAME
open_mw_lib $outputDir/$MY_LIB_NAME
# TLU+
set_tlu_plus_files -max_tluplus $MAX_TLU_FILE -min_tluplus $MIN_TLU_FILE \
@ -73,7 +75,7 @@ if { [shell_is_in_topographical_mode] } {
} else {
if {[file isdirectory $MY_LIB_NAME]} {
[exec rm -rf $my_toplevel]
[exec rm -rf $my_toplevel]
echo "MW directory already here, deleting."
}
echo "In normal DC mode...processing\n"
@ -152,7 +154,7 @@ if {$tech == "sky130"} {
} elseif {$drive == "FLOP"} {
set_driving_cell -lib_cell scc9gena_dfxbp_1 -pin Q $all_in_ex_clk
}
} elseif {$tech == "tsmc28"} {
} elseif {$tech == "tsmc28" || $tech="tsmc28psyn"} {
if {$drive == "INV"} {
set_driving_cell -lib_cell INVD1BWP30P140 -pin ZN $all_in_ex_clk
} elseif {$drive == "FLOP"} {
@ -178,7 +180,7 @@ if {$tech == "sky130"} {
} elseif {$drive == "FLOP"} {
set_load [expr [load_of scc9gena_tt_1.2v_25C/scc9gena_dfxbp_1/D] * 1] [all_outputs]
}
} elseif {$tech == "tsmc28"} {
} elseif {$tech == "tsmc28" || $tech = "tsmc28psyn"} {
if {$drive == "INV"} {
set_load [expr [load_of tcbn28hpcplusbwp30p140tt0p9v25c/INVD4BWP30P140/I] * 1] [all_outputs]
} elseif {$drive == "FLOP"} {
@ -186,8 +188,10 @@ if {$tech == "sky130"} {
}
}
# Set the wire load model
set_wire_load_mode "top"
if ($tech != "tsmc28psyn") {
# Set the wire load model
set_wire_load_mode "top"
}
# Set switching activities
# default activity factors are 1 for clocks, 0.1 for others

View File

@ -19,6 +19,7 @@ if __name__ == '__main__':
techs = ['sky90', 'tsmc28', 'tsmc28psyn']
allConfigs = ['rv32gc', 'rv32imc', 'rv64gc', 'rv64imc', 'rv32e', 'rv32i', 'rv64i']
freqVaryPct = [-20, -12, -8, -6, -4, -2, 0, 2, 4, 6, 8, 12, 20]
freqVaryPct = [0, 10]
pool = Pool()