From 5f98ed403da95556173444a292bbcd4ec0249c6d Mon Sep 17 00:00:00 2001 From: Jeff Ng Date: Mon, 30 Jun 2025 15:54:52 -0700 Subject: [PATCH] Added EARLY_SIZING_CAP_RATIO setting in resize.tcl Signed-off-by: Jeff Ng --- docs/user/FlowVariables.md | 4 ++++ flow/scripts/resize.tcl | 4 ++++ flow/scripts/variables.yaml | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index 023a105555..0478d053c3 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -128,6 +128,7 @@ configuration file. | DONT_USE_CELLS| Dont use cells eases pin access in detailed routing.| | | DONT_USE_LIBS| Set liberty files as `dont_use`.| | | DPO_MAX_DISPLACEMENT| Specifies how far an instance can be moved when optimizing.| 5 1| +| EARLY_SIZING_CAP_RATIO| Ratio between the input pin capacitance and the output pin load during initial gate sizing.| | | ENABLE_DPO| Enable detail placement with improve_placement feature.| 1| | EQUIVALENCE_CHECK| Enable running equivalence checks to verify logical correctness of repair_timing.| 0| | FASTROUTE_TCL| Specifies a Tcl script with commands to run before FastRoute.| | @@ -234,6 +235,7 @@ configuration file. | TECH_LEF| A technology LEF file of the PDK that includes all relevant information regarding metal layers, vias, and spacing requirements.| | | TIEHI_CELL_AND_PORT| Tie high cells used in Yosys synthesis to replace a logical 1 in the Netlist.| | | TIELO_CELL_AND_PORT| Tie low cells used in Yosys synthesis to replace a logical 0 in the Netlist.| | +| TIE_SEPARATION| Distance separating tie high/low instances from the load.| | | TNS_END_PERCENT| Default TNS_END_PERCENT value for post CTS timing repair. Try fixing all violating endpoints by default (reduce to 5% for runtime). Specifies how many percent of violating paths to fix [0-100]. Worst path will always be fixed.| 100| | USE_FILL| Whether to perform metal density filling.| 0| | VERILOG_DEFINES| Preprocessor defines passed to the language frontend. Example: `-D HPDCACHE_ASSERT_OFF`| | @@ -327,6 +329,7 @@ configuration file. - [CELL_PAD_IN_SITES_DETAIL_PLACEMENT](#CELL_PAD_IN_SITES_DETAIL_PLACEMENT) - [CELL_PAD_IN_SITES_GLOBAL_PLACEMENT](#CELL_PAD_IN_SITES_GLOBAL_PLACEMENT) +- [EARLY_SIZING_CAP_RATIO](#EARLY_SIZING_CAP_RATIO) - [FLOORPLAN_DEF](#FLOORPLAN_DEF) - [GPL_ROUTABILITY_DRIVEN](#GPL_ROUTABILITY_DRIVEN) - [GPL_TIMING_DRIVEN](#GPL_TIMING_DRIVEN) @@ -343,6 +346,7 @@ configuration file. - [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT) - [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT) +- [TIE_SEPARATION](#TIE_SEPARATION) ## cts variables diff --git a/flow/scripts/resize.tcl b/flow/scripts/resize.tcl index 1982f9b9aa..9e81848921 100644 --- a/flow/scripts/resize.tcl +++ b/flow/scripts/resize.tcl @@ -10,6 +10,10 @@ set pin_count_before [sta::network_leaf_pin_count] set_dont_use $::env(DONT_USE_CELLS) +if { [env_var_exists_and_non_empty EARLY_SIZING_CAP_RATIO] } { + log_cmd set_opt_config -set_early_sizing_cap_ratio $env(EARLY_SIZING_CAP_RATIO) +} + repair_design_helper if { [env_var_exists_and_non_empty TIE_SEPARATION] } { diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index a4f5758ad0..3ac5a8bbe5 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -222,6 +222,16 @@ TIELO_CELL_AND_PORT: stages: - synth - place +TIE_SEPARATION: + description: | + Distance separating tie high/low instances from the load. + stages: + - place +EARLY_SIZING_CAP_RATIO: + description: | + Ratio between the input pin capacitance and the output pin load during initial gate sizing. + stages: + - place MIN_BUF_CELL_AND_PORTS: description: | Used to insert a buffer cell to pass through wires. Used in synthesis.