Skip to content

Commit 72a1267

Browse files
authored
Merge pull request #2328 from jeffng-or/fill-tap-cell-optional
make fill and tap cell insertion optional
2 parents 84faec8 + 4fd2d61 commit 72a1267

File tree

14 files changed

+53
-38
lines changed

14 files changed

+53
-38
lines changed

docs/user/FlowVariables.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ Note:
7272
| `PDN_TCL` | ?= | ?= | ?= | ?= | ?= |
7373
| `IO_PLACER_H` | = | = | = | = | ?= |
7474
| `IO_PLACER_V` | = | = | = | = | ?= |
75+
| `FILL_CELLS` | = | = | = | = | = |
7576
| Placement | | | | | |
7677
| `CELL_PAD_IN_SITES_GLOBAL_PLACEMENT` | ?= | ?= | ?= | ?= | ?= |
7778
| `CELL_PAD_IN_SITES_DETAIL_PLACEMENT` | ?= | ?= | ?= | ?= | ?= |
@@ -85,7 +86,6 @@ Note:
8586
| `EQUIVALENCE_CHECK` | ?= | ?= | ?= | ?= | ?= |
8687
| `REMOVE_CELLS_FOR_EQY` | ?= | ?= | ?= | ?= | ?= |
8788
| Routing | | | | | |
88-
| `FILL_CELLS` | = | = | = | = | = |
8989
| `KLAYOUT_TECH_FILE` | = | = | = | = | = |
9090
| `MAX_ROUTING_LAYER` | = | = | = | = | ?= |
9191
| `MIN_ROUTING_LAYER` | = | = | = | = | ?= |
@@ -147,6 +147,8 @@ Note:
147147
| `GUI_NO_TIMING` | Skip loading timing for a faster GUI load. |
148148
| `GUI_SOURCE` | Source the script. |
149149
| `GUI_ARGS` | OpenROAD command line options for gui_ and open_ targets, typically set tup `-exit` in combination with GUI_SOURCE to run a script and exit. |
150+
| `FILL_CELLS` | Fill cells are used to fill empty sites. If not set or empty, fill cell insertion is skipped. |
151+
| `TAP_CELL_NAME` | Name of the cell to use in tap cell insertion. |
150152

151153

152154
### Placement
@@ -189,7 +191,6 @@ Note:
189191

190192
| Variable | Description |
191193
|-----------------------|---------------------------------------------------------------------------------------------------|
192-
| `FILL_CELLS` | Fill cells are used to fill empty sites. |
193194
| `MIN_ROUTING_LAYER` | The lowest metal layer name to be used in routing. |
194195
| `MAX_ROUTING_LAYER` | The highest metal layer name to be used in routing. |
195196
| `DETAILED_ROUTE_ARGS` | Add additional arguments for debugging purpose during detail route. |

flow/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,11 @@ $(eval $(call do-step,2_4_floorplan_macro,$(RESULTS_DIR)/2_3_floorplan_tdms.odb
716716

717717
# STEP 5: Tapcell and Welltie insertion
718718
#-------------------------------------------------------------------------------
719+
ifeq ($(TAPCELL_TCL),)
720+
$(eval $(call do-copy,2_5_floorplan_tapcell,2_4_floorplan_macro.odb))
721+
else
719722
$(eval $(call do-step,2_5_floorplan_tapcell,$(RESULTS_DIR)/2_4_floorplan_macro.odb $(TAPCELL_TCL),tapcell))
723+
endif
720724

721725
# STEP 6: PDN generation
722726
#-------------------------------------------------------------------------------
@@ -844,7 +848,11 @@ $(eval $(call do-step,5_1_grt,$(RESULTS_DIR)/4_cts.odb $(FASTROUTE_TCL) $(PRE_GL
844848

845849
# SEP 2: Filler cell insertion
846850
# ------------------------------------------------------------------------------
851+
ifeq ($(FILL_CELLS),)
852+
$(eval $(call do-copy,5_2_fillcell,5_1_grt.odb))
853+
else
847854
$(eval $(call do-step,5_2_fillcell,$(RESULTS_DIR)/5_1_grt.odb,fillcell))
855+
endif
848856

849857
# STEP 3: Run detailed route
850858
#-------------------------------------------------------------------------------

flow/designs/gf180/uart-blocks/config.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ export MACRO_PLACE_CHANNEL = 20 20
2121
export PDN_TCL = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/BLOCKS_grid_strategy.tcl
2222
export PLACE_DENSITY = 0.60
2323

24-
export TAPCELL_TCL = ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/tapcell.tcl
24+
export TAPCELL_TCL ?= ./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/tapcell.tcl
2525
export MACRO_HALO_X = 14
2626
export MACRO_HALO_Y = 14

flow/platforms/asap7/config.mk

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,18 @@ export MACRO_HALO_Y ?= 2
125125
export PLACE_DENSITY ?= 0.60
126126

127127
# Endcap and Welltie cells
128-
export TAPCELL_TCL = $(PLATFORM_DIR)/openRoad/tapcell.tcl
128+
export TAPCELL_TCL ?= $(PLATFORM_DIR)/openRoad/tapcell.tcl
129129

130130
# Fill cells used in fill cell insertion
131-
export FILL_CELLS = FILLERxp5_ASAP7_75t_R \
132-
FILLER_ASAP7_75t_R \
133-
DECAPx1_ASAP7_75t_R \
134-
DECAPx2_ASAP7_75t_R \
135-
DECAPx4_ASAP7_75t_R \
136-
DECAPx6_ASAP7_75t_R \
137-
DECAPx10_ASAP7_75t_R
131+
export FILL_CELLS ?= FILLERxp5_ASAP7_75t_R \
132+
FILLER_ASAP7_75t_R \
133+
DECAPx1_ASAP7_75t_R \
134+
DECAPx2_ASAP7_75t_R \
135+
DECAPx4_ASAP7_75t_R \
136+
DECAPx6_ASAP7_75t_R \
137+
DECAPx10_ASAP7_75t_R
138138

139-
export TAP_CELL_NAME = TAPCELL_ASAP7_75t_R
139+
export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_R
140140

141141
export SET_RC_TCL = $(PLATFORM_DIR)/setRC.tcl
142142

@@ -165,9 +165,9 @@ ifeq ($(ASAP7_USELVT), 1)
165165

166166
export ABC_DRIVER_CELL = BUFx2_ASAP7_75t_L
167167

168-
export FILL_CELLS = "FILLERxp5_ASAP7_75t_L"
168+
export FILL_CELLS ?= "FILLERxp5_ASAP7_75t_L"
169169

170-
export TAP_CELL_NAME = TAPCELL_ASAP7_75t_L
170+
export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_L
171171

172172
export GDS_FILES = $(PLATFORM_DIR)/gds/asap7sc7p5t_28_L_220121a.gds \
173173
$(ADDITIONAL_GDS)
@@ -214,9 +214,9 @@ ifeq ($(ASAP7_USESLVT), 1)
214214

215215
export ABC_DRIVER_CELL = BUFx2_ASAP7_75t_SL
216216

217-
export FILL_CELLS = "FILLERxp5_ASAP7_75t_SL"
217+
export FILL_CELLS ?= "FILLERxp5_ASAP7_75t_SL"
218218

219-
export TAP_CELL_NAME = TAPCELL_ASAP7_75t_SL
219+
export TAP_CELL_NAME ?= TAPCELL_ASAP7_75t_SL
220220

221221
export GDS_FILES = $(PLATFORM_DIR)/gds/asap7sc7p5t_28_SL_220121a.gds \
222222
$(ADDITIONAL_GDS)

flow/platforms/gf180/config.mk

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ export GDS_FILES = $(wildcard $(PLATFORM_DIR)/gds/$
2424
export DONT_USE_CELLS = *_1
2525

2626
# Fill cells used in fill cell insertion
27-
export FILL_CELLS = gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_64 \
28-
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_32 \
29-
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_16 \
30-
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_8 \
31-
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_4 \
32-
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_2 \
33-
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_1
27+
export FILL_CELLS ?= gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_64 \
28+
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_32 \
29+
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_16 \
30+
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_8 \
31+
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_4 \
32+
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_2 \
33+
gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__fill_1
3434

3535
export TIE_CELL = gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__filltie
3636
export ENDCAP_CELL = gf180mcu_fd_sc_mcu$(TRACK_OPTION)$(POWER_OPTION)__endcap

flow/platforms/ihp-sg13g2/config.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ sg13g2_dfrbp_2
3535

3636

3737
# Define fill cells
38-
export FILL_CELLS = sg13g2_fill_1 sg13g2_fill_2 sg13g2_decap_4 sg13g2_decap_8
38+
export FILL_CELLS ?= sg13g2_fill_1 sg13g2_fill_2 sg13g2_decap_4 sg13g2_decap_8
3939
# -----------------------------------------------------
4040
# Yosys
4141
# ----------------------------------------------------
@@ -76,7 +76,7 @@ export CORE_MARGIN ?= 16.5
7676

7777
# There are no Endcap and Welltie cells in this PDK, so
7878
# `cut_rows` has to be called from the tapcell script.
79-
export TAPCELL_TCL = $(PLATFORM_DIR)/tapcell.tcl
79+
export TAPCELL_TCL ?= $(PLATFORM_DIR)/tapcell.tcl
8080

8181
export MACRO_PLACE_HALO ?= 40 40
8282
export MACRO_PLACE_CHANNEL ?= 80 80

flow/platforms/nangate45/config.mk

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export GDS_FILES = $(sort $(wildcard $(PLATFORM_DIR)/gds/*.gds)) \
1616
export DONT_USE_CELLS = TAPCELL_X1 FILLCELL_X1 AOI211_X1 OAI211_X1
1717

1818
# Fill cells used in fill cell insertion
19-
export FILL_CELLS = FILLCELL_X1 FILLCELL_X2 FILLCELL_X4 FILLCELL_X8 FILLCELL_X16 FILLCELL_X32
19+
export FILL_CELLS ?= FILLCELL_X1 FILLCELL_X2 FILLCELL_X4 FILLCELL_X8 FILLCELL_X16 FILLCELL_X32
2020

2121
# -----------------------------------------------------
2222
# Yosys
@@ -57,7 +57,8 @@ export IO_PLACER_V = metal6
5757
export PDN_TCL ?= $(PLATFORM_DIR)/grid_strategy-M1-M4-M7.tcl
5858

5959
# Endcap and Welltie cells
60-
export TAPCELL_TCL = $(PLATFORM_DIR)/tapcell.tcl
60+
export TAPCELL_TCL ?= $(PLATFORM_DIR)/tapcell.tcl
61+
export TAP_CELL_NAME = TAPCELL_X1
6162

6263
export MACRO_PLACE_HALO ?= 22.4 15.12
6364
export MACRO_PLACE_CHANNEL ?= 18.8 19.95
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
tapcell \
22
-distance 120 \
3-
-tapcell_master "TAPCELL_X1" \
4-
-endcap_master "TAPCELL_X1"
3+
-tapcell_master "$::env(TAP_CELL_NAME)" \
4+
-endcap_master "$::env(TAP_CELL_NAME)"
5+

flow/platforms/sky130hd/config.mk

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export DONT_USE_CELLS += \
5656
sky130_fd_sc_hd__lpflow_lsbuf_lh_isowell_tap_4
5757
#
5858
# Define fill cells
59-
export FILL_CELLS = sky130_fd_sc_hd__fill_1 sky130_fd_sc_hd__fill_2 sky130_fd_sc_hd__fill_4 sky130_fd_sc_hd__fill_8
59+
export FILL_CELLS ?= sky130_fd_sc_hd__fill_1 sky130_fd_sc_hd__fill_2 sky130_fd_sc_hd__fill_4 sky130_fd_sc_hd__fill_8
6060

6161
# -----------------------------------------------------
6262
# Yosys
@@ -93,7 +93,8 @@ export IO_PLACER_V = met2
9393
export PDN_TCL ?= $(PLATFORM_DIR)/pdn.tcl
9494

9595
# Endcap and Welltie cells
96-
export TAPCELL_TCL = $(PLATFORM_DIR)/tapcell.tcl
96+
export TAP_CELL_NAME = sky130_fd_sc_hd__tapvpwrvgnd_1
97+
export TAPCELL_TCL ?= $(PLATFORM_DIR)/tapcell.tcl
9798

9899
export MACRO_PLACE_HALO ?= 40 40
99100
export MACRO_PLACE_CHANNEL ?= 80 80
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
tapcell \
22
-distance 14 \
3-
-tapcell_master "sky130_fd_sc_hd__tapvpwrvgnd_1"
3+
-tapcell_master "$::env(TAP_CELL_NAME)"

0 commit comments

Comments
 (0)