Skip to content

Commit 73ca2f6

Browse files
authored
Merge pull request #3512 from The-OpenROAD-Project-staging/secure-crit-vt-swap-test2
added max_fanout=10 to asap7/cva6 and added SKIP_CRIT_VT_SWAP option
2 parents 8945911 + 493c779 commit 73ca2f6

File tree

5 files changed

+16
-1
lines changed

5 files changed

+16
-1
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/scripts/util.tcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ proc repair_timing_helper { args } {
2424
append_env_var additional_args SKIP_BUFFER_REMOVAL -skip_buffer_removal 0
2525
append_env_var additional_args SKIP_LAST_GASP -skip_last_gasp 0
2626
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
2728
append_env_var additional_args MATCH_CELL_FOOTPRINT -match_cell_footprint 0
2829
log_cmd repair_timing {*}$additional_args
2930
}

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)