Revised the sky130 Makefile to completely ignore blocks that are not
specified for install, instead of running all of the target recipe
procedures. This prevents the Makefile from building out directory
structures for libraries that will not be installed. It also fixes
an error where the make process hits an error and halts if the
primitives submodule is not initialized.
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 679f234..225663a 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -308,6 +308,12 @@
-comment res1p41
-comment res2p85
-comment res5p73
+# fixed bipolar area identifiers
+ -comment pnp0p68
+ -comment pnp3p40
+ -comment npn1p00
+ -comment npn2p00
+ -comment npn11p0
end
@@ -524,6 +530,11 @@
res1p41 implant1
res2p85 implant1
res5p73 implant1
+ pnp0p68 implant1
+ pnp3p40 implant1
+ npn1p00 implant1
+ npn2p00 implant1
+ npn11p0 implant1
pdiode pdiffusion pselect2
ndiode ndiffusion nselect2
@@ -5286,8 +5297,17 @@
*mvnndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
# Bipolars
+ device msubcircuit sky130_fd_pr__npn_05v5_W1p00L1p00 npn *ndiff dnwell space/w \
+ error +npn1p00
+ device msubcircuit sky130_fd_pr__npn_05v5_W1p00L2p00 npn *ndiff dnwell space/w \
+ error +npn2p00
device msubcircuit sky130_fd_pr__npn_05v5 npn *ndiff dnwell space/w error a2=area
- device msubcircuit sky130_fd_pr__pnp_05v5 pnp *pdiff pwell,space/w a2=area
+ device msubcircuit sky130_fd_pr__pnp_05v5_W0p68L0p68 pnp *pdiff \
+ pwell,space/w +pnp0p68
+ device msubcircuit sky130_fd_pr__pnp_05v5_W3p40L3p40 pnp *pdiff \
+ pwell,space/w +pnp3p40
+ device msubcircuit sky130_fd_pr__npn_11v0_W1p00L1p00 npn *mvndiff \
+ dnwell space/w error +npn11p0
device msubcircuit sky130_fd_pr__npn_11v0 npn *mvndiff dnwell space/w error a2=area
# Ignore the extended-drain FET geometry that forms part of the high-voltage
@@ -5462,8 +5482,13 @@
device pdiode sky130_fd_pr__diode_pd2nw_05v5_hvt *pdiodehvt nwell a=area
device pdiode sky130_fd_pr__diode_pd2nw_11v0 *mvpdiode nwell a=area
+ device bjt sky130_fd_pr__npn_05v5_W1p00L1p00 npn *ndiff dnwell space/w error +npn1p00
+ device bjt sky130_fd_pr__npn_05v5_W1p00L2p00 npn *ndiff dnwell space/w error +npn2p00
device bjt sky130_fd_pr__npn_05v5 npn *ndiff dnwell space/w error a2=area
+ device bjt sky130_fd_pr__pnp_05v5_W0p68L0p68 pnp *pdiff pwell,space/w +pnp0p68
+ device bjt sky130_fd_pr__pnp_05v5_W3p40L3p40 pnp *pdiff pwell,space/w +pnp3p40
device bjt sky130_fd_pr__pnp_05v5 pnp *pdiff pwell,space/w a2=area
+ device bjt sky130_fd_pr__npn_11v0_W1p00L1p00 npn *mvndiff dnwell space/w error +npn11p0
device bjt sky130_fd_pr__npn_11v0 npn *mvndiff dnwell space/w error a2=area
#ifdef MIM