blob: 18418e7073507202c0f9160e59fd74c6ab145c4c [file] [log] [blame]
package require openlane
prep -design striVe_flat -tag toplevel_mod_diearea -config config_mod_diearea -overwrite
set padframe_cfg $::env(DESIGN_DIR)/src/padframe.cfg
set padframe_def $::env(DESIGN_DIR)/src/def/padframe.def
set padframe_area [padframe_extract_area -cfg $padframe_cfg]
set lefs [glob $::env(DESIGN_DIR)/src/lef/*.lef]
set margin $::env(FP_CORE_MARGIN)
#set core_margin_x [expr $::env(PLACE_SITE_WIDTH)*70]
#set core_margin_y [expr $::env(PLACE_SITE_HEIGHT)*14]
set core_margin_x 30
set core_margin_y 30
set diearea "[expr $margin + [lindex $padframe_area 0]] [expr $margin + [lindex $padframe_area 1]] [expr [lindex $padframe_area 2] - $margin] [expr [lindex $padframe_area 3] - $margin]"
set corearea "[expr $core_margin_x + [lindex $diearea 0]] [expr $core_margin_y + [lindex $diearea 1]] [expr [lindex $diearea 2] - $core_margin_x] [expr [lindex $diearea 3] - $core_margin_y]"
set ::env(DIE_AREA) $diearea
set ::env(CORE_AREA) $corearea
set ::env(FP_SIZING) absolute
#config
# netlist verification
add_lefs -src $lefs
verilog_elaborate
init_floorplan
exec cp $::env(CURRENT_DEF) $::env(CURRENT_DEF).old
exec $::env(SCRIPTS_DIR)/remove_empty_nets.sh $::env(CURRENT_DEF)
exec python3 $::env(SCRIPTS_DIR)/padframe2fp.py -id $padframe_def -idn $::env(CURRENT_DEF) -il $::env(MERGED_LEF) |& tee $::env(TERMINAL_OUTPUT) $::env(CURRENT_DEF).pinsonly
set pinsonly $::env(CURRENT_DEF).pinsonly
set ::env(DESIGN_NAME) striVe_ChipCore
exec cp $::env(yosys_result_file_tag).v $::env(yosys_result_file_tag).v.old
run_synthesis
init_floorplan
place_io
#tap_decap
run_placement
gen_pdn
move_pins -from $pinsonly -to $::env(CURRENT_DEF)
exec python3 $::env(SCRIPTS_DIR)/zeroize_origin_def.py < $::env(CURRENT_DEF) > $::env(CURRENT_DEF).zeroized
exec mv $::env(CURRENT_DEF).zeroized $::env(CURRENT_DEF)
run_routing
#run_magic