mirror of
https://github.com/The-OpenROAD-Project/OpenLane.git
synced 2026-05-29 00:23:55 +08:00
Integrate KLayout DRC for sky130 (#2059)
~ Bump open_pdks version to `cd1748bb197f9b7af62a54507de6624e30363943` ~ Rename `PRIMARY_SIGNOFF_TOOL` to `PRIMARY_GDSII_STREAMOUT_TOOL` ~ Update documentation of `RUN_MAGIC_DRC` and `RUN_KLAYOUT_DRC` + Integrate KLayout DRC for sky130 + Add the following variables: ``` KLAYOUT_DRC_THREADS QUIT_ON_KLAYOUT_DRC RUN_KLAYOUT_DRC KLAYOUT_DRC_RUNSET - PDK variable KLAYOUT_DRC_OPTIONS - PDK variable ``` - Remove `KLAYOUT_DRC_KLAYOUT_GDS`
This commit is contained in:
@@ -321,7 +321,7 @@ These variables worked initially, but they were too sky130 specific and will be
|
||||
|
||||
|Variable|Description|
|
||||
|-|-|
|
||||
| `PRIMARY_SIGNOFF_TOOL` <a id="PRIMARY_SIGNOFF_TOOL"></a> | Determines whether `magic` or `klayout` is the primary signoff tool. <br> (Default: `magic`) |
|
||||
| `PRIMARY_GDSII_STREAMOUT_TOOL` <a id="PRIMARY_GDSII_STREAMOUT_TOOL"></a> | Determines whether `magic` or `klayout` is the primary signoff tool. <br> (Default: `magic`) |
|
||||
| `USE_ARC_ANTENNA_CHECK` <a id="USE_ARC_ANTENNA_CHECK"></a> | Specifies whether to use the openroad ARC antenna checker or magic antenna checker. 0=magic antenna checker, 1=ARC OR antenna checker <br> (Default: `1`)
|
||||
| `RUN_CVC` <a id="RUN_CVC"></a> | Runs CVC on the output spice, which is a Circuit Validity Checker. Voltage aware ERC checker for CDL netlists. 1 = Enabled, 0 = Disabled. <br> (Default: `1`) |
|
||||
| `SIGNOFF_SDC_FILE` <a id="SIGNOFF_SDC_FILE"></a> | Specifies SDC file used by multicorner STA during signoff stage, which can be different from the one used for implementation. <br> (Default: `BASE_SDC_FILE`) |
|
||||
@@ -330,7 +330,7 @@ These variables worked initially, but they were too sky130 specific and will be
|
||||
|Variable|Description|
|
||||
|-|-|
|
||||
| `RUN_MAGIC` <a id="RUN_MAGIC"></a> | Enables running magic and GDSII streaming. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `RUN_MAGIC_DRC` <a id="RUN_MAGIC_DRC"></a> | Enables running magic DRC on GDSII produced by magic. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `RUN_MAGIC_DRC` <a id="RUN_MAGIC_DRC"></a> | Enables running magic DRC on either GDSII produced by `PRIMARY_GDSII_STREAMOUT_TOOL` or final produced DEF file depending on `MAGIC_DRC_USE_GDS`. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `MAGIC_PAD` <a id="MAGIC_PAD"></a> | A flag to pad the views generated by magic (.mag, .lef, .gds) with one site. 1 = Enabled, 0 = Disabled <br> (Default: `0`)|
|
||||
| `MAGIC_ZEROIZE_ORIGIN` <a id="MAGIC_ZEROIZE_ORIGIN"></a> | A flag to move the layout such that it's origin in the lef generated by magic is 0,0. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `MAGIC_GENERATE_GDS` <a id="MAGIC_GENERATE_GDS"></a> | A flag to generate gds view via magic. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
@@ -355,9 +355,10 @@ These variables worked initially, but they were too sky130 specific and will be
|
||||
|-|-|
|
||||
| `RUN_KLAYOUT` <a id="RUN_KLAYOUT"></a> | Enables running KLayout and GDSII streaming. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `RUN_KLAYOUT_XOR` <a id="RUN_KLAYOUT_XOR"></a> | Enables running KLayout XOR on 2 GDSIIs, the defaults are the one produced by magic vs the one produced by klayout. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `RUN_KLAYOUT_DRC` <a id="RUN_KLAYOUT_DRC"></a> | Enables running KLayout DRC on GDSII produced by magic. 1 = Enabled, 0 = Disabled <br> (Default: `0`)|
|
||||
| `RUN_KLAYOUT_DRC` <a id="RUN_KLAYOUT_DRC"></a> | Enables running KLayout DRC on GDSII produced by `PRIMARY_GDSII_STREAMOUT_TOOL`. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
| `KLAYOUT_DRC_KLAYOUT_GDS` <a id="KLAYOUT_DRC_KLAYOUT_GDS"></a> | Enables running KLayout DRC on GDSII produced by KLayout. 1 = Enabled, 0 = Disabled <br> (Default: `0`)|
|
||||
| `KLAYOUT_XOR_THREADS` <a id="KLAYOUT_XOR_THREADS"></a> | Specifies number of threads used in klayout xor check <br> (Default: `1`)|
|
||||
| `KLAYOUT_DRC_THREADS` <a id="KLAYOUT_DRC_THREADS"></a> | Specifies number of threads used in klayout drc check <br> (Default: `1`)|
|
||||
| `TAKE_LAYOUT_SCROT` <a id="TAKE_LAYOUT_SCROT"></a> | Enables running KLayout to take a PNG screenshot of the produced layout (currently configured to run on the results of each stage).1 = Enabled, 0 = Disabled <br> (Default: `0`)|
|
||||
|
||||
|
||||
@@ -390,6 +391,7 @@ These variables worked initially, but they were too sky130 specific and will be
|
||||
| `QUIT_ON_LINTER_WARNINGS` <a id="QUIT_ON_LINTER_WARNINGS"></a> | Quit on warnings generated by linter (currently Verilator) <br> (Default: `0`)|
|
||||
| `QUIT_ON_LINTER_ERRORS` <a id="QUIT_ON_LINTER_ERRORS"></a> | Quit on errors generated by linter (currently Verilator) <br> (Default: `1`)|
|
||||
| `QUIT_ON_XOR_ERROR` <a id="QUIT_ON_XOR_ERROR"></a> | Quit on XOR differences between GDSII generated by Magic and KLayout <br> (Default: `1`)|
|
||||
| `QUIT_ON_KLAYOUT_DRC` <a id="QUIT_ON_KLAYOUT_DRC"></a> | Checks for DRC violations after KLayout DRC is executed and exits the flow if any was found. 1 = Enabled, 0 = Disabled <br> (Default: `1`)|
|
||||
|
||||
## Misc.
|
||||
|
||||
|
||||
@@ -251,13 +251,11 @@ Most of the following commands' implementation exists in this [file][17]
|
||||
|
||||
| Command | Flags | Description |
|
||||
|---------------|------------------------|-----------------------------------------|
|
||||
| `run_klayout` | | Streams the back-up final GDSII, generates a PNG screenshot, then runs KLayout DRC deck on it. This is controlled by `RUN_KLAYOUT`, `TAKE_LAYOUT_SCROT` ,and `KLAYOUT_DRC_KLAYOUT_GDS`. The resulting file is under `/<run_path>/results/klayout/` . |
|
||||
| `run_klayout` | | Streams the back-up final GDSII, generates a PNG screenshot, then runs KLayout DRC deck on it. This is controlled by `RUN_KLAYOUT` and `TAKE_LAYOUT_SCROT`. The resulting file is under `/<run_path>/results/klayout/` . |
|
||||
| `scrot_klayout` | | Export a PNG view of a given GDSII or DEF file. This is controlled by `TAKE_LAYOUT_SCROT`. |
|
||||
| | `[-log <log_file>]` | Output log file. |
|
||||
| | `[-layout <layout_file>]` | The input GDS or DEF file, the default is `::env(CURRENT_GDS)`. |
|
||||
| `run_klayout_drc` | | Runs KLayout DRC on a given GDSII file. This is controlled by `RUN_KLAYOUT_DRC`. |
|
||||
| | `[-gds <gds_file>]` | The input GDS file, the default is `::env(CURRENT_GDS)`. |
|
||||
| | `[-stage <stage>]` | The output stage using the DRC, the default is `magic`. The `magic` implies that the drc was run on the default GDS which is produced by magic. |
|
||||
| `run_klayout_drc` | | Runs KLayout DRC on a`::env(CURRENT_GDS)`. This is controlled by `RUN_KLAYOUT_DRC`. |
|
||||
| `run_klayout_gds_xor` | | Runs KLayout XOR on 2 GDSIIs. This is controlled by `RUN_KLAYOUT_XOR` and `KLAYOUT_XOR_GDS` and `KLAYOUT_XOR_XML`. |
|
||||
| | `[-layout1 <gds_file>]` | The input GDS file, the default is the magic generated GDSII under `<run_path>/results/magic/<design_name>.gds`. |
|
||||
| | `[-layout2 <gds_file>]` | The input GDS file, the default is the klayout generated GDSII under `<run_path>/results/klayout/<design_name>.gds`. |
|
||||
|
||||
@@ -58,6 +58,8 @@ you're doing.
|
||||
| `KLAYOUT_PROPERTIES` | Points to the klayout properties file (.lyp). |
|
||||
| `KLAYOUT_DEF_LAYER_MAP` | Points to klayout deflef layer map file (.map). |
|
||||
| `KLAYOUT_XOR_IGNORE_LAYERS` | A space separated layers list to ignore during klayout xor check. |
|
||||
| `KLAYOUT_DRC_RUNSET` | A path to KLayout DRC runset. |
|
||||
| `KLAYOUT_DRC_OPTIONS` | Options availble to KLayout DRC runset. They vary from one PDK to another. |
|
||||
| `MAGIC_MAGICRC` | Points to the magicrc file that is sourced while running magic in the flow. |
|
||||
| `GPIO_PADS_LEF` | A list of the pads lef views. For example:`[glob "$::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_io/lef/sky130_fd_io.lef"]` |
|
||||
| `GPIO_PADS_PREFIX` | A list of pad cells name prefixes. |
|
||||
|
||||
Reference in New Issue
Block a user