|
| 1 | +set IO_OFFSET [expr { $::env(IO_BONDPAD_SIZE) + $::env(IO_SEALRING_OFFSET) }] |
| 2 | + |
| 3 | +# padframe core power pins |
| 4 | +add_global_connection -net {VDD} -pin_pattern {^vdd$} -power |
| 5 | +add_global_connection -net {VSS} -pin_pattern {^vss$} -ground |
| 6 | + |
| 7 | +# padframe io power pins |
| 8 | +add_global_connection -net {IOVDD} -pin_pattern {^iovdd$} -power |
| 9 | +add_global_connection -net {IOVSS} -pin_pattern {^iovss$} -ground |
| 10 | + |
| 11 | +make_fake_io_site -name IOLibSite -width 1 -height $::env(IO_LENGTH) |
| 12 | +make_fake_io_site -name IOLibCSite -width $::env(IO_LENGTH) -height $::env(IO_LENGTH) |
| 13 | + |
| 14 | +make_io_sites \ |
| 15 | + -horizontal_site IOLibSite \ |
| 16 | + -vertical_site IOLibSite \ |
| 17 | + -corner_site IOLibCSite \ |
| 18 | + -offset $IO_OFFSET |
| 19 | + |
| 20 | +# Place IO cells |
| 21 | +place_pads -row IO_NORTH $::env(IO_NORTH_PINS) |
| 22 | +place_pads -row IO_EAST $::env(IO_EAST_PINS) |
| 23 | +place_pads -row IO_SOUTH $::env(IO_SOUTH_PINS) |
| 24 | +place_pads -row IO_WEST $::env(IO_WEST_PINS) |
| 25 | + |
| 26 | +# Place Corner Cells and Filler |
| 27 | +place_corners sg13g2_Corner |
| 28 | + |
| 29 | +set iofill [regexp -all -inline {\S+} $::env(IO_FILLER_CELLS)] |
| 30 | + |
| 31 | +place_io_fill -row IO_NORTH {*}$iofill |
| 32 | +place_io_fill -row IO_EAST {*}$iofill |
| 33 | +place_io_fill -row IO_SOUTH {*}$iofill |
| 34 | +place_io_fill -row IO_WEST {*}$iofill |
| 35 | + |
| 36 | +connect_by_abutment |
| 37 | + |
| 38 | +set IO_BONDPAD_Y [expr { double($::env(IO_BONDPAD_SIZE)) * -1.0 }] |
| 39 | +place_bondpad -bond $::env(IO_BONDPAD_NAME) sg13g2_IOPad* -offset "5.0 $IO_BONDPAD_Y" |
| 40 | + |
| 41 | +remove_io_rows |
0 commit comments