Skip to content

Commit 9fa574a

Browse files
committed
Merge branch 'master' of https://github.com/The-OpenROAD-Project-private/OpenROAD-flow-scripts into secure-est_via_res
2 parents 6d8b7ae + 5049f84 commit 9fa574a

File tree

8 files changed

+26
-8
lines changed

8 files changed

+26
-8
lines changed

docs/user/FlowVariables.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ configuration file.
216216
| <a name="SETUP_REPAIR_SEQUENCE"></a>SETUP_REPAIR_SEQUENCE| Specifies the sequence of moves to do in repair_timing -setup. This should be a string of move keywords separated by commas such as the default when not used: "unbuffer,sizedown,sizeup,swap,buffer,clone,split".| |
217217
| <a name="SETUP_SLACK_MARGIN"></a>SETUP_SLACK_MARGIN| Specifies a time margin for the slack when fixing setup violations. This option allows you to overfix or underfix(negative value, terminate retiming before 0 or positive slack). See HOLD_SLACK_MARGIN for more details.| 0|
218218
| <a name="SET_RC_TCL"></a>SET_RC_TCL| Metal & Via RC definition file path.| |
219+
| <a name="SKIP_CRIT_VT_SWAP"></a>SKIP_CRIT_VT_SWAP| Do not perform VT swap on critical cells to improve QoR (default: do critical VT swap). This is an additional VT swap on critical cells that remain near the end of setup fixing. If SKIP_VT_SWAP is set to 1, this also disables critical cell VT swap.| |
219220
| <a name="SKIP_CTS_REPAIR_TIMING"></a>SKIP_CTS_REPAIR_TIMING| Skipping CTS repair, which can take a long time, can be useful in architectural exploration or when getting CI up and running.| |
220221
| <a name="SKIP_DETAILED_ROUTE"></a>SKIP_DETAILED_ROUTE| Skips detailed route.| 0|
221222
| <a name="SKIP_GATE_CLONING"></a>SKIP_GATE_CLONING| Do not use gate cloning transform to fix timing violations (default: use gate cloning).| |
@@ -335,6 +336,7 @@ configuration file.
335336
- [RTLMP_WIRELENGTH_WT](#RTLMP_WIRELENGTH_WT)
336337
- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE)
337338
- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN)
339+
- [SKIP_CRIT_VT_SWAP](#SKIP_CRIT_VT_SWAP)
338340
- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING)
339341
- [SKIP_LAST_GASP](#SKIP_LAST_GASP)
340342
- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP)
@@ -385,6 +387,7 @@ configuration file.
385387
- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW)
386388
- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE)
387389
- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN)
390+
- [SKIP_CRIT_VT_SWAP](#SKIP_CRIT_VT_SWAP)
388391
- [SKIP_CTS_REPAIR_TIMING](#SKIP_CTS_REPAIR_TIMING)
389392
- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING)
390393
- [SKIP_LAST_GASP](#SKIP_LAST_GASP)
@@ -407,6 +410,7 @@ configuration file.
407410
- [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT)
408411
- [SETUP_REPAIR_SEQUENCE](#SETUP_REPAIR_SEQUENCE)
409412
- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN)
413+
- [SKIP_CRIT_VT_SWAP](#SKIP_CRIT_VT_SWAP)
410414
- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING)
411415
- [SKIP_INCREMENTAL_REPAIR](#SKIP_INCREMENTAL_REPAIR)
412416
- [SKIP_LAST_GASP](#SKIP_LAST_GASP)

flow/designs/asap7/cva6/config.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export PLACE_DENSITY = 0.69
9595

9696
# a smoketest for this option, there are a
9797
# few last gasp iterations
98-
export SKIP_LAST_GASP ?= 1
98+
#export SKIP_LAST_GASP ?= 1
9999

100100
# For use with SYNTH_HIERARCHICAL
101101
export SYNTH_MINIMUM_KEEP_SIZE ?= 40000

flow/designs/asap7/cva6/constraint.sdc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ create_clock [get_ports $clk_port] -name $clk_name -period $clk_period
3434

3535

3636
set_false_path -to [get_ports {rvfi_probes_o}]
37+
set_max_fanout 10 [current_design]

flow/designs/gf12/ca53/config.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export MACRO_PLACE_HALO = 7 7
5555
export MACRO_WRAPPERS = $(DESIGN_DIR)/wrappers.tcl
5656

5757
# Temporarily disable NDR for clock nets
58-
export CTS_ARGS = -sink_clustering_enable -balance_levels -repair_clock_nets -distance_between_buffers 100 -apply_ndr none
58+
export CTS_ARGS = -sink_clustering_enable -repair_clock_nets -distance_between_buffers 100 -apply_ndr none
5959

6060
#export MAX_ROUTING_LAYER = H2
6161
export FASTROUTE_TCL = $(DESIGN_DIR)/fastroute.tcl

flow/scripts/cts.tcl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ proc save_progress { stage } {
1616
# Run CTS
1717
set cts_args [list \
1818
-sink_clustering_enable \
19-
-balance_levels \
2019
-repair_clock_nets]
2120

2221
append_env_var cts_args CTS_BUF_DISTANCE -distance_between_buffers 1

flow/scripts/synth.tcl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,10 @@ opt
119119
# Replace undef values with defined constants
120120
setundef -zero
121121

122-
if { ![env_var_exists_and_non_empty SYNTH_WRAPPED_OPERATORS] } {
122+
if {
123+
![env_var_exists_and_non_empty SYNTH_WRAPPED_OPERATORS] &&
124+
![env_var_exists_and_non_empty SWAP_ARITH_OPERATORS]
125+
} {
123126
log_cmd abc {*}$abc_args
124127
} else {
125128
scratchpad -set abc9.script $::env(SCRIPTS_DIR)/abc_speed_gia_only.script
@@ -151,7 +154,10 @@ tee -o $::env(REPORTS_DIR)/synth_stat.txt stat {*}$lib_args
151154

152155
# check the design is composed exclusively of target cells, and
153156
# check for other problems
154-
if { ![env_var_exists_and_non_empty SYNTH_WRAPPED_OPERATORS] } {
157+
if {
158+
![env_var_exists_and_non_empty SYNTH_WRAPPED_OPERATORS] &&
159+
![env_var_exists_and_non_empty SWAP_ARITH_OPERATORS]
160+
} {
155161
check -assert -mapped
156162
} else {
157163
# Wrapped operator synthesis leaves around $buf cells which `check -mapped`

flow/scripts/util.tcl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@ proc log_cmd { cmd args } {
1616
proc repair_timing_helper { args } {
1717
set additional_args "$args -verbose"
1818
append_env_var additional_args SETUP_SLACK_MARGIN -setup_margin 1
19-
if { $::env(HOLD_SLACK_MARGIN) < 0 } {
20-
append_env_var additional_args HOLD_SLACK_MARGIN -hold_margin 1
21-
}
19+
append_env_var additional_args HOLD_SLACK_MARGIN -hold_margin 1
2220
append_env_var additional_args SETUP_MOVE_SEQUENCE -sequence 1
2321
append_env_var additional_args TNS_END_PERCENT -repair_tns 1
2422
append_env_var additional_args SKIP_PIN_SWAP -skip_pin_swap 0
2523
append_env_var additional_args SKIP_GATE_CLONING -skip_gate_cloning 0
2624
append_env_var additional_args SKIP_BUFFER_REMOVAL -skip_buffer_removal 0
2725
append_env_var additional_args SKIP_LAST_GASP -skip_last_gasp 0
2826
append_env_var additional_args SKIP_VT_SWAP -skip_vt_swap 0
27+
append_env_var additional_args SKIP_CRIT_VT_SWAP -skip_crit_vt_swap 0
2928
append_env_var additional_args MATCH_CELL_FOOTPRINT -match_cell_footprint 0
3029
log_cmd repair_timing {*}$additional_args
3130
}

flow/scripts/variables.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,15 @@ SKIP_VT_SWAP:
577577
- cts
578578
- floorplan
579579
- grt
580+
SKIP_CRIT_VT_SWAP:
581+
description: >
582+
Do not perform VT swap on critical cells to improve QoR (default: do critical VT swap).
583+
This is an additional VT swap on critical cells that remain near the end of setup fixing.
584+
If SKIP_VT_SWAP is set to 1, this also disables critical cell VT swap.
585+
stages:
586+
- cts
587+
- floorplan
588+
- grt
580589
REMOVE_CELLS_FOR_EQY:
581590
description: >
582591
String patterns directly passed to write_verilog -remove_cells <> for

0 commit comments

Comments
 (0)