59 KiB
Flow Configuration Variables
This page is the comprehensive manual for user-configurable flow variables and their default values. Variables that are defined by the PDK configuration support files and not the flow itself are listed in this chapter.
:::{admonition} A couple things to keep in mind
-
This is a comprehesive list- there are many variables here you would never need to touch. If you want just a brief list of variables you should be using, see the usage guide Hardening Macros.
-
Deprecated variables are automatically translated to their new names for at least 6 months. Removed variables will be entirely ignored by the flow.
-
Variables prefixed
RUN_enable or disable a certain step as part of the larger OpenLane flow, not when calling the relevant function standalone. For example, if RUN_DRT is set 0, but callingdetailed_routingin interactive mode will still run detailed routing. :::
General
The `` `include `` directive is *not* supported in Verilog files. List all the
files you may be depending on, including headers, in `VERILOG_FILES`.
Macros/Chip Integration
Linting
- If you're running a hierarchical design (i.e. one that incorporates Macros
or directly instantiates SCLs), Linting may not work correctly. You have two
options:
- Provide blackboxes for all gate-level models instantiated by the top level
design or any of its macros.
- Files in
VERILOG_FILES_BLACKBOXwill not be included by default.
- Files in
- Disable linting altogether.
- Provide blackboxes for all gate-level models instantiated by the top level
design or any of its macros.
‡ Variable previously prefixed
VERILATOR_have had their prefix changed toLINTER_. The replaced variable is deprecated and will be translated to its new form automatically by the flow.
Synthesis
Static Timing Analysis (STA)
Floorplanning (FP)
Deprecated I/O Layer variables
These variables worked initially, but they were too sky130 specific and will be removed. Currently, if you define them in your design, they'll be used, but it's recommended to update your configuration to use FP_IO_HLAYER and FP_IO_VLAYER, which are defined in the PDK.
All Resizer (RSZ) Steps
Global and Detailed Placement (GPL/DPL)
Clock Tree Synthesis (CTS)
Global and Detailed Routing (GRT/DRT)
‡ Variable previously prefixed
GLB_RT_have had its prefix changed toGRT_. The replaced variable is deprecated and will be translated to its new form automatically by the flow.
Custom Diode Insertion Scripts
| Variable | Description |
|---|---|
RUN_HEURISTIC_DIODE_INSERTION |
Runs a script by Sylvain Munaut that inserts diodes heuristically based on . 1 = Enabled, 0 = Disabled (Default: 0) |
HEURISTIC_ANTENNA_THRESHOLD |
Minimum manhattan distance of a net to insert a diode in microns. Only applicable for RUN_HEURISTIC_DIODE_INSERTION is enabled. (Default: 90) |
DIODE_ON_PORTS |
Insert diodes on ports with the specified polarities. Available options are none, in, out and both. (Default: none) |
Parasitic Resistance/Capacitance Extraction (RCX)
IR Drop Analysis
| Variable | Description |
|---|---|
RUN_IRDROP_REPORT |
Creates an IR Drop report using OpenROAD PSM. 1 = Enabled, 0 = Disabled. (Default: 1) |
VSRC_LOC_FILES |
PSM loc file for power and ground nets. Variable should be provided as a json/tcl list or a space delimited tcl string as follows: net1 file1 net2 file2. See this for more info.(Default: NONE) |
Signoff
Magic
- Tim Edwards's Explanation on disabling hier gds: The following is an explanation by Tim Edwards, provided in a slack thread, on how this affects the GDS writing process: "Magic can take a very long time writing out GDS while checking hierarchical interactions in a standard cell layout. If your design is all digital, I recommend using "gds *hier write disable" before "gds write" so that it does not try to resolve hierarchical interactions (since by definition, standard cells are designed to just sit next to each other without creating DRC issues). That can actually make the difference between a 20 hour GDS write and a 2 minute GDS write. For a standard cell design that takes up the majority of the user space, a > 24 hour write time (without disabling the hierarchy checks) would not surprise me."