mirror of https://github.com/efabless/caravel.git
update openlane configuration for `caravan_core`
This commit is contained in:
parent
d8611285f8
commit
82ef21b7c3
|
@ -172,7 +172,7 @@ set ::env(CTS_CLK_BUFFER_LIST) {sky130_fd_sc_hd__clkbuf_8 sky130_fd_sc_hd__clkbu
|
|||
set ::env(CTS_CLK_MAX_WIRE_LENGTH) 1000
|
||||
|
||||
##PLACEMENT
|
||||
set ::env(PL_ROUTABILITY_DRIVEN) 1
|
||||
set ::env(PL_ROUTABILITY_DRIVEN) 0
|
||||
set ::env(PL_TIME_DRIVEN) 1
|
||||
set ::env(PL_WIRELENGTH_COEF) 0.01
|
||||
set ::env(PL_TARGET_DENSITY) 0.24
|
||||
|
@ -198,7 +198,7 @@ set ::env(GRT_ADJUSTMENT) 0.08
|
|||
set ::env(GRT_ESTIMATE_PARASITICS) 1
|
||||
|
||||
set ::env(GLB_RESIZER_TIMING_OPTIMIZATIONS) 1
|
||||
set ::env(GLB_RESIZER_HOLD_SLACK_MARGIN) 0.08
|
||||
set ::env(GLB_RESIZER_HOLD_SLACK_MARGIN) 0.12
|
||||
set ::env(GLB_RESIZER_SETUP_SLACK_MARGIN) 1
|
||||
set ::env(GLB_RESIZER_MAX_WIRE_LENGTH) 600
|
||||
set ::env(GLB_RESIZER_MAX_SLEW_MARGIN) 30
|
||||
|
|
|
@ -2,9 +2,9 @@ user_id_value 2962.655 129.19 N
|
|||
soc.core.RAM256.BANK128\[0\].RAM128 90.09 175 N
|
||||
soc.core.RAM256.BANK128\[1\].RAM128 581.97 175 FN
|
||||
soc.core.RAM128 1800 125 FN
|
||||
mgmt_buffers.mprj_logic_high_inst 1190.94 880 N
|
||||
mgmt_buffers.powergood_check 1794 880 N
|
||||
mgmt_buffers.mprj2_logic_high_inst 823 880 FN
|
||||
mgmt_buffers.mprj_logic_high_inst 1190.94 905 N
|
||||
mgmt_buffers.powergood_check 1794 905 N
|
||||
mgmt_buffers.mprj2_logic_high_inst 823 905 FN
|
||||
por 1063.15 135 MX
|
||||
mprj 115.04 1183.09 N
|
||||
housekeeping_alt 2650 190 N
|
||||
|
|
|
@ -0,0 +1,145 @@
|
|||
package require openlane
|
||||
variable SCRIPT_DIR [file dirname [file normalize [info script]]]
|
||||
# prep -ignore_mismatches -design $SCRIPT_DIR -tag techlef_for_antenna -overwrite -verbose 0
|
||||
prep -ignore_mismatches -design $SCRIPT_DIR -tag $::env(OPENLANE_RUN_TAG) -overwrite -verbose 0
|
||||
|
||||
set save_path $::env(CARAVEL_ROOT)
|
||||
|
||||
################ Netlist ################
|
||||
set_netlist $::env(DESIGN_DIR)/synth_configuration/caravan_core.v
|
||||
set ::env(CURRENT_SDC) $::env(DESIGN_DIR)/sdc_files/base.sdc
|
||||
|
||||
################ Floorplan ################
|
||||
init_floorplan
|
||||
apply_def_template
|
||||
|
||||
# Placing the macros in the core area and marking them fixed
|
||||
file copy -force $::env(MACRO_PLACEMENT_CFG) $::env(placement_tmpfiles)/macro_placement.cfg
|
||||
manual_macro_placement -f
|
||||
|
||||
# Tap/Decap insertion
|
||||
tap_decap_or
|
||||
|
||||
set ::env(GRT_OBS) "\
|
||||
pwell 0 4195 3165 4767, \
|
||||
nwell 0 4195 3165 4767, \
|
||||
li1 0 4195 3165 4767, \
|
||||
met1 0 4195 3165 4767, \
|
||||
met2 0 4195 3165 4767, \
|
||||
met3 0 4195 3165 4767, \
|
||||
met4 0 4195 3165 4767, \
|
||||
met5 0 4195 3165 4767, \
|
||||
met4 990 0 1075 45, \
|
||||
met5 0 128 22 205, \
|
||||
met5 3123 2085 3165 2167, \
|
||||
met5 0 1983 50 2071, \
|
||||
met5 59.52 1183.09 3103.58 4703.09, \
|
||||
met5 1943 1153 1944 1155, \
|
||||
met5 1815 1130 1816 1132, \
|
||||
met5 631 144 650 183, \
|
||||
met4 1040 189 1052 190 \
|
||||
"
|
||||
add_route_obs
|
||||
|
||||
run_power_grid_generation
|
||||
|
||||
################ Place and route on the optmized netlist ################
|
||||
set ::env(PL_TARGET_DENSITY) 0.26
|
||||
set ::env(PL_ROUTABILITY_DRIVEN) 0
|
||||
set ::env(PL_TIME_DRIVEN) 1
|
||||
set ::env(PL_RESIZER_DESIGN_OPTIMIZATIONS) 0
|
||||
set ::env(PL_RESIZER_TIMING_OPTIMIZATIONS) 0
|
||||
set ::env(GLB_RESIZER_DESIGN_OPTIMIZATIONS) 0
|
||||
set ::env(GLB_RESIZER_TIMING_OPTIMIZATIONS) 0
|
||||
run_placement
|
||||
run_cts
|
||||
|
||||
# Adding met4/5 routing obstructions over the the RAMs and housekeeping to prevent routing DRCs
|
||||
set ::env(GRT_OBS) "\
|
||||
met5 90 175.0 496.18 612.92, \
|
||||
met5 582.00 175.00 988.18 612.92, \
|
||||
met5 1800 125.00 2206.18 562.92, \
|
||||
met5 2650 190 3060.23 740.95, \
|
||||
met4 90 175.0 496.18 612.92, \
|
||||
met4 582.00 175.00 988.18 612.92, \
|
||||
met4 1800 125.00 2206.18 562.92, \
|
||||
met4 2650 190 3060.23 740.95 \
|
||||
"
|
||||
# adding hk_serial_clock and hk_serial_load as clocks after CTS by changing
|
||||
# the sdc file to another one which they are defined as clocks in it.
|
||||
set ::env(CURRENT_SDC) $::env(DESIGN_DIR)/sdc_files/base_2.sdc
|
||||
|
||||
set ::env(GRT_ALLOW_CONGESTION) 0
|
||||
run_routing
|
||||
################ RCX sta ################
|
||||
run_parasitics_sta
|
||||
|
||||
################ IR drop ################
|
||||
# run_irdrop_report
|
||||
|
||||
################ Antenna check ################
|
||||
run_antenna_check
|
||||
|
||||
################ magic ################
|
||||
run_magic
|
||||
|
||||
################ LVS ################
|
||||
# run_magic_spice_export;
|
||||
# run_lvs;
|
||||
|
||||
############### DRC ################
|
||||
run_magic_drc
|
||||
|
||||
################ Saving views and reports ################
|
||||
save_final_views
|
||||
save_views -save_path .. -tag $::env(OPENLANE_RUN_TAG)
|
||||
##
|
||||
calc_total_runtime
|
||||
save_state
|
||||
generate_final_summary_report
|
||||
check_timing_violations
|
||||
if { [info exists arg_values(-save_path)]\
|
||||
&& $arg_values(-save_path) != "" } {
|
||||
set ::env(HOOK_OUTPUT_PATH) "[file normalize $arg_values(-save_path)]"
|
||||
} else {
|
||||
set ::env(HOOK_OUTPUT_PATH) $::env(RESULTS_DIR)/final
|
||||
}
|
||||
if {[info exists flags_map(-run_hooks)]} {
|
||||
run_post_run_hooks
|
||||
}
|
||||
puts_success "Flow complete."
|
||||
show_warnings "Note that the following warnings have been generated:"
|
||||
|
||||
################ Copying reports ################
|
||||
set run_dir $::env(DESIGN_DIR)/runs/$::env(RUN_TAG)
|
||||
## copying signoff reports
|
||||
set sourceDir $run_dir/reports/signoff
|
||||
set targetDir $::env(CARAVEL_ROOT)/signoff/$::env(DESIGN_NAME)/openlane-signoff/
|
||||
foreach f [glob -directory $sourceDir -nocomplain *] {
|
||||
file copy -force $f $targetDir
|
||||
}
|
||||
## copying spefs
|
||||
set sourceDir $run_dir/results/routing/mca/spef/
|
||||
set targetDir $::env(CARAVEL_ROOT)/signoff/$::env(DESIGN_NAME)/openlane-signoff/spef/
|
||||
foreach f [glob -directory $sourceDir -nocomplain *] {
|
||||
file copy -force $f $targetDir
|
||||
}
|
||||
## copying sdf
|
||||
set sourceDir $run_dir/results/routing/mca/sdf/nom/
|
||||
set targetDir $::env(CARAVEL_ROOT)/signoff/$::env(DESIGN_NAME)/openlane-signoff/sdf/nom/
|
||||
foreach f [glob -directory $sourceDir -nocomplain *] {
|
||||
file copy -force $f $targetDir
|
||||
}
|
||||
set sourceDir $run_dir/results/routing/mca/sdf/min/
|
||||
set targetDir $::env(CARAVEL_ROOT)/signoff/$::env(DESIGN_NAME)/openlane-signoff/sdf/min/
|
||||
foreach f [glob -directory $sourceDir -nocomplain *] {
|
||||
file copy -force $f $targetDir
|
||||
}
|
||||
set sourceDir $run_dir/results/routing/mca/sdf/max/
|
||||
set targetDir $::env(CARAVEL_ROOT)/signoff/$::env(DESIGN_NAME)/openlane-signoff/sdf/max/
|
||||
foreach f [glob -directory $sourceDir -nocomplain *] {
|
||||
file copy -force $f $targetDir
|
||||
}
|
||||
## coping other files
|
||||
set flist [list $run_dir/config.tcl $run_dir/openlane.log $run_dir/runtime.yaml $run_dir/warnings.log]
|
||||
file copy -force {*}$flist $::env(CARAVEL_ROOT)/signoff/$::env(DESIGN_NAME)/
|
|
@ -7,7 +7,7 @@ set save_path $::env(CARAVEL_ROOT)
|
|||
|
||||
################ Synthesis ################
|
||||
run_synthesis
|
||||
# set_netlist $::env(DESIGN_DIR)/synth_configuration/caravel_core.v
|
||||
# set_netlist $::env(DESIGN_DIR)/synth_configuration/caravan_core.v
|
||||
# set ::env(CURRENT_SDC) $::env(DESIGN_DIR)/sdc_files/base.sdc
|
||||
|
||||
################ Floorplan ################
|
||||
|
@ -31,6 +31,10 @@ set ::env(GRT_OBS) "\
|
|||
met3 0 4195 3165 4767, \
|
||||
met4 0 4195 3165 4767, \
|
||||
met5 0 4195 3165 4767, \
|
||||
met4 990 0 1075 45, \
|
||||
met5 0 128 22 205, \
|
||||
met5 3123 2085 3165 2167, \
|
||||
met5 0 1983 50 2071, \
|
||||
met5 59.52 1183.09 3103.58 4703.09, \
|
||||
met5 1943 1153 1944 1155, \
|
||||
met5 1815 1130 1816 1132, \
|
||||
|
@ -91,7 +95,7 @@ set ::env(GRT_OBS) "\
|
|||
# the sdc file to another one which they are defined as clocks in it.
|
||||
set ::env(CURRENT_SDC) $::env(DESIGN_DIR)/sdc_files/base_2.sdc
|
||||
|
||||
# set ::env(GRT_ALLOW_CONGESTION) 0
|
||||
set ::env(GRT_ALLOW_CONGESTION) 0
|
||||
run_routing
|
||||
################ RCX sta ################
|
||||
run_parasitics_sta
|
||||
|
|
|
@ -116,7 +116,7 @@ add_pdn_stripe \
|
|||
add_pdn_stripe \
|
||||
-grid stdcell_grid \
|
||||
-layer met5 \
|
||||
-width 12.8 \
|
||||
-width 14.4 \
|
||||
-pitch 120 \
|
||||
-offset 239 \
|
||||
-spacing 2.4 \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -5,7 +5,7 @@ openlane_folder = './'
|
|||
signoff_folder = '../signoff'
|
||||
|
||||
# macro_folders = os.listdir(openlane_folder)
|
||||
macro_folders = ['housekeeping_alt']
|
||||
macro_folders = ['caravan_core']
|
||||
|
||||
# iterate over each macro folder
|
||||
for macro_folder in macro_folders:
|
||||
|
|
Loading…
Reference in New Issue