Giter VIP home page Giter VIP logo

Comments (10)

RTimothyEdwards avatar RTimothyEdwards commented on August 11, 2024

Version 8.3 point what?

I'm happy to track it down but I will need a reproducible result.

from magic.

thud06 avatar thud06 commented on August 11, 2024

Woops sorry! It is Version 8.1 revision 213 when I type the version command. It is crashing when I try to write a def on version 7.5.241 on as well so I assume I might just be doing something wrong. My process is:

  1. Create a cell using SCN3ME_SUBM.30.TECH27
  2. save
  3. writeall
  4. save
  5. extract all
  6. def write fileName

It is at this point the magic console says:

Generating DEF output filename.def for cell cellName:
Diagnostic: Write DEF header for cell cellName
Diagnostic: Finding all components of cell cellName
Diagnostic: Finding all nets in cell cellName
(This can take a while!)

It then crashes with the "free() : invalid pointer" then : "Aborted (core dumped) errors on my linux console.

from magic.

RTimothyEdwards avatar RTimothyEdwards commented on August 11, 2024

Version 8.1.213 is six years out of date. The current version of magic is 8.3.462.

from magic.

thud06 avatar thud06 commented on August 11, 2024

I went ahead and updated to 8.3.462 and am getting the same error. The magic console is saying "freeMagic called with NULL argument."

from magic.

RTimothyEdwards avatar RTimothyEdwards commented on August 11, 2024

@thud06 : Can you please post the tech file? I did the steps above for a layout from qflow with the osu050 technology. Where did your tech file come from? It might simply be too old (although I try hard to retain backwards compatibility); the .tech27 format has not been used for decades. I have an updated tech file in the qflow repository which is the same technology but with a few critical differences such as a substrate specification, the lack of which might be what's causing the crash condition. I can go figure out if I need to fix the backwards-compatibility, while you can try the modified tech file and see if that's a good workaround for you (https://github.com/RTimothyEdwards/qflow) (file is tech/osu050/SCN3ME_SUbM.30.tech) (note the file extension ".tech" instead of ".tech27").

from magic.

thud06 avatar thud06 commented on August 11, 2024

@thud06 : Can you please post the tech file? I did the steps above for a layout from qflow with the osu050 technology. Where did your tech file come from? It might simply be too old (although I try hard to retain backwards compatibility); the .tech27 format has not been used for decades. I have an updated tech file in the qflow repository which is the same technology but with a few critical differences such as a substrate specification, the lack of which might be what's causing the crash condition. I can go figure out if I need to fix the backwards-compatibility, while you can try the modified tech file and see if that's a good workaround for you (https://github.com/RTimothyEdwards/qflow) (file is tech/osu050/SCN3ME_SUbM.30.tech) (note the file extension ".tech" instead of ".tech27").

Using the new tech file seems to have fixed my issue, thank you for the help !

from magic.

RTimothyEdwards avatar RTimothyEdwards commented on August 11, 2024

@thud06 : Yes, but can you still please post the original tech file that you used? I have (supposedly) the same file (from public MOSIS ftp archives that no longer exist), but magic doesn't segfault when I use it. I do get a strange behavior where pins and metal layers get confused with each other. But it didn't crash the program.

from magic.

thud06 avatar thud06 commented on August 11, 2024

Sure! GitHub doesnt let me upload this file type so here it is copied/pasted:

tech
scmos
end

version
version 2002a
description "SCMOS: Submit as technology.lambda: SCN3ME_SUBM.30 [to process: AMIc5]"
end

planes
well,w
implant,i
select,s
cap,c
active,a
metal1,m1
metal2,m2
metal3,m3
oxide,ox
comment
xp
contact
via1,v1
via2,v2
fill
end

types
well nwell,nw
well pwell,pw
implant n_field_implant,nfi
implant p_field_implant,pfi
select nselect,ns
select pselect,ps
cap electrode,poly2,el,p2
cap electrodecontact,poly2contact,poly2c,p2c,elc
cap p2m12contact,p2m12c
cap electrodecap,ecap,poly2cap,p2cap,pcap
contact genericpoly2contact,gc2
active ntransistor,nfet
active ptransistor,pfet
active diffusion,diff
active transistor,fet
active ndiffusion,ndif,green
active pdiffusion,pdif,brown
active ndcontact,ndc
active pdcontact,pdc
active psubstratepdiff,pohmicdiff,pod,ppdiff,ppd,psd
active nsubstratendiff,nohmicdiff,nod,nndiff,nnd,nsd
active psubstratepcontact,pohmiccontact,poc,pwcontact,pwc,psc
active nsubstratencontact,nohmiccontact,noc,nwcontact,nwc,nsc
active polysilicon,red,poly,p
active polycontact,pcontact,polycut,pc
contact genericcontact,gcontact,gc
metal1 metal1,m1,blue
metal1 pseudo_rmetal1,prm1
metal1 rmetal1,rm1
metal1 fillm1,fm1
metal1 m2contact,m2cut,m2c,via1,v1
metal1 pm12contact,pm12c
metal1 pdm12contact,pdm12c
metal1 psm12contact,psm12c,pom12c,pwm12c
metal1 ndm12contact,ndm12c
metal1 nsm12contact,nsm12c,nom12c,nwm12c
metal2 metal2,m2,purple
metal2 pseudo_rmetal2,prm2
metal2 rmetal2,rm2
metal2 fillm2,fm2
via1 gv1
metal2 m3contact,m3cut,m3c,via2,v2
metal2 m123contact,m123c
metal3 metal3,m3,cyan
metal3 pseudo_rmetal3,prm3
metal3 rmetal3,rm3
metal3 fillm3,fm3
via2 gv2
metal3 pad
oxide glass
cap high_resist,hr
cap poly2_high_resist,phr
active pseudo_rpoly,prp
active rpoly,rp
cap pseudo_rpoly2,prp2
cap rpoly2,rp2
active pseudo_rndiffusion,prnd
active rndiffusion,rndiff,rnd
active pseudo_rpdiffusion,prpd
active rpdiffusion,rpdiff,rpd
active pseudo_rnwell,prnwell,prnw
active rnwell,rnw
implant filln,fn
fill filla,fa
fill fillb,fb
active fillp,fp
active fillapm,fapm
xp xp
xp m1p
xp m2p
xp m3p
comment comment
comment bb
end

contact
pc poly metal1
ndc ndiff metal1
pdc pdiff metal1
nsc nsd metal1
psc psd metal1
m2c metal1 metal2
m3c metal2 metal3
pm12c poly metal1 metal2
pdm12c pdiff metal1 metal2
psm12c psd metal1 metal2
ndm12c ndiff metal1 metal2
nsm12c nsd metal1 metal2
m123c metal1 metal2 metal3
end

styles
styletype mos
nwell 12
pwell 13
nfi 53
pfi 54
nselect 43
pselect 44
diff 25
tran 2
tran 4
ndiff 2
pdiff 4
nsd 3
psd 5
nfet 6
nfet 7
pfet 8
pfet 9
ndc 2
ndc 20
ndc 32
pdc 4
pdc 20
pdc 32
nsc 3
nsc 20
nsc 32
psc 5
psc 20
psc 32
poly 1
pcontact 1
pcontact 20
pcontact 32
gc 32
metal1 20
rm1 20
rm1 48
prm1 48
m1p 20
m1p 34
fm1 20
fm1 34
fp 1
fp 34
fa 32
fb 45
fb 34
fn 45
fn 34
fapm 1
fapm 20
fapm 21
fapm 34
gv1 55
m2contact 20
m2contact 21
m2contact 55
pm12contact 1
pm12contact 20
pm12contact 21
pm12contact 32
pm12contact 55
p2m12contact 14
p2m12contact 20
p2m12contact 21
p2m12contact 32
p2m12contact 55
ndm12c 2
ndm12c 20
ndm12c 21
ndm12c 32
ndm12c 55
nsm12c 3
nsm12c 20
nsm12c 21
nsm12c 32
nsm12c 55
pdm12c 4
pdm12c 20
pdm12c 21
pdm12c 32
pdm12c 55
psm12c 5
psm12c 20
psm12c 21
psm12c 32
psm12c 55
metal2 21
rm2 21
rm2 48
prm2 48
m2p 21
m2p 34
fm2 21
fm2 34
gv2 56
m3contact 21
m3contact 22
m3contact 56
m123c 20
m123c 21
m123c 22
m123c 55
m123c 56
metal3 22
rm3 22
rm3 48
prm3 48
m3p 22
m3p 34
fm3 22
fm3 34
pad 22
pad 23
pad 34
pad 38
glass 34
xp 25
xp 34
ecap 10
ecap 14
poly2 14
p2c 14
p2c 20
p2c 32
gc2 19
hr 10
phr 14
phr 48
rp 47
rp 48
prp 48
rp2 14
rp2 48
prp2 48
rnd 2
rnd 48
prnd 48
rpd 4
rpd 53
prpd 53
rnw 12
rnw 53
prnw 54
comment 45
bb 32
error_p 42
error_s 42
error_ps 42
magnet 54
rotate 57
fence 59
end

compose
compose nfet poly ndiff
compose pfet poly pdiff
paint diff nselect ndiff
paint diff pselect pdiff
compose tran poly diff
paint tran nselect nfet
paint tran pselect pfet
paint psd ns ndiff
paint nsd ps pdiff
paint ndiff ps psd
paint pdiff ns nsd
paint pad m1 pad
paint pad m2 pad
paint pad m2c pad
paint pfi nwell nfi
paint nfi pwell pfi
paint ndc nwell pdc
paint nfet nwell pfet
paint ndiff nwell pdiff
paint psd nwell nsd
paint psc nwell nsc
paint pdc pwell ndc
paint pfet pwell nfet
paint pdiff pwell ndiff
paint nsd pwell psd
paint nsc pwell psc
paint poly2 poly ecap
erase ecap poly poly2
paint p2c poly2 p2c
paint p2c ecap p2c
paint p2m12c poly2 p2m12c
paint p2m12c ecap p2m12c
paint pad m3 pad
compose phr poly2 hr
paint hr poly2 phr
paint poly2 hr phr
erase phr hr poly2
#CRE/CRM
compose rm1 prm1 m1
compose rm2 prm2 m2
compose rm3 prm3 m3
compose rp prp poly
compose rp2 prp2 poly2
compose rnd prnd ndiff
compose rpd prpd pdiff
paint nwell rnw space
paint nwell prnw space
paint poly fp fp
paint m1 fm1 fm1
paint m2 fm2 fm2
paint m3 fm3 fm3
end

connect
nwell,nsc/a,nsm12c/a,nsd nwell,nsc/a,nsm12c/a,nsd
pwell,psc/a,psm12c/a,psd pwell,psc/a,psm12c/a,psd
m1,fm1,fapm,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1 m1,fm1,fapm,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1
m2,fm2,fapm,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2 m2,fm2,fapm,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2
m3,fm3,fapm,m3c/m3,m123c/m3 m3,fm3,fapm,m3c/m3,m123c/m3
ndiff,ndc/a,ndm12c/a,pdiff,pdc/a,pdm12c/a ndiff,ndc/a,ndm12c/a,pdiff,pdc/a,pdm12c/a
poly,fp,nfet,pfet,fet,fapm,pc/a,pm12c/a poly,fp,nfet,pfet,fet,fapm,pc/a,pm12c/a
gc2 poly2,ecap,metal1
p2c poly2,ecap,m1,fm1,fapm,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1
p2m12c poly2,ecap,m1,fm1,fapm,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,m2,fm2,fapm,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2
poly2,ecap,p2c,p2m12c poly2,ecap,p2c,p2m12c
gc2 poly2,ecap,m1,fm1,fapm,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1
gc poly,fp,ndiff,pdiff,nsd,psd,m1,fm1,fapm,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1
gv1 m1,fm1,fapm,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2,fm2,fapm,m3c/m2,m123c/m2
gv2 m2,fm2,fapm,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3,fm3,fapm
pad m1,fm1,m2,fm2,m3,fm3
rm1 prm1
rm2 prm2
rm3 prm3
rnw prnw
rp prp
rp2 prp2
rnd prnd
rpd prpd
phr hr
end

cifoutput

style lambda=0.30(p)
scalefactor 30 15

layer CWN nwell,rnw
bloat-or pdiff,rpd,pdc/a,pdm12c/a,pfet * 180
bloat-or nsd,nsc/a,nsm12c/a * 90
bloat-or nfi * 120
grow 90
shrink 90
labels nwell,rnw
calma 42 0

layer CWP pwell
bloat-or ndiff,rnd,ndc/a,ndm12c/a,nfet * 180
bloat-or psd,psc/a,psm12c/a * 90
bloat-or pfi * 120
grow 90
shrink 90
and-not CWN
labels pwell
calma 41 0

templayer TNS ns

templayer TPS ps

#we give priority to selects autogenerated around diffusions (vrs. ohmics)
#XDP = (pdiff60) Or ps
#XDN = (ndiff
60) Or ns
#FSP = ((pdiff60,psc60) Or XDP And-Not XDN Or ps shrink-grow
#FSN = ((ndiff60,nsc60) Or XDN And-Not FDP Or ns shrink-grow
#CSN = FSN
#CSP = FSP

#diffusion auto-nselect (will have priority)
templayer XDN
bloat-or ndiff,rnd,ndc/a,ndm12c/a * 60 psd,psc/a,psm12c/a 0
or TNS

#diffusion auto-pselect (will have priority)
templayer XDP
bloat-or pdiff,rpd,pdc/a,pdm12c/a * 60 nsd,nsc/a,nsm12c/a 0
or TPS

#final pselect
templayer FSP
bloat-or pdiff,rpd,pfet,psd,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet * 60 ndiff,rnd,ndc/a,ndm12c/a,nsd,nsc/a,nsm12c/a,nfet 0
or XDP
#give diff nselect priority
and-not XDN
or TPS
shrink 15
grow 15
grow 15
shrink 15

#final nselect
templayer FSN
bloat-or ndiff,rnd,nfet,nsd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,nfet * 60 pdiff,rpd,pdc/a,pdm12c/a,psd,psc/a,psm12c/a,pfet 0
or XDN
#never conflict with final pselect
and-not FSP
#drawn select always goes
or TNS
shrink 15
grow 15
grow 15
shrink 15

layer CSN FSN
calma 45 0

layer CSP FSP
calma 44 0

layer CAA diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
labels diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
calma 43 0

layer CCA ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1
squares 30 60 90
calma 48 0

layer CCA pdc/m1,pdm12c/m1,psc/m1,psm12c/m1
squares 30 60 90
calma 48 0

layer CPG poly,rp,nfet,pfet,fet,pc/a,pm12c/a
labels poly,rp,nfet,pfet,fet,pc/a,pm12c/a
calma 46 0

layer CCP pc/m1,pm12c/m1
squares 30 60 90
calma 47 0

layer CCE gc2
squares 0 60 90
calma 55 0

layer CCE p2c,p2m12c
squares 30 60 90
calma 55 0

layer CCE gc2
squares 0 60 90
calma 55 0

layer CCC gc
squares 0 60 90
calma 25 0

layer CV1 m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2m12c
squares 30 60 90
calma 50 0

layer CV1 gv1
squares 0 60 90
calma 50 0

layer CV2 m3c/m2,m123c/m2
squares 30 60 90
calma 61 0

layer CV2 gv2
squares 0 60 90
calma 61 0

templayer XPAD1 pad
shrink 180

templayer XPAD2 XPAD1
shrink 180

layer CM3 pad
labels pad
calma 62 0

layer CV2 XPAD2
squares 240 60 300
calma 61 0

layer CM2 pad
labels pad
calma 51 0

layer CV1 XPAD2
squares 60 60 300
calma 50 0

layer CM1 pad
calma 49 0

layer CM1 m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
labels m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
calma 49 0

layer CM2 m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
labels m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
calma 51 0

layer CMFP m1p
labels m1p
calma 81 0

layer CMSP m2p
labels m2p
calma 82 0

layer 100 fp
labels fp
calma 100 0

layer 101 fm1
labels fm1
calma 101 0

layer 102 fm2
labels fm2
calma 102 0

layer 103 fm3
labels fm3
calma 103 0

layer 109 fa
or fb
squares 0 210 120
labels fa
calma 109 0

layer 119 fn
calma 119 0

layer 110 fapm
labels fapm
calma 110 0

layer CPG fp

layer CPG fp,fapm
squares 0 210 120
labels fp
calma 46 0

layer CM1 fm1

layer CM1 fm1,fapm
squares 0 210 120
labels fm1
calma 49 0

layer CM2 fm2

layer CM2 fm2,fapm

squares 0 210 120
labels fm2
calma 51 0

layer CM3 fm3

layer CM3 fm3,fapm

squares 0 210 120
labels fm3
calma 62 0

layer CM3 m3,rm3,m3c/m3,m123c/m3
labels m3,rm3,m3c/m3,m123c/m3
calma 62 0

layer CMTP m3p
labels m3p
calma 83 0

layer COG pad
shrink 600
labels pad
calma 52 0

layer COG glass
labels glass
calma 52 0

layer CFI nfi,pfi
labels nfi,pfi
calma 27 0

layer CHR hr,phr
labels hr,phr
calma 34 0

layer CEL poly2,ecap,phr,p2c,p2m12c
labels poly2,ecap,phr,p2c,p2m12c
calma 56 0

#CRE/CRM
layer CRW rnw,prnw
labels rnw,prnw
calma 65 0
layer CRG rp,prp
labels rp,prp
calma 67 0
layer CRD rnd,rpd,prnd,prpd
labels rnd,rpd,prnd,prpd
calma 66 0
layer CRE rnw,rp,rnd,rpd,rp2
labels rnw,rp,rnd,rpd,rp2
calma 64 0
layer CRF rm1,prm1
labels rm1,prm1
calma 71 0
layer CRS rm2,prm2
labels rm2,prm2
calma 72 0
layer CRG2 rp2,prp2
labels rp2,prp2
calma 68 0
layer CRT rm3,prm3
labels rm3,prm3
calma 73 0
#CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3
#CRE/CRM calma 70 0

layer CX comment
labels comment
calma 63 0

layer XP pad,xp
labels pad,xp
calma 26 0

style fill-only
scalefactor 30 15

layer 100 fp
calma 100 0

layer 101 fm1
calma 101 0

layer 102 fm2
calma 102 0

layer 103 fm3
calma 103 0

layer 109 fa
or fb
calma 109 0

layer 119 fn
calma 119 0

style fapm-boxes

this output style creates fill boxes automatically (to meet minimum

density requirements for poly and metal layers) 5 microns outside of

drawn layout IF: 1. you have a flattened version of your chip,

2. over which you paint the special fill layer 'fa', preferably with

a size that is a multiple of 7 + n * (7 + 4), 3. set 'cif

ostype fapm-boxes' and cif out to a file (this actually creates the

fill boxes on cif/strm layer '110' using the magic 'squares'

command), 4. cif in the resulting file (which creates boxes on magic

layer 'fapm') and place this cell onto your chip (and verify absence

of drc errors or shorts), then 5. cif out under your regular cif out

style, where the 'fapm' layer creates fill boxes on poly and all

metal layers.

scalefactor 30 15

templayer CRIT fapm,fn,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet,poly,rp,nfet,pfet,fet,pc/a,pm12c/a,poly2,ecap,phr,p2c,p2m12c
or fm1,m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
or fm2,m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
or fm3,m3,rm3,m3c/m3,m123c/m3
or glass,pad
grow 510
and fa

layer 110 fa
squares 0 210 120
and-not CRIT
shrink 90
grow 90
or fapm
labels fapm
calma 110 0

style fapm-stripes
scalefactor 30 15

this output style creates the above layer 110 as stripes for reduced size

HOWEVER it requires each 'fa' box to first be an exact multiple as above

and then replacing the left side (1-lambda wide) stripe of each 'fa' box

to be a 1-lambda wide layer 'fb' box -- else you won't get strips!

templayer CRIT fapm,fn,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet,poly,rp,nfet,pfet,fet,pc/a,pm12c/a,poly2,ecap,phr,p2c,p2m12c
or fm1,m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
or fm2,m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
or fm3,m3,rm3,m3c/m3,m123c/m3
or glass,pad
grow 510
and fa

templayer FB fa
or fb
squares 0 210 120
and-not CRIT

layer 110 fa
squares 0 210 120
and-not CRIT
or FB
shrink 90
grow 90
or fapm
labels fapm
calma 110 0

style lambda=0.30(cp)
scalefactor 30 15

layer CWN nwell,rnw
bloat-or pdiff,rpd,pdc/a,pdm12c/a,pfet * 180
bloat-or nsd,nsc/a,nsm12c/a * 90
bloat-or nfi * 120
grow 90
shrink 90
labels nwell,rnw
calma 42 0

layer CWP pwell
bloat-or ndiff,rnd,ndc/a,ndm12c/a,nfet * 180
bloat-or psd,psc/a,psm12c/a * 90
bloat-or pfi * 120
grow 90
shrink 90
and-not CWN
labels pwell
calma 41 0

templayer TNS ns

templayer TPS ps

#we give priority to selects autogenerated around diffusions (vrs. ohmics)
#XDP = (pdiff60) Or ps
#XDN = (ndiff
60) Or ns
#FSP = ((pdiff60,psc60) Or XDP And-Not XDN Or ps shrink-grow
#FSN = ((ndiff60,nsc60) Or XDN And-Not FDP Or ns shrink-grow
#CSN = FSN
#CSP = FSP

#diffusion auto-nselect (will have priority)
templayer XDN
bloat-or ndiff,rnd,ndc/a,ndm12c/a * 60 psd,psc/a,psm12c/a 0
or TNS

#diffusion auto-pselect (will have priority)
templayer XDP
bloat-or pdiff,rpd,pdc/a,pdm12c/a * 60 nsd,nsc/a,nsm12c/a 0
or TPS

#final pselect
templayer FSP
bloat-or pdiff,rpd,pfet,psd,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet * 60 ndiff,rnd,ndc/a,ndm12c/a,nsd,nsc/a,nsm12c/a,nfet 0
or XDP
#give diff nselect priority
and-not XDN
or TPS
shrink 15
grow 15
grow 15
shrink 15

#final nselect
templayer FSN
bloat-or ndiff,rnd,nfet,nsd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,nfet * 60 pdiff,rpd,pdc/a,pdm12c/a,psd,psc/a,psm12c/a,pfet 0
or XDN
#never conflict with final pselect
and-not FSP
#drawn select always goes
or TNS
shrink 15
grow 15
grow 15
shrink 15

layer CSN FSN
calma 45 0

layer CSP FSP
calma 44 0

layer CAA diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
labels diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
calma 43 0

layer CCC ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1
squares 30 60 90
calma 25 0

layer CCC pdc/m1,pdm12c/m1,psc/m1,psm12c/m1
squares 30 60 90
calma 25 0

layer CPG poly,rp,nfet,pfet,fet,pc/a,pm12c/a
labels poly,rp,nfet,pfet,fet,pc/a,pm12c/a
calma 46 0

layer CCC pc/m1,pm12c/m1
squares 30 60 90
calma 25 0

layer CCC gc2
squares 0 60 90
calma 25 0

layer CCC p2c,p2m12c
squares 30 60 90
calma 25 0

layer CCC gc2
squares 0 60 90
calma 25 0

layer CCC gc
squares 0 60 90
calma 25 0

layer CV1 m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2m12c
squares 30 60 90
calma 50 0

layer CV1 gv1
squares 0 60 90
calma 50 0

layer CV2 m3c/m2,m123c/m2
squares 30 60 90
calma 61 0

layer CV2 gv2
squares 0 60 90
calma 61 0

templayer XPAD1 pad
shrink 180

templayer XPAD2 XPAD1
shrink 180

layer CM3 pad
labels pad
calma 62 0

layer CV2 XPAD2
squares 240 60 300
calma 61 0

layer CM2 pad
labels pad
calma 51 0

layer CV1 XPAD2
squares 60 60 300
calma 50 0

layer CM1 pad
calma 49 0

layer CM1 m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
labels m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
calma 49 0

layer CM2 m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
labels m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
calma 51 0

layer CMFP m1p
labels m1p
calma 81 0

layer CMSP m2p
labels m2p
calma 82 0

layer 100 fp
labels fp
calma 100 0

layer 101 fm1
labels fm1
calma 101 0

layer 102 fm2
labels fm2
calma 102 0

layer 103 fm3
labels fm3
calma 103 0

layer 109 fa
or fb
squares 0 210 120
labels fa
calma 109 0

layer 119 fn
calma 119 0

layer 110 fapm
labels fapm
calma 110 0

layer CPG fp

layer CPG fp,fapm
squares 0 210 120
labels fp
calma 46 0

layer CM1 fm1

layer CM1 fm1,fapm
squares 0 210 120
labels fm1
calma 49 0

layer CM2 fm2

layer CM2 fm2,fapm

squares 0 210 120
labels fm2
calma 51 0

layer CM3 fm3

layer CM3 fm3,fapm

squares 0 210 120
labels fm3
calma 62 0

layer CM3 m3,rm3,m3c/m3,m123c/m3
labels m3,rm3,m3c/m3,m123c/m3
calma 62 0

layer CMTP m3p
labels m3p
calma 83 0

layer COG pad
shrink 600
labels pad
calma 52 0

layer COG glass
labels glass
calma 52 0

layer CFI nfi,pfi
labels nfi,pfi
calma 27 0

layer CHR hr,phr
labels hr,phr
calma 34 0

layer CEL poly2,ecap,phr,p2c,p2m12c
labels poly2,ecap,phr,p2c,p2m12c
calma 56 0

#CRE/CRM
layer CRW rnw,prnw
labels rnw,prnw
calma 65 0
layer CRG rp,prp
labels rp,prp
calma 67 0
layer CRD rnd,rpd,prnd,prpd
labels rnd,rpd,prnd,prpd
calma 66 0
layer CRE rnw,rp,rnd,rpd,rp2
labels rnw,rp,rnd,rpd,rp2
calma 64 0
layer CRF rm1,prm1
labels rm1,prm1
calma 71 0
layer CRS rm2,prm2
labels rm2,prm2
calma 72 0
layer CRG2 rp2,prp2
labels rp2,prp2
calma 68 0
layer CRT rm3,prm3
labels rm3,prm3
calma 73 0
#CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3
#CRE/CRM calma 70 0

layer CX comment
labels comment
calma 63 0

layer XP pad,xp
labels pad,xp
calma 26 0

style lambda=0.30(c)
scalefactor 30 15

layer CWN nwell,rnw
bloat-or pdiff,rpd,pdc/a,pdm12c/a,pfet * 180
bloat-or nsd,nsc/a,nsm12c/a * 90
bloat-or nfi * 120
grow 90
shrink 90
labels nwell,rnw
calma 42 0

templayer TNS ns

templayer TPS ps

#we give priority to selects autogenerated around diffusions (vrs. ohmics)
#XDP = (pdiff60) Or ps
#XDN = (ndiff
60) Or ns
#FSP = ((pdiff60,psc60) Or XDP And-Not XDN Or ps shrink-grow
#FSN = ((ndiff60,nsc60) Or XDN And-Not FDP Or ns shrink-grow
#CSN = FSN
#CSP = FSP

#diffusion auto-nselect (will have priority)
templayer XDN
bloat-or ndiff,rnd,ndc/a,ndm12c/a * 60 psd,psc/a,psm12c/a 0
or TNS

#diffusion auto-pselect (will have priority)
templayer XDP
bloat-or pdiff,rpd,pdc/a,pdm12c/a * 60 nsd,nsc/a,nsm12c/a 0
or TPS

#final pselect
templayer FSP
bloat-or pdiff,rpd,pfet,psd,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet * 60 ndiff,rnd,ndc/a,ndm12c/a,nsd,nsc/a,nsm12c/a,nfet 0
or XDP
#give diff nselect priority
and-not XDN
or TPS
shrink 15
grow 15
grow 15
shrink 15

#final nselect
templayer FSN
bloat-or ndiff,rnd,nfet,nsd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,nfet * 60 pdiff,rpd,pdc/a,pdm12c/a,psd,psc/a,psm12c/a,pfet 0
or XDN
#never conflict with final pselect
and-not FSP
#drawn select always goes
or TNS
shrink 15
grow 15
grow 15
shrink 15

layer CSN FSN
calma 45 0

layer CSP FSP
calma 44 0

layer CAA diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
labels diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
calma 43 0

layer CCC ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1
squares 30 60 90
calma 25 0

layer CCC pdc/m1,pdm12c/m1,psc/m1,psm12c/m1
squares 30 60 90
calma 25 0

layer CPG poly,rp,nfet,pfet,fet,pc/a,pm12c/a
labels poly,rp,nfet,pfet,fet,pc/a,pm12c/a
calma 46 0

layer CCC pc/m1,pm12c/m1
squares 30 60 90
calma 25 0

layer CCC gc2
squares 0 60 90
calma 25 0

layer CCC p2c,p2m12c
squares 30 60 90
calma 25 0

layer CCC gc2
squares 0 60 90
calma 25 0

layer CCC gc
squares 0 60 90
calma 25 0

layer CV1 m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2m12c
squares 30 60 90
calma 50 0

layer CV1 gv1
squares 0 60 90
calma 50 0

layer CV2 m3c/m2,m123c/m2
squares 30 60 90
calma 61 0

layer CV2 gv2
squares 0 60 90
calma 61 0

templayer XPAD1 pad
shrink 180

templayer XPAD2 XPAD1
shrink 180

layer CM3 pad
labels pad
calma 62 0

layer CV2 XPAD2
squares 240 60 300
calma 61 0

layer CM2 pad
labels pad
calma 51 0

layer CV1 XPAD2
squares 60 60 300
calma 50 0

layer CM1 pad
calma 49 0

layer CM1 m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
labels m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
calma 49 0

layer CM2 m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
labels m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
calma 51 0

layer CMFP m1p
labels m1p
calma 81 0

layer CMSP m2p
labels m2p
calma 82 0

layer 100 fp
labels fp
calma 100 0

layer 101 fm1
labels fm1
calma 101 0

layer 102 fm2
labels fm2
calma 102 0

layer 103 fm3
labels fm3
calma 103 0

layer 109 fa
or fb
squares 0 210 120
labels fa
calma 109 0

layer 119 fn
calma 119 0

layer 110 fapm
labels fapm
calma 110 0

layer CPG fp

layer CPG fp,fapm
squares 0 210 120
labels fp
calma 46 0

layer CM1 fm1

layer CM1 fm1,fapm
squares 0 210 120
labels fm1
calma 49 0

layer CM2 fm2

layer CM2 fm2,fapm

squares 0 210 120
labels fm2
calma 51 0

layer CM3 fm3

layer CM3 fm3,fapm

squares 0 210 120
labels fm3
calma 62 0

layer CM3 m3,rm3,m3c/m3,m123c/m3
labels m3,rm3,m3c/m3,m123c/m3
calma 62 0

layer CMTP m3p
labels m3p
calma 83 0

layer COG pad
shrink 600
labels pad
calma 52 0

layer COG glass
labels glass
calma 52 0

layer CFI nfi,pfi
labels nfi,pfi
calma 27 0

layer CHR hr,phr
labels hr,phr
calma 34 0

layer CEL poly2,ecap,phr,p2c,p2m12c
labels poly2,ecap,phr,p2c,p2m12c
calma 56 0

#CRE/CRM
layer CRW rnw,prnw
labels rnw,prnw
calma 65 0
layer CRG rp,prp
labels rp,prp
calma 67 0
layer CRD rnd,rpd,prnd,prpd
labels rnd,rpd,prnd,prpd
calma 66 0
layer CRE rnw,rp,rnd,rpd,rp2
labels rnw,rp,rnd,rpd,rp2
calma 64 0
layer CRF rm1,prm1
labels rm1,prm1
calma 71 0
layer CRS rm2,prm2
labels rm2,prm2
calma 72 0
layer CRG2 rp2,prp2
labels rp2,prp2
calma 68 0
layer CRT rm3,prm3
labels rm3,prm3
calma 73 0
#CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3
#CRE/CRM calma 70 0

layer CX comment
labels comment
calma 63 0

layer XP pad,xp
labels pad,xp
calma 26 0

style lambda=0.30()
scalefactor 30 15

layer CWN nwell,rnw
bloat-or pdiff,rpd,pdc/a,pdm12c/a,pfet * 180
bloat-or nsd,nsc/a,nsm12c/a * 90
bloat-or nfi * 120
grow 90
shrink 90
labels nwell,rnw
calma 42 0

templayer TNS ns

templayer TPS ps

#we give priority to selects autogenerated around diffusions (vrs. ohmics)
#XDP = (pdiff60) Or ps
#XDN = (ndiff
60) Or ns
#FSP = ((pdiff60,psc60) Or XDP And-Not XDN Or ps shrink-grow
#FSN = ((ndiff60,nsc60) Or XDN And-Not FDP Or ns shrink-grow
#CSN = FSN
#CSP = FSP

#diffusion auto-nselect (will have priority)
templayer XDN
bloat-or ndiff,rnd,ndc/a,ndm12c/a * 60 psd,psc/a,psm12c/a 0
or TNS

#diffusion auto-pselect (will have priority)
templayer XDP
bloat-or pdiff,rpd,pdc/a,pdm12c/a * 60 nsd,nsc/a,nsm12c/a 0
or TPS

#final pselect
templayer FSP
bloat-or pdiff,rpd,pfet,psd,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet * 60 ndiff,rnd,ndc/a,ndm12c/a,nsd,nsc/a,nsm12c/a,nfet 0
or XDP
#give diff nselect priority
and-not XDN
or TPS
shrink 15
grow 15
grow 15
shrink 15

#final nselect
templayer FSN
bloat-or ndiff,rnd,nfet,nsd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,nfet * 60 pdiff,rpd,pdc/a,pdm12c/a,psd,psc/a,psm12c/a,pfet 0
or XDN
#never conflict with final pselect
and-not FSP
#drawn select always goes
or TNS
shrink 15
grow 15
grow 15
shrink 15

layer CSN FSN
calma 45 0

layer CSP FSP
calma 44 0

layer CAA diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
labels diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,pfet,pfet,fet
calma 43 0

layer CCA ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1
squares 30 60 90
calma 48 0

layer CCA pdc/m1,pdm12c/m1,psc/m1,psm12c/m1
squares 30 60 90
calma 48 0

layer CPG poly,rp,nfet,pfet,fet,pc/a,pm12c/a
labels poly,rp,nfet,pfet,fet,pc/a,pm12c/a
calma 46 0

layer CCP pc/m1,pm12c/m1
squares 30 60 90
calma 47 0

layer CCE gc2
squares 0 60 90
calma 55 0

layer CCE p2c,p2m12c
squares 30 60 90
calma 55 0

layer CCE gc2
squares 0 60 90
calma 55 0

layer CCC gc
squares 0 60 90
calma 25 0

layer CV1 m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2m12c
squares 30 60 90
calma 50 0

layer CV1 gv1
squares 0 60 90
calma 50 0

layer CV2 m3c/m2,m123c/m2
squares 30 60 90
calma 61 0

layer CV2 gv2
squares 0 60 90
calma 61 0

templayer XPAD1 pad
shrink 180

templayer XPAD2 XPAD1
shrink 180

layer CM3 pad
labels pad
calma 62 0

layer CV2 XPAD2
squares 240 60 300
calma 61 0

layer CM2 pad
labels pad
calma 51 0

layer CV1 XPAD2
squares 60 60 300
calma 50 0

layer CM1 pad
calma 49 0

layer CM1 m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
labels m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,p2c,p2m12c
calma 49 0

layer CM2 m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
labels m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2,p2m12c
calma 51 0

layer CMFP m1p
labels m1p
calma 81 0

layer CMSP m2p
labels m2p
calma 82 0

layer 100 fp
labels fp
calma 100 0

layer 101 fm1
labels fm1
calma 101 0

layer 102 fm2
labels fm2
calma 102 0

layer 103 fm3
labels fm3
calma 103 0

layer 109 fa
or fb
squares 0 210 120
labels fa
calma 109 0

layer 119 fn
calma 119 0

layer 110 fapm
labels fapm
calma 110 0

layer CPG fp

layer CPG fp,fapm
squares 0 210 120
labels fp
calma 46 0

layer CM1 fm1

layer CM1 fm1,fapm
squares 0 210 120
labels fm1
calma 49 0

layer CM2 fm2

layer CM2 fm2,fapm

squares 0 210 120
labels fm2
calma 51 0

layer CM3 fm3

layer CM3 fm3,fapm

squares 0 210 120
labels fm3
calma 62 0

layer CM3 m3,rm3,m3c/m3,m123c/m3
labels m3,rm3,m3c/m3,m123c/m3
calma 62 0

layer CMTP m3p
labels m3p
calma 83 0

layer COG pad
shrink 600
labels pad
calma 52 0

layer COG glass
labels glass
calma 52 0

layer CFI nfi,pfi
labels nfi,pfi
calma 27 0

layer CHR hr,phr
labels hr,phr
calma 34 0

layer CEL poly2,ecap,phr,p2c,p2m12c
labels poly2,ecap,phr,p2c,p2m12c
calma 56 0

#CRE/CRM
layer CRW rnw,prnw
labels rnw,prnw
calma 65 0
layer CRG rp,prp
labels rp,prp
calma 67 0
layer CRD rnd,rpd,prnd,prpd
labels rnd,rpd,prnd,prpd
calma 66 0
layer CRE rnw,rp,rnd,rpd,rp2
labels rnw,rp,rnd,rpd,rp2
calma 64 0
layer CRF rm1,prm1
labels rm1,prm1
calma 71 0
layer CRS rm2,prm2
labels rm2,prm2
calma 72 0
layer CRG2 rp2,prp2
labels rp2,prp2
calma 68 0
layer CRT rm3,prm3
labels rm3,prm3
calma 73 0
#CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3
#CRE/CRM calma 70 0

layer CX comment
labels comment
calma 63 0

layer XP pad,xp
labels pad,xp
calma 26 0

end

cifinput

style lambda=0.30(p)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

layer pwell CWP
and-not CTA
labels CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

calma CSN 45 *

calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer ndc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer ndc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer pc CCP
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer pc CCP
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer gc CCP
and-not CPG
and-not CPC
calma CCP 47 *

layer gc CCP
and-not CM1
calma CCP 47 *

layer gc CCA
and-not COP
and-not CAA
and-not CBA
calma CCA 48 *

layer gc CCA
and-not COP
and-not CM1
calma CCA 48 *

layer gc CCC
and-not COP
and-not CPG
and-not CPC
and-not CEL
and-not CAA
and-not CBA
calma CCC 25 *

layer gc CCC
and-not COP
and-not CM1
calma CCC 25 *

layer gc2 CCE
and-not CPC
and-not CEL
calma CCE 55 *

layer gc2 CCE
and-not CM1
calma CCE 55 *

layer gv1 CV1
and-not COP
and-not CM1
calma CV1 50 *

layer gv1 CV1
and-not COP
and-not CM2
calma CV1 50 *

layer gv2 CV2
and-not COP
and-not CM2
calma CV2 61 *

layer gv2 CV2
and-not COP
and-not CM3
calma CV2 61 *

layer m2c CV1
and-not CV2
and-not CCC
and-not CCE
and-not CCP
and-not CCA
and-not XP
grow 30
and CM2
and CM1
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCP
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCE
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer m1 CM1
and-not CRM
and-not CRF
and-not XP
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer m2 CM2
and-not CRM
and-not CRS
and-not XP
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer m3c CV2

and-not CV1
and-not XP
grow 30
and CM3
and CM2
grow 15
shrink 15
calma CV2 61 *

layer m123c CV2

and CV1
and-not XP
grow 30
and CM3
and CM2
and CM1
grow 15
shrink 15
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
and-not XP
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer pad XP
labels pad
calma XP 26 *

layer glass COG
and-not COP
and-not XP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30(s)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

ignore CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer nselect CSN
calma CSN 45 *

layer pselect CSP
calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer ndc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer ndc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer pc CCP
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer pc CCP
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer gc CCP
and-not CPG
and-not CPC
calma CCP 47 *

layer gc CCP
and-not CM1
calma CCP 47 *

layer gc CCA
and-not COP
and-not CAA
and-not CBA
calma CCA 48 *

layer gc CCA
and-not COP
and-not CM1
calma CCA 48 *

layer gc CCC
and-not COP
and-not CPG
and-not CPC
and-not CEL
and-not CAA
and-not CBA
calma CCC 25 *

layer gc CCC
and-not COP
and-not CM1
calma CCC 25 *

layer gc2 CCE
and-not CPC
and-not CEL
calma CCE 55 *

layer gc2 CCE
and-not CM1
calma CCE 55 *

layer gv1 CV1
and-not COP
and-not CM1
calma CV1 50 *

layer gv1 CV1
and-not COP
and-not CM2
calma CV1 50 *

layer gv2 CV2
and-not COP
and-not CM2
calma CV2 61 *

layer gv2 CV2
and-not COP
and-not CM3
calma CV2 61 *

layer m2c CV1
and-not CV2
and-not CCC
and-not CCE
and-not CCP
and-not CCA
and-not XP
grow 30
and CM2
and CM1
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCP
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCE
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer m1 CM1
and-not CRM
and-not CRF
and-not XP
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer m2 CM2
and-not CRM
and-not CRS
and-not XP
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer m3c CV2

and-not CV1
and-not XP
grow 30
and CM3
and CM2
grow 15
shrink 15
calma CV2 61 *

layer m123c CV2

and CV1
and-not XP
grow 30
and CM3
and CM2
and CM1
grow 15
shrink 15
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
and-not XP
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer pad XP
labels pad
calma XP 26 *

layer glass COG
and-not COP
and-not XP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30(ps)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

layer pwell CWP
and-not CTA
labels CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer nselect CSN
calma CSN 45 *

layer pselect CSP
calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer ndc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer ndc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer pc CCP
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer pc CCP
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer gc CCP
and-not CPG
and-not CPC
calma CCP 47 *

layer gc CCP
and-not CM1
calma CCP 47 *

layer gc CCA
and-not COP
and-not CAA
and-not CBA
calma CCA 48 *

layer gc CCA
and-not COP
and-not CM1
calma CCA 48 *

layer gc CCC
and-not COP
and-not CPG
and-not CPC
and-not CEL
and-not CAA
and-not CBA
calma CCC 25 *

layer gc CCC
and-not COP
and-not CM1
calma CCC 25 *

layer gc2 CCE
and-not CPC
and-not CEL
calma CCE 55 *

layer gc2 CCE
and-not CM1
calma CCE 55 *

layer gv1 CV1
and-not COP
and-not CM1
calma CV1 50 *

layer gv1 CV1
and-not COP
and-not CM2
calma CV1 50 *

layer gv2 CV2
and-not COP
and-not CM2
calma CV2 61 *

layer gv2 CV2
and-not COP
and-not CM3
calma CV2 61 *

layer m2c CV1
and-not CV2
and-not CCC
and-not CCE
and-not CCP
and-not CCA
and-not XP
grow 30
and CM2
and CM1
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCP
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCE
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer m1 CM1
and-not CRM
and-not CRF
and-not XP
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer m2 CM2
and-not CRM
and-not CRS
and-not XP
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer m3c CV2

and-not CV1
and-not XP
grow 30
and CM3
and CM2
grow 15
shrink 15
calma CV2 61 *

layer m123c CV2

and CV1
and-not XP
grow 30
and CM3
and CM2
and CM1
grow 15
shrink 15
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
and-not XP
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer pad XP
labels pad
calma XP 26 *

layer glass COG
and-not COP
and-not XP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30()
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

ignore CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

calma CSN 45 *

calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer ndc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and-not CV1
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and-not CV1
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and-not CV1
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and-not CV1
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer ndc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer ndc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer nsc CAA
and CSN
and CCA
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer nsc CAA
and CSN
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer pdc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer pdc CAA
and CSP
and CCC
and CV1
and CV2
and-not CTA

and-not CPS
and CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer psc CAA
and CSP
and CCA
and CV1
and CV2
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCA 48 *

layer psc CAA
and CSP
and CCC
and CV1
and CV2
and-not CWNR
and-not CTA

and-not CPS
and-not CWN
and CM1
grow 30
grow 15
shrink 15
calma CCC 25 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer pc CCP
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and-not CV1
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer pc CCP
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCP 47 *

layer pc CCC
and CV1
and CV2
and CPG
and-not CPC
and-not CEL
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and-not CV1
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer p2c CCE
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCE 55 *

layer p2c CCC
and CV1
and CV2
and CPG
and CEL
and-not CPC
and-not CAA
grow 30
and CM1
grow 15
shrink 15
calma CCC 25 *

layer gc CCP
and-not CPG
and-not CPC
calma CCP 47 *

layer gc CCP
and-not CM1
calma CCP 47 *

layer gc CCA
and-not COP
and-not CAA
and-not CBA
calma CCA 48 *

layer gc CCA
and-not COP
and-not CM1
calma CCA 48 *

layer gc CCC
and-not COP
and-not CPG
and-not CPC
and-not CEL
and-not CAA
and-not CBA
calma CCC 25 *

layer gc CCC
and-not COP
and-not CM1
calma CCC 25 *

layer gc2 CCE
and-not CPC
and-not CEL
calma CCE 55 *

layer gc2 CCE
and-not CM1
calma CCE 55 *

layer gv1 CV1
and-not COP
and-not CM1
calma CV1 50 *

layer gv1 CV1
and-not COP
and-not CM2
calma CV1 50 *

layer gv2 CV2
and-not COP
and-not CM2
calma CV2 61 *

layer gv2 CV2
and-not COP
and-not CM3
calma CV2 61 *

layer m2c CV1
and-not CV2
and-not CCC
and-not CCE
and-not CCP
and-not CCA
and-not XP
grow 30
and CM2
and CM1
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCP
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer pm12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and-not CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCE
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer p2m12c CV1
and-not CV2
and CCC
grow 30
and CM2
and CM1
and CPG
and CEL
grow 15
shrink 15
calma CV1 50 *

layer m1 CM1
and-not CRM
and-not CRF
and-not XP
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer m2 CM2
and-not CRM
and-not CRS
and-not XP
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer ndm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer pdm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCA
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer nsm12c CAA
and CSN
and CV1
and-not CV2
and-not CWNR
and-not CTA
and CCC
grow 30
and CM1
and CM2

and CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCA
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer psm12c CAA
and CSP
and CV1
and-not CV2
and-not CTA
and CCC
grow 30
and CM1
and CM2

and-not CWN
grow 15
shrink 15
calma CV1 50 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer m3c CV2

and-not CV1
and-not XP
grow 30
and CM3
and CM2
grow 15
shrink 15
calma CV2 61 *

layer m123c CV2

and CV1
and-not XP
grow 30
and CM3
and CM2
and CM1
grow 15
shrink 15
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
and-not XP
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer pad XP
labels pad
calma XP 26 *

layer glass COG
and-not COP
and-not XP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30(c)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

ignore CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

calma CSN 45 *

calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer gc2 CCA
and CEL
calma CCA 48 *

layer gc2 CCP
and CEL
calma CCP 47 *

layer gc2 CCC
and CEL
calma CCC 25 *

layer gc2 CCE
and CEL
calma CCE 55 *

layer gc2 CCA
and CPC
and-not CPG
calma CCA 48 *

layer gc2 CCP
and CPC
and-not CPG
calma CCP 47 *

layer gc2 CCC
and CPC
and-not CPG
calma CCC 25 *

layer gc2 CCE
and CPC
and-not CPG
calma CCE 55 *

layer gc CCA
and CPG
and-not CEL
calma CCA 48 *

layer gc CCP
and CPG
and-not CEL
calma CCP 47 *

layer gc CCC
and CPG
and-not CEL
calma CCC 25 *

layer gc CCE
and CPG
and-not CEL
calma CCE 55 *

layer gc CCA
and-not COP
and-not CPC
and-not CEL
calma CCA 48 *

layer gc CCP
and-not COP
and-not CPC
and-not CEL
calma CCP 47 *

layer gc CCC
and-not COP
and-not CPC
and-not CEL
calma CCC 25 *

layer gc CCE
and-not COP
and-not CPC
and-not CEL
calma CCE 55 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer m1 CM1
and-not CRM
and-not CRF
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer gv1 CV1
calma CV1 50 *

layer m2 CM2
and-not CRM
and-not CRS
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer gv2 CV2
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer xp XP
calma XP 26 *

layer glass COG
and-not COP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30(cs)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

ignore CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer nselect CSN
calma CSN 45 *

layer pselect CSP
calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer gc2 CCA
and CEL
calma CCA 48 *

layer gc2 CCP
and CEL
calma CCP 47 *

layer gc2 CCC
and CEL
calma CCC 25 *

layer gc2 CCE
and CEL
calma CCE 55 *

layer gc2 CCA
and CPC
and-not CPG
calma CCA 48 *

layer gc2 CCP
and CPC
and-not CPG
calma CCP 47 *

layer gc2 CCC
and CPC
and-not CPG
calma CCC 25 *

layer gc2 CCE
and CPC
and-not CPG
calma CCE 55 *

layer gc CCA
and CPG
and-not CEL
calma CCA 48 *

layer gc CCP
and CPG
and-not CEL
calma CCP 47 *

layer gc CCC
and CPG
and-not CEL
calma CCC 25 *

layer gc CCE
and CPG
and-not CEL
calma CCE 55 *

layer gc CCA
and-not COP
and-not CPC
and-not CEL
calma CCA 48 *

layer gc CCP
and-not COP
and-not CPC
and-not CEL
calma CCP 47 *

layer gc CCC
and-not COP
and-not CPC
and-not CEL
calma CCC 25 *

layer gc CCE
and-not COP
and-not CPC
and-not CEL
calma CCE 55 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer m1 CM1
and-not CRM
and-not CRF
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer gv1 CV1
calma CV1 50 *

layer m2 CM2
and-not CRM
and-not CRS
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer gv2 CV2
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer xp XP
calma XP 26 *

layer glass COG
and-not COP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30(cps)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

layer pwell CWP
and-not CTA
labels CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer nselect CSN
calma CSN 45 *

layer pselect CSP
calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer gc2 CCA
and CEL
calma CCA 48 *

layer gc2 CCP
and CEL
calma CCP 47 *

layer gc2 CCC
and CEL
calma CCC 25 *

layer gc2 CCE
and CEL
calma CCE 55 *

layer gc2 CCA
and CPC
and-not CPG
calma CCA 48 *

layer gc2 CCP
and CPC
and-not CPG
calma CCP 47 *

layer gc2 CCC
and CPC
and-not CPG
calma CCC 25 *

layer gc2 CCE
and CPC
and-not CPG
calma CCE 55 *

layer gc CCA
and CPG
and-not CEL
calma CCA 48 *

layer gc CCP
and CPG
and-not CEL
calma CCP 47 *

layer gc CCC
and CPG
and-not CEL
calma CCC 25 *

layer gc CCE
and CPG
and-not CEL
calma CCE 55 *

layer gc CCA
and-not COP
and-not CPC
and-not CEL
calma CCA 48 *

layer gc CCP
and-not COP
and-not CPC
and-not CEL
calma CCP 47 *

layer gc CCC
and-not COP
and-not CPC
and-not CEL
calma CCC 25 *

layer gc CCE
and-not COP
and-not CPC
and-not CEL
calma CCE 55 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer m1 CM1
and-not CRM
and-not CRF
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer gv1 CV1
calma CV1 50 *

layer m2 CM2
and-not CRM
and-not CRS
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer gv2 CV2
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer xp XP
calma XP 26 *

layer glass COG
and-not COP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style lambda=0.30(cp)
scalefactor 30

layer nwell CWN
and-not CWNR
and-not CTA
labels CWN
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRE
and-not CSB
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer rnw CWN
and-not CWNR
and CRW
and-not CRD
and-not CAA
and-not CPG
calma CWN 42 *

layer pseudo_rnwell CRW
and-not CRE
calma CRW 65 *

layer pwell CWP
and-not CTA
labels CWP
calma CWP 41 *

layer diff CAA
and-not CTA
and-not CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

layer tran CAA
and-not CTA
and CPG
and-not CWNR
and-not COP
and-not CSN
and-not CSP
labels CAA
calma CAA 43 *

calma CSN 45 *

calma CSP 44 *

layer ndiff CAA
and CSN
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRE
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer rnd CAA
and CSN
and-not CWNR
and CRD
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and-not CBA
calma CAA 43 *

layer pseudo_rndiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and-not CWN
and-not CSP
and CSN
and-not CBA
calma CRD 66 *

layer pdiff CAA
and CSP
and-not CWNR
and-not CTA
and-not CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRE
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer rpd CAA
and CSP
and-not CWNR
and CRD
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CAA 43 *

layer pseudo_rpdiff CRD
and-not CRE
and-not CAA
and-not CSB
and-not CPG
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
calma CRD 66 *

layer nfet CAA
and CSN
and-not CWNR
and-not CTA
and CPG
and-not CEL
and-not CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer pfet CAA
and CSP
and-not CWNR
and-not CTA
and CPG
and-not CEL
and CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer nsd CAA
and CSN
and-not CWNR
and-not CTA
and CWN
and-not CSP
and-not CBA
labels CAA
calma CAA 43 *

layer psd CAA
and CSP
and-not CWNR
and-not CTA
and-not CWN
and-not CSN
and-not CPS
and CSP
and-not CBA
labels CAA
calma CAA 43 *

layer gc2 CCA
and CEL
calma CCA 48 *

layer gc2 CCP
and CEL
calma CCP 47 *

layer gc2 CCC
and CEL
calma CCC 25 *

layer gc2 CCE
and CEL
calma CCE 55 *

layer gc2 CCA
and CPC
and-not CPG
calma CCA 48 *

layer gc2 CCP
and CPC
and-not CPG
calma CCP 47 *

layer gc2 CCC
and CPC
and-not CPG
calma CCC 25 *

layer gc2 CCE
and CPC
and-not CPG
calma CCE 55 *

layer gc CCA
and CPG
and-not CEL
calma CCA 48 *

layer gc CCP
and CPG
and-not CEL
calma CCP 47 *

layer gc CCC
and CPG
and-not CEL
calma CCC 25 *

layer gc CCE
and CPG
and-not CEL
calma CCE 55 *

layer gc CCA
and-not COP
and-not CPC
and-not CEL
calma CCA 48 *

layer gc CCP
and-not COP
and-not CPC
and-not CEL
calma CCP 47 *

layer gc CCC
and-not COP
and-not CPC
and-not CEL
calma CCC 25 *

layer gc CCE
and-not COP
and-not CPC
and-not CEL
calma CCE 55 *

layer poly CPG
and-not CRE
labels CPG
calma CPG 46 *

layer rp CPG
and CRE
and-not CSB
calma CPG 46 *

layer rp CPG
and CRG
calma CPG 46 *

layer pseudo_rpoly CRG
and-not CRE
calma CRG 67 *

layer m1 CM1
and-not CRM
and-not CRF
labels CM1
calma CM1 49 *

layer rm1 CRM
and CM1
calma CRM 70 *

layer rm1 CRF
and CM1
calma CRF 71 *

layer pseudo_rmetal1 CRF
and-not rm1
calma CRF 71 *

layer m1p CMFP
labels CMFP
calma CMFP 81 *

layer gv1 CV1
calma CV1 50 *

layer m2 CM2
and-not CRM
and-not CRS
labels CM2
calma CM2 51 *

layer rm2 CRM
and CM2
calma CRM 70 *

layer rm2 CRS
and CM2
calma CRS 72 *

layer pseudo_rmetal2 CRS
and-not rm2
calma CRS 72 *

layer m2p CMSP
labels CMSP
calma CMSP 82 *

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

layer gv2 CV2
calma CV2 61 *

layer m3 CM3
and-not CRM
and-not CRT
labels CM3
calma CM3 62 *

layer rm3 CRM
and CM3
calma CRM 70 *

layer rm3 CRT
and CM3
calma CRT 73 *

layer pseudo_rmetal3 CRT
and-not rm3
calma CRT 73 *

layer m3p CMTP
labels CMTP
calma CMTP 83 *

layer xp XP
calma XP 26 *

layer glass COG
and-not COP
labels COG
calma COG 52 *

layer nfi CFI
and CWN
labels CFI
calma CFI 27 *

layer pfi CFI
and-not CWN
labels CFI
calma CFI 27 *

layer hr CHR
labels CHR
calma CHR 34 *

layer phr CEL
and CHR
calma CEL 56 *

layer ecap CEL
and CPG
labels CEL
calma CEL 56 *

layer poly2 CEL
and-not CPG
labels CEL
calma CEL 56 *

layer rp2 CEL
and CRG2
calma CEL 56 *

layer pseudo_rpoly2 CRG2
and-not CRE
calma CRG2 68 *

layer comment CX
labels CX
calma CX 63 *

calma CTA 60 *

#CRE/CRM
calma CRW 65 *
calma CRG 67 *
calma CRD 66 *
calma CRE 64 *
calma CRF 71 *
calma CRS 72 *
calma CRT 73 *
calma CRM 70 *

style fill-only
scalefactor 30

scalefactor 100

layer fp 100
calma 100 100 *

layer fm1 101
calma 101 101 *

layer fm2 102
calma 102 102 *

layer fm3 103
calma 103 103 *

layer fa 109
or fb
calma 109 109 *

layer fn 119
calma 119 119 *

layer fapm 110
calma 110 110 *

end

mzrouter
style irouter

layer hCost vCost jogCost hintCost

layer metal3 1 2 2 1
layer metal2 2 1 2 1
layer metal1 2 3 2 1
layer poly 10 10 11 1
contact m3contact metal3 metal2 5
contact m2contact metal2 metal1 6
contact pcontact metal1 poly 7
notactive poly pcontact

style garouter
layer m2 32 64 256 1
layer m1 64 32 256 1
contact m2contact metal1 metal2 1024

end

drc
width nwell 12
"N-well width < 12 (Mosis #1.1)"

width rnw 12
"rnwell (for resistor L/W extraction) width < 12 (Mosis #1.1)"

width pwell 12
"P-well width < 12 (Mosis #1.1)"

width diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a 3
"Diffusion width < 3 (Mosis #2.1)"

width poly,fp,rp,pc/a,pm12c/a,nfet,pfet,fet 2
"Poly width < 2 (Mosis #3.1)"

width nselect 2
"N-Select width < 2 (Mosis #4.4)"

width pselect 2
"P-Select width < 2 (Mosis #4.4)"

width pc/m1 4
"Poly contact width < 4 (Mosis #5.1)"

width pm12c/m1 4
"Poly contact width < 4 (Mosis #5.1)"

width gc 2
"GC contact width < 2 (Mosis #6.1)"

width ndc/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width ndm12c/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width nsc/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width nsm12c/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width pdc/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width pdm12c/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width psc/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width psm12c/m1 4
"Diffusion contact width < 4 (Mosis #6.1)"

width m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 3
"Metal1 width < 3 (Mosis #7.1)"

width gv1 2
"GV1 via width < 2 (Mosis #8.1)"

width m2c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width pdm12c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width ndm12c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width psm12c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width nsm12c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width pm12c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width m123c/m1 4
"Metal2 contact width < 4 (Mosis #8.1)"

width p2m12c 4
"Metal2 contact width < 4 (Mosis #8.1)"

width p2m12c 4
"stacked p2m12c width < 4 (Mosis #8.1)"

width m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 3
"Metal2 width < 3 (Mosis #9.1)"

width poly2,ecap,phr,p2c,p2m12c,p2c,p2m12c 5
"Poly2 width < 5 (Mosis #11.1)"

width gc2 2
"Generic contact2 width < 2 (Mosis #13.1)"

width p2c 4
"Poly2 contact width < 4 (Mosis #13.1)"

width p2m12c 4
"Poly2 contact width < 4 (Mosis #13.1)"

width gv2 2
"GV2 via width < 2 (Mosis #14.1)"

width m3c/m2 4
"Metal3 contact width < 4 (Mosis #14.1)"

width m123c/m2 4
"Metal3 contact width < 4 (Mosis #14.1)"

width m3,fm3,rm3,m3c/m3,m123c/m3,pad 5
"Metal3 width < 5 (Mosis #15.1)"

width hr,phr 4
"High-Resist width < 4 (Mosis #27.1)"

width phr 5
"High-Resist poly2R width < 5 (Mosis #27.7)"

width nfi,pfi 4
"N/P_field-implant width < 4 (Mosis #29.1)"

spacing nwell nwell 6 touching_ok
"N-well(at-same-potential) spacing < 6 (Mosis #1.3)"

spacing pwell pwell 6 touching_ok
"P-well(at-same-potential) spacing < 6 (Mosis #1.3)"

spacing rnw nwell 18 touching_illegal
"rnw (for resistor L/W extraction) spacing to N-well < 18 (Mosis #2.3)"

edge4way ~(pwell)/well pwell 1 ~(rnw)/active 0 0
"P-well cannot touch rnw (for resistor L/W extraction) (Mosis #1.4)" active

spacing diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a 3 touching_ok
"Diffusion spacing < 3 (Mosis #2.2)"

spacing nwell ndiff,rnd,nfet,ndc/a,ndm12c/a 6 touching_illegal
"N-well spacing to N-Diffusion < 6 (Mosis #2.3)"

spacing pwell pdiff,rpd,pfet,pdc/a,pdm12c/a 6 touching_illegal
"P-well spacing to P-Diffusion < 6 (Mosis #2.3)"

spacing ndiff,rnd,nfet,ndc/a,ndm12c/a pdiff,rpd,pfet,pdc/a,pdm12c/a 12 touching_illegal
"N-Diffusion spacing to P-Diffusion < 12 (Mosis #2.3+2.3)"

edge4way ~(nwell)/well nwell 6 ~(pdiff,rpd,pfet,pdc/a,pdm12c/a)/active nwell 6
"N-well overlap of P-Diffusion < 6 (Mosis #2.4)" active

edge4way ~(pwell)/well pwell 6 ~(ndiff,rnd,nfet,ndc/a,ndm12c/a)/active pwell 6
"P-well overlap of N-Diffusion < 6 (Mosis #2.4)" active

edge4way ~(nwell)/well nwell 3 ~(nsd,nsc/a,nsm12c/a)/active nwell 3
"N-well overlap of N-Ohmic < 3 (Mosis #2.4)" active

edge4way ~(pwell)/well pwell 3 ~(psd,psc/a,psm12c/a)/active pwell 3
"P-well overlap of P-Ohmic < 3 (Mosis #2.4)" active

spacing ndiff,rnd,ndc/a,ndm12c/a nsd,nsc/a,nsm12c/a 9 touching_illegal
"N-Diffusion spacing to N-Ohmic < 9 (Mosis #2.3+2.4)"

spacing pdiff,rpd,pdc/a,pdm12c/a psd,psc/a,psm12c/a 9 touching_illegal
"P-Diffusion spacing to P-Ohmic < 9 (Mosis #2.3+2.4)"

spacing nwell psd,psc/a,psm12c/a 3 touching_illegal
"N-well spacing to P-Ohmic < 3 (Mosis #2.4)"

spacing pwell nsd,nsc/a,nsm12c/a 3 touching_illegal
"P-well spacing to N-Ohmic < 3 (Mosis #2.4)"

spacing psd,psc/a,psm12c/a rnw,prnw 3 touching_illegal
"P-Ohmic spacing to rnw,prnw < 3 (Mosis #2.4)"

spacing nsd,nsc/a,nsm12c/a psd,psc/a,psm12c/a 6 touching_illegal
"N-Ohmic spacing to P-Ohmic < 6 (Mosis #2.4+2.4)"

spacing ndiff,rnd,nfet,ndc/a,ndm12c/a,nfet psd,psc/a,psm12c/a 4 touching_ok
"N-Diffusion spacing to P-Ohmic < 4 (Mosis #2.5)"

spacing pdiff,rpd,pfet,pdc/a,pdm12c/a,pfet nsd,nsc/a,nsm12c/a 4 touching_ok
"P-Diffusion spacing to N-Ohmic < 4 (Mosis #2.5)"

spacing poly,rp,pc/a,pm12c/a,nfet,pfet,fet poly,rp,pc/a,pm12c/a,nfet,pfet,fet 3 touching_ok
"Poly spacing < 3 (Mosis #3.2)"

spacing poly,rp,pc/a,pm12c/a,nfet,pfet,fet fp,fapm 3 touching_illegal
"Poly spacing to fill layer (fp) < 3 (Mosis #3.2)"

spacing fp fp 4 touching_ok
"Poly fill layer (fp) spacing < 4 (Mosis #0)"

edge4way nfet,pfet,fet space/active,poly,fp,rp,pc/a,pm12c/a 2 poly,fp,rp,pc/a,pm12c/a 0 0
"Poly overhang of Transistor < 2 (Mosis #3.3)" active

edge4way nfet,pfet,fet space/active,ndiff,rnd,ndc/a,ndm12c/a,pdiff,rpd,pdc/a,pdm12c/a 3 ndiff,rnd,ndc/a,ndm12c/a,pdiff,rpd,pdc/a,pdm12c/a,nfet,pfet,fet 0 0
"N-Diffusion,P-Diffusion overhang of Transistor < 3 (Mosis #3.4)" active

edge4way poly,fp,rp,pc/a,pm12c/a ~(poly,fp,rp,pc/a,pm12c/a,nfet,pfet,fet,prp)/active 1 space space 1
"Poly spacing to Diffusion < 1 (Mosis #3.5)"

edge4way nfet ~(nfet)/active 3 ~(pselect)/select ~(nfet)/active 3
"N-Transistor space to P-Select < 3 (Mosis #4.1)" select

edge4way pfet ~(pfet)/active 3 ~(nselect)/select ~(pfet)/active 3
"P-Transistor space to N-Select < 3 (Mosis #4.1)" select

edge4way nfet ~(nfet)/active 3 ~(psd,psc/a,psm12c/a)/active ~(nfet)/active 2
"N-Transistor space to P-Ohmic < 3 (Mosis #4.1)" active

edge4way pfet ~(pfet)/active 3 ~(nsd,nsc/a,nsm12c/a)/active ~(pfet)/active 2
"P-Transistor space to N-Ohmic < 3 (Mosis #4.1)" active

#PEZ edge4way psd,psc/a,psm12c/a space ~(nfet)/active space
#PEZ "P-Ohmic space to N-Transistor < (Mosis #4.1)" active

#PEZ edge4way nsd,nsc/a,nsm12c/a space ~(pfet)/active space
#PEZ "N-Ohmic space to P-Transistor < (Mosis #4.1)" active

edge4way ~(nselect,pselect)/select nselect,pselect 2 ~(diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a)/active nselect,pselect 2
"N-Select,P-Select overlap of Diffusion < 2 (Mosis #4.2_)" active

edge4way space nselect,pselect 2 ~(ndiff,rnd,nfet,ndc/a,ndm12c/a)/active nselect 2
"N-Select space to N-Diffusion < 2 (Mosis #4.2a)" active

edge4way nselect,pselect space 2 ~(ndiff,rnd,nfet,ndc/a,ndm12c/a)/active nselect 2
"N-Select space to N-Diffusion < 2 (Mosis #4.2b)" active

edge4way nselect,pselect space 2 ~(ndiff,rnd,nfet,ndc/a,ndm12c/a)/active space,nselect,pselect 2
"N-Select space to N-Diffusion < 2 (Mosis #4.2c)" active

edge4way space nselect,pselect 2 ~(pdiff,rpd,pfet,pdc/a,pdm12c/a)/active pselect 2
"P-Select space to P-Diffusion < 2 (Mosis #4.2aa)" active

edge4way nselect,pselect space 2 ~(pdiff,rpd,pfet,pdc/a,pdm12c/a)/active pselect 2
"P-Select space to P-Diffusion < 2 (Mosis #4.2bb)" active

edge4way nselect,pselect space 2 ~(pdiff,rpd,pfet,pdc/a,pdm12c/a)/active space,nselect,pselect 2
"P-Select space to P-Diffusion < 2 (Mosis #4.2cc)" active

edge4way diff space 2 nselect space 2
"N-Select must overlap Diffusion by 2 (Mosis #4.2)" select

edge4way diff space 2 pselect space 2
"P-Select must overlap Diffusion by 2 (Mosis #4.2)" select

edge4way ndiff,rnd,nfet,ndc/a,ndm12c/a space 2 ~(pselect)/select space 2
"P-Select space to N-Diffusion < 2 (Mosis #4.2e)" select

edge4way pdiff,rpd,pfet,pdc/a,pdm12c/a space 2 ~(nselect)/select space 2
"N-Select space to P-Diffusion < 2 (Mosis #4.2e)" select

edge4way ~(pdiff,rpd,pfet,pdc/a,pdm12c/a,psd,psc/a,psm12c/a)/active pdiff,rpd,pfet,pdc/a,pdm12c/a,psd,psc/a,psm12c/a 1 ~(nselect)/select 0 0
"N-Select cannot touch P-Diffusion,P-Ohmic (Mosis #4.2f)" select

edge4way ~(ndiff,rnd,nfet,ndc/a,ndm12c/a,nsd,nsc/a,nsm12c/a)/active ndiff,rnd,nfet,ndc/a,ndm12c/a,nsd,nsc/a,nsm12c/a 1 ~(pselect)/select 0 0
"P-Select cannot touch N-Diffusion,N-Ohmic (Mosis #4.2f)" select

width nsd,nsc/a,nsm12c/a,psd,psc/a,psm12c/a 2
"N-Ohmic,P-Ohmic width < 2 (Mosis #4.1)"

spacing nselect nselect 2 touching_ok
"N-Select spacing < 2 (Mosis #4.4)"

spacing pselect pselect 2 touching_ok
"P-Select spacing < 2 (Mosis #4.4)"

edge4way ndiff,rnd,ndc/a,ndm12c/a psd,psc/a,psm12c/a 2 ~(ndiff,rnd,ndc/a,ndm12c/a)/active 0 0
"P-Ohmic(that touches N-Diffusion) width < 2 (Mosis #4.4)"

edge4way pdiff,rpd,pdc/a,pdm12c/a nsd,nsc/a,nsm12c/a 2 ~(pdiff,rpd,pdc/a,pdm12c/a)/active 0 0
"N-Ohmic(that touches P-Diffusion) width < 2 (Mosis #4.4)"

edge4way gc ~(gc)/contact 1 poly,fp,rp,pc/a,pm12c/a,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a ~(gc)/contact 1
"Poly,Diffusion overlap of GC contact < 1 (Mosis #5.2)" active

edge4way gc space 1 poly,fp,rp,pc/a,pm12c/a,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a space 1
"one of: Poly,Diffusion must overlap GC contact by 1 (Mosis #5.2a,6.2a)" active

edge4way ~(poly,fp,rp,pc/a,pm12c/a,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a)/active poly,fp,rp,pc/a,pm12c/a,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a 1 ~(gc)/contact 0 0
"Edge to one of: Poly,Diffusion cannot touch GC contact (Mosis #5.2a,6.2a)" contact

spacing gc gc 3 touching_ok
"Generic contact spacing < 3 (Mosis #5.3)"

edge4way ~(gc)/contact gc 1 ~(ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1)/metal1 0 0
"GC contact cannot touch Metal1 contacts (Mosis #0)" metal1

edge4way ~(gc2)/contact gc2 1 ~(ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1)/metal1 0 0
"Generic contact2 cannot touch Metal1 contacts (Mosis #0)" metal1

spacing gv1 m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2 2 touching_illegal
"GV1 via spacing to Metal2 contacts < 2 (Mosis #14.2)"

spacing poly,fp,rp,pc/a,pm12c/a pc/a,pm12c/a 4 touching_ok
"Poly spacing to Poly contact < 4 (Mosis #5.5.b)"

edge4way gc ~(gc)/contact 1 diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,poly,fp,rp,pc/a,pm12c/a ~(gc)/contact 1
"Diffusion,Poly overlap of GC contact < 1 (Mosis #6.2)" active

spacing gc pc/a,pm12c/a,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a 2 touching_illegal
"Generic contact spacing to Poly contact,Diffusion contact < 2 (Mosis #5.3)"

spacing nsc/m1,nsm12c/m1 pdc/m1,pdm12c/m1 1 touching_illegal
"nsc spacing to pdc < 1 (Mosis #6.3)"

spacing psc/m1,psm12c/m1 ndc/m1,ndm12c/m1 1 touching_illegal
"psc spacing to ndc < 1 (Mosis #6.3)"

spacing pdm12c/m1 pdc/m1,m2c/m1,nsm12c/m1 1 touching_illegal
"pdm12c spacing to pdc or m2c or nsm12c < 1 (Mosis #6.3)"

spacing psm12c/m1 psc/m1,m2c/m1 1 touching_illegal
"psm12c spacing to psc or m2c < 1 (Mosis #6.3)"

spacing ndm12c/m1 ndc/m1,m2c/m1,nsm12c/m1 1 touching_illegal
"ndm12c spacing to ndc or m2c or nsm12c < 1 (Mosis #6.3)"

spacing nsm12c/m1 nsc/m1,m2c/m1 1 touching_illegal
"nsm12c spacing to nsc or m2c < 1 (Mosis #6.3)"

spacing pm12c/m1 pc/m1,m2c/m1 1 touching_illegal
"pm12c spacing to pc or m2c < 1 (Mosis #6.3)"

spacing m123c/m2 pdm12c/m2,psm12c/m2,ndm12c/m2,nsm12c/m2,pm12c/m2,m2c/m2,m3c/m2 1 touching_illegal
"m123c spacing to *m12c or m2c or m3c < 1 (Mosis #6.3)"

spacing nfet,pfet ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a 1 touching_illegal
"N-Transistor,P-Transistor spacing to Diffusion contact < 1 (Mosis #6.4)"

spacing nfet,pfet gc 2 touching_illegal
"N-Transistor,P-Transistor spacing to Generic contact < 2 (Mosis #6.4)"

spacing diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a pc/a,pm12c/a 1 touching_illegal
"Diffusion spacing to Poly contact < 1 (Mosis #6.5.b)"

spacing diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,ndm12c/a,nsc/a,nsm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nfet,pfet ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a 4 touching_ok
"Diffusion spacing to Diffusion contact < 4 (Mosis #6.5.b)"

spacing pc/a,pm12c/a ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a 2 touching_illegal
"pc/a,pm12c/a spacing to ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a < 2 (Mosis #6.7)"

spacing m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 3 touching_ok
"Metal1 spacing < 3 (Mosis #7.2)"

spacing m1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 fm1,fapm 3 touching_illegal
"Metal1 spacing to fill layer (fm1) < 3 (Mosis #7.2)"

spacing fm1 fm1 4 touching_ok
"Metal1 fill layer (fm1) spacing < 4 (Mosis #0)"

edge4way gc space 1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 space 1
"Metal1 must overlap GC contact by 1 (Mosis #7.3,7.4)" metal1

edge4way ~(m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1)/metal1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 1 ~(gc)/contact 0 0
"Metal1(edge) cannot touch GC contact (Mosis #7.3+7.4)" contact

spacing gv1 gv1 3 touching_ok
"GV1 via spacing < 3 (Mosis #8.2)"

edge4way gv1 ~(gv1)/via1 1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 ~(gv1)/via1 1
"Metal1 overlap of GV1 via < 1 (Mosis #8.3)" metal1

edge4way gv1 space 1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 space 1
"Metal1 must overlap GV1 via by 1 (Mosis #8.3)" metal1

edge4way ~(m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1)/metal1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 1 ~(gv1)/via1 0 0
"Metal1(edge) cannot touch GV1 via (Mosis #8.3)" via1

spacing m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 3 touching_ok
"Metal2 spacing < 3 (Mosis #9.2)"

spacing m2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 fm2,fapm 3 touching_illegal
"Metal2 spacing to fill layer (fm2) < 3 (Mosis #9.2)"

spacing fm2 fm2 4 touching_ok
"Metal2 fill layer (fm2) spacing < 4 (Mosis #0)"

edge4way gv1 space 1 m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 space 1
"Metal2 must overlap GV1 via by 1 (Mosis #9.3)" metal2

edge4way ~(m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2)/metal2 m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 1 ~(gv1)/via1 0 0
"Metal2(edge) cannot touch GV1 via (Mosis #9.3)" via1

width glass 10
"COG width < 10 (Mosis #10.2)"

edge4way ~(pad)/metal3 pad 20 ~(glass)/oxide pad 20
"pad overlap of COG < 20 (Mosis #10.3)" oxide

spacing ecap ecap 3 touching_ok
"Ecap spacing < 3 (Mosis #11.2)"

edge4way ecap ~(ecap)/cap 5 poly,fp,rp,pc/a,pm12c/a ~(ecap)/cap 5
"Poly overlap of Ecap < 5 (Mosis #11.3)" active

edge4way ~(ecap)/cap ecap 1 poly,fp,rp,pc/a,pm12c/a 0 0
"Ecap must touch Poly (Mosis #11.3x)" active

edge4way poly2,phr,p2c,p2m12c space 5 ~(poly,fp,rp,pc/a,pm12c/a)/active space 5
"Poly2 spacing to Poly < 5 (Mosis #11.3c)" active

spacing ecap pc/a,pm12c/a 2 touching_illegal
"Ecap spacing to Poly contact < 2 (Mosis #11.5)"

spacing ecap gc 3 touching_illegal
"Ecap spacing to Generic contact < 3 (Mosis #11.5)"

spacing poly2,ecap,phr,p2c,p2m12c poly2,ecap,phr,p2c,p2m12c 3 touching_ok
"Poly2 spacing < 3 (Mosis #11.2)"

spacing poly2,ecap,phr,p2c,p2m12c pc/a,pm12c/a,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a 2 touching_illegal
"Poly2 spacing to Poly contact,Diffusion contact < 2 (Mosis #11.5)"

spacing poly2,ecap,phr,p2c,p2m12c gc,gc 3 touching_illegal
"Poly2 spacing to GC contact < 3 (Mosis #11.5)"

spacing gc2 gc2 3 touching_ok
"Generic contact2 spacing < 3 (Mosis #13.2)"

edge4way ~(ecap)/cap ecap 3 ~(gc2)/contact ecap 3
"Ecap overlap of Generic contact2 < 3 (Mosis #13.3)" contact

edge4way ~(ecap)/cap ecap 2 ~(p2c,p2m12c)/cap ecap 2
"Ecap overlap of Poly2 contact < 2 (Mosis #13.3)" cap

edge4way gc2 space 1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 space 1
"Metal1 must overlap Generic contact2 by 1 (Mosis #13.4)" metal1

edge4way ~(m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1)/metal1 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 1 ~(gc2)/contact 0 0
"Metal1(edge) cannot touch Generic contact2 (Mosis #13.4)" contact

edge4way ~(poly2,ecap,phr,p2c,p2m12c)/cap poly2,ecap,phr,p2c,p2m12c 1 ~(p2c,p2m12c)/cap poly2,ecap,phr,p2c,p2m12c 1
"Poly2 overlap of Poly2 contact < 1 (Mosis #13.4)" cap

spacing gv2 gv2 3 touching_ok
"GV2 via spacing < 3 (Mosis #14.2)"

spacing gv2 m3c/m2,m123c/m2 2 touching_illegal
"GV2 via spacing to Metal3 contact < 2 (Mosis #14.2)"

edge4way gv2 space 1 m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 space 1
"Metal2 must overlap GV2 via by 1 (Mosis #14.3)" metal2

edge4way ~(m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2)/metal2 m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 1 ~(gv2)/via2 0 0
"Metal2(edge) cannot touch GV2 via (Mosis #14.3)" via2

spacing m3,rm3,m3c/m3,m123c/m3,pad m3,rm3,m3c/m3,m123c/m3,pad 3 touching_ok
"Metal3 spacing < 3 (Mosis #15.2)"

spacing m3,rm3,m3c/m3,m123c/m3,pad fm3,fapm 3 touching_illegal
"Metal3 spacing to fill layer (fm3) < 3 (Mosis #15.2)"

spacing fm3 fm3 4 touching_ok
"Metal3 fill layer (fm3) spacing < 4 (Mosis #0)"

edge4way m3c/m2,m123c/m2 ~(m3c/m2,m123c/m2)/metal2 1 m3,fm3,rm3,m3c/m3,m123c/m3,pad ~(m3c/m2,m123c/m2)/metal2 1
"Metal3 overlap of Metal3 contact < 1 (Mosis #15.3)" metal3

edge4way gv2 space 2 m3,fm3,rm3,m3c/m3,m123c/m3,pad space 2
"Metal3 must overlap GV2 via by 2 (Mosis #15.3)" metal3

edge4way ~(m3,fm3,rm3,m3c/m3,m123c/m3,pad)/metal3 m3,fm3,rm3,m3c/m3,m123c/m3,pad 1 ~(gv2)/via2 0 0
"Metal3(edge) cannot touch GV2 via (Mosis #15.3)" via2

spacing hr,phr hr,phr 4 touching_ok
"High-Resist spacing < 4 (Mosis #27.2)"

spacing hr,phr,phr p2c,p2m12c 2 touching_illegal
"High-Resist spacing to Poly2 contact < 2 (Mosis #27.3)"

spacing hr,phr,phr gc 2 touching_illegal
"High-Resist spacing to GC contact < 2 (Mosis #27.3)"

edge4way hr,phr space 2 ~(ndiff,rnd,ndc/a,ndm12c/a,pdiff,rpd,pdc/a,pdm12c/a)/active 0 2
"High-Resist space to Diffusion < 2 (Mosis #27.4)" active

spacing hr,phr,phr poly2,ecap,phr,p2c,p2m12c 2 touching_ok
"High-Resist spacing to other Poly2 < 2 (Mosis #27.5)"

edge4way hr,phr space 2 ~(poly2,ecap,phr,p2c,p2m12c)/contact hr,phr 2
"High-Resist space to Poly2 < 2 (Mosis #27.5x)" contact

spacing nwell phr 4 touching_illegal
"N-well spacing to Silicide-Block poly2R < 4 (Mosis #27.6)"

spacing phr phr 7 touching_ok
"High-Resist poly2R spacing < 7 (Mosis #27.13)"

edge4way phr space/active,hr 2 hr hr 2
"High-Resist overlap of High-Resist poly2R < 2 (Mosis #27.15)"

spacing nfi nfi 4 touching_ok
"N_field-implant spacing < 4 (Mosis #35.2)"

spacing pfi pfi 4 touching_ok
"P_field-implant spacing < 4 (Mosis #35.2)"

spacing nfi pfi 4 touching_illegal
"N_field-implant spacing to P_field-implant < 4 (Mosis #35.2)"

spacing nwell,pdiff,rpd,pfet,pdc/a,pdm12c/a pfi 4 touching_illegal
"N-well,P-Diffusion spacing to P_field-implant < 4 (Mosis #2.1)"

spacing pwell,ndiff,rnd,nfet,ndc/a,ndm12c/a nfi 4 touching_illegal
"P-well,N-Diffusion spacing to N_field-implant < 4 (Mosis #2.1)"

edge4way ~(nwell)/well nwell 4 ~(nfi)/implant nwell 4
"N-well overlap of N_field-implant < 4 (Mosis #21.2)" implant

edge4way ~(pwell)/well pwell 4 ~(pfi)/implant pwell 4
"P-well overlap of P_field-implant < 4 (Mosis #21.2)" implant

spacing fa fapm 4 touching_illegal
"fill layer fa spacing to fill layer fapm < 4 (Mosis #0)"

width fa 7
"filla width < 7 (Mosis #0)"

width fapm 7
"fillapm width < 7 (Mosis #0)"

width fp 7
"fillp width < 7 (Mosis #0)"

width fm1 7
"fillm1 width < 7 (Mosis #0)"

width fm2 7
"fillm2 width < 7 (Mosis #0)"

width fm3 7
"fillm3 width < 7 (Mosis #0)"

edge4way fa ~(fa)/fill 1 (fa)/fill ((fa),fa)/fill 1
"Contact not rectangular (Magic rule)"

edge4way fb ~(fb)/fill 1 (fb)/fill ((fb),fb)/fill 1
"Contact not rectangular (Magic rule)"

edge4way fapm ~(fapm)/active 1 (fapm)/active ((fapm),fapm)/active 1
"Contact not rectangular (Magic rule)"

edge4way fp ~(fp)/active 1 (fp)/active ((fp),fp)/active 1
"Contact not rectangular (Magic rule)"

edge4way fm1 ~(fm1)/metal1 1 (fm1)/metal1 ((fm1),fm1)/metal1 1
"Contact not rectangular (Magic rule)"

edge4way fm2 ~(fm2)/metal2 1 (fm2)/metal2 ((fm2),fm2)/metal2 1
"Contact not rectangular (Magic rule)"

edge4way fm3 ~(fm3)/metal3 1 (fm3)/metal3 ((fm3),fm3)/metal3 1
"Contact not rectangular (Magic rule)"

edge4way rp space/active 1 prp 0 0
"prp overhang of rpoly (for resistor L/W extraction) < 1 (Mosis #0)" active

edge4way rp2 space/cap 1 prp2 0 0
"prp2 overhang of rpoly2 (for resistor L/W extraction) < 1 (Mosis #0)" cap

edge4way rnw space/active 1 prnw 0 0
"prnw overhang of rnwell (for resistor L/W extraction) < 1 (Mosis #0)" active

edge4way rpd space/active 1 prpd 0 0
"prpd overhang of rpdiff (for resistor L/W extraction) < 1 (Mosis #0)" active

edge4way rnd space/active 1 prnd 0 0
"prnd overhang of rndiff (for resistor L/W extraction) < 1 (Mosis #0)" active

edge4way rm1 space/metal1 1 prm1 0 0
"prm1 overhang of rmetal1 (for resistor L/W extraction) < 1 (Mosis #0)" metal1

edge4way rm2 space/metal2 1 prm2 0 0
"prm2 overhang of rmetal2 (for resistor L/W extraction) < 1 (Mosis #0)" metal2

edge4way rm3 space/metal3 1 prm3 0 0
"prm3 overhang of rmetal3 (for resistor L/W extraction) < 1 (Mosis #0)" metal3

edge4way ndc/a,ndm12c/a,nsc/a,nsm12c/a ~(ndc/a,ndm12c/a,nsc/a,nsm12c/a)/active 1 (ndc/a,ndm12c/a,nsc/a,nsm12c/a)/active ((ndc/a,ndm12c/a,nsc/a,nsm12c/a),ndc/a,ndm12c/a,nsc/a,nsm12c/a)/active 1
"Contact not rectangular (Magic rule)"

edge4way pdc/a,pdm12c/a,psc/a,psm12c/a ~(pdc/a,pdm12c/a,psc/a,psm12c/a)/active 1 (pdc/a,pdm12c/a,psc/a,psm12c/a)/active ((pdc/a,pdm12c/a,psc/a,psm12c/a),pdc/a,pdm12c/a,psc/a,psm12c/a)/active 1
"Contact not rectangular (Magic rule)"

edge4way pc/a,pm12c/a ~(pc/a,pm12c/a)/active 1 (pc/a,pm12c/a)/active ((pc/a,pm12c/a),pc/a,pm12c/a)/active 1
"Contact not rectangular (Magic rule)"

edge4way gc2 ~(gc2)/contact 1 (gc2)/contact ((gc2),gc2)/contact 1
"Contact not rectangular (Magic rule)"

edge4way p2c,p2m12c ~(p2c,p2m12c)/cap 1 (p2c,p2m12c)/cap ((p2c,p2m12c),p2c,p2m12c)/cap 1
"Contact not rectangular (Magic rule)"

edge4way gc ~(gc)/contact 1 (gc)/contact ((gc),gc)/contact 1
"Contact not rectangular (Magic rule)"

edge4way gv1 ~(gv1)/via1 1 (gv1)/via1 ((gv1),gv1)/via1 1
"Contact not rectangular (Magic rule)"

edge4way m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1 ~(m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1)/metal1 1 (m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1)/metal1 ((m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1),m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1)/metal1 1
"Contact not rectangular (Magic rule)"

edge4way gv2 ~(gv2)/via2 1 (gv2)/via2 ((gv2),gv2)/via2 1
"Contact not rectangular (Magic rule)"

edge4way m3c/m2,m123c/m2 ~(m3c/m2,m123c/m2)/metal2 1 (m3c/m2,m123c/m2)/metal2 ((m3c/m2,m123c/m2),m3c/m2,m123c/m2)/metal2 1
"Contact not rectangular (Magic rule)"

exact_overlap gc,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a,gc,pc/a,pm12c/a,gc

exact_overlap gc2,p2c,p2m12c

edge4way pad ~(pad)/m3 1 (pad)/m3 ((pad),pad)/m3 1
"Contact not rectangular (Magic rule)"

exact_overlap ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1

exact_overlap m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2

exact_overlap m3c/m3,m123c/m3

exact_overlap gv1

exact_overlap gv2

width m1p 4
"Metal1 PIN width < 4 (do_pins)"

spacing m1p m1p 4 touching_ok
"Metal1 PIN spacing < 4 (do_pins)"

width m2p 4
"Metal2 PIN width < 4 (do_pins)"

spacing m2p m2p 4 touching_ok
"Metal2 PIN spacing < 4 (do_pins)"

width m3p 6
"Metal3 PIN width < 6 (do_pins)"

spacing m3p m3p 4 touching_ok
"Metal3 PIN spacing < 4 (do_pins)"

#CC cifstyle lambda=0.30(p)
#CC cifwidth CWN 360
#CC "generated CIF layer CWN width will be < 12 (';cif see CWN')"
#CC cifspacing CWN CWN 180 touching_ok
#CC "generated CIF layer CWN spacing will be < 6 (';cif see CWN')"
#CC cifwidth CWP 360
#CC "generated CIF layer CWP width will be < 12 (';cif see CWP')"
#CC cifspacing CWP CWP 180 touching_ok
#CC "generated CIF layer CWP spacing will be < 6 (';cif see CWP')"
#CC cifwidth CSN 60
#CC "generated CIF layer CSN width will be < 2 (';cif see CSN')"
#CC cifspacing CSN CSN 60 touching_ok
#CC "generated CIF layer CSN spacing will be < 2 (';cif see CSN')"
#CC cifwidth CSP 60
#CC "generated CIF layer CSP width will be < 2 (';cif see CSP')"
#CC cifspacing CSP CSP 60 touching_ok
#CC "generated CIF layer CSP spacing will be < 2 (';cif see CSP')"

stepsize 400

end

extract
style AMI0.5um(amic5)from:T24H
cscale 1
lambda 30
step 100
sidehalo 8
planeorder well 0
planeorder implant 1
planeorder select 2
planeorder cap 3
planeorder active 4
planeorder metal1 5
planeorder metal2 6
planeorder metal3 7
planeorder oxide 8
planeorder xp 9
planeorder comment 10
planeorder contact 11
planeorder via1 12
planeorder via2 13
planeorder fill 14

resist (ndiff,rnd,ndc,ndm12c,nsd,nsc,nsm12c)/active 82200
resist (pdiff,rpd,pdc,pdm12c,psd,psc,psm12c)/active 105200
resist (nwell)/well 808000
resist (rnw)/active 808000
resist (pwell)/well 1
resist (poly,fp,rp,pc,pm12c,pc,pm12c,nfet,pfet,fet)/active 22000
resist (poly2,ecap,p2c,p2m12c,p2c,p2m12c)/cap 40300
resist (phr)/cap 40300
resist (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c)/metal1 90
resist (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c,m3c,m123c)/metal2 90
resist (m3,fm3,rm3,m3c,m123c,pad)/metal3 50

contact ndc 4 62700
contact pdc 4 160000
contact pc 4 15600
contact p2c 4 26100
contact m2c 4 910
contact m3c 4 830

#poly2
overlap (poly,fp,rp,pc,pm12c,pc,pm12c)/active (poly2,ecap,phr,p2c,p2m12c,p2c,p2m12c)/cap 84.960

#nwell,cwell,pwell
areacap (nwell)/well 3.600

#rnw
areacap (rnw)/active 3.600

#ndiff

MODEL HANDLES THIS: areacap (ndiff,ndc,ndm12c)/active 38.430

MODEL HANDLES THIS: overlap (ndiff,ndc,ndm12c)/active ~space/w 38.430

MODEL HANDLES THIS: perimc (ndiff,ndc,ndm12c)/active ~(ndiff,ndc,ndm12c,nfet,pfet,fet)/active 94.800

MODEL HANDLES THIS: sideoverlap (ndiff,ndc,ndm12c)/active ~(ndiff,ndc,ndm12c,nfet,pfet,fet)/active ~space/w 94.800

areacap (rnd)/active 38.430
overlap (rnd)/active ~space/w 38.430
perimc (rnd)/active ~(rnd)/active 94.800
sideoverlap (rnd)/active ~(rnd)/active ~space/w 94.800

#pdiff

MODEL HANDLES THIS: areacap (pdiff,pdc,pdm12c)/active 65.880

MODEL HANDLES THIS: overlap (pdiff,pdc,pdm12c)/active ~space/w 65.880

MODEL HANDLES THIS: perimc (pdiff,pdc,pdm12c)/active ~(pdiff,pdc,pdm12c,nfet,pfet,fet)/active 75.300

MODEL HANDLES THIS: sideoverlap (pdiff,pdc,pdm12c)/active ~(pdiff,pdc,pdm12c,nfet,pfet,fet)/active ~space/w 75.300

areacap (rpd)/active 65.880
overlap (rpd)/active ~space/w 65.880
perimc (rpd)/active ~(rpd)/active 75.300
sideoverlap (rpd)/active ~(rpd)/active ~space/w 75.300

#rnw

#poly

MODEL HANDLES THIS: overlap (nfet)/active (ndiff,rnd,ndc,ndm12c)/active 221.670

MODEL HANDLES THIS: sideoverlap (nfet)/active ~(nfet)/active (ndiff,rnd,ndc,ndm12c)/active 58.500

MODEL HANDLES THIS: overlap (pfet)/active (pdiff,rpd,pdc,pdm12c)/active 213.480

MODEL HANDLES THIS: sideoverlap (pfet)/active ~(pfet)/active (pdiff,rpd,pdc,pdm12c)/active 82.800

areacap (poly,fp,rp,pc,pm12c)/active 7.740
overlap (poly,fp,rp,pc,pm12c)/active ~space/w 7.740

#poly2

#rnw

#metal1
areacap (m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 2.700

#metal1-sub blocked by ~space/a,~space/c
overlap (m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 ~space/w 2.700 ~space/a,~space/c
perimc (m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 20.700
sideoverlap (m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 ~space/w 20.700 ~space/a,~space/c

#rnw
overlap (m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 rnw/active 2.700 ~space/c
sideoverlap (m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,pdc,pdm12c,pc,pm12c,m2c,m123c)/metal1 rnw/active 20.700 ~space/c

#metal1-diff blocked by ~space/c
overlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (ndiff,rnd,ndc,ndm12c)/active 3.150 ~space/c
sideoverlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (ndiff,rnd,ndc,ndm12c)/active 20.700 ~space/c
overlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (pdiff,rpd,pdc,pdm12c)/active 3.150 ~space/c
sideoverlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (pdiff,rpd,pdc,pdm12c)/active 20.700 ~space/c

#metal1-poly blocked by ~space/c
overlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active 4.590 ~space/c
sideoverlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active 15.900 ~space/c
sideoverlap (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active ~(poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 15.900 ~space/c

#metal1-poly2 not blocked
overlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (poly2,ecap,phr,p2c,p2m12c)/cap 3.960

#metal2
areacap (m2,fm2,rm2,m3c,m123c)/metal2 1.350

#metal2-sub blocked by
overlap (m2,fm2,rm2,m3c,m123c)/metal2 ~space/w 1.350 ~space/a,~space/m1,~space/c
perimc (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 15.900
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~space/w 15.900 ~space/a,~space/m1,~space/c
overlap (m2,fm2,rm2,m3c,m123c)/metal2 rnw/active 1.350 ~space/m1,~space/c
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 rnw/active 15.900 ~space/m1,~space/c

#metal2-*diff blocked by ~space/m1,~space/c
overlap (m2,fm2,rm2,m3c,m123c)/metal2 (ndiff,rnd,ndc,ndm12c)/active 1.350 ~space/m1,~space/c
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 (ndiff,rnd,ndc,ndm12c)/active 15.900 ~space/m1,~space/c
overlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 (pdiff,rpd,pdc,pdm12c)/active 1.350 ~space/m1,~space/c
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 (pdiff,rpd,pdc,pdm12c)/active 15.900 ~space/m1,~space/c

#metal2-poly blocked by ~space/m1,~space/c
overlap (m2,fm2,rm2,m3c,m123c)/metal2 (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active 1.350 ~space/m1,~space/c
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active 10.800 ~space/m1,~space/c
sideoverlap (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active ~(poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 10.800 ~space/m1,~space/c

#metal2-poly2 blocked by ~space/m1

#M2->M1
overlap (m2,fm2,rm2,m3c,m123c)/metal2 (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 2.520
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 14.700
sideoverlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 14.700

#metal3
areacap (m3,fm3,rm3,pad)/metal3 0.900

#metal3-sub blocked by ~space/a,~space/m1,~space/m2,~space/c
overlap (m3,fm3,rm3,pad)/metal3 ~space/w 0.900 ~space/a,~space/m1,~space/m2,~space/c
perimc (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 10.500
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 ~space/w 10.500 ~space/a,~space/m1,~space/m2,~space/c

#rnw
overlap (m3,fm3,rm3,pad)/metal3 rnw/active 0.900 ~space/m1,~space/m2,~space/c
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 rnw/active 10.500 ~space/m1,~space/m2,~space/c

#metal3-*diff blocked by ~space/m1,~space/m2,~space/c
overlap (m3,fm3,rm3,pad)/metal3 (ndiff,rnd,ndc,ndm12c)/active 0.990 ~space/m1,~space/m2,~space/c
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 (ndiff,rnd,ndc,ndm12c)/active 10.500 ~space/m1,~space/m2,~space/c
overlap (m3,fm3,rm3,pad)/metal3 (pdiff,rpd,pdc,pdm12c)/active 0.990 ~space/m1,~space/m2,~space/c
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 (pdiff,rpd,pdc,pdm12c)/active 10.500 ~space/m1,~space/m2,~space/c

#metal3-poly blocked by ~space/m1,~space/m2,~space/c
overlap (m3,fm3,rm3,pad)/metal3 (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active 0.810 ~space/m1,~space/m2,~space/c
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active 8.100 ~space/m1,~space/m2,~space/c
sideoverlap (poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active ~(poly,fp,rp,pc,pm12c,nfet,pfet,fet)/active (m3,fm3,rm3,m3c,m123c,pad)/metal3 8.100 ~space/m1,~space/m2,~space/c

#metal3-poly2 blocked by ~space/m1,~space/m2

#M3->M1
overlap (m3,fm3,rm3,pad)/metal3 (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 1.080 ~space/m2

#metal3-metal1 blocked by ~space/m2
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 9.900 ~space/m2
sideoverlap (m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 ~(m1,fm1,rm1,ndc,ndm12c,nsc,nsm12c,pdc,pdm12c,psc,psm12c,pc,pm12c,m2c,m123c)/metal1 (m3,fm3,rm3,m3c,m123c,pad)/metal3 9.900 ~space/m2

#M3->M2
overlap (m3,fm3,rm3,pad)/metal3 (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 3.060
sideoverlap (m3,fm3,rm3,m3c,m123c,pad)/metal3 ~(m3,fm3,rm3,m3c,m123c,pad)/metal3 (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 16.800
sideoverlap (m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 ~(m2,fm2,rm2,m2c,pdm12c,ndm12c,psm12c,nsm12c,pm12c,m123c,m3c)/metal2 (m3,fm3,rm3,m3c,m123c,pad)/metal3 16.800

#metal4

#metal5

#metal6

#metal7

#metali

#fets

fet pfet pdiff,pdc 2 pfet Vdd! nwell 83 213
fet pfet pdiff,pdc 1 pfet Vdd! nwell 83 213

fet nfet ndiff,ndc 2 nfet Gnd! pwell 59 222
fet nfet ndiff,ndc 1 nfet Gnd! pwell 59 222

fetresis pfet linear 20996
fetresis pfet saturation 20996
fetresis nfet linear 6144
fetresis nfet saturation 6144

fet rnwell nsd,nsc 2 nwellResistor Gnd! nwell,pwell 0 0
fet rpoly poly,pc 2 polyResistor Gnd! nwell,pwell 0 0
fet rpoly2 poly2,p2c 2 poly2Resistor Gnd! nwell,pwell 0 0
fet rndiff ndiff,ndc 2 ndiffResistor Gnd! nwell,pwell 0 0
fet rpdiff pdiff,pdc 2 pdiffResistor Gnd! nwell,pwell 0 0

fet rmetal1 metal1 2 metal1Resistor Gnd! nwell,pwell 0 0
fet rmetal2 metal2 2 metal2Resistor Gnd! nwell,pwell 0 0
fet rmetal3 metal3 2 metal3Resistor Gnd! nwell,pwell 0 0
fet phr poly2,p2c 2 phrResistor Gnd! nwell,pwell 0 0

end

wiring
contact pdcontact 4 metal1 0 pdiff 0
contact ndcontact 4 metal1 0 ndiff 0
contact pcontact 4 metal1 0 poly 0
contact m2contact 4 metal1 0 metal2 0
contact m3contact 5 metal2 0 metal3 1

end

router
layer2 metal2 3 m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2,m123c/m2,m3c/m2,m123c/m2 4 poly,fp,rp,ndiff,rnd,nsd,pdiff,rpd,psd,m1,fm1,rm1 1
layer1 metal1 3 m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1 3
contacts m2contact 4
gridspacing 8

end

plowing
fixed nfet,pfet,glass,pad
covered nfet,pfet
drag nfet,pfet

end

plot
style colorversatec
ndiff,rnd,ndc/a,ndm12c/a yellow
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
ndiff,rnd,ndc/a,ndm12c/a cyan
0000 5555 0000 5555
0000 5555 0000 5555
0000 5555 0000 5555
0000 5555 0000 5555
nsd,nsc/a,nsm12c/a yellow
1515 2A2A 5151 A2A2
1515 2A2A 5151 A2A2
1515 2A2A 5151 A2A2
1515 2A2A 5151 A2A2
nsd,nsc/a,nsm12c/a cyan
0000 1515 0000 5151
0000 1515 0000 5151
0000 1515 0000 5151
0000 1515 0000 5151
pdiff,rpd,pdc/a,pdm12c/a yellow
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
pdiff,rpd,pdc/a,pdm12c/a cyan
0000 5555 0000 5555
0000 5555 0000 5555
0000 5555 0000 5555
0000 5555 0000 5555
pdiff,rpd,pdc/a,pdm12c/a magenta
AAAA 0000 AAAA 0000
AAAA 0000 AAAA 0000
AAAA 0000 AAAA 0000
AAAA 0000 AAAA 0000
psd,psc/a,psm12c/a yellow
1515 2A2A 5151 A2A2
1515 2A2A 5151 A2A2
1515 2A2A 5151 A2A2
1515 2A2A 5151 A2A2
psd,psc/a,psm12c/a cyan
0000 1515 0000 5151
0000 1515 0000 5151
0000 1515 0000 5151
0000 1515 0000 5151
psd,psc/a,psm12c/a magenta
2A2A 0000 A2A2 0000
2A2A 0000 A2A2 0000
2A2A 0000 A2A2 0000
2A2A 0000 A2A2 0000
poly,fp,rp,pc/a,pm12c/a magenta
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
5555 AAAA 5555 AAAA
nfet yellow
0505 8282 1414 0A0A
5050 2828 4141 A0A0
0505 8282 1414 0A0A
5050 2828 4141 A0A0
nfet cyan
0000 0505 0000 1414
0000 5050 0000 4141
0000 0505 0000 1414
0000 5050 0000 4141
nfet magenta
5050 2828 4141 A0A0
0505 8282 1414 0A0A
5050 2828 4141 A0A0
0505 8282 1414 0A0A
pfet yellow
6363 A0A0 5050 2828
3636 0A0A 0505 8282
6363 A0A0 5050 2828
3636 0A0A 0505 8282
pfet cyan
0000 5151 0000 5454
0000 1515 0000 1515
0000 5151 0000 5454
0000 1515 0000 1515
pfet magenta
9494 0A0A 2525 8282
4949 A0A0 5252 2828
9494 0A0A 2525 8282
4949 A0A0 5252 2828
poly2,ecap,phr,p2c,p2m12c yellow
FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF
FFFF FFFF FFFF FFFF
m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1 cyan
AAAA 0000 AAAA 0000
AAAA 0000 AAAA 0000
AAAA 0000 AAAA 0000
AAAA 0000 AAAA 0000
m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 cyan
0000 1111 0000 4444
0000 1111 0000 4444
0000 1111 0000 4444
0000 1111 0000 4444
m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2 magenta
0000 4444 0000 1111
0000 4444 0000 1111
0000 4444 0000 1111
0000 4444 0000 1111
m2c/m1,pdm12c/m1,ndm12c/m1,psm12c/m1,nsm12c/m1,pm12c/m1,m123c/m1,gv1 black
0000 6666 6666 0000
0000 9999 9999 0000
0000 6666 6666 0000
0000 9999 9999 0000
pad,glass black
0300 0700 0E00 1C00
3800 7000 E000 C000
00C0 00E0 0070 0038
001C 000E 0007 0003
nwell yellow
0800 1000 2000 4000
8000 0001 0002 0004
0008 0010 0020 0040
0080 0010 0200 0400
nwell cyan
1000 2000 4000 8000
0001 0002 0004 0008
0010 0020 0040 0080
0100 0200 0400 0800
pwell yellow
1000 0400 0400 0100
0100 0040 0040 0010
0010 0004 0004 0001
0001 4000 4000 1000
pwell cyan
0000 0800 0000 0200
0000 0080 0000 0020
0000 0008 0000 0002
0000 8000 0000 2000
pwell magenta
0800 0000 0200 0000
0080 0000 0020 0000
0008 0000 0002 0000
8000 0000 2000 0000
m3c/m2,m123c/m2,gv2 black
0100 0000 0000 0000
1010 0000 0000 0000
0001 0000 0000 0000
1010 0000 0000 0000
m3c/m2,m123c/m2,gv2 cyan
0280 0000 0820 0000
2008 0000 8002 0000
8002 0000 2008 0000
0820 0000 0280 0000
m3c/m2,m123c/m2,gv2 magenta
0100 06C0 0440 1830
1010 600C 4004 8003
0001 C006 4004 3018
1010 0C60 0440 0380
m3c/m2,m123c/m2,gv2 black
0820 0820 0820 0FE0
E00F 2008 2008 2008
2008 2008 2008 E00F
0000 0FE0 0820 0820
error_p,error_s,error_ps black
0000 3C3C 4646 4A4A
5252 6262 3C3C 0000
0000 3C3C 4646 4A4A
5252 6262 3C3C 0000
magnet yellow
AAAA 0000 5555 0000
AAAA 0000 5555 0000
AAAA 0000 5555 0000
AAAA 0000 5555 0000
fence magenta
FFFF 0000 0000 0000
0000 0000 0000 0000
FFFF 0000 0000 0000
0000 0000 0000 0000
rotate cyan
0000 E0E0 E0E0 E0E0
0000 0000 0000 0000
0000 E0E0 E0E0 E0E0
0000 0000 0000 0000
pc/a,pm12c/a,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a,gc,gc,gc X

style versatec
pfet
07c0 0f80 1f00 3e00
7c00 f800 f001 e003
c007 800f 001f 003e
00c7 00f8 01f0 03e0
nfet
1f00 0f80 07c0 03e0
01f0 00f8 007c 003e
001f 800f c007 e003
f001 f800 7c00 3e00
gv1
c3c3 c3c3 0000 0000
0000 0000 c3c3 c3c3
c3c3 c3c3 0000 0000
0000 0000 c3c3 c3c3
pwell
2020 2020 2020 2020
2020 2020 2020 2020
0000 0000 0000 0000
0000 0000 0000 0000
nwell
0808 0404 0202 0101
0000 0000 0000 0000
0808 0404 0202 0101
0000 0000 0000 0000
poly,fp,rp,pc/a,pm12c/a,nfet,pfet
0808 0400 0202 0101
8080 4000 2020 1010
0808 0004 0202 0101
8080 0040 2020 1010
m1,fm1,rm1,ndc/m1,ndm12c/m1,nsc/m1,nsm12c/m1,pdc/m1,pdm12c/m1,psc/m1,psm12c/m1,pc/m1,pm12c/m1,m2c/m1,m123c/m1
8080 0000 0000 0000
0808 0000 0000 0000
8080 0000 0000 0000
0808 0000 0000 0000
pad,glass
0000 0000 1c1c 3e3e
3636 3e3e 1c1c 0000
0000 0000 1c1c 3e3e
3636 3e3e 1c1c 0000
nsd,nsc/a,nsm12c/a
0808 1414 2222 4141
8080 4040 2020 1010
0808 1414 2222 4141
8080 4040 2020 1010
m2,fm2,rm2,m2c/m2,pdm12c/m2,ndm12c/m2,psm12c/m2,nsm12c/m2,pm12c/m2,m123c/m2,m3c/m2
0000 1111 0000 0000
0000 1111 0000 0000
0000 1111 0000 0000
0000 1111 0000 0000
pdiff,rpd,pdc/a,pdm12c/a,pfet
0000 0808 5555 8080
0000 8080 5555 0808
0000 0808 5555 8080
0000 8080 5555 0808
psd,psc/a,psm12c/a
1414 2222 0000 2222
4141 2222 0000 2222
1414 2222 0000 2222
4141 2222 0000 2222
ndiff,rnd,ndc/a,ndm12c/a,nfet
0808 1010 2020 4040
8080 4141 2222 1414
0808 1010 2020 4040
8080 4141 2222 1414
pc/a,pm12c/a,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a,gc,gc,gc X

style gremlin
pfet 9
nfet 10
gv1 11
pwell 15
nwell 16
poly,fp,rp,pc/a,pm12c/a,nfet,pfet 19
pc/a,pm12c/a,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a,gc,gc,gc 22
pad,glass 23
nsd,nsc/a,nsm12c/a 24
gv1 28
pdiff,rpd,pdc/a,pdm12c/a,pfet 29
psd,psc/a,psm12c/a 30
ndiff,rnd,ndc/a,ndm12c/a,nfet 31
pc/a,pm12c/a,ndc/a,ndm12c/a,pdc/a,pdm12c/a,psc/a,psm12c/a,nsc/a,nsm12c/a,gc,gc,gc,gv1 X

end

from magic.

RTimothyEdwards avatar RTimothyEdwards commented on August 11, 2024

Actually the thing to do is to tarball it into a .tgz file and then post it, which github will allow. But this works.

from magic.

RTimothyEdwards avatar RTimothyEdwards commented on August 11, 2024

I'm glad the modified tech file works for you, because even with the file you posted I cannot duplicate the crash condition. So I will have to shelve the problem. Let me know if anything else crops up.

from magic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.