Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/user/FlowVariables.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ configuration file.
| <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.| |
| <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|
| <a name="SYNTH_SLANG_ARGS"></a>SYNTH_SLANG_ARGS| Additional arguments passed to the slang frontend during synthesis.| |
| <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|
| <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.| |
| <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.| |
| <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.| |
Expand Down Expand Up @@ -349,6 +350,7 @@ configuration file.
- [PRE_SYNTH_TCL](#PRE_SYNTH_TCL)
- [SDC_FILE](#SDC_FILE)
- [SDC_GUT](#SDC_GUT)
- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS)
- [SLANG_PLUGIN_PATH](#SLANG_PLUGIN_PATH)
- [SYNTH_ARGS](#SYNTH_ARGS)
- [SYNTH_BLACKBOXES](#SYNTH_BLACKBOXES)
Expand All @@ -371,6 +373,7 @@ configuration file.
- [SYNTH_RETIME_MODULES](#SYNTH_RETIME_MODULES)
- [SYNTH_SKIP_KEEP](#SYNTH_SKIP_KEEP)
- [SYNTH_SLANG_ARGS](#SYNTH_SLANG_ARGS)
- [SYNTH_USE_SYN](#SYNTH_USE_SYN)
- [SYNTH_WRAPPED_ADDERS](#SYNTH_WRAPPED_ADDERS)
- [SYNTH_WRAPPED_MULTIPLIERS](#SYNTH_WRAPPED_MULTIPLIERS)
- [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT)
Expand Down
4 changes: 4 additions & 0 deletions flow/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,11 @@ floorplan_to_place: $(RESULTS_DIR)/1_synth.odb $(RESULTS_DIR)/1_synth.sdc

# ==============================================================================

ifeq ($(SYNTH_USE_SYN),1)
$(eval $(call do-step,1_synth,$(VERILOG_FILES) $(SDC_FILE) $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(LIB_FILES),synth_syn))
else
$(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))
endif
Comment on lines +407 to +411
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

In the new syn synthesis flow (SYNTH_USE_SYN=1), the 1_synth target does not list $(VERILOG_FILES) or $(SDC_FILE) as dependencies. This breaks incremental builds, as modifying any Verilog source files or timing constraints will not trigger a re-synthesis of the design. Please add them to the dependency list.

ifeq ($(SYNTH_USE_SYN),1)
$(eval $(call do-step,1_synth,$(VERILOG_FILES) $(SDC_FILE) $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(LIB_FILES),synth_syn))
else
$(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))
endif


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

Expand Down
3 changes: 1 addition & 2 deletions flow/designs/asap7/aes/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ export DESIGN_NICKNAME = aes
export VERILOG_FILES = $(sort $(wildcard $(DESIGN_HOME)/src/$(DESIGN_NICKNAME)/*.v))
export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.sdc

export ABC_AREA = 1

export CORE_UTILIZATION = 70
export CORE_ASPECT_RATIO = 1
export CORE_MARGIN = 2
Expand All @@ -27,3 +25,4 @@ else ifeq ($(FLOW_VARIANT),combine)
$(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)/blackbox/1_synth.v
endif

export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/asap7/aes/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "3882365f5e814a21a600274234b3a087270968d4",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "a04d44da52dba7d4a701d80927ba32d1d89ef9a1",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/asap7/aes_lvt/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ export ASAP7_USE_VT = LVT

export RECOVER_POWER = 100


export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/asap7/aes_lvt/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "7cb97d6d20f0fb4831af6dc20aea1d411aecc09a",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "d84684a5256bf993bde8bccdff31af8237663019",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
6 changes: 3 additions & 3 deletions flow/designs/asap7/gcd-ccs/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "7250dc152c2381ac020b86c78a5191b1c336244b",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "a954b979a1a0eff89ed870fa50d202847b6807bf",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down Expand Up @@ -38,7 +38,7 @@
"compare": "<="
},
"cts__timing__setup__ws": {
"value": -79.2,
"value": -90.0,
"compare": ">="
},
"cts__timing__setup__tns": {
Expand Down
1 change: 1 addition & 0 deletions flow/designs/asap7/gcd/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ export PLACE_DENSITY = 0.35
# few last gasp iterations
export SKIP_LAST_GASP ?= 1

export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/asap7/gcd/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "9b1daddbf16520e983085be7f06a02bc2fc2e27a",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "2d3fbf9f1b7357c0cadb1e193d984ae458d68fa8",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
1 change: 1 addition & 0 deletions flow/designs/asap7/jpeg/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ export PLACE_DENSITY = 0.75

export TNS_END_PERCENT = 100

export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/asap7/jpeg/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "b67ad398424800920e8203a11987e51a89b89070",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "d045877b85c5a9e18d5284e8ad3a41dcbc5f3f11",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
1 change: 1 addition & 0 deletions flow/designs/asap7/jpeg_lvt/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ export RECOVER_POWER = 100

export ASAP7_USE_VT = LVT

export SYNTH_USE_SYN = 1
8 changes: 4 additions & 4 deletions flow/designs/asap7/jpeg_lvt/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "c46712834957de101139bda123c9da786f05b392",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "8c44353e931d56077e9f64190819c1fe10a05909",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down Expand Up @@ -90,11 +90,11 @@
"compare": "<="
},
"finish__timing__setup__ws": {
"value": -30.0,
"value": -63.9,
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -303.0,
"value": -514.0,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
4 changes: 2 additions & 2 deletions flow/designs/asap7/riscv32i-mock-sram/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"synth__canonical_netlist__hash": {
"value": "855cc88198fc9faaf17317eaea4a3a07a4340d1d",
"value": "58bf274dad2592154068ebaf8f3893ccf8b388fa",
"compare": "==",
"level": "warning"
},
Expand Down Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -230.0,
"value": -2770.0,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/gf180/uart-blocks/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"synth__canonical_netlist__hash": {
"value": "48ea06f839af2a2b1eaada6c74e256cfe1064972",
"value": "6539c6f38d2e14aa6b73a233552bb9e77150c29e",
"compare": "==",
"level": "warning"
},
Expand Down
2 changes: 2 additions & 0 deletions flow/designs/ihp-sg13g2/aes/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ export TNS_END_PERCENT = 100
export USE_FILL = 1

export REMOVE_ABC_BUFFERS = 1

export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/ihp-sg13g2/aes/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "03f345300073bffe008c28ae418579c55a61a047",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "9ed4fbb1904f7531317bb9162ca084ebe650f588",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
1 change: 1 addition & 0 deletions flow/designs/ihp-sg13g2/gcd/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ export TNS_END_PERCENT = 100

export SWAP_ARITH_OPERATORS = 1
export OPENROAD_HIERARCHICAL = 1
export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/ihp-sg13g2/gcd/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "5a518ec61d78294e2e31f7564caba70a2e603a8b",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "3fd7066325a56dedbd71ff32ffc04a42a6888885",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/ihp-sg13g2/i2c-gpio-expander/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"synth__canonical_netlist__hash": {
"value": "6a79c1ff7404b566e96c52493d7eec2316d12f6a",
"value": "343adb65c551c257442500e3d05ced3bcc4adf88",
"compare": "==",
"level": "warning"
},
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/ihp-sg13g2/jpeg/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
"compare": "<="
},
"detailedroute__antenna_diodes_count": {
"value": 109,
"value": 121,
"compare": "<="
},
"finish__timing__setup__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/nangate45/aes/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -0.167,
"value": -0.362,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/nangate45/ariane133/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -576.0,
"value": -585.0,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/nangate45/bp_be_top/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -19.1,
"value": -20.2,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/nangate45/bp_fe_top/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -1.23,
"value": -1.75,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
1 change: 1 addition & 0 deletions flow/designs/nangate45/dynamic_node/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ export TNS_END_PERCENT = 100

export SWAP_ARITH_OPERATORS = 1
export OPENROAD_HIERARCHICAL = 1
export SYNTH_USE_SYN = 1
4 changes: 2 additions & 2 deletions flow/designs/nangate45/dynamic_node/rules-base.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"synth__canonical_netlist__hash": {
"value": "2427a81238731cb7068ba9ca3da18ec2837ebf31",
"value": "N/A",
"compare": "==",
"level": "warning"
},
"synth__netlist__hash": {
"value": "4617e66bebd8728c158a91b4760b8d4ca0bb2114",
"value": "N/A",
"compare": "==",
"level": "warning"
},
Expand Down
4 changes: 2 additions & 2 deletions flow/designs/nangate45/swerv/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"compare": ">="
},
"globalroute__timing__setup__tns": {
"value": -485.0,
"value": -502.0,
"compare": ">="
},
"globalroute__timing__hold__ws": {
Expand Down Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -479.0,
"value": -507.0,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
4 changes: 2 additions & 2 deletions flow/designs/nangate45/swerv_wrapper/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"compare": ">="
},
"globalroute__timing__setup__tns": {
"value": -146.0,
"value": -157.0,
"compare": ">="
},
"globalroute__timing__hold__ws": {
Expand Down Expand Up @@ -94,7 +94,7 @@
"compare": ">="
},
"finish__timing__setup__tns": {
"value": -126.0,
"value": -143.0,
"compare": ">="
},
"finish__timing__hold__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/sky130hd/chameleon/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"compare": ">="
},
"globalroute__antenna_diodes_count": {
"value": 196,
"value": 200,
"compare": "<="
},
"globalroute__timing__setup__ws": {
Expand Down
2 changes: 1 addition & 1 deletion flow/designs/sky130hd/gcd/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"compare": ">="
},
"globalroute__timing__setup__tns": {
"value": -88.8,
"value": -89.0,
"compare": ">="
},
"globalroute__timing__hold__ws": {
Expand Down
4 changes: 2 additions & 2 deletions flow/designs/sky130hd/jpeg/rules-base.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@
"compare": ">="
},
"globalroute__antenna_diodes_count": {
"value": 100,
"value": 102,
"compare": "<="
},
"globalroute__timing__setup__ws": {
"value": -0.764,
"compare": ">="
},
"globalroute__timing__setup__tns": {
"value": -111.0,
"value": -113.0,
"compare": ">="
},
"globalroute__timing__hold__ws": {
Expand Down
Loading