Universal Flow PDK Configuration Variables¶
These are variables that are to be defined by a process design kit’s
configuration files for all steps and flows. For a PDK to be compatible with
LibreLane, all non-Optional variables must be given a value.
Like with flow configuration variables, configuration objects can freely override these values.
Note
? indicates an optional variable, i.e., a value that does not need to be
implemented by a PDK or an SCL. LibreLane steps are expected to understand that
these values may hold a value of None in the input configuration and
behave accordingly.
PDK-Level¶
These are variables that affect the entire PDK.
| Variable Name | Type | Description | Default | Units |
|---|---|---|---|---|
|
|
str |
Specifies the default standard cell library to be used under the specified PDK. Must be a valid C identifier, i.e., matches the regular expression |
|
|
|
|
str |
The power pin for the cells. |
|
|
|
|
str |
The ground pin for the cells. |
|
|
|
|
Dict[str, Path] |
Map of corner patterns to technology LEF files. A corner not matched here will not be supported by OpenRCX in the default flow. |
|
|
|
Deprecated names
|
str |
Specify the primary GDSII streamout tool for this PDK. For most open-source PDKs, that would be ‘magic’. |
|
|
|
|
Decimal? |
Defines the default maximum transition value used in Synthesis and CTS. |
|
ns |
|
|
str |
The interconnect/process/voltage/temperature corner (IPVT) to use the characterized lib files compatible with by default. |
|
|
|
|
List[str] |
A list of fully qualified IPVT (Interconnect, transistor Process, Voltage, and Temperature) timing corners on which to conduct multi-corner static timing analysis. |
|
|
|
|
str |
The lowest metal layer to route on. |
|
|
|
|
str |
The highest metal layer to route on. |
|
SCL-Level¶
These are variables that affect a specific standard-cell library.
| Variable Name | Type | Description | Default | Units |
|---|---|---|---|---|
|
Deprecated names
|
List[str] |
SCL-specific ground pins |
|
|
|
Deprecated names
|
List[str] |
SCL-specific power pins |
|
|
|
Deprecated names
|
List[str]? |
A list of cell names or wildcards of tri-state buffers. |
|
|
|
Deprecated names
|
List[str] |
A list of cell names or wildcards of fill cells to be used in fill insertion. |
|
|
|
Deprecated names
|
List[str] |
A list of cell names or wildcards of decap cells to be used in fill insertion. |
|
|
|
|
Dict[str, List[Path]] |
A map from corner patterns to a list of associated liberty files. Exactly one entry must match the |
|
|
|
Deprecated names
|
List[Path] |
Path(s) to the cells’ LEF file(s). |
|
|
|
Deprecated names
|
List[Path] |
Path(s) to the cells’ GDSII file(s). |
|
|
|
|
List[Path]? |
Path(s) to cells’ Verilog model(s) |
|
|
|
|
List[Path]? |
Path(s) to cells’ black-box Verilog model(s) |
|
|
|
|
List[Path]? |
Path(s) to cells’ SPICE model(s) |
|
|
|
Deprecated names
|
List[Path]? |
A circuit-design language view of the standard cell library. |
|
|
|
Deprecated names
|
Path |
Path to a text file containing a list of (wildcards matching) cells to be excluded from the lib file in synthesis alone. |
|
|
|
Deprecated names
|
Path |
Path to a text file containing a list of undesirable or bad (DRC-failed or complex pinout) cells or wildcards matching cells to be excluded from synthesis AND PnR. |
|
|
|
Deprecated names
|
Decimal |
Defines the capacitive load on the output ports. |
|
fF |
|
Deprecated names
|
int |
The max load that the output ports can drive to be used as a constraint on Synthesis and CTS. |
|
cells |
|
Deprecated names
|
Decimal? |
The max transition time (slew) from high to low or low to high on cell inputs in ns to be used as a constraint on Synthesis and CTS. If not provided, it is calculated at runtime as |
|
ns |
|
|
Decimal? |
The maximum capacitance constraint. If not provided, the constraint is not set in the SDC file which will fall back to the value set by the liberty file |
|
pF |
|
Deprecated names
|
Decimal |
Specifies a value for the clock uncertainty/jitter for timing analysis. |
|
ns |
|
Deprecated names
|
Decimal |
Specifies a value for the clock transition/slew for timing analysis. |
|
ns |
|
Deprecated names
|
Decimal |
Specifies a derating factor to multiply the path delays with. It specifies the upper and lower ranges of timing. |
|
|
|
Deprecated names
|
Decimal |
Specifies the percentage of the clock period used in the input/output delays. |
|
|
|
|
str |
The cell to drive the input ports, used in synthesis and static timing analysis, in the format |
|
|
|
|
str? |
The cell to drive the clock input ports, used in synthesis and static timing analysis, in the format |
|
|
|
|
str |
Defines the tie high cell followed by the port that implements the tie high functionality, in the format |
|
|
|
|
str |
Defines the tie high cell followed by the port that implements the tie low functionality, in the format |
|
|
|
|
str |
Defines a buffer port to be used by yosys during synthesis: in the format |
|
|
|
|
str |
Defines the primary placement site in placement as specified in the technology LEF files, to generate the placement grid. |
|
|
|
|
List[str] |
Defines a list of cells to be excluded from cell padding. |
|
|
|
|
str? |
Defines a diode cell used to fix antenna violations, in the format |
|
|
|
Deprecated names
|
str? |
Defines the cell used for tap insertion. If not defined, steps should not attempt to insert welltap cells. |
|
|
|
Deprecated names
|
str? |
Defines the so-called ‘end-cap’ cell- class of decap cells placed at either sides of a design, if available. |
|