Skip to content

Commit c87b79b

Browse files
committed
finishing: update PDK to newest version, adapt flow to std cells r0.1.3
1 parent 125bcb4 commit c87b79b

File tree

5 files changed

+40
-38
lines changed

5 files changed

+40
-38
lines changed

ihp13/pdk

Submodule pdk updated 972 files

openroad/scripts/chip.tcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ utl::report "Repair clock inverters"
182182
repair_clock_inverters
183183

184184
utl::report "Clock Tree Synthesis"
185-
set_wire_rc -clock -layer Metal4
185+
set_wire_rc -clock -layer Metal3
186186
clock_tree_synthesis -buf_list $ctsBuf -root_buf $ctsBufRoot \
187187
-sink_clustering_enable \
188188
-obstruction_aware \

openroad/scripts/floorplan.tcl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ set core_topY [lindex $coreArea 3]
8888
# We need to define the metal tracks
8989
# (where the wires on each metal should go)
9090
# this function is defined in init_tech.tcl
91+
utl::report "Create Tracks"
9192
makeTracks
9293

9394
# the height of a standard cell, useful to align things
@@ -104,8 +105,8 @@ source src/instances.tcl
104105
# Placing
105106
##########################################################################
106107
# use these for macro placement
107-
set floorPaddingX 20.0
108-
set floorPaddingY 20.0
108+
set floorPaddingX 16.0
109+
set floorPaddingY 16.0
109110
set floor_leftX [expr $core_leftX + $floorPaddingX]
110111
set floor_bottomY [expr $core_bottomY + $floorPaddingY]
111112
set floor_rightX [expr $core_rightX - $floorPaddingX]
@@ -126,4 +127,4 @@ set Y [expr $Y - $RamSize256x64_H - 15]
126127
placeInstance $bank1_sram0 $X $Y R0
127128

128129

129-
cut_rows -halo_width_x 2 -halo_width_y 1
130+
cut_rows -halo_width_x 5 -halo_width_y 2

openroad/scripts/init_tech.tcl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ read_lef ${pdk_cells_lef}/sg13g2_stdcell.lef
6262
read_lef ${pdk_io_lef}/sg13g2_io.lef
6363
read_lef ${pdk_pad_lef}/bondpad_70x70.lef
6464

65-
foreach file [glob -directory $pdk_sram_lef *.lef] {
65+
foreach file [glob -directory $pdk_sram_lef RM_IHPSG13*.lef] {
6666
read_lef "$file"
6767
}
6868

@@ -79,11 +79,11 @@ set dont_use_cells sg13g2_IOPad*
7979

8080
proc makeTracks {} {
8181
utl::report "Metal Tracks"
82-
make_tracks Metal1 -x_offset 0 -x_pitch 0.48 -y_offset 0 -y_pitch 0.48
83-
make_tracks Metal2 -x_offset 0 -x_pitch 0.42 -y_offset 0 -y_pitch 0.42
84-
make_tracks Metal3 -x_offset 0 -x_pitch 0.48 -y_offset 0 -y_pitch 0.48
85-
make_tracks Metal4 -x_offset 0 -x_pitch 0.42 -y_offset 0 -y_pitch 0.42
86-
make_tracks Metal5 -x_offset 0 -x_pitch 0.48 -y_offset 0 -y_pitch 0.48
87-
make_tracks TopMetal1 -x_offset 1.46 -x_pitch 2.28 -y_offset 1.46 -y_pitch 2.28
82+
make_tracks Metal1 -x_offset 0 -x_pitch 0.42 -y_offset 0 -y_pitch 0.42
83+
make_tracks Metal2 -x_offset 0 -x_pitch 0.48 -y_offset 0 -y_pitch 0.48
84+
make_tracks Metal3 -x_offset 0 -x_pitch 0.42 -y_offset 0 -y_pitch 0.42
85+
make_tracks Metal4 -x_offset 0 -x_pitch 0.48 -y_offset 0 -y_pitch 0.48
86+
make_tracks Metal5 -x_offset 0 -x_pitch 0.42 -y_offset 0 -y_pitch 0.42
87+
make_tracks TopMetal1 -x_offset 1.64 -x_pitch 2.28 -y_offset 1.64 -y_pitch 2.28
8888
make_tracks TopMetal2 -x_offset 2.00 -x_pitch 4.00 -y_offset 2.00 -y_pitch 4.00
8989
}

openroad/scripts/power_grid.tcl

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

39-
# TopMetal2 Core Power Grid
40-
set tpg2Width 6; # arbitrary number
41-
set tpg2Pitch 204; # multiple of pad-pitch
42-
set tpg2Spacing 60; # big enough to skip over a pad
43-
set tpg2Offset 97; # offset from leftX of core
41+
# TopMetal1 Core Power Grid
42+
set tpg1Width 3; # arbitrary number
43+
set tpg1Pitch 228; # multiple of pad-pitch
44+
set tpg1Spacing 60; # big enough to skip over a pad
45+
set tpg1Offset 97; # offset from leftX of core
4446

4547
# Macro Power Rings -> M3 and M2
4648
## Spacing must be larger than pitch of M2/M3
@@ -52,7 +54,7 @@ set mprOffsetX 2.4
5254
set mprOffsetY 0.6
5355

5456
# macro power grid (stripes on TopMetal1/TopMetal2 depending on orientation)
55-
set mpgWidth 6
57+
set mpgWidth 3
5658
set mpgSpacing 4
5759
set mpgOffset 20; # arbitrary
5860

@@ -83,18 +85,18 @@ proc sram_power { name macro } {
8385
set stripe_dist [expr $stripe_dist/2]
8486
}
8587

86-
add_pdn_stripe -grid ${name}_grid -layer {TopMetal1} -width $mpgWidth -spacing $mpgSpacing \
88+
add_pdn_stripe -grid ${name}_grid -layer {Metal5} -width $mpgWidth -spacing $mpgSpacing \
8789
-pitch $stripe_dist -offset $mpgOffset -extend_to_core_ring -starts_with POWER -snap_to_grid
8890

8991
# Connection of Macro Power Ring to standard-cell rails
90-
add_pdn_connect -grid ${name}_grid -layers {Metal3 Metal1}
92+
add_pdn_connect -grid ${name}_grid -layers {Metal4 Metal2}
93+
add_pdn_connect -grid ${name}_grid -layers {Metal4 Metal1}
9194
# Connection of Stripes on Macro to Macro Power Ring
92-
add_pdn_connect -grid ${name}_grid -layers {TopMetal1 Metal3}
93-
add_pdn_connect -grid ${name}_grid -layers {TopMetal1 Metal4}
95+
add_pdn_connect -grid ${name}_grid -layers {Metal5 Metal4}
9496
# Connection of Stripes on Macro to Macro Power Pins
9597
# add_pdn_connect -grid ${name}_grid -layers {TopMetal1 Metal4}
9698
# Connection of Stripes on Macro to Core Power Stripes
97-
add_pdn_connect -grid ${name}_grid -layers {TopMetal2 TopMetal1}
99+
add_pdn_connect -grid ${name}_grid -layers {TopMetal1 Metal5}
98100
}
99101

100102

@@ -112,28 +114,27 @@ add_pdn_ring -grid {core_grid} \
112114
-connect_to_pad_layers TopMetal2
113115

114116
# M1 Standardcell Rows (tracks)
115-
add_pdn_stripe -grid {core_grid} -layer {Metal1} -width {0.44} -offset {0} \
117+
add_pdn_stripe -grid {core_grid} -layer {Metal1} -width {0.32} -offset {0} \
116118
-followpins -extend_to_core_ring
117119

118120

119121
sram_power "sram_256x64" "RM_IHPSG13_1P_256x64_c2_bm_bist"
120122

121123
# Top power grid
122-
# Top 2 Stripe
123-
add_pdn_stripe -grid {core_grid} -layer {TopMetal2} -width $tpg2Width \
124-
-pitch $tpg2Pitch -spacing $tpg2Spacing -offset $tpg2Offset \
125-
-extend_to_core_ring -snap_to_grid -number_of_straps 7
124+
# Top 1 Stripe
125+
add_pdn_stripe -grid {core_grid} -layer {TopMetal1} -width $tpg1Width \
126+
-pitch $tpg1Pitch -spacing $tpg1Spacing -offset $tpg1Offset \
127+
-extend_to_core_ring -snap_to_grid -number_of_straps 7
126128

127129
# "The add_pdn_connect command is used to define which layers in the power grid are to be connected together.
128130
# During power grid generation, vias will be added for overlapping power nets and overlapping ground nets."
129-
# M1 is declared vertical but tracks still horizontal
130-
# vertical TopMetal2 to below horizonals (M1 has horizontal power tracks)
131-
add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal1}
132-
add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal2}
133-
add_pdn_connect -grid {core_grid} -layers {TopMetal2 Metal4}
134-
# add_pdn_connect -grid {core_grid} -layers {TopMetal2 TopMetal1}
131+
# vertical TopMetal1 to below horizonals (M1 has horizontal power tracks)
132+
add_pdn_connect -grid {core_grid} -layers {TopMetal1 Metal1}
133+
add_pdn_connect -grid {core_grid} -layers {TopMetal1 Metal3}
134+
add_pdn_connect -grid {core_grid} -layers {TopMetal1 Metal5}
135135
# power ring to standard cell rails
136136
add_pdn_connect -grid {core_grid} -layers {Metal3 Metal2}
137+
add_pdn_connect -grid {core_grid} -layers {Metal2 Metal1}
137138

138139

139140
##########################################################################

0 commit comments

Comments
 (0)