Skip to content

Commit 25e800f

Browse files
committed
flow: platforms: ihp-sg13g2: Generic pad.tcl
Provide a generic pad.tcl script to create a padfram for the IHP SG13G2 platform. The design speicifc config.mk has to define all pins for the north, south, east and west bank. This padframe will the 70x70 bondpad by default, but can use another bondpad via IO_BONDPAD_NAME and IO_BONDPAD_SIZE. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
1 parent 0587ae6 commit 25e800f

2 files changed

Lines changed: 63 additions & 0 deletions

File tree

flow/platforms/ihp-sg13g2/config.mk

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,28 @@ export TAPCELL_TCL ?= $(PLATFORM_DIR)/tapcell.tcl
101101

102102
export MACRO_PLACE_HALO ?= 40 40
103103

104+
# Will be placed left to right
105+
export IO_NORTH_PINS ??=
106+
export IO_SOUTH_PINS ??=
107+
# Will be placed bottom to top
108+
export IO_EAST_PINS ??=
109+
export IO_WEST_PINS ??=
110+
111+
# Variables for bondpad
112+
export IO_BONDPAD_SIZE ?= 70
113+
export IO_BONDPAD_NAME ?= bondpad_70x70
114+
# Variables for padframe
115+
export IO_LENGTH ?= 180
116+
export IO_WIDTH ?= 80
117+
export IO_SEALRING_OFFSET ?= 70
118+
export IO_FILLER_CELLS ?= \
119+
sg13g2_Filler10000 \
120+
sg13g2_Filler4000 \
121+
sg13g2_Filler2000 \
122+
sg13g2_Filler1000 \
123+
sg13g2_Filler400 \
124+
sg13g2_Filler200
125+
104126
#---------------------------------------------------------
105127
# Place
106128
# --------------------------------------------------------

flow/platforms/ihp-sg13g2/pad.tcl

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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

Comments
 (0)