Skip to content

Commit c673f61

Browse files
authored
Merge pull request #3331 from jeffng-or/switch-to-source_env_var_if_exists
Switched to use source_env_var_if_exists
2 parents bd37bc6 + 6cb96d4 commit c673f61

File tree

4 files changed

+127
-67
lines changed

4 files changed

+127
-67
lines changed

flow/designs/ihp-sg13g2/i2c-gpio-expander/pad.tcl

Lines changed: 122 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ set BONDPAD_SIZE 70
44
set SEALRING_OFFSET 70
55
set IO_OFFSET [expr { $BONDPAD_SIZE + $SEALRING_OFFSET }]
66

7-
proc calc_horizontal_pad_location { index total } {
8-
global IO_LENGTH
9-
global IO_WIDTH
10-
global BONDPAD_SIZE
11-
global SEALRING_OFFSET
12-
7+
proc calc_horizontal_pad_location { index total IO_LENGTH IO_WIDTH BONDPAD_SIZE SEALRING_OFFSET } {
138
set DIE_WIDTH [expr { [lindex $::env(DIE_AREA) 2] - [lindex $::env(DIE_AREA) 0] }]
149
set PAD_OFFSET [expr { $IO_LENGTH + $BONDPAD_SIZE + $SEALRING_OFFSET }]
1510
set PAD_AREA_WIDTH [expr { $DIE_WIDTH - ($PAD_OFFSET * 2) }]
@@ -21,12 +16,7 @@ proc calc_horizontal_pad_location { index total } {
2116
}]
2217
}
2318

24-
proc calc_vertical_pad_location { index total } {
25-
global IO_LENGTH
26-
global IO_WIDTH
27-
global BONDPAD_SIZE
28-
global SEALRING_OFFSET
29-
19+
proc calc_vertical_pad_location { index total IO_LENGTH IO_WIDTH BONDPAD_SIZE SEALRING_OFFSET } {
3020
set DIE_HEIGHT [expr { [lindex $::env(DIE_AREA) 3] - [lindex $::env(DIE_AREA) 1] }]
3121
set PAD_OFFSET [expr { $IO_LENGTH + $BONDPAD_SIZE + $SEALRING_OFFSET }]
3222
set PAD_AREA_HEIGHT [expr { $DIE_HEIGHT - ($PAD_OFFSET * 2) }]
@@ -51,61 +41,141 @@ make_io_sites \
5141

5242
# Place Pads
5343
# IO pin io_clock
54-
place_pad -row IO_SOUTH -location [calc_horizontal_pad_location 0 5] \
55-
{sg13g2_IOPad_io_clock} -master sg13g2_IOPadIn
44+
place_pad \
45+
-row IO_SOUTH \
46+
-location [calc_horizontal_pad_location \
47+
0 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
48+
{sg13g2_IOPad_io_clock} \
49+
-master sg13g2_IOPadIn
5650
# IO pin io_reset
57-
place_pad -row IO_SOUTH -location [calc_horizontal_pad_location 1 5] \
58-
{sg13g2_IOPad_io_reset} -master sg13g2_IOPadIn
51+
place_pad \
52+
-row IO_SOUTH \
53+
-location [calc_horizontal_pad_location \
54+
1 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
55+
{sg13g2_IOPad_io_reset} \
56+
-master sg13g2_IOPadIn
5957
# IO pin io_i2c_scl
60-
place_pad -row IO_SOUTH -location [calc_horizontal_pad_location 2 5] \
61-
{sg13g2_IOPad_io_i2c_scl} -master sg13g2_IOPadInOut4mA
58+
place_pad \
59+
-row IO_SOUTH \
60+
-location [calc_horizontal_pad_location \
61+
2 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
62+
{sg13g2_IOPad_io_i2c_scl} \
63+
-master sg13g2_IOPadInOut4mA
6264
# IO pin io_i2c_sda
63-
place_pad -row IO_SOUTH -location [calc_horizontal_pad_location 3 5] \
64-
{sg13g2_IOPad_io_i2c_sda} -master sg13g2_IOPadInOut4mA
65+
place_pad \
66+
-row IO_SOUTH \
67+
-location [calc_horizontal_pad_location \
68+
3 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
69+
{sg13g2_IOPad_io_i2c_sda} \
70+
-master sg13g2_IOPadInOut4mA
6571
# IO pin io_i2c_interrupt
66-
place_pad -row IO_SOUTH -location [calc_horizontal_pad_location 4 5] \
67-
{sg13g2_IOPad_io_i2c_interrupt} -master sg13g2_IOPadOut4mA
68-
place_pad -row IO_EAST -location [calc_vertical_pad_location 0 5] \
69-
{sg13g2_IOPadVdd_east_0} -master sg13g2_IOPadVdd
70-
place_pad -row IO_EAST -location [calc_vertical_pad_location 1 5] \
71-
{sg13g2_IOPadVss_east_1} -master sg13g2_IOPadVss
72+
place_pad \
73+
-row IO_SOUTH \
74+
-location [calc_horizontal_pad_location \
75+
4 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
76+
{sg13g2_IOPad_io_i2c_interrupt} \
77+
-master sg13g2_IOPadOut4mA
78+
place_pad \
79+
-row IO_EAST \
80+
-location [calc_vertical_pad_location \
81+
0 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
82+
{sg13g2_IOPadVdd_east_0} \
83+
-master sg13g2_IOPadVdd
84+
place_pad \
85+
-row IO_EAST \
86+
-location [calc_vertical_pad_location \
87+
1 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
88+
{sg13g2_IOPadVss_east_1} \
89+
-master sg13g2_IOPadVss
7290
# IO pin io_address_0
73-
place_pad -row IO_EAST -location [calc_vertical_pad_location 2 5] \
74-
{sg13g2_IOPad_io_address_0} -master sg13g2_IOPadIn
91+
place_pad \
92+
-row IO_EAST \
93+
-location [calc_vertical_pad_location \
94+
2 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
95+
{sg13g2_IOPad_io_address_0} \
96+
-master sg13g2_IOPadIn
7597
# IO pin io_address_1
76-
place_pad -row IO_EAST -location [calc_vertical_pad_location 3 5] \
77-
{sg13g2_IOPad_io_address_1} -master sg13g2_IOPadIn
98+
place_pad \
99+
-row IO_EAST \
100+
-location [calc_vertical_pad_location \
101+
3 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
102+
{sg13g2_IOPad_io_address_1} \
103+
-master sg13g2_IOPadIn
78104
# IO pin io_address_2
79-
place_pad -row IO_EAST -location [calc_vertical_pad_location 4 5] \
80-
{sg13g2_IOPad_io_address_2} -master sg13g2_IOPadIn
105+
place_pad \
106+
-row IO_EAST \
107+
-location [calc_vertical_pad_location \
108+
4 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
109+
{sg13g2_IOPad_io_address_2} \
110+
-master sg13g2_IOPadIn
81111
# IO pin io_gpio_0
82-
place_pad -row IO_NORTH -location [calc_horizontal_pad_location 0 5] \
83-
{sg13g2_IOPad_io_gpio_0} -master sg13g2_IOPadInOut16mA
112+
place_pad \
113+
-row IO_NORTH \
114+
-location [calc_horizontal_pad_location \
115+
0 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
116+
{sg13g2_IOPad_io_gpio_0} \
117+
-master sg13g2_IOPadInOut16mA
84118
# IO pin io_gpio_1
85-
place_pad -row IO_NORTH -location [calc_horizontal_pad_location 1 5] \
86-
{sg13g2_IOPad_io_gpio_1} -master sg13g2_IOPadInOut16mA
119+
place_pad \
120+
-row IO_NORTH \
121+
-location [calc_horizontal_pad_location \
122+
1 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
123+
{sg13g2_IOPad_io_gpio_1} \
124+
-master sg13g2_IOPadInOut16mA
87125
# IO pin io_gpio_2
88-
place_pad -row IO_NORTH -location [calc_horizontal_pad_location 2 5] \
89-
{sg13g2_IOPad_io_gpio_2} -master sg13g2_IOPadInOut16mA
126+
place_pad \
127+
-row IO_NORTH \
128+
-location [calc_horizontal_pad_location \
129+
2 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
130+
{sg13g2_IOPad_io_gpio_2} \
131+
-master sg13g2_IOPadInOut16mA
90132
# IO pin io_gpio_3
91-
place_pad -row IO_NORTH -location [calc_horizontal_pad_location 3 5] \
92-
{sg13g2_IOPad_io_gpio_3} -master sg13g2_IOPadInOut16mA
133+
place_pad \
134+
-row IO_NORTH \
135+
-location [calc_horizontal_pad_location \
136+
3 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
137+
{sg13g2_IOPad_io_gpio_3} \
138+
-master sg13g2_IOPadInOut16mA
93139
# IO pin io_gpio_4
94-
place_pad -row IO_NORTH -location [calc_horizontal_pad_location 4 5] \
95-
{sg13g2_IOPad_io_gpio_4} -master sg13g2_IOPadInOut16mA
140+
place_pad \
141+
-row IO_NORTH \
142+
-location [calc_horizontal_pad_location \
143+
4 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
144+
{sg13g2_IOPad_io_gpio_4} \
145+
-master sg13g2_IOPadInOut16mA
96146
# IO pin io_gpio_5
97-
place_pad -row IO_WEST -location [calc_vertical_pad_location 0 5] \
98-
{sg13g2_IOPad_io_gpio_5} -master sg13g2_IOPadInOut16mA
147+
place_pad \
148+
-row IO_WEST \
149+
-location [calc_vertical_pad_location \
150+
0 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
151+
{sg13g2_IOPad_io_gpio_5} \
152+
-master sg13g2_IOPadInOut16mA
99153
# IO pin io_gpio_6
100-
place_pad -row IO_WEST -location [calc_vertical_pad_location 1 5] \
101-
{sg13g2_IOPad_io_gpio_6} -master sg13g2_IOPadInOut16mA
154+
place_pad \
155+
-row IO_WEST \
156+
-location [calc_vertical_pad_location \
157+
1 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
158+
{sg13g2_IOPad_io_gpio_6} \
159+
-master sg13g2_IOPadInOut16mA
102160
# IO pin io_gpio_7
103-
place_pad -row IO_WEST -location [calc_vertical_pad_location 2 5] \
104-
{sg13g2_IOPad_io_gpio_7} -master sg13g2_IOPadInOut16mA
105-
place_pad -row IO_WEST -location [calc_vertical_pad_location 3 5] \
106-
{sg13g2_IOPadIOVss_west_3} -master sg13g2_IOPadIOVss
107-
place_pad -row IO_WEST -location [calc_vertical_pad_location 4 5] \
108-
{sg13g2_IOPadIOVdd_west_4} -master sg13g2_IOPadIOVdd
161+
place_pad \
162+
-row IO_WEST \
163+
-location [calc_vertical_pad_location \
164+
2 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
165+
{sg13g2_IOPad_io_gpio_7} \
166+
-master sg13g2_IOPadInOut16mA
167+
place_pad \
168+
-row IO_WEST \
169+
-location [calc_vertical_pad_location \
170+
3 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
171+
{sg13g2_IOPadIOVss_west_3} \
172+
-master sg13g2_IOPadIOVss
173+
place_pad \
174+
-row IO_WEST \
175+
-location [calc_vertical_pad_location \
176+
4 5 $IO_LENGTH $IO_WIDTH $BONDPAD_SIZE $SEALRING_OFFSET] \
177+
{sg13g2_IOPadIOVdd_west_4} \
178+
-master sg13g2_IOPadIOVdd
109179
# Place Corner Cells and Filler
110180
place_corners sg13g2_Corner
111181

flow/scripts/floorplan.tcl

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,7 @@ if { [env_var_exists_and_non_empty MAKE_TRACKS] } {
9393
make_tracks
9494
}
9595

96-
if { [env_var_exists_and_non_empty FOOTPRINT_TCL] } {
97-
log_cmd source $::env(FOOTPRINT_TCL)
98-
}
96+
source_env_var_if_exists FOOTPRINT_TCL
9997

10098
# This needs to come before any call to remove_buffers. You could have one
10199
# tie driving multiple buffers that drive multiple outputs.
@@ -121,14 +119,8 @@ report_units
121119
report_units_metric
122120
report_metrics 2 "floorplan final" false false
123121

124-
if { [env_var_exists_and_non_empty POST_FLOORPLAN_TCL] } {
125-
log_cmd source $::env(POST_FLOORPLAN_TCL)
126-
}
127-
128-
129-
if { [env_var_exists_and_non_empty IO_CONSTRAINTS] } {
130-
log_cmd source $::env(IO_CONSTRAINTS)
131-
}
122+
source_env_var_if_exists POST_FLOORPLAN_TCL
123+
source_env_var_if_exists IO_CONSTRAINTS
132124

133125
write_db $::env(RESULTS_DIR)/2_1_floorplan.odb
134126
write_sdc -no_timestamp $::env(RESULTS_DIR)/2_1_floorplan.sdc

flow/scripts/synth_canonicalize.tcl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ dict for {key value} [env_var_or_empty VERILOG_TOP_PARAMS] {
88

99
hierarchy -check -top $::env(DESIGN_NAME)
1010

11-
if { [env_var_exists_and_non_empty SYNTH_CANONICALIZE_TCL] } {
12-
log_cmd source $::env(SYNTH_CANONICALIZE_TCL)
13-
}
11+
source_env_var_if_exists SYNTH_CANONICALIZE_TCL
1412

1513
# Get rid of unused modules
1614
opt_clean -purge

flow/scripts/util.tcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,6 @@ proc place_density_with_lb_addon { } {
216216

217217
proc source_env_var_if_exists { env_var } {
218218
if { [env_var_exists_and_non_empty $env_var] } {
219-
source $::env($env_var)
219+
log_cmd source $::env($env_var)
220220
}
221221
}

0 commit comments

Comments
 (0)