Skip to content

Commit ff182f8

Browse files
authored
Merge pull request #4270 from The-OpenROAD-Project-staging/secure-syn-bringup
Opt in first 8 designs to use 'syn'
2 parents b49d1c3 + eeea816 commit ff182f8

24 files changed

Lines changed: 137 additions & 43 deletions

docs/user/FlowVariables.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ configuration file.
310310
| <a name="SYNTH_RETIME_MODULES"></a>SYNTH_RETIME_MODULES| *This is an experimental option and may cause adverse effects.* *No effort has been made to check if the retimed RTL is logically equivalent to the non-retimed RTL.* List of modules to apply automatic retiming to. These modules must not get dissolved and as such they should either be the top module or be included in SYNTH_KEEP_MODULES. The main use case is to quickly identify if performance can be improved by manually retiming the input RTL. Retiming will treat module ports like register endpoints/startpoints. The objective function of retiming isn't informed by SDC, even the clock period is ignored. As such, retiming will optimize for best delay at potentially high register number cost. Automatic retiming can produce suboptimal results as its timing model is crude and it doesn't find the optimal distribution of registers on long pipelines. See OR discussion # 8080.| |
311311
| <a name="SYNTH_SKIP_KEEP"></a>SYNTH_SKIP_KEEP| Only meaningful together with SYNTH_CHECKPOINT. When set, signals that the supplied checkpoint is still canonical RTLIL (coarse synth and `keep_hierarchy` have not been run yet), so synth.tcl runs the full coarse+fine synthesis flattened. When unset and SYNTH_CHECKPOINT is used, synth.tcl assumes the checkpoint already has coarse synth + `keep_hierarchy` done and resumes from `coarse:fine`.| 0|
312312
| <a name="SYNTH_SLANG_ARGS"></a>SYNTH_SLANG_ARGS| Additional arguments passed to the slang frontend during synthesis.| |
313+
| <a name="SYNTH_USE_SYN"></a>SYNTH_USE_SYN| If set to 1, run synthesis using the "syn" tool built into OpenROAD (the synth_syn.tcl flow) instead of the default Yosys-based flow. Defaults to 0 (Yosys flow).| 0|
313314
| <a name="SYNTH_WRAPPED_ADDERS"></a>SYNTH_WRAPPED_ADDERS| Specify the adder modules that can be used for synthesis, separated by commas. The default adder module is determined by the first element of this variable.| |
314315
| <a name="SYNTH_WRAPPED_MULTIPLIERS"></a>SYNTH_WRAPPED_MULTIPLIERS| Specify the multiplier modules that can be used for synthesis, separated by commas. The default multiplier module is determined by the first element of this variable.| |
315316
| <a name="SYNTH_WRAPPED_OPERATORS"></a>SYNTH_WRAPPED_OPERATORS| Synthesize multiple architectural options for each arithmetic operator in the design. These options are available for switching among in later stages of the flow.| |
@@ -348,6 +349,7 @@ configuration file.
348349
- [PRE_SYNTH_TCL](#PRE_SYNTH_TCL)
349350
- [SDC_FILE](#SDC_FILE)
350351
- [SDC_GUT](#SDC_GUT)
352+
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
351353
- [SLANG_PLUGIN_PATH](#SLANG_PLUGIN_PATH)
352354
- [SYNTH_ARGS](#SYNTH_ARGS)
353355
- [SYNTH_BLACKBOXES](#SYNTH_BLACKBOXES)
@@ -370,6 +372,7 @@ configuration file.
370372
- [SYNTH_RETIME_MODULES](#SYNTH_RETIME_MODULES)
371373
- [SYNTH_SKIP_KEEP](#SYNTH_SKIP_KEEP)
372374
- [SYNTH_SLANG_ARGS](#SYNTH_SLANG_ARGS)
375+
- [SYNTH_USE_SYN](#SYNTH_USE_SYN)
373376
- [SYNTH_WRAPPED_ADDERS](#SYNTH_WRAPPED_ADDERS)
374377
- [SYNTH_WRAPPED_MULTIPLIERS](#SYNTH_WRAPPED_MULTIPLIERS)
375378
- [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT)

flow/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,11 @@ floorplan_to_place: $(RESULTS_DIR)/1_synth.odb $(RESULTS_DIR)/1_synth.sdc
404404

405405
# ==============================================================================
406406

407+
ifeq ($(SYNTH_USE_SYN),1)
408+
$(eval $(call do-step,1_synth,$(VERILOG_FILES) $(SDC_FILE) $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(LIB_FILES),synth_syn))
409+
else
407410
$(eval $(call do-step,1_synth,$(RESULTS_DIR)/1_2_yosys.v $(RESULTS_DIR)/1_2_yosys.sdc $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(LIB_FILES),synth_odb))
411+
endif
408412

409413
$(RESULTS_DIR)/1_synth.sdc: $(RESULTS_DIR)/1_synth.odb
410414

flow/designs/asap7/aes/config.mk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ export DESIGN_NICKNAME = aes
66
export VERILOG_FILES = $(sort $(wildcard $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/*.v))
77
export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc
88

9-
export ABC_AREA = 1
10-
119
export CORE_UTILIZATION = 70
1210
export CORE_ASPECT_RATIO = 1
1311
export CORE_MARGIN = 2
@@ -27,3 +25,4 @@ else ifeq ($(FLOW_VARIANT),combine)
2725
$(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)/blackbox/1_synth.v
2826
endif
2927

28+
export SYNTH_USE_SYN = 1

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"synth__canonical_netlist__hash": {
3-
"value": "3882365f5e814a21a600274234b3a087270968d4",
3+
"value": "N/A",
44
"compare": "==",
55
"level": "warning"
66
},
77
"synth__netlist__hash": {
8-
"value": "a04d44da52dba7d4a701d80927ba32d1d89ef9a1",
8+
"value": "N/A",
99
"compare": "==",
1010
"level": "warning"
1111
},
@@ -62,7 +62,7 @@
6262
"compare": ">="
6363
},
6464
"globalroute__timing__setup__tns": {
65-
"value": -76.6,
65+
"value": -169.0,
6666
"compare": ">="
6767
},
6868
"globalroute__timing__hold__ws": {

flow/designs/asap7/aes_lvt/config.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ export ASAP7_USE_VT = LVT
1818

1919
export RECOVER_POWER = 100
2020

21-
21+
export SYNTH_USE_SYN = 1

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"synth__canonical_netlist__hash": {
3-
"value": "7cb97d6d20f0fb4831af6dc20aea1d411aecc09a",
3+
"value": "N/A",
44
"compare": "==",
55
"level": "warning"
66
},
77
"synth__netlist__hash": {
8-
"value": "d84684a5256bf993bde8bccdff31af8237663019",
8+
"value": "N/A",
99
"compare": "==",
1010
"level": "warning"
1111
},

flow/designs/asap7/gcd-ccs/rules-base.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"synth__canonical_netlist__hash": {
3-
"value": "9b1daddbf16520e983085be7f06a02bc2fc2e27a",
3+
"value": "N/A",
44
"compare": "==",
55
"level": "warning"
66
},
77
"synth__netlist__hash": {
8-
"value": "2d3fbf9f1b7357c0cadb1e193d984ae458d68fa8",
8+
"value": "N/A",
99
"compare": "==",
1010
"level": "warning"
1111
},
@@ -38,7 +38,7 @@
3838
"compare": "<="
3939
},
4040
"cts__timing__setup__ws": {
41-
"value": -79.2,
41+
"value": -101.0,
4242
"compare": ">="
4343
},
4444
"cts__timing__setup__tns": {
@@ -90,7 +90,7 @@
9090
"compare": "<="
9191
},
9292
"finish__timing__setup__ws": {
93-
"value": -78.5,
93+
"value": -96.4,
9494
"compare": ">="
9595
},
9696
"finish__timing__setup__tns": {

flow/designs/asap7/gcd/config.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ export PLACE_DENSITY = 0.35
1616
# few last gasp iterations
1717
export SKIP_LAST_GASP ?= 1
1818

19+
export SYNTH_USE_SYN = 1

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"synth__canonical_netlist__hash": {
3-
"value": "9b1daddbf16520e983085be7f06a02bc2fc2e27a",
3+
"value": "N/A",
44
"compare": "==",
55
"level": "warning"
66
},
77
"synth__netlist__hash": {
8-
"value": "2d3fbf9f1b7357c0cadb1e193d984ae458d68fa8",
8+
"value": "N/A",
99
"compare": "==",
1010
"level": "warning"
1111
},

flow/designs/asap7/jpeg/config.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ export PLACE_DENSITY = 0.75
1515

1616
export TNS_END_PERCENT = 100
1717

18+
export SYNTH_USE_SYN = 1

0 commit comments

Comments
 (0)