Skip to content

Commit 2768022

Browse files
committed
Merge remote-tracking branch 'origin/master' into secure-slew-fix2
2 parents 59b2c0e + 4e47ad0 commit 2768022

File tree

33 files changed

+697
-217
lines changed

33 files changed

+697
-217
lines changed

docs/user/FlowVariables.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ configuration file.
175175
| <a name="MAX_ROUTING_LAYER"></a>MAX_ROUTING_LAYER| The highest metal layer name to be used in routing.| |
176176
| <a name="MIN_BUF_CELL_AND_PORTS"></a>MIN_BUF_CELL_AND_PORTS| Used to insert a buffer cell to pass through wires. Used in synthesis.| |
177177
| <a name="MIN_ROUTING_LAYER"></a>MIN_ROUTING_LAYER| The lowest metal layer name to be used in routing.| |
178+
| <a name="NUM_CORES"></a>NUM_CORES| Passed to `openroad -threads $(NUM_CORES)`, defaults to numbers of cores in system as determined by system specific code in Makefile, `nproc` is tried first. OpenROAD does not limit itself to this number of cores across OpenROAD running instances, which can lead to overprovisioning in contexts such as bazel-orfs where there could be many routing, or place jobs running at the same time.| |
178179
| <a name="OPENROAD_HIERARCHICAL"></a>OPENROAD_HIERARCHICAL| Feature toggle to enable to run OpenROAD in hierarchical mode, otherwise considered flat. Will eventually be the default and this option will be retired.| 0|
179180
| <a name="PDN_TCL"></a>PDN_TCL| File path which has a set of power grid policies used by pdn to be applied to the design, such as layers to use, stripe width and spacing to generate the actual metal straps.| |
180181
| <a name="PLACE_DENSITY"></a>PLACE_DENSITY| The desired average placement density of cells: 1.0 = dense, 0.0 = widely spread. The intended effort is also communicated by this parameter. Use a low value for faster builds and higher value for better quality of results. If a too low value is used, the placer will not be able to place all cells and a recommended minimum placement density can be found in the logs. A too high value can lead to excessive runtimes, even timeouts and subtle failures in the flow after placement, such as in CTS or global routing when timing repair fails. The default is platform specific.| |
@@ -200,8 +201,8 @@ configuration file.
200201
| <a name="RTLMP_DEAD_SPACE"></a>RTLMP_DEAD_SPACE| Specifies the target dead space percentage, which influences the utilization of a cluster.| 0.05|
201202
| <a name="RTLMP_FENCE_LX"></a>RTLMP_FENCE_LX| Defines the lower left X coordinate for the global fence bounding box in microns.| 0.0|
202203
| <a name="RTLMP_FENCE_LY"></a>RTLMP_FENCE_LY| Defines the lower left Y coordinate for the global fence bounding box in microns.| 0.0|
203-
| <a name="RTLMP_FENCE_UX"></a>RTLMP_FENCE_UX| Defines the upper right X coordinate for the global fence bounding box in microns.| 100000000.0|
204-
| <a name="RTLMP_FENCE_UY"></a>RTLMP_FENCE_UY| Defines the upper right Y coordinate for the global fence bounding box in microns.| 100000000.0|
204+
| <a name="RTLMP_FENCE_UX"></a>RTLMP_FENCE_UX| Defines the upper right X coordinate for the global fence bounding box in microns.| 0.0|
205+
| <a name="RTLMP_FENCE_UY"></a>RTLMP_FENCE_UY| Defines the upper right Y coordinate for the global fence bounding box in microns.| 0.0|
205206
| <a name="RTLMP_MAX_INST"></a>RTLMP_MAX_INST| Maximum number of standard cells in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| |
206207
| <a name="RTLMP_MAX_LEVEL"></a>RTLMP_MAX_LEVEL| Maximum depth of the physical hierarchy tree.| 2|
207208
| <a name="RTLMP_MAX_MACRO"></a>RTLMP_MAX_MACRO| Maximum number of macros in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| |
@@ -480,6 +481,7 @@ configuration file.
480481

481482
## All stages variables
482483

484+
- [NUM_CORES](#NUM_CORES)
483485
- [OPENROAD_HIERARCHICAL](#OPENROAD_HIERARCHICAL)
484486
- [SWAP_ARITH_OPERATORS](#SWAP_ARITH_OPERATORS)
485487
- [SYNTH_WRAPPED_OPERATORS](#SYNTH_WRAPPED_OPERATORS)

flow/Makefile

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ $(WRAPPED_LIBS):
227227
# |____/ |_| |_| \_| |_| |_| |_|_____|____/___|____/
228228
#
229229
.PHONY: synth
230-
synth: $(RESULTS_DIR)/1_synth.v
230+
synth: $(RESULTS_DIR)/1_synth.odb
231231

232232
.PHONY: synth-report
233233
synth-report: synth
@@ -260,6 +260,7 @@ yosys-dependencies: $(YOSYS_DEPENDENCIES)
260260
.PHONY: do-yosys
261261
do-yosys: yosys-dependencies
262262
$(SCRIPTS_DIR)/synth.sh $(SYNTH_SCRIPT) $(LOG_DIR)/1_2_yosys.log
263+
cp $(SDC_FILE) $(RESULTS_DIR)/1_2_yosys.sdc
263264

264265
.PHONY: do-yosys-canonicalize
265266
do-yosys-canonicalize: yosys-dependencies
@@ -268,17 +269,8 @@ do-yosys-canonicalize: yosys-dependencies
268269
$(RESULTS_DIR)/1_1_yosys_canonicalize.rtlil: $(YOSYS_DEPENDENCIES)
269270
$(UNSET_AND_MAKE) do-yosys-canonicalize
270271

271-
$(RESULTS_DIR)/1_2_yosys.v: $(RESULTS_DIR)/1_1_yosys_canonicalize.rtlil
272+
$(RESULTS_DIR)/1_2_yosys.v $(RESULTS_DIR)/1_2_yosys.sdc: $(RESULTS_DIR)/1_1_yosys_canonicalize.rtlil
272273
$(UNSET_AND_MAKE) do-yosys
273-
274-
.PHONY: do-synth
275-
do-synth:
276-
mkdir -p $(RESULTS_DIR) $(LOG_DIR) $(REPORTS_DIR)
277-
cp $(RESULTS_DIR)/1_2_yosys.v $(RESULTS_DIR)/1_synth.v
278-
279-
$(RESULTS_DIR)/1_synth.v: $(RESULTS_DIR)/1_2_yosys.v
280-
$(UNSET_AND_MAKE) do-synth
281-
282274
.PHONY: clean_synth
283275
clean_synth:
284276
rm -f $(RESULTS_DIR)/1_* $(RESULTS_DIR)/mem*.json
@@ -395,23 +387,25 @@ endef
395387
# ==============================================================================
396388

397389
# Custom target to go from synthesis to placement in a single OpenROAD run
398-
$(eval $(call do-step,1_3_floorplan_to_place, $(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc,floorplan_to_place))
390+
$(eval $(call do-step,1_3_floorplan_to_place, $(RESULTS_DIR)/1_synth.odb $(RESULTS_DIR)/1_synth.sdc,floorplan_to_place))
399391

400392
.PHONY: floorplan_to_place
401-
floorplan_to_place: $(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc
393+
floorplan_to_place: $(RESULTS_DIR)/1_synth.odb $(RESULTS_DIR)/1_synth.sdc
402394
$(UNSET_AND_MAKE) do-1_3_floorplan_to_place
403395

404396
# ==============================================================================
405397

406-
$(eval $(call do-step,1_3_synth,$(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc,synth_odb))
398+
$(eval $(call do-step,1_synth,$(RESULTS_DIR)/1_2_yosys.v $(RESULTS_DIR)/1_2_yosys.sdc,synth_odb))
399+
400+
$(RESULTS_DIR)/1_synth.sdc: $(RESULTS_DIR)/1_synth.odb
407401

408-
$(eval $(call do-step,2_1_floorplan,$(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(FOOTPRINT) $(SIG_MAP_FILE) $(FOOTPRINT_TCL) $(LIB_FILES) $(IO_CONSTRAINTS),floorplan))
402+
$(eval $(call do-step,2_1_floorplan,$(RESULTS_DIR)/1_synth.odb $(RESULTS_DIR)/1_synth.sdc $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(FOOTPRINT) $(SIG_MAP_FILE) $(FOOTPRINT_TCL) $(LIB_FILES) $(IO_CONSTRAINTS),floorplan))
409403

410404
$(eval $(call do-copy,2_floorplan,2_1_floorplan.sdc,,.sdc))
411405

412406
# STEP 2: Macro Placement
413407
#-------------------------------------------------------------------------------
414-
$(eval $(call do-step,2_2_floorplan_macro,$(RESULTS_DIR)/2_1_floorplan.odb $(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc $(MACRO_PLACEMENT) $(MACRO_PLACEMENT_TCL),macro_place))
408+
$(eval $(call do-step,2_2_floorplan_macro,$(RESULTS_DIR)/2_1_floorplan.odb $(RESULTS_DIR)/1_synth.sdc $(MACRO_PLACEMENT) $(MACRO_PLACEMENT_TCL),macro_place))
415409

416410
# STEP 3: Tapcell and Welltie insertion
417411
#-------------------------------------------------------------------------------

flow/designs/asap7/aes-block/rules-base.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,15 @@
119119
"compare": "<="
120120
},
121121
"cts__design__instance__count__hold_buffer": {
122-
"value": 1577,
122+
"value": 1371,
123123
"compare": "<="
124124
},
125125
"cts__timing__setup__ws": {
126126
"value": -137.0,
127127
"compare": ">="
128128
},
129129
"cts__timing__setup__tns": {
130-
"value": -9840.0,
130+
"value": -10800.0,
131131
"compare": ">="
132132
},
133133
"cts__timing__hold__ws": {
@@ -147,7 +147,7 @@
147147
"compare": ">="
148148
},
149149
"globalroute__timing__setup__tns": {
150-
"value": -8580.0,
150+
"value": -9620.0,
151151
"compare": ">="
152152
},
153153
"globalroute__timing__hold__ws": {
@@ -191,11 +191,11 @@
191191
"compare": ">="
192192
},
193193
"finish__timing__setup__ws": {
194-
"value": -96.1,
194+
"value": -94.5,
195195
"compare": ">="
196196
},
197197
"finish__timing__setup__tns": {
198-
"value": -5320.0,
198+
"value": -6070.0,
199199
"compare": ">="
200200
},
201201
"finish__timing__hold__ws": {

flow/designs/asap7/ethmac/rules-base.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,11 @@
148148
"compare": "<="
149149
},
150150
"globalroute__timing__setup__ws": {
151-
"value": -176.0,
151+
"value": -174.0,
152152
"compare": ">="
153153
},
154154
"globalroute__timing__setup__tns": {
155-
"value": -3880.0,
155+
"value": -3780.0,
156156
"compare": ">="
157157
},
158158
"globalroute__timing__hold__ws": {
@@ -184,7 +184,7 @@
184184
"compare": ">="
185185
},
186186
"detailedroute__timing__setup__tns": {
187-
"value": -1880.0,
187+
"value": -1950.0,
188188
"compare": ">="
189189
},
190190
"detailedroute__timing__hold__ws": {
@@ -200,7 +200,7 @@
200200
"compare": ">="
201201
},
202202
"finish__timing__setup__tns": {
203-
"value": -3030.0,
203+
"value": -3120.0,
204204
"compare": ">="
205205
},
206206
"finish__timing__hold__ws": {

flow/designs/asap7/mock-alu/rules-base.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@
143143
"compare": "<="
144144
},
145145
"globalroute__timing__setup__ws": {
146-
"value": -302.0,
146+
"value": -295.0,
147147
"compare": ">="
148148
},
149149
"globalroute__timing__setup__tns": {
150-
"value": -19300.0,
150+
"value": -19400.0,
151151
"compare": ">="
152152
},
153153
"globalroute__timing__hold__ws": {
@@ -195,7 +195,7 @@
195195
"compare": ">="
196196
},
197197
"finish__timing__setup__tns": {
198-
"value": -17200.0,
198+
"value": -17100.0,
199199
"compare": ">="
200200
},
201201
"finish__timing__hold__ws": {

flow/designs/asap7/mock-cpu/rules-base.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@
242242
"compare": ">="
243243
},
244244
"globalroute__timing__setup__tns": {
245-
"value": -2710.0,
245+
"value": -2860.0,
246246
"compare": ">="
247247
},
248248
"globalroute__timing__hold__ws": {
@@ -290,7 +290,7 @@
290290
"compare": ">="
291291
},
292292
"finish__timing__setup__tns": {
293-
"value": -2610.0,
293+
"value": -2570.0,
294294
"compare": ">="
295295
},
296296
"finish__timing__hold__ws": {

flow/designs/asap7/riscv32i-mock-sram/rules-base.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,11 @@
118118
"compare": "<="
119119
},
120120
"cts__timing__setup__ws": {
121-
"value": -164.0,
121+
"value": -157.0,
122122
"compare": ">="
123123
},
124124
"cts__timing__setup__tns": {
125-
"value": -1320.0,
125+
"value": -1180.0,
126126
"compare": ">="
127127
},
128128
"cts__timing__hold__ws": {
@@ -138,7 +138,7 @@
138138
"compare": "<="
139139
},
140140
"globalroute__timing__setup__ws": {
141-
"value": -117.0,
141+
"value": -169.0,
142142
"compare": ">="
143143
},
144144
"globalroute__timing__setup__tns": {
@@ -190,7 +190,7 @@
190190
"compare": ">="
191191
},
192192
"finish__timing__setup__tns": {
193-
"value": -4660.0,
193+
"value": -1030.0,
194194
"compare": ">="
195195
},
196196
"finish__timing__hold__ws": {

flow/designs/asap7/uart/rules-base.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,11 @@
133133
"compare": "<="
134134
},
135135
"globalroute__timing__setup__ws": {
136-
"value": -42.8,
136+
"value": -56.5,
137137
"compare": ">="
138138
},
139139
"globalroute__timing__setup__tns": {
140-
"value": -1870.0,
140+
"value": -1990.0,
141141
"compare": ">="
142142
},
143143
"globalroute__timing__hold__ws": {

flow/designs/gf12/ariane/rules-base.json

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
{
2-
"cts__flow__warnings__count:CTS-0179": {
3-
"value": 1,
4-
"compare": "<=",
5-
"level": "warning"
6-
},
72
"cts__flow__warnings__count:RSZ-0062": {
83
"value": 1,
94
"compare": "<=",
105
"level": "warning"
116
},
127
"detailedroute__flow__warnings__count:DRT-0120": {
13-
"value": 24,
8+
"value": 22,
149
"compare": "<=",
1510
"level": "warning"
1611
},
@@ -44,6 +39,21 @@
4439
"compare": "<=",
4540
"level": "warning"
4641
},
42+
"flow__warnings__count:GPL-0323": {
43+
"value": 1,
44+
"compare": "<=",
45+
"level": "warning"
46+
},
47+
"flow__warnings__count:GPL-0998": {
48+
"value": 1,
49+
"compare": "<=",
50+
"level": "warning"
51+
},
52+
"flow__warnings__count:GPL-0999": {
53+
"value": 1,
54+
"compare": "<=",
55+
"level": "warning"
56+
},
4757
"flow__warnings__count:PDN-1031": {
4858
"value": 2,
4959
"compare": "<=",
@@ -90,7 +100,7 @@
90100
"level": "warning"
91101
},
92102
"globalroute__flow__warnings__count:DRT-0120": {
93-
"value": 24,
103+
"value": 22,
94104
"compare": "<=",
95105
"level": "warning"
96106
},
@@ -123,7 +133,7 @@
123133
"compare": "=="
124134
},
125135
"placeopt__design__instance__area": {
126-
"value": 214773,
136+
"value": 214621,
127137
"compare": "<="
128138
},
129139
"placeopt__design__instance__count__stdcell": {
@@ -143,11 +153,11 @@
143153
"compare": "<="
144154
},
145155
"cts__timing__setup__ws": {
146-
"value": -229.0,
156+
"value": -217.0,
147157
"compare": ">="
148158
},
149159
"cts__timing__setup__tns": {
150-
"value": -27900.0,
160+
"value": -733.0,
151161
"compare": ">="
152162
},
153163
"cts__timing__hold__ws": {
@@ -179,11 +189,11 @@
179189
"compare": ">="
180190
},
181191
"detailedroute__route__wirelength": {
182-
"value": 3770934,
192+
"value": 3427852,
183193
"compare": "<="
184194
},
185195
"detailedroute__route__drc_errors": {
186-
"value": 0,
196+
"value": 1,
187197
"compare": "<="
188198
},
189199
"detailedroute__antenna__violating__nets": {
@@ -207,7 +217,7 @@
207217
"compare": ">="
208218
},
209219
"detailedroute__timing__hold__tns": {
210-
"value": -4630.0,
220+
"value": -1100.0,
211221
"compare": ">="
212222
},
213223
"finish__timing__setup__ws": {
@@ -227,7 +237,7 @@
227237
"compare": ">="
228238
},
229239
"finish__design__instance__area": {
230-
"value": 217050,
240+
"value": 217031,
231241
"compare": "<="
232242
}
233243
}

flow/designs/gf12/swerv_wrapper/rules-base.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
"compare": ">="
142142
},
143143
"cts__timing__hold__ws": {
144-
"value": -249.0,
144+
"value": -243.0,
145145
"compare": ">="
146146
},
147147
"cts__timing__hold__tns": {
@@ -213,7 +213,7 @@
213213
"compare": ">="
214214
},
215215
"finish__timing__hold__tns": {
216-
"value": -557.0,
216+
"value": -939.0,
217217
"compare": ">="
218218
},
219219
"finish__design__instance__area": {

0 commit comments

Comments
 (0)