Skip to content
Draft
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
4 changes: 4 additions & 0 deletions flow/designs/asap7/ibex/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ export ENABLE_DPO = 0

export TNS_END_PERCENT = 100

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER = 5
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER = 30
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER = 20

4 changes: 4 additions & 0 deletions flow/designs/gf180/aes-hybrid/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,7 @@ export DESIGN_TYPE = CELL
else
export DESIGN_TYPE = CELL_NODEN
endif

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER=10000
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=10000
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=10000
4 changes: 4 additions & 0 deletions flow/designs/gf180/aes/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@ export DESIGN_TYPE = CELL
else
export DESIGN_TYPE = CELL_NODEN
endif

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
4 changes: 4 additions & 0 deletions flow/designs/gf180/ibex/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,7 @@ export SDC_FILE = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/constraint.

export CORE_UTILIZATION = 45
export PLACE_DENSITY_LB_ADDON = 0.1

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER=30
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=40
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=30
3 changes: 3 additions & 0 deletions flow/designs/nangate45/black_parrot/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ export PLACE_DENSITY_LB_ADDON = 0.05
export MACRO_PLACE_HALO = 10 10
export MACRO_PLACE_CHANNEL = 20 20
export TNS_END_PERCENT = 100

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER = 5
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER = 30
3 changes: 3 additions & 0 deletions flow/designs/nangate45/bp_fe_top/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ export PLACE_DENSITY_MAX_POST_HOLD = 0.12
export TNS_END_PERCENT = 100

export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/fastroute.tcl

export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
4 changes: 4 additions & 0 deletions flow/designs/nangate45/swerv_wrapper/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ export TNS_END_PERCENT = 100
export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NAME)/fastroute.tcl

export GPL_KEEP_OVERFLOW = 0

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER=50
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=50
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=50
4 changes: 4 additions & 0 deletions flow/designs/sky130hd/gcd/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@ export CORE_UTILIZATION = 40
export TNS_END_PERCENT = 100
export EQUIVALENCE_CHECK ?= 1
export REMOVE_CELLS_FOR_EQY = sky130_fd_sc_hd__tapvpwrvgnd*

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
4 changes: 4 additions & 0 deletions flow/designs/sky130hd/microwatt/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,7 @@ export SETUP_SLACK_MARGIN = 0.2
# to real SRAMs and not instantiated as flops
export SYNTH_MEMORY_MAX_BITS ?= 42000

export FP_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000
export GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER=1000

2 changes: 1 addition & 1 deletion flow/scripts/cts.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ if {![env_var_equals SKIP_CTS_REPAIR_TIMING 1]} {
write_eqy_verilog 4_before_rsz.v
}

repair_timing_helper
repair_timing_helper "cts"
Copy link
Collaborator

Choose a reason for hiding this comment

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

remove quotes, not needed in .tcl


if {$::env(EQUIVALENCE_CHECK)} {
run_equivalence_test
Expand Down
6 changes: 3 additions & 3 deletions flow/scripts/floorplan.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,13 @@ if { [env_var_equals REMOVE_ABC_BUFFERS 1] } {
# remove buffers inserted by yosys/abc
remove_buffers
} else {
repair_timing_helper 0
repair_timing_helper "floorplan" 0
}

##### Restructure for timing #########
if { [env_var_equals RESYNTH_TIMING_RECOVER 1] } {
repair_design_helper
repair_timing_helper
repair_timing_helper "floorplan"
# pre restructure area/timing report (ideal clocks)
puts "Post synth-opt area"
report_design_area
Expand All @@ -134,7 +134,7 @@ if { [env_var_equals RESYNTH_TIMING_RECOVER 1] } {
# post restructure area/timing report (ideal clocks)
remove_buffers
repair_design_helper
repair_timing_helper
repair_timing_helper "floorplan"

puts "Post restructure-opt wns"
report_worst_slack -max -digits 3
Expand Down
2 changes: 1 addition & 1 deletion flow/scripts/global_route.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ proc global_route_helper {} {
puts "Repair setup and hold violations..."
estimate_parasitics -global_routing

repair_timing_helper
repair_timing_helper "grt"

if { $::env(DETAILED_METRICS) } {
report_metrics 5 "global route post repair timing"
Expand Down
11 changes: 10 additions & 1 deletion flow/scripts/util.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ proc fast_route {} {
}
}

proc repair_timing_helper { {hold_margin 1} } {
proc repair_timing_helper { stage {hold_margin 1} } {
set additional_args "-verbose"
append_env_var additional_args SETUP_SLACK_MARGIN -setup_margin 1
if {$hold_margin || $::env(HOLD_SLACK_MARGIN) < 0} {
Expand All @@ -28,6 +28,15 @@ proc repair_timing_helper { {hold_margin 1} } {
append_env_var additional_args SKIP_BUFFER_REMOVAL -skip_buffer_removal 0
append_env_var additional_args SKIP_LAST_GASP -skip_last_gasp 0
append_env_var additional_args MATCH_CELL_FOOTPRINT -match_cell_footprint 0
if { $stage == "floorplan"} {
set max_passes_prefix "FP_"
} elseif { $stage == "cts" } {
set max_passes_prefix "CTS_"
} elseif { $stage == "grt"} {
set max_passes_prefix "GRT_"
}
append_env_var additional_args "${max_passes_prefix}REPAIR_TIMING_MAX_PASSES_PER_ITER" -max_passes_per_iter 1
puts "repair_timing [join $additional_args " "]"
log_cmd repair_timing {*}$additional_args
}

Expand Down
18 changes: 18 additions & 0 deletions flow/scripts/variables.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,12 @@ IO_PLACER_V:
stages:
- floorplan
- place
FP_REPAIR_TIMING_MAX_PASSES_PER_ITER:
description: >
Maximum number of repairs per iteration during repair_timing, called from floorplan.
Copy link
Collaborator

Choose a reason for hiding this comment

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

more magic values? Every option makes a feature twice as hard to use.

default: 20
stages:
- floorplan
GUI_TIMING:
description: >
Load timing information when opening GUI. For large designs, this can
Expand Down Expand Up @@ -708,6 +714,12 @@ CTS_CLUSTER_SIZE:
default: 50
stages:
- cts
CTS_REPAIR_TIMING_MAX_PASSES_PER_ITER:
description: >
Maximum number of repairs per iteration during repair_timing, called from CTS.
default: 20
stages:
- cts
Copy link
Collaborator

Choose a reason for hiding this comment

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

A proliferation of the same variable for the same operation. This multiplies the number of variables... Not ideal...

CTS_SNAPSHOT:
description: >
Creates ODB/SDC files prior to clock net and setup/hold repair.
Expand Down Expand Up @@ -739,6 +751,12 @@ GLOBAL_ROUTE_ARGS:
stages:
- grt
default: -congestion_iterations 30 -congestion_report_iter_step 5 -verbose
GRT_REPAIR_TIMING_MAX_PASSES_PER_ITER:
description: >
Maximum number of repairs per iteration during repair_timing, called from GRT.
default: 20
stages:
- grt
MATCH_CELL_FOOTPRINT:
description: >
Enforce sizing operations to only swap cells that have the same layout
Expand Down
2 changes: 1 addition & 1 deletion tools/OpenROAD
Loading