Skip to content

Commit 3049f70

Browse files
authored
Merge pull request #2569 from Pinata-Consulting/variables-cleanup
variables.yaml: move defaults from Makefile
2 parents 26c7df4 + 7bfbdce commit 3049f70

File tree

3 files changed

+29
-38
lines changed

3 files changed

+29
-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 larger area than given by this variable. The default value is > 0 platform specific.| | |
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: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -179,40 +179,17 @@ 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
184+
# If the design, nor $(PLATFORM_DIR)/config.mk provided a default, provide one here
185185
export MAX_UNGROUP_SIZE ?= 0
186186

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
194187
# Not normally adjusted by user
195188
export SYNTH_OPERATIONS_ARGS ?= -extra-map $(FLOW_HOME)/platforms/common/lcu_kogge_stone.v
196189
export SYNTH_FULL_ARGS ?= $(SYNTH_ARGS) $(SYNTH_OPERATIONS_ARGS)
197190

198-
# Global setting for Floorplan
199-
export PLACE_PINS_ARGS
200-
201191
export FLOW_VARIANT ?= base
202192

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-
216193
# Setup working directories
217194
export DESIGN_NICKNAME ?= $(DESIGN_NAME)
218195

flow/scripts/variables.yaml

Lines changed: 15 additions & 1 deletion
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.
@@ -188,7 +189,8 @@ ABC_LOAD_IN_FF:
188189
- synth
189190
MAX_UNGROUP_SIZE:
190191
description: >
191-
For hierarchical synthesis, we ungroup modules of size given by this variable.
192+
For hierarchical synthesis, we ungroup modules of larger area than given by this
193+
variable. The default value is > 0 platform specific.
192194
stages:
193195
- synth
194196
FLOORPLAN_DEF:
@@ -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.
@@ -322,19 +327,23 @@ GLOBAL_PLACEMENT_ARGS:
322327
ENABLE_DPO:
323328
description: >
324329
Enable detail placement with improve_placement feature.
330+
default: 1
325331
DPO_MAX_DISPLACEMENT:
326332
description: >
327333
Specifies how far an instance can be moved when optimizing.
334+
default: 5 1
328335
GPL_TIMING_DRIVEN:
329336
description: >
330337
Specifies whether the placer should use timing driven placement.
331338
stages:
332339
- place
340+
default: 1
333341
GPL_ROUTABILITY_DRIVEN:
334342
description: >
335343
Specifies whether the placer should use routability driven placement.
336344
stages:
337345
- place
346+
default: 1
338347
CAP_MARGIN:
339348
description: >
340349
Specifies a capacitance margin when fixing max capacitance violations. This option allows you to overfix.
@@ -517,6 +526,7 @@ ABC_AREA:
517526
Strategies for Yosys ABC synthesis: Area/Speed. Default ABC_SPEED.
518527
stages:
519528
- synth
529+
default: 0
520530
PWR_NETS_VOLTAGES:
521531
description: >
522532
Used for IR Drop calculation.
@@ -546,6 +556,7 @@ PRESERVE_CELLS:
546556
SYNTH_ARGS:
547557
description: >
548558
Optional synthesis variables for yosys.
559+
default: -flatten
549560
VERILOG_TOP_PARAMS:
550561
description: >
551562
Apply toplevel params (if exist).
@@ -576,11 +587,13 @@ RESYNTH_AREA_RECOVER:
576587
Enable re-synthesis for area reclaim.
577588
stages:
578589
- synth
590+
default: 0
579591
RESYNTH_TIMING_RECOVER:
580592
description: >
581593
Enable re-synthesis for timing optimization.
582594
stages:
583595
- synth
596+
default: 0
584597
MACRO_HALO_X:
585598
description: >
586599
Set macro halo for x-direction. Only available for ASAP7 PDK.
@@ -652,3 +665,4 @@ MATCH_CELL_FOOTPRINT:
652665
- place
653666
- cts
654667
- route
668+
default: 0

0 commit comments

Comments
 (0)