Skip to content

Commit a5f426d

Browse files
committed
variables.yaml: move defaults from Makefile
This is to reduce copying and pasting a pattern we're moving away from Signed-off-by: Øyvind Harboe <[email protected]>
1 parent 27f9815 commit a5f426d

File tree

3 files changed

+27
-38
lines changed

3 files changed

+27
-38
lines changed

docs/user/FlowVariables.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ configuration file.
5252

5353
| Variable | Description | Default | Deprecated |
5454
| --- | --- | --- | --- |
55-
| <a name="ABC_AREA"></a>ABC_AREA| Strategies for Yosys ABC synthesis: Area/Speed. Default ABC_SPEED.| | |
55+
| <a name="ABC_AREA"></a>ABC_AREA| Strategies for Yosys ABC synthesis: Area/Speed. Default ABC_SPEED.| 0| |
5656
| <a name="ABC_CLOCK_PERIOD_IN_PS"></a>ABC_CLOCK_PERIOD_IN_PS| Clock period to be used by STA during synthesis. Default value read from `constraint.sdc`.| | |
5757
| <a name="ABC_DRIVER_CELL"></a>ABC_DRIVER_CELL| Default driver cell used during ABC synthesis.| | |
5858
| <a name="ABC_LOAD_IN_FF"></a>ABC_LOAD_IN_FF| During synthesis set_load value used.| | |
@@ -65,8 +65,8 @@ configuration file.
6565
| <a name="BLOCKS"></a>BLOCKS| Blocks used as hard macros in a hierarchical flow. Do note that you have to specify block-specific inputs file in the directory mentioned by Makefile.| | |
6666
| <a name="CAP_MARGIN"></a>CAP_MARGIN| Specifies a capacitance margin when fixing max capacitance violations. This option allows you to overfix.| | |
6767
| <a name="CDL_FILES"></a>CDL_FILES| Insert additional Circuit Description Language (`.cdl`) netlist files.| | |
68-
| <a name="CELL_PAD_IN_SITES_DETAIL_PLACEMENT"></a>CELL_PAD_IN_SITES_DETAIL_PLACEMENT| Cell padding on both sides in site widths to ease routability in detail placement.| | |
69-
| <a name="CELL_PAD_IN_SITES_GLOBAL_PLACEMENT"></a>CELL_PAD_IN_SITES_GLOBAL_PLACEMENT| Cell padding on both sides in site widths to ease routability during global placement.| | |
68+
| <a name="CELL_PAD_IN_SITES_DETAIL_PLACEMENT"></a>CELL_PAD_IN_SITES_DETAIL_PLACEMENT| Cell padding on both sides in site widths to ease routability in detail placement.| 0| |
69+
| <a name="CELL_PAD_IN_SITES_GLOBAL_PLACEMENT"></a>CELL_PAD_IN_SITES_GLOBAL_PLACEMENT| Cell padding on both sides in site widths to ease routability during global placement.| 0| |
7070
| <a name="CLKGATE_MAP_FILE"></a>CLKGATE_MAP_FILE| List of cells for gating clock treated as a black box by Yosys.| | |
7171
| <a name="CORE_AREA"></a>CORE_AREA| The core area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2).| | |
7272
| <a name="CORE_ASPECT_RATIO"></a>CORE_ASPECT_RATIO| The core aspect ratio (height / width). This value is ignored if `CORE_UTILIZATION` is undefined.| | |
@@ -87,8 +87,8 @@ configuration file.
8787
| <a name="DIE_AREA"></a>DIE_AREA| The die area specified as a list of lower-left and upper-right corners in microns (X1 Y1 X2 Y2).| | |
8888
| <a name="DONT_USE_CELLS"></a>DONT_USE_CELLS| Dont use cells eases pin access in detailed routing.| | |
8989
| <a name="DONT_USE_LIBS"></a>DONT_USE_LIBS| Set liberty files as `dont_use`.| | |
90-
| <a name="DPO_MAX_DISPLACEMENT"></a>DPO_MAX_DISPLACEMENT| Specifies how far an instance can be moved when optimizing.| | |
91-
| <a name="ENABLE_DPO"></a>ENABLE_DPO| Enable detail placement with improve_placement feature.| | |
90+
| <a name="DPO_MAX_DISPLACEMENT"></a>DPO_MAX_DISPLACEMENT| Specifies how far an instance can be moved when optimizing.| 5 1| |
91+
| <a name="ENABLE_DPO"></a>ENABLE_DPO| Enable detail placement with improve_placement feature.| 1| |
9292
| <a name="EQUIVALENCE_CHECK"></a>EQUIVALENCE_CHECK| Enable running equivalence checks to verify logical correctness of repair_timing.| 0| |
9393
| <a name="FASTROUTE_TCL"></a>FASTROUTE_TCL| Specifies a Tcl script with commands to run before FastRoute.| | |
9494
| <a name="FILL_CELLS"></a>FILL_CELLS| Fill cells are used to fill empty sites. If not set or empty, fill cell insertion is skipped.| | |
@@ -99,8 +99,8 @@ configuration file.
9999
| <a name="GLOBAL_PLACEMENT_ARGS"></a>GLOBAL_PLACEMENT_ARGS| Use additional tuning parameters during global placement other than default args defined in global_place.tcl.| | |
100100
| <a name="GLOBAL_ROUTE_ARGS"></a>GLOBAL_ROUTE_ARGS| Replaces default arguments for global route.| -congestion_iterations 30 -congestion_report_iter_step 5 -verbose| |
101101
| <a name="GND_NETS_VOLTAGES"></a>GND_NETS_VOLTAGES| Used for IR Drop calculation.| | |
102-
| <a name="GPL_ROUTABILITY_DRIVEN"></a>GPL_ROUTABILITY_DRIVEN| Specifies whether the placer should use routability driven placement.| | |
103-
| <a name="GPL_TIMING_DRIVEN"></a>GPL_TIMING_DRIVEN| Specifies whether the placer should use timing driven placement.| | |
102+
| <a name="GPL_ROUTABILITY_DRIVEN"></a>GPL_ROUTABILITY_DRIVEN| Specifies whether the placer should use routability driven placement.| 1| |
103+
| <a name="GPL_TIMING_DRIVEN"></a>GPL_TIMING_DRIVEN| Specifies whether the placer should use timing driven placement.| 1| |
104104
| <a name="GUI_TIMING"></a>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| |
105105
| <a name="HOLD_SLACK_MARGIN"></a>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). Use min of HOLD_SLACK_MARGIN and 0(default hold slack margin) in floorplan. This avoids overrepair in floorplan for hold by default, but allows skipping hold repair using a negative HOLD_SLACK_MARGIN. Exiting timing repair early is useful in exploration where the .sdc has a fixed clock period at designs target clock period and where HOLD/SETUP_SLACK_MARGIN is used to avoid overrepair(extremelly long running times) when exploring different parameter settings.| 0| |
106106
| <a name="IO_CONSTRAINTS"></a>IO_CONSTRAINTS| File path to the IO constraints .tcl file.| | |
@@ -120,9 +120,9 @@ configuration file.
120120
| <a name="MACRO_PLACE_HALO"></a>MACRO_PLACE_HALO| Horizontal/vertical halo around macros (microns). Used by automatic macro placement.| | |
121121
| <a name="MACRO_WRAPPERS"></a>MACRO_WRAPPERS| The wrapper file that replaces existing macros with their wrapped version.| | |
122122
| <a name="MAKE_TRACKS"></a>MAKE_TRACKS| Tcl file that defines add routing tracks to a floorplan.| | |
123-
| <a name="MATCH_CELL_FOOTPRINT"></a>MATCH_CELL_FOOTPRINT| Enforce sizing operations to only swap cells that have the same layout boundary.| | |
123+
| <a name="MATCH_CELL_FOOTPRINT"></a>MATCH_CELL_FOOTPRINT| Enforce sizing operations to only swap cells that have the same layout boundary.| 0| |
124124
| <a name="MAX_ROUTING_LAYER"></a>MAX_ROUTING_LAYER| The highest metal layer name to be used in routing.| | |
125-
| <a name="MAX_UNGROUP_SIZE"></a>MAX_UNGROUP_SIZE| For hierarchical synthesis, we ungroup modules of size given by this variable.| | |
125+
| <a name="MAX_UNGROUP_SIZE"></a>MAX_UNGROUP_SIZE| For hierarchical synthesis, we ungroup modules of size given by this variable.| 0| |
126126
| <a name="MIN_BUF_CELL_AND_PORTS"></a>MIN_BUF_CELL_AND_PORTS| Used to insert a buffer cell to pass through wires. Used in synthesis.| | |
127127
| <a name="MIN_ROUTING_LAYER"></a>MIN_ROUTING_LAYER| The lowest metal layer name to be used in routing.| | |
128128
| <a name="PDN_TCL"></a>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.| | |
@@ -141,8 +141,8 @@ configuration file.
141141
| <a name="REMOVE_CELLS_FOR_EQY"></a>REMOVE_CELLS_FOR_EQY| String patterns directly passed to write_verilog -remove_cells <> for equivalence checks.| | |
142142
| <a name="REPAIR_PDN_VIA_LAYER"></a>REPAIR_PDN_VIA_LAYER| Remove power grid vias which generate DRC violations after detailed routing.| | |
143143
| <a name="REPORT_CLOCK_SKEW"></a>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| |
144-
| <a name="RESYNTH_AREA_RECOVER"></a>RESYNTH_AREA_RECOVER| Enable re-synthesis for area reclaim.| | |
145-
| <a name="RESYNTH_TIMING_RECOVER"></a>RESYNTH_TIMING_RECOVER| Enable re-synthesis for timing optimization.| | |
144+
| <a name="RESYNTH_AREA_RECOVER"></a>RESYNTH_AREA_RECOVER| Enable re-synthesis for area reclaim.| 0| |
145+
| <a name="RESYNTH_TIMING_RECOVER"></a>RESYNTH_TIMING_RECOVER| Enable re-synthesis for timing optimization.| 0| |
146146
| <a name="ROUTING_LAYER_ADJUSTMENT"></a>ROUTING_LAYER_ADJUSTMENT| Default routing layer adjustment| 0.5| |
147147
| <a name="SC_LEF"></a>SC_LEF| Path to technology standard cell LEF file.| | |
148148
| <a name="SDC_FILE"></a>SDC_FILE| The path to design constraint (SDC) file.| | |
@@ -157,9 +157,9 @@ configuration file.
157157
| <a name="SKIP_PIN_SWAP"></a>SKIP_PIN_SWAP| Do not use pin swapping as a transform to fix timing violations (default: use pin swapping).| | |
158158
| <a name="SKIP_REPORT_METRICS"></a>SKIP_REPORT_METRICS| If set to 1, then metrics, report_metrics does nothing. Useful to speed up builds.| | |
159159
| <a name="SLEW_MARGIN"></a>SLEW_MARGIN| Specifies a slew margin when fixing max slew violations. This option allows you to overfix.| | |
160-
| <a name="SYNTH_ARGS"></a>SYNTH_ARGS| Optional synthesis variables for yosys.| | |
160+
| <a name="SYNTH_ARGS"></a>SYNTH_ARGS| Optional synthesis variables for yosys.| -flatten| |
161161
| <a name="SYNTH_GUT"></a>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.| | |
162-
| <a name="SYNTH_HIERARCHICAL"></a>SYNTH_HIERARCHICAL| Enable to Synthesis hierarchically, otherwise considered flat synthesis.| | |
162+
| <a name="SYNTH_HIERARCHICAL"></a>SYNTH_HIERARCHICAL| Enable to Synthesis hierarchically, otherwise considered flat synthesis.| 0| |
163163
| <a name="TAPCELL_TCL"></a>TAPCELL_TCL| Path to Endcap and Welltie cells file.| | |
164164
| <a name="TAP_CELL_NAME"></a>TAP_CELL_NAME| Name of the cell to use in tap cell insertion.| | |
165165
| <a name="TECH_LEF"></a>TECH_LEF| A technology LEF file of the PDK that includes all relevant information regarding metal layers, vias, and spacing requirements.| | |

flow/Makefile

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -179,40 +179,15 @@ endif
179179
include $(PLATFORM_DIR)/config.mk
180180

181181
# Enables hierarchical yosys
182-
export SYNTH_HIERARCHICAL ?= 0
183182
export SYNTH_STATS = $(RESULTS_DIR)/synth_stats.txt
184183
export SYNTH_STATS_SCRIPT = $(SCRIPTS_DIR)/synth_stats.tcl
185-
export MAX_UNGROUP_SIZE ?= 0
186184

187-
# Enables Re-synthesis for area reclaim
188-
export RESYNTH_AREA_RECOVER ?= 0
189-
export RESYNTH_TIMING_RECOVER ?= 0
190-
export ABC_AREA ?= 0
191-
192-
# User adjustable synthesis arguments
193-
export SYNTH_ARGS ?= -flatten
194185
# Not normally adjusted by user
195186
export SYNTH_OPERATIONS_ARGS ?= -extra-map $(FLOW_HOME)/platforms/common/lcu_kogge_stone.v
196187
export SYNTH_FULL_ARGS ?= $(SYNTH_ARGS) $(SYNTH_OPERATIONS_ARGS)
197188

198-
# Global setting for Floorplan
199-
export PLACE_PINS_ARGS
200-
201189
export FLOW_VARIANT ?= base
202190

203-
export GPL_TIMING_DRIVEN ?= 1
204-
export GPL_ROUTABILITY_DRIVEN ?= 1
205-
206-
# Cell padding in SITE widths to ease rout-ability. Applied to both sides
207-
export CELL_PAD_IN_SITES_GLOBAL_PLACEMENT ?= 0
208-
export CELL_PAD_IN_SITES_DETAIL_PLACEMENT ?= 0
209-
210-
export ENABLE_DPO ?= 1
211-
export DPO_MAX_DISPLACEMENT ?= 5 1
212-
213-
# Settings for Sizing
214-
export MATCH_CELL_FOOTPRINT ?= 0
215-
216191
# Setup working directories
217192
export DESIGN_NICKNAME ?= $(DESIGN_NAME)
218193

flow/scripts/variables.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ SYNTH_HIERARCHICAL:
139139
Enable to Synthesis hierarchically, otherwise considered flat synthesis.
140140
stages:
141141
- synth
142+
default: 0
142143
LATCH_MAP_FILE:
143144
description: >
144145
List of latches treated as a black box by Yosys.
@@ -191,6 +192,7 @@ MAX_UNGROUP_SIZE:
191192
For hierarchical synthesis, we ungroup modules of size given by this variable.
192193
stages:
193194
- synth
195+
default: 0
194196
FLOORPLAN_DEF:
195197
description: >
196198
Use the DEF file to initialize floorplan.
@@ -289,19 +291,22 @@ CELL_PAD_IN_SITES_GLOBAL_PLACEMENT:
289291
stages:
290292
- place
291293
- floorplan
294+
default: 0
292295
CELL_PAD_IN_SITES_DETAIL_PLACEMENT:
293296
description: >
294297
Cell padding on both sides in site widths to ease routability in detail placement.
295298
stages:
296299
- place
297300
- cts
298301
- grt
302+
default: 0
299303
PLACE_PINS_ARGS:
300304
description: >
301305
Arguments to place_pins
302306
stages:
303307
- place
304308
- floorplan
309+
default: ""
305310
PLACE_DENSITY:
306311
description: >
307312
The desired placement density of cells. It reflects how spread the cells would be on the core area.
@@ -321,19 +326,23 @@ GLOBAL_PLACEMENT_ARGS:
321326
ENABLE_DPO:
322327
description: >
323328
Enable detail placement with improve_placement feature.
329+
default: 1
324330
DPO_MAX_DISPLACEMENT:
325331
description: >
326332
Specifies how far an instance can be moved when optimizing.
333+
default: 5 1
327334
GPL_TIMING_DRIVEN:
328335
description: >
329336
Specifies whether the placer should use timing driven placement.
330337
stages:
331338
- place
339+
default: 1
332340
GPL_ROUTABILITY_DRIVEN:
333341
description: >
334342
Specifies whether the placer should use routability driven placement.
335343
stages:
336344
- place
345+
default: 1
337346
CAP_MARGIN:
338347
description: >
339348
Specifies a capacitance margin when fixing max capacitance violations. This option allows you to overfix.
@@ -516,6 +525,7 @@ ABC_AREA:
516525
Strategies for Yosys ABC synthesis: Area/Speed. Default ABC_SPEED.
517526
stages:
518527
- synth
528+
default: 0
519529
PWR_NETS_VOLTAGES:
520530
description: >
521531
Used for IR Drop calculation.
@@ -545,6 +555,7 @@ PRESERVE_CELLS:
545555
SYNTH_ARGS:
546556
description: >
547557
Optional synthesis variables for yosys.
558+
default: -flatten
548559
VERILOG_TOP_PARAMS:
549560
description: >
550561
Apply toplevel params (if exist).
@@ -575,11 +586,13 @@ RESYNTH_AREA_RECOVER:
575586
Enable re-synthesis for area reclaim.
576587
stages:
577588
- synth
589+
default: 0
578590
RESYNTH_TIMING_RECOVER:
579591
description: >
580592
Enable re-synthesis for timing optimization.
581593
stages:
582594
- synth
595+
default: 0
583596
MACRO_HALO_X:
584597
description: >
585598
Set macro halo for x-direction. Only available for ASAP7 PDK.
@@ -651,3 +664,4 @@ MATCH_CELL_FOOTPRINT:
651664
- place
652665
- cts
653666
- route
667+
default: 0

0 commit comments

Comments
 (0)