Expose magic polygon subcells (#1566)

through MAGIC_GDS_POLYGON_SUBCELLS
minor formatting changes to other variables' documentation
This commit is contained in:
Kareem Farid
2022-12-13 12:32:13 +02:00
committed by GitHub
parent 6393f2f3c9
commit d20c7b4746
4 changed files with 13 additions and 2 deletions

View File

@@ -71,6 +71,7 @@ set ::env(MAGIC_CONVERT_DRC_TO_RDB) 1
set ::env(MAGIC_DEF_NO_BLOCKAGES) 1
set ::env(MAGIC_DEF_LABELS) 1
set ::env(MAGIC_GDS_ALLOW_ABSTRACT) 0
set ::env(MAGIC_GDS_POLYGON_SUBCELLS) 0
### Klayout-Specific
set ::env(RUN_KLAYOUT) 1

View File

@@ -258,8 +258,9 @@ These variables worked initially, but they were too sky130 specific and will be
| `MAGIC_INCLUDE_GDS_POINTERS` | A flag to choose whether to include GDS pointers in the generated mag files or not. 1 = Enabled, 0 = Disabled <br> (Default: `0` )|
| `MAGIC_DISABLE_HIER_GDS` | A flag to disable cif hier and array during GDSII writing.* 1=Enabled `<so this hier gds will be disabled>`, 0=Disabled `<so this hier gds will be enabled>`. <br> (Default: `1` )|
| `MAGIC_DEF_NO_BLOCKAGES` | A flag to choose whether blockages are read with DEF files or not (they are read as a sheet of metal by Magic). 1 = No Blockages, 0 = Blockages as Metal Sheets <br> (Default: `1` )|
| `MAGIC_DEF_LABELS` | A flag to choose whether labels are read with DEF files or not. From the magic docs: "The '-labels' option to the 'def read' command causes each net in the NETS and SPECIALNETS sections of the DEF file to be annotated with a label having the net name as the label text." 1 = Labels, 0 = Unlabeled <br> (Default: `1` )|
| `MAGIC_GDS_ALLOW_ABSTRACT` | A flag to allow abstract view of macros during magic gds generation" 1 = Allow, 0 = Disallow <br> (Default: `0` )|
| `MAGIC_DEF_LABELS` | A flag to choose whether labels are read with DEF files or not. From magic docs: "The '-labels' option to the 'def read' command causes each net in the NETS and SPECIALNETS sections of the DEF file to be annotated with a label having the net name as the label text." 1 = Labels, 0 = Unlabeled <br> (Default: `1` )|
| `MAGIC_GDS_ALLOW_ABSTRACT` | A flag to allow abstract view of macros during magic gds generation. 1 = Allow, 0 = Disallow <br> (Default: `0` )|
| `MAGIC_GDS_POLYGON_SUBCELLS` | A flag to enable polygon subcells in magic for gds read potentially speeding up magic. From magic docs: "Put non-Manhattan polygons. This prevents interations with other polygons on the same plane and so reduces tile splitting" 1 = Allow, 0 = Disallow <br> (Default: `0` )|
> * 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."
### LVS

View File

@@ -64,6 +64,11 @@ if { $::env(MAGIC_GENERATE_GDS) } {
# GDS data gets copied verbatim
gds readonly true
gds rescale false
if { $::env(MAGIC_GDS_POLYGON_SUBCELLS) } {
gds polygon subcells true
}
if { [info exist ::env(EXTRA_GDS_FILES)] } {
set gds_files_in $::env(EXTRA_GDS_FILES)
foreach gds_file $gds_files_in {

View File

@@ -21,6 +21,10 @@ drc off
gds readonly true
gds rescale false
if { $::env(MAGIC_GDS_POLYGON_SUBCELLS) } {
gds polygon subcells true
}
if { [info exist ::env(EXTRA_GDS_FILES)] } {
set gds_files_in $::env(EXTRA_GDS_FILES)
foreach gds_file $gds_files_in {