Skip to content

Commit 7a08cfe

Browse files
committed
openroad: rework floorplan and padring
- move die size def to floorplan.tcl - move bondpads into OpenROAD die area
1 parent 762875c commit 7a08cfe

File tree

4 files changed

+152
-145
lines changed

4 files changed

+152
-145
lines changed

openroad/scripts/chip.tcl

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,6 @@ report_checks -unconstrained -format end -no_line_splits >> ${report_dir}/${log_
4848
report_checks -format end -no_line_splits >> ${report_dir}/${log_id_str}_${proj_name}_checks.rpt
4949
report_checks -format end -no_line_splits >> ${report_dir}/${log_id_str}_${proj_name}_checks.rpt
5050

51-
# Size of the chip
52-
set chipW 1760.0
53-
set chipH 1760.0
54-
55-
# thickness of annular ring for pads (length of a pad)
56-
set padRing 180.0
57-
set coreMargin [expr $padRing + 35]; # space for power ring
58-
59-
utl::report "Initialize Chip"
60-
initialize_floorplan -die_area "0 0 $chipW $chipH" \
61-
-core_area "$coreMargin $coreMargin [expr $chipW-$coreMargin] [expr $chipH-$coreMargin]" \
62-
-site "CoreSite"
63-
64-
6551
utl::report "Connect global nets (power)"
6652
source scripts/power_connect.tcl
6753

openroad/scripts/floorplan.tcl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,36 @@ foreach inst $insts {
2626
}
2727
}
2828

29+
##########################################################################
30+
# Die and Core Area
31+
##########################################################################
32+
# Dimensions: [um]
33+
# final chip size (4sqmm) 2000.0 x 2000.0
34+
# seal ring thickness 35.0 , 35.0 x2
35+
# bonding pad 70.0 , 70.0 x2
36+
# io cell depth 180.0 , 180.0 x2
37+
# ---------------------------------------
38+
# -> OR die area 1930.0 x 1930.0
39+
# -> OR core area 1430.0 x 1430.0
40+
# The sealring is added after OpenROAD
41+
# hence the OR die area is the final chip size minus the sealring thickness on each side
42+
43+
set chipH 1930; # OR die height (top to bottom)
44+
set chipW 1930; # OR die width (left to right)
45+
set padD 180; # pad depth (edge to core)
46+
set padW 80; # pad width (beachfront)
47+
set padBond 70; # bonding pad size
48+
set powerRing 80; # reserved space for power ring
49+
50+
# starting from the outside and working towards the core area on each side
51+
set coreMargin [expr {$padD + $padBond + $powerRing}];
52+
53+
utl::report "Initialize Chip"
54+
# coordinates are lower-left x and y, upper-right x and y
55+
initialize_floorplan -die_area "0 0 $chipW $chipH" \
56+
-core_area "$coreMargin $coreMargin [expr $chipW-$coreMargin] [expr $chipH-$coreMargin]" \
57+
-site "CoreSite"
58+
2959
##########################################################################
3060
# Pads/IOs
3161
##########################################################################

openroad/scripts/power_grid.tcl

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,12 @@ if {[info exists power_grid_defined]} {
2929
## Power settings
3030
##########################################################################
3131
# Core Power Ring
32-
## Space between pads and core -> used for power ring
33-
set PowRingSpace 35
32+
## Offset from core to power ring
33+
set pgcrOffset 2
3434
## Spacing must meet TM2 rules
3535
set pgcrSpacing 6
3636
## Width must meet TM2 rules
3737
set pgcrWidth 10
38-
## Offset from core to power ring
39-
set pgcrOffset [expr ($PowRingSpace - $pgcrSpacing - 2 * $pgcrWidth) / 2]
4038

4139
# TopMetal2 Core Power Grid
4240
set tpg2Width 6; # arbitrary number
@@ -108,7 +106,7 @@ add_pdn_ring -grid {core_grid} \
108106
-layer {TopMetal1 TopMetal2} \
109107
-widths "$pgcrWidth $pgcrWidth" \
110108
-spacings "$pgcrSpacing $pgcrSpacing" \
111-
-pad_offsets "6 6" \
109+
-core_offsets "$pgcrOffset $pgcrOffset" \
112110
-add_connect \
113111
-connect_to_pads \
114112
-connect_to_pad_layers TopMetal2
@@ -135,7 +133,6 @@ add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal2}
135133
add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal4}
136134
# add_pdn_connect -grid {core_grid} -layers {TopMetal2 TopMetal1}
137135
# power ring to standard cell rails
138-
add_pdn_connect -grid {core_grid} -layers {Metal3 Metal1}
139136
add_pdn_connect -grid {core_grid} -layers {Metal3 Metal2}
140137

141138

0 commit comments

Comments
 (0)