From 210c40ec757b699c4467802b54b9de1ea5ce44f7 Mon Sep 17 00:00:00 2001 From: Jeff Ng Date: Fri, 8 Nov 2024 09:27:59 -0800 Subject: [PATCH 1/3] Added some missing flow variables and descriptions Signed-off-by: Jeff Ng --- docs/user/FlowVariables.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index a042ccc3d2..b59d2d9969 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -68,19 +68,19 @@ configuration file. | CLKGATE_MAP_FILE| List of cells for gating clock treated as a black box by Yosys.| | | CORE_AREA| The core area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2).| | | CORE_ASPECT_RATIO| The core aspect ratio (height / width). This value is ignored if `CORE_UTILIZATION` is undefined.| | -| CORE_MARGIN| The margin between the core area and die area, in multiples of SITE heights. The margin is applied to each side. This variable is ignored if `CORE_UTILIZATION` is undefined.| | +| CORE_MARGIN| The margin between the core area and die area, specified in microns. Allowed values are either one value for all margins or a set of four values, one for each margin. The order of the four values are: `{bottom top left right}`. This variable is ignored if `CORE_UTILIZATION` is undefined.| | | CORE_UTILIZATION| The core utilization percentage (0-100).| | | CORNER| PVT corner library selection. Only available for ASAP7 and GF180 PDK.| | | CTS_ARGS| Override `clock_tree_synthesis` arguments.| | | CTS_BUF_DISTANCE| Distance (in microns) between buffers.| | -| CTS_CLUSTER_DIAMETER| Maximum diameter (in microns) of sink cluster. Default 20.| | -| CTS_CLUSTER_SIZE| Maximum number of sinks per cluster. Default 50.| | +| CTS_CLUSTER_DIAMETER| Maximum diameter (in microns) of sink cluster.| 20 | +| CTS_CLUSTER_SIZE| Maximum number of sinks per cluster.| 50 | | CTS_SNAPSHOT| Creates ODB/SDC files prior to clock net and setup/hold repair.| | | DESIGN_NAME| The name of the top-level module of the design.| | | DESIGN_NICKNAME| DESIGN_NICKNAME just changes the directory name that ORFS outputs to be DESIGN_NICKNAME instead of DESIGN_NAME in case DESIGN_NAME is unwieldy or conflicts with a different design.| | | DETAILED_METRICS| If set, then calls report_metrics prior to repair operations in the CTS and global route stages| 0 | | DETAILED_ROUTE_ARGS| Add additional arguments for debugging purposes during detail route.| | -| DETAILED_ROUTE_END_ITERATION| Maximum number of iterations, default 64.| | +| DETAILED_ROUTE_END_ITERATION| Maximum number of iterations.| 64 | | DFF_LIB_FILES| Technology mapping liberty files for flip-flops.| | | DIE_AREA| The die area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2).| | | DONT_USE_CELLS| Dont use cells eases pin access in detailed routing.| | @@ -95,11 +95,13 @@ configuration file. | GDS_FILES| Path to platform GDS files.| | | GENERATE_ARTIFACTS_ON_FAILURE| For instance Bazel needs artifacts (.odb and .rpt files) on a failure to allow the user to save hours on re-running the failed step locally, but when working with a Makefile flow, it is more natural to fail the step and leave the user to manually inspect the logs and artifacts directly via the file system. Set to 1 to change the behavior to generate artifacts upon failure to e.g. do a global route. The exit code will still be non-zero on all other failures that aren't covered by the "useful to inspect the artifacts on failure" use-case. Example: just like detailed routing, a global route that fails with congestion, is not a build failure(as in exit code non-zero), it is a successful(as in zero exit code) global route that produce reports detailing the problem. Detailed route will not proceed, if there is global routing congestion This allows build systems, such as bazel, to create artifacts for global and detailed route, even if the operation had problems, without having know about the semantics between global and detailed route. Considering that global and detailed route can run for a long time and use a lot of memory, this allows inspecting results on a laptop for a build that ran on a server.| 0 | | GLOBAL_PLACEMENT_ARGS| Use additional tuning parameters during global placement other than default args defined in global_place.tcl.| | +| GLOBAL_ROUTE_ARGS| Use additional tuning parameters during global routing other than default args defined in global_route.tcl.| | | GND_NETS_VOLTAGES| Used for IR Drop calculation.| | | GPL_ROUTABILITY_DRIVEN| Specifies whether the placer should use routability driven placement.| | | GPL_TIMING_DRIVEN| Specifies whether the placer should use timing driven placement.| | | GUI_TIMING| Load timing information when opening GUI. For large designs, this can be quite time consuming. Useful to disable when investigating non-timing aspects like floorplan, placement, routing, etc.| | | HOLD_SLACK_MARGIN| Specifies a time margin for the slack when fixing hold violations. This option allows you to overfix.| | +| IO_CONSTRAINTS| Specifies the path of a TCL file on how to place the I/O pins. | | IO_PLACER_H| The metal layer on which to place the I/O pins horizontally (top and bottom of the die).| | | IO_PLACER_V| The metal layer on which to place the I/O pins vertically (sides of the die).| | | IR_DROP_LAYER| Default metal layer to report IR drop.| | @@ -123,6 +125,7 @@ configuration file. | PDN_TCL| File path which has a set of power grid policies used by pdn to be applied to the design, such as layers to use, stripe width and spacing to generate the actual metal straps.| | | PLACE_DENSITY| The desired placement density of cells. It reflects how spread the cells would be on the core area. 1.0 = closely dense. 0.0 = widely spread.| | | PLACE_DENSITY_LB_ADDON| Check the lower boundary of the PLACE_DENSITY and add PLACE_DENSITY_LB_ADDON if it exists.| | +| PLACE_PINS_ARGS| Additional command line options to provide to place_pins command.| | | PLACE_SITE| Placement site for core cells defined in the technology LEF file.| | | PLATFORM| Specifies process design kit or technology node to be used.| | | POST_CTS_TCL| Specifies a Tcl script with commands to run after CTS is completed.| | @@ -136,16 +139,16 @@ configuration file. | RESYNTH_AREA_RECOVER| Enable re-synthesis for area reclaim.| | | RESYNTH_TIMING_RECOVER| Enable re-synthesis for timing optimization.| | | ROUTING_LAYER_ADJUSTMENT| Default routing layer adjustment| 0.5 | -| RTLMP_FLOW| 1 to enable the Hierarchical RTLMP flow, default empty.| | +| RTLMP_FLOW| 1 to enable the Hierarchical RTLMP flow.| 0 | | SC_LEF| Path to technology standard cell LEF file.| | | SDC_FILE| The path to design constraint (SDC) file.| | | SEAL_GDS| Seal macro to place around the design.| | | SETUP_SLACK_MARGIN| Specifies a time margin for the slack when fixing setup violations.| | | SET_RC_TCL| Metal & Via RC definition file path.| | | 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.| | -| SKIP_GATE_CLONING| Do not use gate cloning transform to fix timing violations (default: use gate cloning).| | -| SKIP_INCREMENTAL_REPAIR| | 0 | -| SKIP_PIN_SWAP| Do not use pin swapping as a transform to fix timing violations (default: use pin swapping).| | +| SKIP_GATE_CLONING| Do not use gate cloning transform to fix timing violations. | use gate cloning | +| SKIP_INCREMENTAL_REPAIR| Skipping global routing timing repair, which can lead to longer run times. | 0 | +| SKIP_PIN_SWAP| Do not use pin swapping as a transform to fix timing violations | use pin swapping | | SKIP_REPORT_METRICS| If set to 1, then metrics, report_metrics does nothing. Useful to speed up builds.| | | SLEW_MARGIN| Specifies a slew margin when fixing max slew violations. This option allows you to overfix.| | | SYNTH_ARGS| Optional synthesis variables for yosys.| | @@ -156,7 +159,7 @@ configuration file. | 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.| | | 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. Default 0 (=off).| | +| USE_FILL| Whether to perform metal density filling.| 0 (=off) | | VERILOG_FILES| The path to the design Verilog files or JSON files providing a description of modules (check `yosys -h write_json` for more details).| | | VERILOG_INCLUDE_DIRS| Specifies the include directories for the Verilog input files.| | | VERILOG_TOP_PARAMS| Apply toplevel params (if exist).| | From ea8e5dfd948af7b947dbd4ca447d9390cebc13e2 Mon Sep 17 00:00:00 2001 From: Jeff Ng Date: Tue, 12 Nov 2024 07:35:35 -0800 Subject: [PATCH 2/3] Updated variables.yaml instead of FlowVariables.md directly Signed-off-by: Jeff Ng --- docs/user/FlowVariables.md | 100 +++++++++++++++++++++++++----------- flow/scripts/variables.yaml | 17 +++--- 2 files changed, 80 insertions(+), 37 deletions(-) diff --git a/docs/user/FlowVariables.md b/docs/user/FlowVariables.md index b59d2d9969..18457c21cc 100644 --- a/docs/user/FlowVariables.md +++ b/docs/user/FlowVariables.md @@ -55,6 +55,7 @@ configuration file. | ABC_CLOCK_PERIOD_IN_PS| Clock period to be used by STA during synthesis. Default value read from `constraint.sdc`.| | | ABC_DRIVER_CELL| Default driver cell used during ABC synthesis.| | | ABC_LOAD_IN_FF| During synthesis set_load value used.| | +| ABSTRACT_SOURCE| Which .odb file to use to create abstract| | | ADDER_MAP_FILE| List of adders treated as a black box by Yosys.| | | ADDITIONAL_FILES| Additional files to be added to `make issue` archive.| | | ADDITIONAL_GDS| Hardened macro GDS files listed here.| | @@ -95,13 +96,13 @@ configuration file. | GDS_FILES| Path to platform GDS files.| | | GENERATE_ARTIFACTS_ON_FAILURE| For instance Bazel needs artifacts (.odb and .rpt files) on a failure to allow the user to save hours on re-running the failed step locally, but when working with a Makefile flow, it is more natural to fail the step and leave the user to manually inspect the logs and artifacts directly via the file system. Set to 1 to change the behavior to generate artifacts upon failure to e.g. do a global route. The exit code will still be non-zero on all other failures that aren't covered by the "useful to inspect the artifacts on failure" use-case. Example: just like detailed routing, a global route that fails with congestion, is not a build failure(as in exit code non-zero), it is a successful(as in zero exit code) global route that produce reports detailing the problem. Detailed route will not proceed, if there is global routing congestion This allows build systems, such as bazel, to create artifacts for global and detailed route, even if the operation had problems, without having know about the semantics between global and detailed route. Considering that global and detailed route can run for a long time and use a lot of memory, this allows inspecting results on a laptop for a build that ran on a server.| 0 | | GLOBAL_PLACEMENT_ARGS| Use additional tuning parameters during global placement other than default args defined in global_place.tcl.| | -| GLOBAL_ROUTE_ARGS| Use additional tuning parameters during global routing other than default args defined in global_route.tcl.| | +| GLOBAL_ROUTE_ARGS| Replaces default arguments for global route.| -congestion_iterations 30 -congestion_report_iter_step 5 -verbose | | GND_NETS_VOLTAGES| Used for IR Drop calculation.| | | GPL_ROUTABILITY_DRIVEN| Specifies whether the placer should use routability driven placement.| | | GPL_TIMING_DRIVEN| Specifies whether the placer should use timing driven placement.| | -| GUI_TIMING| Load timing information when opening GUI. For large designs, this can be quite time consuming. Useful to disable when investigating non-timing aspects like floorplan, placement, routing, etc.| | -| HOLD_SLACK_MARGIN| Specifies a time margin for the slack when fixing hold violations. This option allows you to overfix.| | -| IO_CONSTRAINTS| Specifies the path of a TCL file on how to place the I/O pins. | +| GUI_TIMING| Load timing information when opening GUI. For large designs, this can be quite time consuming. Useful to disable when investigating non-timing aspects like floorplan, placement, routing, etc.| 1 | +| HOLD_SLACK_MARGIN| Specifies a time margin for the slack when fixing hold violations. This option allows you to overfix or underfix(negative value, terminate retiming before 0 or positive slack).| | +| IO_CONSTRAINTS| File path to the IO constraints .tcl file.| | | IO_PLACER_H| The metal layer on which to place the I/O pins horizontally (top and bottom of the die).| | | IO_PLACER_V| The metal layer on which to place the I/O pins vertically (sides of the die).| | | IR_DROP_LAYER| Default metal layer to report IR drop.| | @@ -114,10 +115,11 @@ configuration file. | MACRO_HALO_Y| Set macro halo for y-direction. Only available for ASAP7 PDK.| | | MACRO_PLACEMENT| Specifies the path of a file on how to place certain macros manually using read_macro_placement.| | | MACRO_PLACEMENT_TCL| Specifies the path of a TCL file on how to place certain macros manually.| | -| MACRO_PLACE_CHANNEL| Horizontal/vertical channel width between macros (microns). Used by automatic macro placement when RTLMP_FLOW is disabled. Imagine channel=10 and halo=5. Then macros must be 10 apart but standard cells must be 5 away from a macro.| | +| MACRO_PLACE_CHANNEL| Horizontal/vertical channel width between macros (microns). Used by automatic macro placement. Imagine channel=10 and halo=5. Then macros must be 10 apart but standard cells must be 5 away from a macro.| | | MACRO_PLACE_HALO| Horizontal/vertical halo around macros (microns). Used by automatic macro placement.| | | MACRO_WRAPPERS| The wrapper file that replaces existing macros with their wrapped version.| | | MAKE_TRACKS| Tcl file that defines add routing tracks to a floorplan.| | +| MATCH_CELL_FOOTPRINT| Enforce sizing operations to only swap cells that have the same layout boundary.| | | MAX_ROUTING_LAYER| The highest metal layer name to be used in routing.| | | MAX_UNGROUP_SIZE| For hierarchical synthesis, we ungroup modules of size given by this variable.| | | MIN_BUF_CELL_AND_PORTS| Used to insert a buffer cell to pass through wires. Used in synthesis.| | @@ -125,7 +127,7 @@ configuration file. | PDN_TCL| File path which has a set of power grid policies used by pdn to be applied to the design, such as layers to use, stripe width and spacing to generate the actual metal straps.| | | PLACE_DENSITY| The desired placement density of cells. It reflects how spread the cells would be on the core area. 1.0 = closely dense. 0.0 = widely spread.| | | PLACE_DENSITY_LB_ADDON| Check the lower boundary of the PLACE_DENSITY and add PLACE_DENSITY_LB_ADDON if it exists.| | -| PLACE_PINS_ARGS| Additional command line options to provide to place_pins command.| | +| PLACE_PINS_ARGS| Arguments to place_pins| | | PLACE_SITE| Placement site for core cells defined in the technology LEF file.| | | PLATFORM| Specifies process design kit or technology node to be used.| | | POST_CTS_TCL| Specifies a Tcl script with commands to run after CTS is completed.| | @@ -134,24 +136,28 @@ configuration file. | PWR_NETS_VOLTAGES| Used for IR Drop calculation.| | | RCX_RULES| RC Extraction rules file path.| | | RECOVER_POWER| Specifies how many percent of paths with positive slacks can be slowed for power savings [0-100].| 0 | +| REMOVE_ABC_BUFFERS| Remove abc buffers from the netlist.| | | REMOVE_CELLS_FOR_EQY| String patterns directly passed to write_verilog -remove_cells <> for equivalence checks.| | | REPAIR_PDN_VIA_LAYER| Remove power grid vias which generate DRC violations after detailed routing.| | +| REPORT_CLOCK_SKEW| Report clock skew as part of reporting metrics, starting at CTS, before which there is no clock skew. This metric can be quite time-consuming, so it can be useful to disable.| 1 | | RESYNTH_AREA_RECOVER| Enable re-synthesis for area reclaim.| | | RESYNTH_TIMING_RECOVER| Enable re-synthesis for timing optimization.| | | ROUTING_LAYER_ADJUSTMENT| Default routing layer adjustment| 0.5 | -| RTLMP_FLOW| 1 to enable the Hierarchical RTLMP flow.| 0 | | SC_LEF| Path to technology standard cell LEF file.| | | SDC_FILE| The path to design constraint (SDC) file.| | +| SDC_GUT| Load design and remove all internal logic before doing synthesis. This is useful when creating a mock .lef abstract that has a smaller area than the amount of logic would allow. bazel-orfs uses this to mock SRAMs, for instance.| | | SEAL_GDS| Seal macro to place around the design.| | -| SETUP_SLACK_MARGIN| Specifies a time margin for the slack when fixing setup violations.| | +| 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).| | | SET_RC_TCL| Metal & Via RC definition file path.| | | 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.| | -| SKIP_GATE_CLONING| Do not use gate cloning transform to fix timing violations. | use gate cloning | -| SKIP_INCREMENTAL_REPAIR| Skipping global routing timing repair, which can lead to longer run times. | 0 | -| SKIP_PIN_SWAP| Do not use pin swapping as a transform to fix timing violations | use pin swapping | +| SKIP_GATE_CLONING| Do not use gate cloning transform to fix timing violations (default: use gate cloning).| | +| SKIP_INCREMENTAL_REPAIR| Skip incremental repair in global route.| 0 | +| SKIP_LAST_GASP| Do not use last gasp optimization to fix timing violations (default: use gate last gasp).| | +| SKIP_PIN_SWAP| Do not use pin swapping as a transform to fix timing violations (default: use pin swapping).| | | SKIP_REPORT_METRICS| If set to 1, then metrics, report_metrics does nothing. Useful to speed up builds.| | | SLEW_MARGIN| Specifies a slew margin when fixing max slew violations. This option allows you to overfix.| | | SYNTH_ARGS| Optional synthesis variables for yosys.| | +| SYNTH_GUT| Load design and remove all internal logic before doing synthesis. This is useful when creating a mock .lef abstract that has a smaller area than the amount of logic would allow. bazel-orfs uses this to mock SRAMs, for instance.| | | SYNTH_HIERARCHICAL| Enable to Synthesis hierarchically, otherwise considered flat synthesis.| | | TAPCELL_TCL| Path to Endcap and Welltie cells file.| | | TAP_CELL_NAME| Name of the cell to use in tap cell insertion.| | @@ -170,13 +176,15 @@ configuration file. - [ABC_DRIVER_CELL](#ABC_DRIVER_CELL) - [ABC_LOAD_IN_FF](#ABC_LOAD_IN_FF) - [ADDER_MAP_FILE](#ADDER_MAP_FILE) -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [CLKGATE_MAP_FILE](#CLKGATE_MAP_FILE) - [LATCH_MAP_FILE](#LATCH_MAP_FILE) - [MAX_UNGROUP_SIZE](#MAX_UNGROUP_SIZE) - [MIN_BUF_CELL_AND_PORTS](#MIN_BUF_CELL_AND_PORTS) - [RESYNTH_AREA_RECOVER](#RESYNTH_AREA_RECOVER) - [RESYNTH_TIMING_RECOVER](#RESYNTH_TIMING_RECOVER) +- [SDC_FILE](#SDC_FILE) +- [SDC_GUT](#SDC_GUT) +- [SYNTH_GUT](#SYNTH_GUT) - [SYNTH_HIERARCHICAL](#SYNTH_HIERARCHICAL) - [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT) - [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT) @@ -186,7 +194,6 @@ configuration file. ## floorplan variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [CELL_PAD_IN_SITES_GLOBAL_PLACEMENT](#CELL_PAD_IN_SITES_GLOBAL_PLACEMENT) - [CORE_AREA](#CORE_AREA) - [CORE_ASPECT_RATIO](#CORE_ASPECT_RATIO) @@ -194,6 +201,8 @@ configuration file. - [CORE_UTILIZATION](#CORE_UTILIZATION) - [DIE_AREA](#DIE_AREA) - [FLOORPLAN_DEF](#FLOORPLAN_DEF) +- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) +- [IO_CONSTRAINTS](#IO_CONSTRAINTS) - [IO_PLACER_H](#IO_PLACER_H) - [IO_PLACER_V](#IO_PLACER_V) - [MACRO_BLOCKAGE_HALO](#MACRO_BLOCKAGE_HALO) @@ -205,32 +214,42 @@ configuration file. - [MACRO_PLACE_HALO](#MACRO_PLACE_HALO) - [MACRO_WRAPPERS](#MACRO_WRAPPERS) - [MAKE_TRACKS](#MAKE_TRACKS) +- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT) - [PDN_TCL](#PDN_TCL) - [PLACE_DENSITY](#PLACE_DENSITY) +- [PLACE_PINS_ARGS](#PLACE_PINS_ARGS) - [PLACE_SITE](#PLACE_SITE) -- [RTLMP_FLOW](#RTLMP_FLOW) +- [REMOVE_ABC_BUFFERS](#REMOVE_ABC_BUFFERS) +- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) +- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) +- [SKIP_LAST_GASP](#SKIP_LAST_GASP) +- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP) +- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [TAPCELL_TCL](#TAPCELL_TCL) - [TNS_END_PERCENT](#TNS_END_PERCENT) ## place variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [CELL_PAD_IN_SITES_DETAIL_PLACEMENT](#CELL_PAD_IN_SITES_DETAIL_PLACEMENT) - [CELL_PAD_IN_SITES_GLOBAL_PLACEMENT](#CELL_PAD_IN_SITES_GLOBAL_PLACEMENT) +- [FLOORPLAN_DEF](#FLOORPLAN_DEF) - [GPL_ROUTABILITY_DRIVEN](#GPL_ROUTABILITY_DRIVEN) - [GPL_TIMING_DRIVEN](#GPL_TIMING_DRIVEN) +- [IO_CONSTRAINTS](#IO_CONSTRAINTS) - [IO_PLACER_H](#IO_PLACER_H) - [IO_PLACER_V](#IO_PLACER_V) +- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT) - [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER) - [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER) - [PLACE_DENSITY](#PLACE_DENSITY) +- [PLACE_PINS_ARGS](#PLACE_PINS_ARGS) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) +- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [TIEHI_CELL_AND_PORT](#TIEHI_CELL_AND_PORT) - [TIELO_CELL_AND_PORT](#TIELO_CELL_AND_PORT) ## cts variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [CELL_PAD_IN_SITES_DETAIL_PLACEMENT](#CELL_PAD_IN_SITES_DETAIL_PLACEMENT) - [CTS_ARGS](#CTS_ARGS) - [CTS_BUF_DISTANCE](#CTS_BUF_DISTANCE) @@ -239,42 +258,71 @@ configuration file. - [CTS_SNAPSHOT](#CTS_SNAPSHOT) - [DETAILED_METRICS](#DETAILED_METRICS) - [EQUIVALENCE_CHECK](#EQUIVALENCE_CHECK) +- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) +- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT) - [POST_CTS_TCL](#POST_CTS_TCL) - [REMOVE_CELLS_FOR_EQY](#REMOVE_CELLS_FOR_EQY) +- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) +- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SKIP_CTS_REPAIR_TIMING](#SKIP_CTS_REPAIR_TIMING) +- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) +- [SKIP_LAST_GASP](#SKIP_LAST_GASP) +- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP) +- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [TNS_END_PERCENT](#TNS_END_PERCENT) ## grt variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [CELL_PAD_IN_SITES_DETAIL_PLACEMENT](#CELL_PAD_IN_SITES_DETAIL_PLACEMENT) - [DETAILED_METRICS](#DETAILED_METRICS) +- [GLOBAL_ROUTE_ARGS](#GLOBAL_ROUTE_ARGS) +- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) - [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER) - [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER) +- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) +- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) +- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) +- [SKIP_INCREMENTAL_REPAIR](#SKIP_INCREMENTAL_REPAIR) +- [SKIP_LAST_GASP](#SKIP_LAST_GASP) +- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP) +- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [TNS_END_PERCENT](#TNS_END_PERCENT) ## route variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [DETAILED_ROUTE_ARGS](#DETAILED_ROUTE_ARGS) - [DETAILED_ROUTE_END_ITERATION](#DETAILED_ROUTE_END_ITERATION) +- [FILL_CELLS](#FILL_CELLS) +- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT) - [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER) - [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER) +- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) +- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) ## final variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) +- [ADDITIONAL_GDS](#ADDITIONAL_GDS) +- [GND_NETS_VOLTAGES](#GND_NETS_VOLTAGES) +- [MAX_ROUTING_LAYER](#MAX_ROUTING_LAYER) +- [MIN_ROUTING_LAYER](#MIN_ROUTING_LAYER) +- [PWR_NETS_VOLTAGES](#PWR_NETS_VOLTAGES) +- [REPORT_CLOCK_SKEW](#REPORT_CLOCK_SKEW) - [ROUTING_LAYER_ADJUSTMENT](#ROUTING_LAYER_ADJUSTMENT) +- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) + +## generate_abstract variables + +- [ABSTRACT_SOURCE](#ABSTRACT_SOURCE) ## All stages variables -- [ADDITIONAL_FILES](#ADDITIONAL_FILES) + ## Uncategorized variables -- [ADDITIONAL_GDS](#ADDITIONAL_GDS) +- [ADDITIONAL_FILES](#ADDITIONAL_FILES) - [ADDITIONAL_LEFS](#ADDITIONAL_LEFS) - [ADDITIONAL_LIBS](#ADDITIONAL_LIBS) - [BLOCKS](#BLOCKS) @@ -289,14 +337,11 @@ configuration file. - [DPO_MAX_DISPLACEMENT](#DPO_MAX_DISPLACEMENT) - [ENABLE_DPO](#ENABLE_DPO) - [FASTROUTE_TCL](#FASTROUTE_TCL) -- [FILL_CELLS](#FILL_CELLS) - [FILL_CONFIG](#FILL_CONFIG) - [GDS_FILES](#GDS_FILES) - [GENERATE_ARTIFACTS_ON_FAILURE](#GENERATE_ARTIFACTS_ON_FAILURE) - [GLOBAL_PLACEMENT_ARGS](#GLOBAL_PLACEMENT_ARGS) -- [GND_NETS_VOLTAGES](#GND_NETS_VOLTAGES) - [GUI_TIMING](#GUI_TIMING) -- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN) - [IR_DROP_LAYER](#IR_DROP_LAYER) - [KLAYOUT_TECH_FILE](#KLAYOUT_TECH_FILE) - [LIB_FILES](#LIB_FILES) @@ -305,19 +350,12 @@ configuration file. - [PLATFORM](#PLATFORM) - [PRESERVE_CELLS](#PRESERVE_CELLS) - [PROCESS](#PROCESS) -- [PWR_NETS_VOLTAGES](#PWR_NETS_VOLTAGES) - [RCX_RULES](#RCX_RULES) - [RECOVER_POWER](#RECOVER_POWER) - [REPAIR_PDN_VIA_LAYER](#REPAIR_PDN_VIA_LAYER) - [SC_LEF](#SC_LEF) -- [SDC_FILE](#SDC_FILE) - [SEAL_GDS](#SEAL_GDS) -- [SETUP_SLACK_MARGIN](#SETUP_SLACK_MARGIN) - [SET_RC_TCL](#SET_RC_TCL) -- [SKIP_GATE_CLONING](#SKIP_GATE_CLONING) -- [SKIP_INCREMENTAL_REPAIR](#SKIP_INCREMENTAL_REPAIR) -- [SKIP_PIN_SWAP](#SKIP_PIN_SWAP) -- [SKIP_REPORT_METRICS](#SKIP_REPORT_METRICS) - [SLEW_MARGIN](#SLEW_MARGIN) - [SYNTH_ARGS](#SYNTH_ARGS) - [TAP_CELL_NAME](#TAP_CELL_NAME) diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index 987b67c94c..09527977d2 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -418,7 +418,8 @@ MACRO_EXTENSION: Sets the number of GCells added to the blockages boundaries from macros. DETAILED_ROUTE_END_ITERATION: description: > - Maximum number of iterations, default 64. + Maximum number of iterations. + default: 64 stages: - route RCX_RULES: @@ -541,8 +542,9 @@ CORE_ASPECT_RATIO: - floorplan CORE_MARGIN: description: > - The margin between the core area and die area, in multiples of SITE heights. - The margin is applied to each side. This variable is ignored if `CORE_UTILIZATION` + The margin between the core area and die area, specified in microns. Allowed values + are either one value for all margins or a set of four values, one for each margin. The order + of the four values are: `{bottom top left right}`. This variable is ignored if `CORE_UTILIZATION` is undefined. stages: - floorplan @@ -584,12 +586,14 @@ CTS_BUF_DISTANCE: - cts CTS_CLUSTER_DIAMETER: description: > - Maximum diameter (in microns) of sink cluster. Default 20. + Maximum diameter (in microns) of sink cluster. + default: 20 stages: - cts CTS_CLUSTER_SIZE: description: > - Maximum number of sinks per cluster. Default 50. + Maximum number of sinks per cluster. + default: 50 stages: - cts CTS_SNAPSHOT: @@ -607,7 +611,8 @@ FASTROUTE_TCL: Specifies a Tcl script with commands to run before FastRoute. USE_FILL: description: > - Whether to perform metal density filling. Default 0 (=off). + Whether to perform metal density filling. + default: 0 (=off) SEAL_GDS: description: > Seal macro to place around the design. From 40c87c0f0831965e6bf3b89410dabb8fe1a43f94 Mon Sep 17 00:00:00 2001 From: Jeff Ng Date: Tue, 12 Nov 2024 07:44:05 -0800 Subject: [PATCH 3/3] USE_FILL feedback Signed-off-by: Jeff Ng --- flow/scripts/variables.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flow/scripts/variables.yaml b/flow/scripts/variables.yaml index 09527977d2..b6ee3a9f25 100644 --- a/flow/scripts/variables.yaml +++ b/flow/scripts/variables.yaml @@ -612,7 +612,7 @@ FASTROUTE_TCL: USE_FILL: description: > Whether to perform metal density filling. - default: 0 (=off) + default: 0 SEAL_GDS: description: > Seal macro to place around the design.