Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updates to top level caravel #59

Merged
merged 10 commits into from
Apr 8, 2022
50,464 changes: 25,483 additions & 24,981 deletions def/caravel.def

Large diffs are not rendered by default.

112,471 changes: 112,471 additions & 0 deletions def/caravel_power_routing_flat.def

Large diffs are not rendered by default.

Binary file modified gds/caravel.gds.gz
Binary file not shown.
133,550 changes: 71,288 additions & 62,262 deletions mag/caravel.mag

Large diffs are not rendered by default.

354 changes: 171 additions & 183 deletions mag/copyright_block.mag

Large diffs are not rendered by default.

76 changes: 39 additions & 37 deletions mag/xres_buf.mag
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
magic
tech sky130A
magscale 1 2
timestamp 1638030917
timestamp 1649268499
<< isosubstrate >>
rect 374 700 3540 3352
<< viali >>
rect 1663 2610 1697 2644
rect 1951 2610 1985 2644
Expand Down Expand Up @@ -233,68 +235,68 @@ rect 2252 1596 2270 1660
rect 790 763 970 782
rect 2090 763 2270 1596
rect 2970 814 3150 3256
use sky130_fd_sc_hvl__diode_2 ANTENNA_lvlshiftdown_A $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1648946573
transform 1 0 1536 0 -1 3256
box -66 -43 258 897
use sky130_fd_sc_hvl__decap_8 FILLER_0_0 $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1638025766
timestamp 1648946573
transform 1 0 480 0 -1 1628
box -66 -43 834 897
use sky130_fd_sc_hvl__decap_8 FILLER_0_8
timestamp 1638025766
timestamp 1648946573
transform 1 0 1248 0 -1 1628
box -66 -43 834 897
use sky130_fd_sc_hvl__decap_8 FILLER_1_0
timestamp 1638025766
transform 1 0 480 0 1 1628
box -66 -43 834 897
use sky130_fd_sc_hvl__decap_4 FILLER_1_8 $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1638025766
transform 1 0 1248 0 1 1628
box -66 -43 450 897
use sky130_fd_sc_hvl__decap_8 FILLER_0_16
timestamp 1638025766
timestamp 1648946573
transform 1 0 2016 0 -1 1628
box -66 -43 834 897
use sky130_fd_sc_hvl__fill_1 FILLER_1_12 $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1638025766
transform 1 0 1632 0 1 1628
box -66 -43 162 897
use sky130_fd_sc_hvl__decap_4 FILLER_0_24
timestamp 1638025766
use sky130_fd_sc_hvl__decap_4 FILLER_0_24 $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1648946573
transform 1 0 2784 0 -1 1628
box -66 -43 450 897
use sky130_fd_sc_hvl__fill_2 FILLER_0_28 $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1638025766
timestamp 1648946573
transform 1 0 3168 0 -1 1628
box -66 -43 258 897
use sky130_fd_sc_hvl__fill_1 FILLER_0_30
timestamp 1638025766
use sky130_fd_sc_hvl__fill_1 FILLER_0_30 $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1648946573
transform 1 0 3360 0 -1 1628
box -66 -43 162 897
use sky130_fd_sc_hvl__decap_8 FILLER_1_0
timestamp 1648946573
transform 1 0 480 0 1 1628
box -66 -43 834 897
use sky130_fd_sc_hvl__decap_4 FILLER_1_8
timestamp 1648946573
transform 1 0 1248 0 1 1628
box -66 -43 450 897
use sky130_fd_sc_hvl__fill_1 FILLER_1_12
timestamp 1648946573
transform 1 0 1632 0 1 1628
box -66 -43 162 897
use sky130_fd_sc_hvl__fill_1 FILLER_1_30
timestamp 1638025766
timestamp 1648946573
transform 1 0 3360 0 1 1628
box -66 -43 162 897
use sky130_fd_sc_hvl__decap_8 FILLER_2_0
timestamp 1648946573
transform 1 0 480 0 -1 3256
box -66 -43 834 897
use sky130_fd_sc_hvl__fill_2 FILLER_2_8
timestamp 1648946573
transform 1 0 1248 0 -1 3256
box -66 -43 258 897
use sky130_fd_sc_hvl__fill_1 FILLER_2_10
timestamp 1638025766
timestamp 1648946573
transform 1 0 1440 0 -1 3256
box -66 -43 162 897
use sky130_fd_sc_hvl__fill_1 FILLER_2_30
timestamp 1638025766
timestamp 1648946573
transform 1 0 3360 0 -1 3256
box -66 -43 162 897
use sky130_fd_sc_hvl__fill_2 FILLER_2_8
timestamp 1638025766
transform 1 0 1248 0 -1 3256
box -66 -43 258 897
use sky130_fd_sc_hvl__diode_2 ANTENNA_lvlshiftdown_A $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1638025766
transform 1 0 1536 0 -1 3256
box -66 -43 258 897
use sky130_fd_sc_hvl__decap_8 FILLER_2_0
timestamp 1638025766
transform 1 0 480 0 -1 3256
box -66 -43 834 897
use sky130_fd_sc_hvl__lsbufhv2lv_1 lvlshiftdown $PDKPATH/libs.ref/sky130_fd_sc_hvl/mag
timestamp 1638025766
timestamp 1648946573
transform 1 0 1728 0 1 1628
box -66 -43 1698 1671
<< labels >>
Expand Down
29 changes: 25 additions & 4 deletions openlane/caravel/config.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ set verilog_root $script_dir/../../verilog/
set lef_root $script_dir/../../lef/
set gds_root $script_dir/../../gds/

set mgmt_area_verilog_root $script_dir/../../../caravel_pico/verilog/
set mgmt_area_lef_root $script_dir/../../../caravel_pico/lef/
set mgmt_area_gds_root $script_dir/../../../caravel_pico/gds/
set mgmt_area_verilog_root $::env(MCW_ROOT)/verilog/
set mgmt_area_lef_root $::env(MCW_ROOT)/lef/
set mgmt_area_gds_root $::env(MCW_ROOT)/gds/

# Change if needed
set ::env(VERILOG_FILES) "\
Expand All @@ -48,6 +48,7 @@ set ::env(VERILOG_FILES_BLACKBOX) "\
$verilog_root/rtl/digital_pll.v \
$verilog_root/rtl/caravel_clocking.v \
$verilog_root/rtl/simple_por.v\
$verilog_root/rtl/spare_logic_block.v\
$verilog_root/rtl/xres_buf.v \
$mgmt_area_verilog_root/rtl/mgmt_core_wrapper.v \
"
Expand All @@ -64,6 +65,7 @@ set ::env(EXTRA_LEFS) "\
$lef_root/caravel_clocking.lef \
$lef_root/simple_por.lef\
$lef_root/xres_buf.lef\
$lef_root/spare_logic_block.lef\
$mgmt_area_lef_root/mgmt_core_wrapper.lef \
"

Expand Down Expand Up @@ -112,6 +114,8 @@ set ::env(GLB_RT_OVERFLOW_ITERS) 50
set ::env(GLB_RT_TILES) 30
set ::env(GLB_RT_MINLAYER) 2
set ::env(GLB_RT_MAXLAYER) 6
#set ::env(RT_MIN_LAYER) met1
#set ::env(RT_MAX_LAYER) met5

set ::env(GLB_RT_ADJUSTMENT) "0"
set ::env(GLB_RT_L1_ADJUSTMENT) "0.99"
Expand All @@ -120,6 +124,18 @@ set ::env(GLB_RT_L3_ADJUSTMENT) "0.15"
set ::env(GLB_RT_L4_ADJUSTMENT) "0.15"
set ::env(GLB_RT_L5_ADJUSTMENT) "0.15"
set ::env(GLB_RT_L6_ADJUSTMENT) "0"
#set ::env(GLB_RT_L1_ADJUSTMENT) "0.99"
#set ::env(GLB_RT_L2_ADJUSTMENT) "0"
#set ::env(GLB_RT_L3_ADJUSTMENT) "0"
#set ::env(GLB_RT_L4_ADJUSTMENT) "0"
#set ::env(GLB_RT_L5_ADJUSTMENT) "0"
#set ::env(GLB_RT_L6_ADJUSTMENT) "0"
#set ::env(GLB_RT_L1_ADJUSTMENT) "0"
#set ::env(GLB_RT_L2_ADJUSTMENT) "0"
#set ::env(GLB_RT_L3_ADJUSTMENT) "0"
#set ::env(GLB_RT_L4_ADJUSTMENT) "0"
#set ::env(GLB_RT_L5_ADJUSTMENT) "0"
#set ::env(GLB_RT_L6_ADJUSTMENT) "0"

# set ::env(ROUTING_OPT_ITERS) 7
# set ::env(GLB_RT_UNIDIRECTIONAL) 0
Expand All @@ -131,4 +147,9 @@ set ::env(LVS_INSERT_POWER_PINS) 0

set ::env(MAGIC_GENERATE_LEF) 0

set ::env(QUIT_ON_ILLEGAL_OVERLAPS) 0
set ::env(QUIT_ON_ILLEGAL_OVERLAPS) 0
set ::env(QUIT_ON_TR_DRC) 0
set ::env(QUIT_ON_LVS_ERROR) 0

#set ::env(TRACKS_INFO_FILE) $script_dir/tracks.info
#
101 changes: 57 additions & 44 deletions openlane/caravel/interactive.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,17 @@ set script_dir [file dirname [file normalize [info script]]]
set save_path $script_dir/../..

# FOR LVS AND CREATING PORT LABELS
prep -design $script_dir -tag caravel_lvs -overwrite
prep -design $script_dir -tag caravel_lvs -overwrite --verbose 2

set ::env(SYNTH_DEFINES) "USE_POWER_PINS"
verilog_elaborate
set ::env(CURRENT_SDC) $::env(BASE_SDC_FILE)
init_floorplan
file copy -force $::env(CURRENT_DEF) $::env(TMP_DIR)/lvs.def
file copy -force $::env(CURRENT_NETLIST) $::env(TMP_DIR)/lvs.v

# ACTUAL CHIP INTEGRATION
prep -design $script_dir -tag caravel -overwrite
prep -design $script_dir -tag caravel -overwrite

file copy $script_dir/runs/caravel_lvs/tmp/merged_unpadded.lef $::env(TMP_DIR)/lvs.lef
file copy $script_dir/runs/caravel_lvs/tmp/lvs.def $::env(TMP_DIR)/lvs.def
Expand All @@ -54,99 +55,103 @@ add_macro_placement rstb_level 708.550 235.440 S
add_macro_placement user_id_value 3283.120 440.630 N
add_macro_placement por 3250.730 234.721 MX
add_macro_placement pll 3140.730 404.721 N
add_macro_placement spare_logic\\\[0\\\] 443.16 1162.64 N
add_macro_placement spare_logic\\\[1\\\] 843.16 1162.64 N
add_macro_placement spare_logic\\\[2\\\] 3204.37 1102.96 N
add_macro_placement spare_logic\\\[3\\\] 2143.16 1162.64 N

add_macro_placement clocking 1028.730 27.440 N

add_macro_placement clocking 3133.820 316.420 N
#add_macro_placement clocking 1028.730 27.440 N
# west
set west_x 38.155
add_macro_placement "gpio_control_bidir_2\\\[2\\\]" $west_x 1013.000 R0
add_macro_placement "gpio_37_defaults" [expr $west_x + 3.6815559] [expr 1013.000 + 65] R0
add_macro_placement "gpio_defaults_block_37" [expr $west_x + 3.6815559] [expr 1013.000 + 65] R0

add_macro_placement "gpio_control_bidir_2\\\[1\\\]" $west_x 1229.000 R0
add_macro_placement "gpio_36_defaults" [expr $west_x + 3.6815559] [expr 1229.000 + 65] R0
add_macro_placement "gpio_defaults_block_36" [expr $west_x + 3.6815559] [expr 1229.000 + 65] R0

add_macro_placement "gpio_control_bidir_2\\\[0\\\]" $west_x 1445.000 R0
add_macro_placement "gpio_35_defaults" [expr $west_x + 3.6815559] [expr 1445.000 + 65] R0
add_macro_placement "gpio_defaults_block_35" [expr $west_x + 3.6815559] [expr 1445.000 + 65] R0

add_macro_placement "gpio_control_in_2\\\[15\\\]" $west_x 1661.000 R0
add_macro_placement "gpio_34_defaults" [expr $west_x + 3.6815559] [expr 1661.000 + 65] R0
add_macro_placement "gpio_defaults_block_34" [expr $west_x + 3.6815559] [expr 1661.000 + 65] R0

add_macro_placement "gpio_control_in_2\\\[14\\\]" $west_x 1877.000 R0
add_macro_placement "gpio_33_defaults" [expr $west_x + 3.6815559] [expr 1877.000 + 65] R0
add_macro_placement "gpio_defaults_block_33" [expr $west_x + 3.6815559] [expr 1877.000 + 65] R0

add_macro_placement "gpio_control_in_2\\\[13\\\]" $west_x 2093.000 R0
add_macro_placement "gpio_32_defaults" [expr $west_x + 3.6815559] [expr 2093.000 + 65] R0
add_macro_placement "gpio_defaults_block_32" [expr $west_x + 3.6815559] [expr 2093.000 + 65] R0

add_macro_placement "gpio_control_in_2\\\[12\\\]" $west_x 2731.000 R0
add_macro_placement "gpio_31_defaults" [expr $west_x + 3.6815559] [expr 2731.000 + 65] R0
add_macro_placement "gpio_defaults_block_31" [expr $west_x + 3.6815559] [expr 2731.000 + 65] R0

add_macro_placement "gpio_control_in_2\\\[11\\\]" $west_x 2947.000 R0
add_macro_placement "gpio_30_defaults" [expr $west_x + 3.6815559] [expr 2947.000 + 65] R0
add_macro_placement "gpio_defaults_block_30" [expr $west_x + 3.6815559] [expr 2947.000 + 65] R0
add_macro_placement "gpio_control_in_2\\\[10\\\]" $west_x 3163.000 R0
add_macro_placement "gpio_29_defaults" [expr $west_x + 3.6815559] [expr 3163.000 + 65] R0
add_macro_placement "gpio_defaults_block_29" [expr $west_x + 3.6815559] [expr 3163.000 + 65] R0
add_macro_placement "gpio_control_in_2\\\[9\\\]" $west_x 3379.000 R0
add_macro_placement "gpio_28_defaults" [expr $west_x + 3.6815559] [expr 3379.000 + 65] R0
add_macro_placement "gpio_defaults_block_28" [expr $west_x + 3.6815559] [expr 3379.000 + 65] R0
add_macro_placement "gpio_control_in_2\\\[8\\\]" $west_x 3595.000 R0
add_macro_placement "gpio_27_defaults" [expr $west_x + 3.6815559] [expr 3595.000 + 65] R0
add_macro_placement "gpio_defaults_block_27" [expr $west_x + 3.6815559] [expr 3595.000 + 65] R0
add_macro_placement "gpio_control_in_2\\\[7\\\]" $west_x 3811.000 R0
add_macro_placement "gpio_26_defaults" [expr $west_x + 3.6815559] [expr 3811.000 + 65] R0
add_macro_placement "gpio_defaults_block_26" [expr $west_x + 3.6815559] [expr 3811.000 + 65] R0
add_macro_placement "gpio_control_in_2\\\[6\\\]" $west_x 4027.000 R0
add_macro_placement "gpio_25_defaults" [expr $west_x + 3.6815559] [expr 4027.000 + 65] R0
add_macro_placement "gpio_defaults_block_25" [expr $west_x + 3.6815559] [expr 4027.000 + 65] R0
add_macro_placement "gpio_control_in_2\\\[5\\\]" $west_x 4656.000 R0
add_macro_placement "gpio_24_defaults" [expr $west_x + 3.6815559] [expr 4656.000 + 65] R0
add_macro_placement "gpio_defaults_block_24" [expr $west_x + 3.6815559] [expr 4656.000 + 65] R0

# north
set north_y 4980.385
add_macro_placement "gpio_control_in_2\\\[4\\\]" 486.000 $north_y R270
add_macro_placement "gpio_23_defaults" [expr 486.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_23" [expr 486.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_2\\\[3\\\]" 743.000 $north_y R270
add_macro_placement "gpio_22_defaults" [expr 743.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_22" [expr 743.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_2\\\[2\\\]" 1000.000 $north_y R270
add_macro_placement "gpio_21_defaults" [expr 1000.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_21" [expr 1000.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_2\\\[1\\\]" 1257.000 $north_y R270
add_macro_placement "gpio_20_defaults" [expr 1257.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_20" [expr 1257.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_2\\\[0\\\]" 1515.000 $north_y R270
add_macro_placement "gpio_19_defaults" [expr 1515.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_19" [expr 1515.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_1\\\[10\\\]" 1767.000 $north_y R270
add_macro_placement "gpio_18_defaults" [expr 1767.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_18" [expr 1767.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_1\\\[9\\\]" 2104.000 $north_y R270
add_macro_placement "gpio_17_defaults" [expr 2104.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_17" [expr 2104.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_1\\\[8\\\]" 2489.000 $north_y R270
add_macro_placement "gpio_16_defaults" [expr 2489.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_16" [expr 2489.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_control_in_1\\\[7\\\]" 2746.000 $north_y R270
add_macro_placement "gpio_15_defaults" [expr 2746.00 + 64.968717] [expr $north_y + 136.3215974] R270
add_macro_placement "gpio_defaults_block_15" [expr 2746.00 + 64.968717] [expr $north_y + 136.3215974] R270

# east
set east_x 3381.015
add_macro_placement "gpio_01_defaults\\\[0\\\]" [expr $east_x+136.420042674] 670.000 N
add_macro_placement "gpio_defaults_block_0\\\[0\\\]" [expr $east_x+136.320042674] 670.000 FN
add_macro_placement "gpio_control_bidir_1\\\[0\\\]" $east_x 605.000 MY
add_macro_placement "gpio_01_defaults\\\[1\\\]" [expr $east_x+136.420042674] 896.000 N
add_macro_placement "gpio_defaults_block_0\\\[1\\\]" [expr $east_x+136.320042674] 896.000 FN
add_macro_placement "gpio_control_bidir_1\\\[1\\\]" $east_x 831.000 MY
add_macro_placement "gpio_234_defaults\\\[0\\\]" [expr $east_x+136.420042674] 1121.000 N
add_macro_placement "gpio_defaults_block_2\\\[0\\\]" [expr $east_x+136.320042674] 1121.000 FN
add_macro_placement "gpio_control_in_1a\\\[0\\\]" $east_x 1056.000 MY
add_macro_placement "gpio_234_defaults\\\[1\\\]" [expr $east_x+136.420042674] 1347.000 N
add_macro_placement "gpio_defaults_block_2\\\[1\\\]" [expr $east_x+136.320042674] 1347.000 FN
add_macro_placement "gpio_control_in_1a\\\[1\\\]" $east_x 1282.000 MY
add_macro_placement "gpio_234_defaults\\\[2\\\]" [expr $east_x+136.420042674] 1572.000 N
add_macro_placement "gpio_defaults_block_2\\\[2\\\]" [expr $east_x+136.320042674] 1572.000 FN
add_macro_placement "gpio_control_in_1a\\\[2\\\]" $east_x 1507.000 MY
add_macro_placement "gpio_5_defaults" [expr $east_x+136.420042674] 1797.000 N
add_macro_placement "gpio_defaults_block_5" [expr $east_x+136.320042674] 1797.000 FN
add_macro_placement "gpio_control_in_1a\\\[3\\\]" $east_x 1732.000 MY
add_macro_placement "gpio_6_defaults" [expr $east_x+136.420042674] 2023.000 N
add_macro_placement "gpio_defaults_block_6" [expr $east_x+136.320042674] 2023.000 FN
add_macro_placement "gpio_control_in_1a\\\[4\\\]" $east_x 1958.000 MY
add_macro_placement "gpio_7_defaults" [expr $east_x+136.420042674] 2464.000 N
add_macro_placement "gpio_defaults_block_7" [expr $east_x+136.320042674] 2464.000 FN
add_macro_placement "gpio_control_in_1a\\\[5\\\]" $east_x 2399.000 MY
add_macro_placement "gpio_8_defaults" [expr $east_x+136.420042674] 2684.000 N
add_macro_placement "gpio_defaults_block_8" [expr $east_x+136.320042674] 2684.000 FN
add_macro_placement "gpio_control_in_1\\\[0\\\]" $east_x 2619.000 MY
add_macro_placement "gpio_9_defaults" [expr $east_x+136.420042674] 2909.000 N
add_macro_placement "gpio_defaults_block_9" [expr $east_x+136.320042674] 2909.000 FN
add_macro_placement "gpio_control_in_1\\\[1\\\]" $east_x 2844.000 MY
add_macro_placement "gpio_10_defaults" [expr $east_x+136.420042674] 3135.000 N
add_macro_placement "gpio_defaults_block_10" [expr $east_x+136.320042674] 3135.000 FN
add_macro_placement "gpio_control_in_1\\\[2\\\]" $east_x 3070.000 MY
add_macro_placement "gpio_11_defaults" [expr $east_x+136.420042674] [expr 3295.000+65] N
add_macro_placement "gpio_defaults_block_11" [expr $east_x+136.320042674] [expr 3295.000+65] FN
add_macro_placement "gpio_control_in_1\\\[3\\\]" $east_x 3295.000 MY
add_macro_placement "gpio_12_defaults" [expr $east_x+136.420042674] [expr 3521.000+65] N
add_macro_placement "gpio_defaults_block_12" [expr $east_x+136.320042674] [expr 3521.000+65] FN
add_macro_placement "gpio_control_in_1\\\[4\\\]" $east_x 3521.000 MY
add_macro_placement "gpio_13_defaults" [expr $east_x+136.420042674] [expr 3746.000+65] N
add_macro_placement "gpio_defaults_block_13" [expr $east_x+136.320042674] [expr 3746.000+65] FN
add_macro_placement "gpio_control_in_1\\\[5\\\]" $east_x 3746.000 MY
add_macro_placement "gpio_14_defaults" [expr $east_x+136.420042674] [expr 4638.000+65] N
add_macro_placement "gpio_defaults_block_14" [expr $east_x+136.320042674] [expr 4638.000+65] FN
add_macro_placement "gpio_control_in_1\\\[6\\\]" $east_x 4638.000 MY

manual_macro_placement f
Expand All @@ -164,16 +169,19 @@ set user_project_wrapper_core_ring_obs [list [expr $mprj_x-43.63] [expr $mprj_y-
# add routing obstructions on the management area
set mgmt_area_obs [list $soc_x $soc_y [expr $soc_x+2620] [expr $soc_y+820]]

set routing_vio_obs [list 106.26803 2098.54857 108.85254 2096.63000]

set ::env(GLB_RT_OBS) "
met1 $user_project_wrapper_obs,\
met2 $user_project_wrapper_obs,\
met3 $user_project_wrapper_obs,\
met4 $user_project_wrapper_core_ring_obs,\
met4 $mgmt_area_obs,\
met5 $user_project_wrapper_core_ring_obs,\
met5 $mgmt_area_obs"
met5 $mgmt_area_obs,\
met3 $routing_vio_obs"

try_catch python3 $::env(SCRIPTS_DIR)/add_def_obstructions.py \
try_catch openroad -python $::env(SCRIPTS_DIR)/add_def_obstructions.py \
--input-def $::env(CURRENT_DEF) \
--lef $::env(MERGED_LEF) \
--obstructions $::env(GLB_RT_OBS) \
Expand Down Expand Up @@ -204,6 +212,11 @@ set_def [file rootname $::env(CURRENT_DEF)].obs.def
# -layerNames "li1 met1 met2 met3 met4 met5"

li1_hack_start
save_state
puts "WARNING: Patching the def file $::env(CURRENT_DEF) with $script_dir/power_routing_def.patch"
puts "WARNING: this is a workaround that should be properly handled in the future"
puts "WARNING: this is for very specific versions"
exec patch $::env(CURRENT_DEF) < $script_dir/power_routing_def.patch
global_routing
detailed_routing
li1_hack_end
Expand Down
Loading