Changed the layer assignments for the fill layers to match what
SkyWater expects. Added a fill layer generation and layers for
local interconnect fill.
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index f310d50..5818bb0 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -239,6 +239,7 @@
locali viali,vial,mcon,m1c,v0
-locali obsli1,obsli
-locali obsli1c,obsmcon
+ -locali lifill
# Metal 1
metal1 metal1,m1,met1
@@ -538,6 +539,7 @@
nndiodec ndiff_in_nwell nselect2 metal1 contact_X'es hvndiff_mask
locali metal1
+ lifill metal1
coreli metal1
rli metal1 poly_resist_stripes
mcon metal1 metal2 via1arrow
@@ -670,7 +672,7 @@
connect
*nwell,*nsd,*mvnsd,dnwell,pnp *nwell,*nsd,*mvnsd,dnwell,pnp
pwell,*psd,*mvpsd,npn pwell,*psd,*mvpsd,npn
- *li,coreli *li,coreli
+ *li,coreli,lifill *li,coreli,lifill
*m1,m1fill,obsmcon *m1,m1fill,obsmcon
*m2,m2fill *m2,m2fill
*m3,m3fill *m3,m3fill
@@ -784,7 +786,7 @@
layer FOMFILL fomfill
labels fomfill
- calma 65 28
+ calma 23 28
#----------------------------------------------------------------
# PSDM, NSDM (PPLUS, NPLUS implants)
@@ -990,7 +992,7 @@
layer POLYFILL polyfill
labels polyfill
- calma 66 28
+ calma 28 28
#----------------------------------------------------------------
# HVI (includes rules NWELL 8-11 and DIFFTAP 14-26)
@@ -1112,6 +1114,10 @@
labels rli
calma 67 13
+ layer LIFILL lifill
+ labels lifill
+ calma 56 28
+
#----------------------------------------------------------------
# MCON
#----------------------------------------------------------------
@@ -1139,7 +1145,7 @@
layer MET1FILL m1fill
labels m1fill
- calma 68 28
+ calma 36 28
#----------------------------------------------------------------
# VIA1
@@ -1168,7 +1174,7 @@
layer MET2FILL m2fill
labels m2fill
- calma 69 28
+ calma 41 28
#----------------------------------------------------------------
# VIA2
@@ -1197,7 +1203,7 @@
layer MET3FILL m3fill
labels m3fill
- calma 70 28
+ calma 34 28
#ifdef METAL5
#----------------------------------------------------------------
@@ -1230,7 +1236,7 @@
layer MET4FILL m4fill
labels m4fill
- calma 71 28
+ calma 51 28
#----------------------------------------------------------------
# VIA4
@@ -1262,7 +1268,7 @@
layer MET5FILL m5fill
labels m5fill
- calma 72 28
+ calma 59 28
#endif (METAL5)
@@ -1869,13 +1875,53 @@
or fomfill_pass2
or fomfill_coarse
or fomfill_fine
- calma 65 28
+ calma 23 28
layer POLYFILL polyfill_pass1
or polyfill_coarse
or polyfill_medium
or polyfill_fine
- calma 66 28
+ calma 28 28
+
+#---------------------------------------------------
+# LI fill
+#---------------------------------------------------
+
+ templayer obstruct_li_coarse allli,allpad,obsli,lifill,fillblock,fillblock4
+ grow 3000
+ templayer lifill_coarse topbox
+ slots 0 2000 200 0 2000 200 700 0
+ and-not obstruct_li_coarse
+ and topbox
+ shrink 995
+ grow 995
+
+ templayer obstruct_li_medium allli,allpad,obsli,lifill,fillblock,fillblock4
+ grow 2800
+ or lifill_coarse
+ grow 200
+ templayer lifill_medium topbox
+ slots 0 1000 200 0 1000 200 700 0
+ and-not obstruct_li_medium
+ and topbox
+ shrink 495
+ grow 495
+
+ templayer obstruct_li_fine allli,allpad,obsli,lifill,fillblock,fillblock4
+ grow 300
+ or lifill_coarse,lifill_medium
+ grow 200
+ templayer lifill_fine topbox
+ slots 0 580 200 0 580 200 700 0
+ and-not obstruct_li_fine
+ and topbox
+ shrink 285
+ grow 285
+
+ layer LIFILL lifill_coarse
+ or lifill_medium
+ or lifill_fine
+ calma 56 28
#---------------------------------------------------
# MET1 fill
@@ -1927,7 +1973,7 @@
or met1fill_medium
or met1fill_fine
or met1fill_veryfine
- calma 68 28
+ calma 36 28
#---------------------------------------------------
# MET2 fill
@@ -1978,7 +2024,7 @@
or met2fill_medium
or met2fill_fine
or met2fill_veryfine
- calma 69 28
+ calma 41 28
#---------------------------------------------------
# MET3 fill
@@ -2030,7 +2076,7 @@
or met3fill_medium
or met3fill_fine
or met3fill_veryfine
- calma 70 28
+ calma 34 28
#ifdef METAL5
#---------------------------------------------------
@@ -2083,7 +2129,7 @@
or met4fill_medium
or met4fill_fine
or met4fill_veryfine
- calma 71 28
+ calma 51 28
#---------------------------------------------------
# MET5 fill
@@ -2098,7 +2144,7 @@
grow 1495
layer MET5FILL met5fill_gen
- calma 72 28
+ calma 59 28
#endif (METAL5)
end
@@ -3162,6 +3208,9 @@
and LIRES,LISHORT
labels LIRES,LISHORT
+ layer lifill LIFILL
+ labels LIFILL
+
layer mcon MCON
grow 95
shrink 95
@@ -3696,12 +3745,13 @@
calma MET5RES 72 13
#endif
- calma MET1FILL 68 28
- calma MET2FILL 69 28
- calma MET3FILL 70 28
+ calma LIFILL 56 28
+ calma MET1FILL 36 28
+ calma MET2FILL 41 28
+ calma MET3FILL 34 28
#ifdef METAL5
- calma MET4FILL 71 28
- calma MET5FILL 72 28
+ calma MET4FILL 51 28
+ calma MET5FILL 59 28
#endif
calma POLYSHORT 66 15
@@ -3747,13 +3797,14 @@
calma FILLOBSFOM 22 24
calma FILLOBSPOLY 33 24
- calma FOMFILL 65 28
- calma POLYFILL 66 28
- calma MET1FILL 68 28
- calma MET2FILL 69 28
- calma MET3FILL 70 28
- calma MET4FILL 71 28
- calma MET5FILL 72 28
+ calma FOMFILL 23 28
+ calma POLYFILL 28 28
+ calma LIFILL 56 28
+ calma MET1FILL 36 28
+ calma MET2FILL 41 28
+ calma MET3FILL 34 28
+ calma MET4FILL 51 28
+ calma MET5FILL 59 28
#-----------------------------------------------------------------------