Corrected the CLASS for custom macros in sky130_ef_sc_hd, and modified the fix_digital_lef.py script to correct the CLASS of vendor standard cells that need to be set to CLASS CORE SPACER. Solves open_pdks github issue tracker issue #270 from Arman Avetisyan.
diff --git a/VERSION b/VERSION index be2a1fc..6698d2c 100644 --- a/VERSION +++ b/VERSION
@@ -1 +1 @@ -1.0.326 +1.0.327
diff --git a/sky130/custom/scripts/fix_digital_lef.py b/sky130/custom/scripts/fix_digital_lef.py index d0d13e0..5cf24a9 100755 --- a/sky130/custom/scripts/fix_digital_lef.py +++ b/sky130/custom/scripts/fix_digital_lef.py
@@ -46,12 +46,17 @@ if mmatch: macroname = mmatch.group(1) - # Check for "CLASS" related to "DIODE" + # Check for "CLASS" related to "DIODE" and also fill/decap cells cmatch = classrex.match(line) if cmatch and macroname: if '__diode_' in macroname: - line = ' CLASS CORE ANTENNACELL ;' - modified = True + if 'ANTENNACELL' not in line: + line = ' CLASS CORE ANTENNACELL ;' + modified = True + elif '__fill_' in macroname or '__decap_' in macroname: + if 'SPACER' not in line: + line = ' CLASS CORE SPACER ;' + modified = True fixedlines.append(line)
diff --git a/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef b/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef index e790b49..112d043 100644 --- a/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef +++ b/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef
@@ -3,7 +3,7 @@ DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; MACRO sky130_ef_sc_hd__decap_12 - CLASS BLOCK ; + CLASS CORE SPACER ; FOREIGN sky130_ef_sc_hd__decap_12 ; ORIGIN 0.000 0.000 ; SIZE 5.520 BY 2.720 ;
diff --git a/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef b/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef index 1087873..5e28142 100644 --- a/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef +++ b/sky130/custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef
@@ -3,7 +3,7 @@ DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; MACRO sky130_ef_sc_hd__fill_12 - CLASS CORE ; + CLASS CORE SPACER ; FOREIGN sky130_ef_sc_hd__fill_12 ; ORIGIN 0.000 0.000 ; SIZE 5.520 BY 2.720 ;