blob: d000ffd1088f9fdc96c9f661e3ac5da52f91fc40 [file] [log] [blame]
Tim Edwards55f4d0e2020-07-05 15:41:02 -04001###
2### Source file sky130.tech
3### Process this file with the preproc.py macro processor
4### Note that the tech name is always TECHNAME for
5### magic; this keeps compatibility between layouts
6### for all process variants.
7###
8#----------------------------------------------------------
9# Copyright (c) 2020 R. Timothy Edwards
10# Revisions: See below
11#
12# This file is an Open Source foundry process describing
Tim Edwardsb4da28f2020-07-25 16:43:32 -040013# the SkyWater sky130 hybrid 0.18um / 0.13um fabrication
Tim Edwards55f4d0e2020-07-05 15:41:02 -040014# process. The file may be distributed under the terms
Tim Edwardsab5bae82020-07-05 17:40:59 -040015# of the Apache 2.0 license agreement.
Tim Edwards55f4d0e2020-07-05 15:41:02 -040016#
17#----------------------------------------------------------
18# This file is designed to be used with magic versions
19# 8.3.24 or newer.
20#----------------------------------------------------------
21tech
22 format 35
23 TECHNAME
24end
25
26version
27 version REVISION
28 description "SkyWater SKY130: PRE ALPHA Vendor Open Source rules and DRC"
29end
30
31#----------------------------------------------------------
Tim Edwardsa043e432020-07-10 16:50:44 -040032# Status 7/10/20: Rev 1 (alpha):
Tim Edwardsab5bae82020-07-05 17:40:59 -040033# First public release
Tim Edwards55f4d0e2020-07-05 15:41:02 -040034#--------------------------------------------------------------
35
36#--------------------------------------------------------------
37# Supported device types
38#--------------------------------------------------------------
39# device name magic ID layer description
40#-------------------------------------------------------------
41# nshort nfet standard nFET
42# nshort scnfet standard nFET in standard cell**
43# nlowvt nfetlvt low Vt nFET
44# sonos_p/e nsonos SONOS nFET
45# pshort pfet standard pFET
46# pshort scpfet standard pFET in standard cell**
47# plowvt pfetlvt low Vt pFET
48# phighvt pfethvt high Vt pFET
49# ntvnative --- native nFET
50# phv mvpfet thickox pFET
51# nhv mvnfet thickox nFET
52# nhvnative mvnnfet thickox native nFET
53# ndiode ndiode n+ diff diode
54# ndiode_h mvndiode thickox n+ diff diode
55# pdiode pdiode p+ diff diode
56# pdiode_h mvpdiode thickox p+ diff diode
57# ndiode_native nndiode diode with nndiff
58# ndiode_lvt ndiodelvt low Vt n+ diff diode
59# pdiode_lvt pdiodelvt low Vt p+ diff diode
60# pdiode_hvt pdiodehvt high Vt p+ diff diode
61# nwdiode --- nwell diode
62# dnwdiode_psub --- deep nwell diode to substrate
63# dnwdiode_pw --- deep nwell diode to pwell
64# xcmimc1 mimcap MiM cap 1st plate
65# xcmimc2 mimcap2 MiM cap 2nd plate
66# mrdn rdn n+ diff resistor
67# mrdn_hv mvrdn thickox n+ diff resistor
68# mrdp rdp p+ diff resistor
69# mrdp_hv mvrdp thickox p+ diff resistor
70# mrl1 rli local interconnect resistor
71# mrp1 npres n+ poly resistor
72# xhrpoly_* ppres (*) p+ poly resistor (300 Ohms/sq)
73# uhrpoly_* xres (*) p+ poly resistor (2k Ohms/sq)
74# xcnwvc varactor varactor (low Vt?)
75# xcnwvc2 varactorhvt high Vt varactor
76# xchvnwc mvvaractor thickox varactor
77# xpwres rpw pwell resistor (in deep nwell)
78#
79# (*) Note that ppres may extract into some generic type
80# called "xhrpoly", but only specific sizes of xhrpoly are
81# allowed, and these are created from fixed layouts like the
82# types below.
83#
84# (**) nFET and pFET in standard cells are the same as devices
85# outside of the standard cell except for the DRC rule for
86# FET to diffusion contact spacing (which is 0.05um, not 0.055um)
87#
88# To avoid creating a large number of types, a few ID layers are
89# used in conjunction with standard devices types: "lvt" for
90# low threshold voltage, and "hvt" for high threshold voltage.
91# "dnwell" is used as an identifier layer where appropriate.
92# Layer HVI (thick oxide) is treated differently, and types
93# "mv*" are defined where thick oxide is required.
94#
95#-------------------------------------------------------------
96# The following devices are not extracted but are represented
97# only by script-generated subcells in the PDK.
98#-------------------------------------------------------------
99# nshortesd ESD nFET
100# nhvesd ESD thickox nFET
101# nhvnativeesd ESD native nFET
102# phvesd ESD thickox pFET
103# fnpass flash nFET device
104# npnpar1x* parasitic NPN
105# npn_1x1_2p0_hv thickox gated parasitic NPN
106# pnppar parasitic PNP
107# pnppar5x parasitic PNP
108# xesd_ndiode_h_*** ESD n+ diode
109# xesd_pdiode_h_*** ESD p+ diode
110# reslocsub local substrate island indicator
111# xcmvpp Vpp cap
112# xcmvpp_2 Vpp cap
113# xcmvpp_* Vpp cap
114# xcmvpp* Vpp cap
115# balun balun inductor
116# ind4 inductor
117# fuse metal fuse device
118#--------------------------------------------------------------
119
120#-----------------------------------------------------
121# Tile planes
122#-----------------------------------------------------
123
124planes
125 dwell,dw
126 well,w
127 active,a
128 locali,li1,li
129 metal1,m1
130 metal2,m2
131 metal3,m3
132#ifdef METAL5
133#ifdef MIM
134 cap1,c1
135#endif (MIM)
136 metal4,m4
137#ifdef MIM
138 cap2,c2
139#endif (MIM)
140 metal5,m5
141#endif (METAL5)
142#ifdef REDISTRIBUTION
143 metali,mi
144#endif
145 block,b
146 comment,c
147end
148
149#-----------------------------------------------------
150# Tile types
151#-----------------------------------------------------
152
153types
154# Deep nwell
155 dwell dnwell,dnw
156
157# Wells
158 well nwell,nw
159 -well pwell,pw
160 -well rpw,rpwell
161 -well obswell
162
163# Transistors
164 active nmos,ntransistor,nfet
165 -active scnmos,scntransistor,scnfet
166 active pmos,ptransistor,pfet
167 -active scpmos,scptransistor,scpfet
168 -active nnmos,nntransistor
169 active mvnmos,mvntransistor,mvnfet
170 active mvpmos,mvptransistor,mvpfet
171 -active mvnnmos,mvnntransistor,mvnnfet,nnfet
172 -active varactor,varact,var
173 -active mvvaractor,mvvaract,mvvar
174
175 -active pmoslvt,pfetlvt
176 -active pmoshvt,pfethvt
177 -active nmoslvt,nfetlvt
178 -active varactorhvt,varacthvt,varhvt
179 -active nsonos,sonos
180
181# Diffusions
182 active ndiff,ndiffusion,ndif
183 active pdiff,pdiffusion,pdif
184 -active mvndiff,mvndiffusion,mvndif
185 -active mvpdiff,mvpdiffusion,mvpdif
186 active ndiffc,ndcontact,ndc
187 active pdiffc,pdcontact,pdc
188 -active mvndiffc,mvndcontact,mvndc
189 -active mvpdiffc,mvpdcontact,mvpdc
190 active psubdiff,psubstratepdiff,ppdiff,ppd,psd
191 active nsubdiff,nsubstratendiff,nndiff,nnd,nsd
192 -active mvpsubdiff,mvpsubstratepdiff,mvppdiff,mvppd,mvpsd
193 -active mvnsubdiff,mvnsubstratendiff,mvnndiff,mvnnd,mvnsd
194 active psubdiffcont,psubstratepcontact,psc
195 active nsubdiffcont,nsubstratencontact,nsc
196 -active mvpsubdiffcont,mvpsubstratepcontact,mvpsc
197 -active mvnsubdiffcont,mvnsubstratencontact,mvnsc
198 -active obsactive
199 -active mvobsactive
200
201# Poly
202 active poly,p,polysilicon
203 active polycont,pc,pcontact,polycut,polyc
204 active xpolycontact,xpolyc,xpc
205
206# Resistors
207 -active npolyres,npres,mrp1
208 -active ppolyres,ppres,xhrpoly
209 -active xpolyres,xpres,xres,uhrpoly
210 -active ndiffres,rnd,rdn,rndiff
211 -active pdiffres,rpd,rdp,rpdiff
212 -active mvndiffres,mvrnd,mvrdn,mvrndiff
213 -active mvpdiffres,mvrpd,mvrdp,mvrpdiff
214 -active rmp
215
216# Diodes
217 -active pdiode,pdi
218 -active ndiode,ndi
219 -active nndiode,nndi
220 -active pdiodec,pdic
221 -active ndiodec,ndic
222 -active nndiodec,nndic
223 -active mvpdiode,mvpdi
224 -active mvndiode,mvndi
225 -active mvpdiodec,mvpdic
226 -active mvndiodec,mvndic
227 -active pdiodelvt,pdilvt
228 -active pdiodehvt,pdihvt
229 -active ndiodelvt,ndilvt
230 -active pdiodelvtc,pdilvtc
231 -active pdiodehvtc,pdihvtc
232 -active ndiodelvtc,ndilvtc
233
234# Local Interconnect
235 locali locali,li1,li
236 -locali corelocali,coreli1,coreli
237 -locali rlocali,rli1,rli
238 locali viali,vial,lic,licon,m1c,v0
239 -locali obsli1,obsli
240 -locali obsli1c,obslic,obslicon
241
242# Metal 1
243 metal1 metal1,m1,met1
244 -metal1 rmetal1,rm1,rmet1
245 metal1 via1,m2contact,m2cut,m2c,via,v,v1
246 -metal1 obsm1
247 -metal1 padl
248
249# Metal 2
250 metal2 metal2,m2,met2
251 -metal2 rmetal2,rm2,rmet2
252 metal2 via2,m3contact,m3cut,m3c,v2
253 -metal2 obsm2
254
255# Metal 3
256 metal3 metal3,m3,met3
257 -metal3 rmetal3,rm3,rmet3
258 -metal3 obsm3
259#ifdef METAL5
260 metal3 via3,v3
261
262#ifdef MIM
263 -cap1 mimcap,mim,capm
264 -cap1 mimcapcontact,mimcapc,mimcc,capmc
265#endif
266
267# Metal 4
268 metal4 metal4,m4,met4
269 -metal4 rmetal4,rm4,rmet4
270 -metal4 obsm4
271 metal4 via4,v4
272
273#ifdef MIM
274 -cap2 mimcap2,mim2,capm2
275 -cap2 mimcap2contact,mimcap2c,mim2cc,capm2c
276#endif
277
278# Metal 5
279 metal5 metal5,m5,met5
280 -metal5 rm5,rmetal5,rmet5
281 -metal5 obsm5
282#endif (METAL5)
283
284#ifdef REDISTRIBUTION
285 -metal5 mrdlcontact,mrdlc
286 -metali metalrdl,mrdl,metrdl
287 -metali obsmrdl
288#endif (REDISTRIBUTION)
289
290# Miscellaneous
291 -block glass
292 -block fillblock
293 -comment comment
294 -comment obscomment
295
296end
297
298#-----------------------------------------------------
299# Magic contact types
300#-----------------------------------------------------
301
302contact
303 pc poly locali
304 ndc ndiff locali
305 pdc pdiff locali
306 nsc nsd locali
307 psc psd locali
308 ndic ndiode locali
309 ndilvtc ndiodelvt locali
310 nndic nndiode locali
311 pdic pdiode locali
312 pdilvtc pdiodelvt locali
313 pdihvtc pdiodehvt locali
314 xpc xpc locali
315
316 mvndc mvndiff locali
317 mvpdc mvpdiff locali
318 mvnsc mvnsd locali
319 mvpsc mvpsd locali
320 mvndic mvndiode locali
321 mvpdic mvpdiode locali
322
323 lic locali metal1
324 obslic obsli obsm1
325
326 via1 metal1 metal2
327 via2 metal2 metal3
328#ifdef METAL5
329 via3 metal3 metal4
330 via4 metal4 metal5
331#endif (METAL5)
332 stackable
333
334#ifdef METAL5
335#ifdef MIM
336 # MiM cap contacts are not stackable!
337 mimcc mimcap metal4
338 mim2cc mimcap2 metal5
339#endif (MIM)
340
341 padl m1 m2 m3 m4 m5 glass
342#else
343 padl m1 m2 m3 glass
344#endif (!METAL5)
345
346#ifdef REDISTRIBUTION
347 mrdlc metal5 mrdl
348#endif (REDISTRIBUTION)
349end
350
351#-----------------------------------------------------
352# Layer aliases
353#-----------------------------------------------------
354
355aliases
356
357 allwellplane nwell
358 allnwell nwell,obswell
359
360 allnfets nfet,scnfet,mvnfet,mvnnfet,nfetlvt,nsonos
361 allpfets pfet,scpfet,mvpfet,pfethvt,pfetlvt
362 allfets allnfets,allpfets,varactor,mvvaractor,varhvt
363
364 allnactivenonfet *ndiff,*nsd,*ndiode,*nndiode,*mvndiff,*mvnsd,*mvndiode,*ndiodelvt
365 allnactive allnactivenonfet,allnfets
366 allnactivenontap *ndiff,*ndiode,*nndiode,*mvndiff,*mvndiode,*ndiodelvt,allnfets
367 allnactivetap *nsd,*mvnsd,var,varhvt,mvvar
368
369 allpactivenonfet *pdiff,*psd,*pdiode,*mvpdiff,*mvpsd,*mvpdiode,*pdiodelvt,*pdiodehvt
370 allpactive allpactivenonfet,allpfets
371 allpactivenontap *pdiff,*pdiode,*mvpdiff,*mvpdiode,*pdiodelvt,*pdiodehvt,allpfets
372 allpactivetap *psd,*mvpsd
373
374 allactivenonfet allnactivenonfet,allpactivenonfet
375 allactive allactivenonfet,allfets
376
377 allactiveres ndiffres,pdiffres,mvndiffres,mvpdiffres
378
379 allndifflv *ndif,*nsd,*ndiode,ndiffres,nfet,scnfet,nfetlvt,nsonos
380 allpdifflv *pdif,*psd,*pdiode,pdiffres,pfet,scpfet,pfetlvt,pfethvt
381 alldifflv allndifflv,allpdifflv
382 allndifflvnonfet *ndif,*nsd,*ndiode,*nndiode,ndiffres,*ndiodelvt
383 allpdifflvnonfet *pdif,*psd,*pdiode,pdiffres,*pdiodelvt,*pdiodehvt
384 alldifflvnonfet allndifflvnonfet,allpdifflvnonfet
385
386 allndiffmv *mvndif,*mvnsd,*mvndiode,*nndiode,mvndiffres,mvnfet,mvnnfet
387 allpdiffmv *mvpdif,*mvpsd,*mvpdiode,mvpdiffres,mvpfet
388 alldiffmv allndiffmv,allpdiffmv
389 allndiffmvnontap *mvndif,*mvndiode,*nndiode,mvndiffres,mvnfet,mvnnfet
390 allpdiffmvnontap *mvpdif,*mvpdiode,mvpdiffres,mvpfet
391 alldiffmvnontap allndiffmvnontap,allpdiffmvnontap
392 allndiffmvnonfet *mvndif,*mvnsd,*mvndiode,*nndiode,mvndiffres
393 allpdiffmvnonfet *mvpdif,*mvpsd,*mvpdiode,mvpdiffres
394 alldiffmvnonfet allndiffmvnonfet,allpdiffmvnonfet
395
396 alldiffnonfet alldifflvnonfet,alldiffmvnonfet
397 alldiff alldifflv,alldiffmv
398
399 allpolyres mrp1,xhrpoly,uhrpoly,rmp
400 allpolynonfet *poly,allpolyres,xpc
401 allpolynonres *poly,allfets,xpc
402
403 allpoly allpolynonfet,allfets
404 allpolynoncap *poly,xpc,allfets,allpolyres
405
406 allndiffcontlv ndc,nsc,ndic,nndic,ndilvtc
407 allpdiffcontlv pdc,psc,pdic,pdilvtc,pdihvtc
408 allndiffcontmv mvndc,mvnsc,mvndic
409 allpdiffcontmv mvpdc,mvpsc,mvpdic
410 allndiffcont allndiffcontlv,allndiffcontmv
411 allpdiffcont allpdiffcontlv,allpdiffcontmv
412 alldiffcontlv allndiffcontlv,allpdiffcontlv
413 alldiffcontmv allndiffcontmv,allpdiffcontmv
414 alldiffcont alldiffcontlv,alldiffcontmv
415
416 allcont alldiffcont,pc
417
418 allres allpolyres,allactiveres
419
420 allli *locali,coreli,rli
421 allm1 *m1,rm1
422 allm2 *m2,rm2
423 allm3 *m3,rm3
424#ifdef METAL5
425 allm4 *m4,rm4
426 allm5 *m5,rm5
427#endif (METAL5)
428
429 allpad padl
430
431 psub pwell
432
433end
434
435#-----------------------------------------------------
436# Layer drawing styles
437#-----------------------------------------------------
438
439styles
440 styletype mos
441 dnwell cwell
442 nwell nwell
443 pwell pwell
444 rpwell pwell ptransistor_stripes
445 ndiff ndiffusion
446 pdiff pdiffusion
447 nsd ndiff_in_nwell
448 psd pdiff_in_pwell
449 nfet ntransistor ntransistor_stripes
450 scnfet ntransistor ntransistor_stripes
451 pfet ptransistor ptransistor_stripes
452 scpfet ptransistor ptransistor_stripes
453 var polysilicon ndiff_in_nwell
454 ndc ndiffusion metal1 contact_X'es
455 pdc pdiffusion metal1 contact_X'es
456 nsc ndiff_in_nwell metal1 contact_X'es
457 psc pdiff_in_pwell metal1 contact_X'es
458
459 pfetlvt ptransistor ptransistor_stripes implant1
460 pfethvt ptransistor ptransistor_stripes implant2
461 nfetlvt ntransistor ntransistor_stripes implant1
462 nsonos ntransistor implant3
463 varhvt polysilicon ndiff_in_nwell implant2
464
465 mvndiff ndiffusion hvndiff_mask
466 mvpdiff pdiffusion hvpdiff_mask
467 mvnsd ndiff_in_nwell hvndiff_mask
468 mvpsd pdiff_in_pwell hvpdiff_mask
469 mvnfet ntransistor ntransistor_stripes hvndiff_mask
470 mvnnfet ntransistor ndiff_in_nwell hvndiff_mask
471 mvpfet ptransistor ptransistor_stripes
472 mvvar polysilicon ndiff_in_nwell hvndiff_mask
473 mvndc ndiffusion metal1 contact_X'es hvndiff_mask
474 mvpdc pdiffusion metal1 contact_X'es hvpdiff_mask
475 mvnsc ndiff_in_nwell metal1 contact_X'es hvndiff_mask
476 mvpsc pdiff_in_pwell metal1 contact_X'es hvpdiff_mask
477
478 poly polysilicon
479 pc polysilicon metal1 contact_X'es
480 npolyres polysilicon silicide_block nselect2
481 ppolyres polysilicon silicide_block pselect2
482 xpc polysilicon pselect2 metal1 contact_X'es
483 rmp polysilicon poly_resist_stripes
484
485 pdiode pdiffusion pselect2
486 ndiode ndiffusion nselect2
487 pdiodec pdiffusion pselect2 metal1 contact_X'es
488 ndiodec ndiffusion nselect2 metal1 contact_X'es
489
490 nndiode ndiffusion nselect2 implant3
491 ndiodelvt ndiffusion nselect2 implant1
492 pdiodelvt pdiffusion pselect2 implant1
493 pdiodehvt pdiffusion pselect2 implant2
494 pdilvtc pdiffusion pselect2 implant1 metal1 contact_X'es
495 pdihvtc pdiffusion pselect2 implant2 metal1 contact_X'es
496 ndilvtc ndiffusion nselect2 implant1 metal1 contact_X'es
497
498 mvpdiode pdiffusion pselect2 hvpdiff_mask
499 mvndiode ndiffusion nselect2 hvndiff_mask
500 mvpdiodec pdiffusion pselect2 metal1 contact_X'es hvpdiff_mask
501 mvndiodec ndiffusion nselect2 metal1 contact_X'es hvndiff_mask
502 nndiodec ndiff_in_nwell nselect2 metal1 contact_X'es hvndiff_mask
503
504 locali metal1
505 coreli metal1
506 rli metal1 poly_resist_stripes
507 lic metal1 metal2 via1arrow
508 obsli metal1
509 obslic metal1 metal2 via1arrow
510
511 metal1 metal2
512 rm1 metal2 poly_resist_stripes
513 obsm1 metal2
514 m2c metal2 metal3 via2arrow
515 metal2 metal3
516 rm2 metal3 poly_resist_stripes
517 obsm2 metal3
518 m3c metal3 metal4 via3alt
519 metal3 metal4
520 rm3 metal4 poly_resist_stripes
521 obsm3 metal4
522#ifdef METAL5
523#ifdef MIM
524 mimcap metal3 mems
525 mimcc metal3 contact_X'es mems
526 mimcap2 metal4 mems
527 mim2cc metal4 contact_X'es mems
528#endif (MIM)
529 via3 metal4 metal5 via4
530 metal4 metal5
531 rm4 metal5 poly_resist_stripes
532 obsm4 metal5
533 via4 metal5 metal6 via5
534 metal5 metal6
535 rm5 metal6 poly_resist_stripes
536 obsm5 metal6
537#endif (METAL5)
538#ifdef REDISTRIBUTION
539 mrdlc metal6 metal7 via6
540 metalrdl metal7
541 obsmrdl metal7
542#endif (REDISTRIBUTION)
543
544 glass overglass
545 mrp1 poly_resist poly_resist_stripes
546 xhrpoly poly_resist silicide_block
547 uhrpoly poly_resist
548 ndiffres ndiffusion ndop_stripes
549 pdiffres pdiffusion pdop_stripes
550 mvndiffres ndiffusion hvndiff_mask ndop_stripes
551 mvpdiffres pdiffusion hvpdiff_mask pdop_stripes
552 comment comment
553 error_p error_waffle
554 error_s error_waffle
555 error_ps error_waffle
556 fillblock cwell
557
558 obswell cwell
559 obsactive implant4
560
561#ifndef METAL5
562 padl metal4 via4 overglass
563#else
564 padl metal6 via6 overglass
565#endif
566
567 magnet substrate_field_implant
568 rotate via3alt
569 fence via5
570end
571
572#-----------------------------------------------------
573# Special paint/erase rules
574#-----------------------------------------------------
575
576compose
577 compose nfet poly ndiff
578 compose pfet poly pdiff
579 compose var poly nsd
580
581 compose mvnfet poly mvndiff
582 compose mvpfet poly mvpdiff
583 compose mvvar poly mvnsd
584
585 paint ndc nwell pdc
586 paint nfet nwell pfet
587 paint scnfet nwell scpfet
588 paint ndiff nwell pdiff
589 paint psd nwell nsd
590 paint psc nwell nsc
591
592 paint pdc pwell ndc
593 paint pfet pwell nfet
594 paint scpfet pwell scnfet
595 paint pdiff pwell ndiff
596 paint nsd pwell psd
597 paint nsc pwell psc
598
599 paint pdc coreli pdc
600 paint ndc coreli ndc
601 paint pc coreli pc
602 paint nsc coreli pc
603 paint psc coreli pc
604 paint viali coreli viali
605
606 paint coreli pdc pdc
607 paint coreli ndc ndc
608 paint coreli pc pc
609 paint coreli nsc nsc
610 paint coreli psc psc
611 paint coreli viali viali
612
613#ifdef METAL5
614 paint m4 obsm4 m4
615 paint m5 obsm5 m5
616#endif (METAL5)
617end
618
619#-----------------------------------------------------
620# Electrical connectivity
621#-----------------------------------------------------
622
623connect
624 *nwell,*nsd,*mvnsd,dnwell *nwell,*nsd,*mvnsd,dnwell
625 pwell,*psd,*mvpsd pwell,*psd,*mvpsd
626 *li,coreli *li,coreli
627 *m1 *m1
628 *m2 *m2
629 *m3 *m3
630#ifdef METAL5
631 *m4 *m4
632 *m5 *m5
633#ifdef MIM
634 *mimcap *mimcap
635 *mimcap2 *mimcap2
636#endif (MIM)
637#endif (METAL5)
638 allnactivenonfet allnactivenonfet
639 allpactivenonfet allpactivenonfet
640 *poly,xpc,allfets *poly,xpc,allfets
641#ifdef REDISTRIBUTION
642 # RDL connects to m5 (i.e., padl) through glass cut
643 *mrdl *mrdl
644 glass metrdl
645#endif (REDISTRIBUTION)
646end
647
648#-----------------------------------------------------
649# CIF/GDS output layer definitions
650#-----------------------------------------------------
651# NOTE: All values in this section MUST be multiples of 25
652# or else magic will scale below the allowed layout grid size
653
654cifoutput
655
656#----------------------------------------------------------------
657style gdsii
658# NOTE: This section is used for actual GDS output
659#----------------------------------------------------------------
660 scalefactor 10 nanometers
661 options calma-permissive-labels
662 gridlimit 5
663
664#----------------------------------------------------------------
665# Create a temp layer from the cell bounding box for use in
666# generating ID layers. Note that "boundary", unlike "bbox",
667# requires the FIXED_BBOX property (abutment box) in the cell.
668#----------------------------------------------------------------
669 templayer CELLBOUND
670 boundary
671
672#----------------------------------------------------------------
673# BOUND
674#----------------------------------------------------------------
675 layer BOUND CELLBOUND
676 calma 235 4
677
678# Create a boundary outside of an abutment box, so that layers
679# can be made to stretch to the abutment box edges. First strink
680# so that any box that would be so small as to interact with
681# itself will be removed.
682
683 templayer CELLRING CELLBOUND
684 shrink 345
685 grow 545
686 and-not CELLBOUND
687
688#----------------------------------------------------------------
689# DNWELL
690#----------------------------------------------------------------
691
692 layer DNWELL dnwell
693 calma 64 18
694
695 layer PWRES rpw
696 and dnwell
697 calma 64 13
698
699#----------------------------------------------------------------
700# NWELL
701#----------------------------------------------------------------
702
703 layer NWELL allnwell
704 bloat-all rpw dnwell
705 and-not rpw,pwell
706 calma 64 20
707
708 layer WELLTXT
709 labels allnwell noport
710 calma 64 16
711
712 layer WELLPIN
713 labels allnwell port
714 calma 64 5
715
716#----------------------------------------------------------------
717# SUB (text/port only)
718#----------------------------------------------------------------
719
720 layer SUBTXT
721 labels pwell noport
722 calma 122 16
723
724 layer SUBPIN
725 labels pwell port
726 calma 64 59
727
728#----------------------------------------------------------------
729# DIFF
730#----------------------------------------------------------------
731
732 layer DIFF allnactivenontap,allpactivenontap,allactiveres
733 labels allnactivenontap,allpactivenontap
734 calma 65 20
735
736#----------------------------------------------------------------
737# TAP
738#----------------------------------------------------------------
739
740 layer TAP allnactivetap,allpactivetap
741 labels allnactivetap,allpactivetap
742 calma 65 44
743
744#----------------------------------------------------------------
745# PPLUS, NPLUS (PSDM, NSDM)
746#----------------------------------------------------------------
747
748 templayer basePPLUS pdiffres,mvpdiffres
749 grow 15
750 or xhrpoly,uhrpoly,xpc
751 grow 110
752 bloat-or allpactivetap * 125 allnactivenontap 0
753 bloat-or allpactivenontap * 125 allnactivetap 0
754 bridge 380 380
755
756 templayer extendPPLUS basePPLUS,CELLRING
757 grow 185
758 shrink 185
759 and-not CELLRING
760
761 layer PPLUS basePPLUS,extendPPLUS
762 close 265000
763 calma 94 20
764
765 templayer baseNPLUS ndiffres,mvndiffres
766 grow 125
767 bloat-or allnactivetap * 125 allpactivenontap 0
768 bloat-or allnactivenontap * 125 allpactivetap 0
769 bridge 380 380
770
771 templayer extendNPLUS baseNPLUS,CELLRING
772 grow 185
773 shrink 185
774 and-not CELLRING
775
776 layer NPLUS baseNPLUS,extendNPLUS
777 close 265000
778 calma 93 44
779
780#----------------------------------------------------------------
781# LVTN
782#----------------------------------------------------------------
783
784 layer LVTN pfetlvt,nfetlvt,mvvar,mvnnfet,nsonos,*pdiodelvt,*ndiodelvt,*nndiode
785 grow 180
786 bridge 380 380
787 grow 185
788 shrink 185
789 close 265000
790 calma 125 44
791
792#----------------------------------------------------------------
793# HVTP
794#----------------------------------------------------------------
795
796 layer HVTP pfethvt,varhvt,*pdiodehvt
797 grow 180
798 bridge 380 380
799 grow 185
800 shrink 185
801 close 265000
802 calma 78 44
803
804#----------------------------------------------------------------
805# SONOS
806#----------------------------------------------------------------
807
808 layer SONOS nsonos
809 grow 100
810 grow-min 410
811 bridge 500 410
812 grow 250
813 shrink 250
814 calma 80 20
815
816#----------------------------------------------------------------
817# SONOS requires COREID around area (areaid.ce). Also, the
818# coreli layer indicates a cell needing COREID.
819#----------------------------------------------------------------
820
821 layer COREID
822 bloat-all nsonos,coreli CELLBOUND
823 calma 81 2
824
825#----------------------------------------------------------------
826# STDCELL applies to all cells containing scnfet or scpfet.
827#----------------------------------------------------------------
828
829 layer STDCELL scnfet
830 bloat-all scpfet,scnfet CELLBOUND
831 calma 81 4
832
833#----------------------------------------------------------------
834# RPM
835#----------------------------------------------------------------
836
837 layer RPM
838 bloat-all xhrpoly xpc
839 grow 200
840 grow-min 1270
841 grow 420
842 shrink 420
843 calma 86 20
844
845#----------------------------------------------------------------
846# URPM (2kOhms/sq. poly implant)
847#----------------------------------------------------------------
848
849 layer URPM
850 bloat-all uhrpoly xpc
851 grow 200
852 grow-min 1270
853 grow 420
854 shrink 420
855 calma 79 20
856
857#----------------------------------------------------------------
858# LDNTM (Tip implant for SONOS FETs)
859#----------------------------------------------------------------
860
861 layer LDNTM
862 bloat-all nsonos *ndiff
863 grow 185
864 grow 345
865 shrink 345
866 calma 11 44
867
868#----------------------------------------------------------------
869# HVNTM (Tip implant for MV ndiff devices)
870#----------------------------------------------------------------
871
872 templayer hvntm_block *mvpsd
873 grow 185
874
875 layer HVNTM
876 bloat-all mvnfet,mvnnfet,*mvndiode,mvrdn,*nndiode *mvndiff
877 bloat-all mvvaractor *mvnsd
878 and-not hvntm_block
879 grow 185
880 grow 345
881 shrink 345
882 calma 125 20
883
884#----------------------------------------------------------------
885# POLY
886#----------------------------------------------------------------
887
888 layer POLY allpoly
889 calma 66 20
890
891 layer POLYTXT
892 labels allpoly noport
893 calma 66 16
894
895 layer POLYPIN
896 labels allpoly port
897 calma 66 5
898
899#----------------------------------------------------------------
900# THKOX (HVI) (includes rules NWELL 8-11 and DIFFTAP 14-26)
901#----------------------------------------------------------------
902
903 templayer baseTHKOX *mvpsd
904 grow-min 470
905 or alldiffmv,mvvar
906 grow 185
907 bloat-all alldiffmv nwell
908 grow-min 600
909 bridge 700 600
910
911 templayer extendTHKOX baseTHKOX,CELLRING
912 grow 345
913 shrink 345
914 and-not CELLRING
915
916 layer THKOX baseTHKOX,extendTHKOX
917 calma 75 20
918
919#----------------------------------------------------------------
920# CONT (LICON)
921#----------------------------------------------------------------
922
923 layer CONT allcont
924 squares-grid 0 170 170
925 calma 66 44
926
927 # Contact for pres is different than other LICON contacts
928 # See rules LICON 1b, 1c (width/length) and 2b (spacing)
929 templayer xpc_horiz xpc
930 shrink 1007
931 grow 1007
932
933 layer CONT xpc
934 and-not xpc_horiz
935 # Force long edge vertical for contacts narrower than 2um
936 # Minimum space is 350 but 520 satisfies no. of contacts rule
937 slots 80 190 520 80 2000 350
938 calma 66 44
939
940 layer CONT xpc
941 and xpc_horiz
942 # Force long edge vertical for contacts wider than 2um
943 # Minimum space is 350 but 520 satisfies no. of contacts rule
944 slots 80 2000 350 80 190 520
945 calma 66 44
946
947#----------------------------------------------------------------
948# NPC (Nitride poly cut)
949# surrounds CONT (LICON) on poly only (i.e., pc)
950#----------------------------------------------------------------
951
952 layer NPC pc
953 squares-grid 0 170 170
954 grow 100
955 bridge 270 270
956 grow 130
957 shrink 130
958 calma 95 20
959
960 # NPC is also generated on xhrpoly and uhrpoly resistors
961
962 layer NPC xpc,xhrpoly,uhrpoly
963 # xpc surrounds precision_resistor by 0.095um
964 grow 95
965 grow 130
966 shrink 130
967 calma 95 20
968
969#----------------------------------------------------------------
970# Device markers
971#----------------------------------------------------------------
972
973 layer DIFFRES rdn,mvrdn,rdp,mvrdp
974 calma 65 13
975
976 layer POLYRES mrp1
977 calma 66 13
978
979 # POLYSHORT is a poly layer resistor like rli, rm1, etc., for metal layers
980 layer POLYSHORT rmp
981 calma 66 15
982
983 # POLYRES extends to edge of contact cut
984 layer POLYRES xhrpoly,uhrpoly
985 grow 60
986 and xpc
987 or xhrpoly,uhrpoly
988 calma 66 13
989
990 layer DIODE *pdi,*ndi,*nndi,*mvpdi,*mvndi,*pdilvt,*pdihvt,*ndilvt
991 # To be done: Expand to include anode, cathode, and guard ring
992 calma 81 23
993
994#----------------------------------------------------------------
995# LI
996#----------------------------------------------------------------
997 layer LI allli
998 calma 67 20
999
1000 layer LITXT
1001 labels *locali,coreli noport
1002 calma 67 16
1003
1004 layer LIPIN
1005 labels *locali,coreli port
1006 calma 67 5
1007
1008 layer LIRES rli
1009 labels rli
1010 calma 67 13
1011
1012#----------------------------------------------------------------
1013# MCON
1014#----------------------------------------------------------------
1015 layer MCON lic
1016 squares-grid 0 170 190
1017 calma 67 44
1018
1019#----------------------------------------------------------------
1020# MET1
1021#----------------------------------------------------------------
1022 layer MET1 allm1
1023 calma 68 20
1024
1025 layer MET1TXT
1026 labels allm1 noport
1027 calma 68 16
1028
1029 layer MET1PIN
1030 labels allm1 port
1031 calma 68 5
1032
1033 layer MET1RES rm1
1034 labels rm1
1035 calma 68 13
1036
1037#----------------------------------------------------------------
1038# VIA1
1039#----------------------------------------------------------------
1040 layer VIA1 via1
1041 squares-grid 55 150 170
1042 calma 68 44
1043
1044#----------------------------------------------------------------
1045# MET2
1046#----------------------------------------------------------------
1047 layer MET2 allm2
1048 calma 69 20
1049
1050 layer MET2TXT
1051 labels allm2 noport
1052 calma 69 16
1053
1054 layer MET2PIN
1055 labels allm2 port
1056 calma 69 5
1057
1058 layer MET2RES rm2
1059 labels rm2
1060 calma 69 13
1061
1062#----------------------------------------------------------------
1063# VIA2
1064#----------------------------------------------------------------
1065 layer VIA2 via2
1066 squares-grid 40 200 200
1067 calma 69 44
1068
1069#----------------------------------------------------------------
1070# MET3
1071#----------------------------------------------------------------
1072 layer MET3 allm3
1073 calma 70 20
1074
1075 layer MET3TXT
1076 labels allm3 noport
1077 calma 70 16
1078
1079 layer MET3PIN
1080 labels allm3 port
1081 calma 70 5
1082
1083 layer MET3RES rm3
1084 labels rm3
1085 calma 70 13
1086
1087#ifdef METAL5
1088#----------------------------------------------------------------
1089# VIA3
1090#----------------------------------------------------------------
1091 layer VIA3 via3
1092#ifdef MIM
1093 or mimcc
1094#endif (MIM)
1095 squares-grid 60 200 200
1096 calma 70 44
1097
1098#----------------------------------------------------------------
1099# MET4
1100#----------------------------------------------------------------
1101 layer MET4 allm4
1102 calma 71 20
1103
1104 layer MET4TXT
1105 labels allm4 noport
1106 calma 71 16
1107
1108 layer MET4PIN
1109 labels allm4 port
1110 calma 71 5
1111
1112 layer MET4RES rm4
1113 labels rm4
1114 calma 71 13
1115
1116#----------------------------------------------------------------
1117# VIA4
1118#----------------------------------------------------------------
1119 layer VIA4 via4
1120#ifdef MIM
1121 or mim2cc
1122#endif (MIM)
1123 squares-grid 190 800 800
1124 calma 71 44
1125
1126#----------------------------------------------------------------
1127# MET5
1128#----------------------------------------------------------------
1129 layer MET5 allm5
1130 calma 72 20
1131
1132 layer MET5TXT
1133 labels allm5 noport
1134 calma 72 16
1135
1136 layer MET5PIN
1137 labels allm5 port
1138 calma 72 5
1139
1140 layer MET5RES rm5
1141 labels rm5
1142 calma 72 13
1143
1144#endif (METAL5)
1145
1146#ifdef REDISTRIBUTION
1147#----------------------------------------------------------------
1148# RDL
1149#----------------------------------------------------------------
1150 layer RDL *metrdl
1151 calma 74 20
1152
1153 layer RDLTXT
1154 labels *metrdl noport
1155 calma 74 16
1156
1157 layer RDLPIN
1158 labels *metrdl port
1159 calma 74 5
1160
1161#endif REDISTRIBUTION
1162
1163#----------------------------------------------------------------
1164# GLASS
1165#----------------------------------------------------------------
1166 layer GLASS glass
1167 calma 76 20
1168
1169#ifdef MIM
1170#----------------------------------------------------------------
1171# CAPM
1172#----------------------------------------------------------------
1173 layer CAPM *mimcap
1174 labels mimcap
1175 calma 89 44
1176
1177 layer CAPM2 *mimcap2
1178 labels mimcap2
1179 calma 97 44
1180#endif (MIM)
1181
1182#----------------------------------------------------------------
1183# Chip top level marker for DRC latchup rules to check 15um
1184# distance to taps (otherwise 6um is used)
1185#----------------------------------------------------------------
1186
1187 layer LOWTAPDENSITY
1188 bbox top
1189 # Clear 200um for pads + 50um for required high tap density
1190 # in critical area.
1191 shrink 250000
1192 calma 81 14
1193
1194#----------------------------------------------------------------
1195# FILLBLOCK
1196#----------------------------------------------------------------
1197 layer FILLOBSM1 fillblock
1198 calma 62 24
1199
1200 layer FILLOBSM2 fillblock
1201 calma 105 52
1202
1203 layer FILLOBSM3 fillblock
1204 calma 107 24
1205
1206 layer FILLOBSM4 fillblock
1207 calma 112 4
1208
1209 render DNWELL cwell -0.1 0.1
1210 render NWELL nwell 0.0 0.2062
1211 render DIFF ndiffusion 0.2062 0.12
1212 render TAP pdiffusion 0.2062 0.12
1213 render POLY polysilicon 0.3262 0.18
1214 render CONT via 0.5062 0.43
1215 render LI metal1 0.9361 0.10
1216 render MCON via 1.0361 0.34
1217 render MET1 metal2 1.3761 0.36
1218 render VIA1 via 1.7361 0.27
1219 render MET2 metal3 2.0061 0.36
1220 render VIA2 via 2.3661 0.42
1221 render MET3 metal4 2.7861 0.845
1222#ifdef METAL5
1223 render VIA3 via 3.6311 0.39
1224 render MET4 metal5 4.0211 0.845
1225 render VIA4 via 4.8661 0.505
1226 render MET5 metal6 5.3711 1.26
1227 render CAPM metal8 2.4661 0.2
1228 render CAPM2 metal9 3.7311 0.2
1229#ifdef REDISTRIBUTION
1230 render RDL metal7 11.8834 4.0
1231#endif (!REDISTRIBUTION)
1232#endif (!METAL5)
1233
1234#----------------------------------------------------------------
1235style drc
1236#----------------------------------------------------------------
1237# NOTE: This style is used for DRC only, not for GDS output
1238#----------------------------------------------------------------
1239 scalefactor 10 nanometers
1240 options calma-permissive-labels
1241
1242 # Ensure nwell overlaps dnwell at least 0.4um outside and 1.03um inside
1243 templayer dnwell_shrink dnwell
1244 shrink 1030
1245
1246 templayer nwell_missing dnwell
1247 grow 400
1248 and-not dnwell_shrink
1249 and-not nwell
1250
1251 # SONOS nFET devices must be in deep nwell
1252 templayer dnwell_missing nsonos
1253 and-not dnwell
1254
1255 # Define MiM cap bottom plate for spacing rule
1256 templayer mim_bottom
1257 bloat-all *mimcap *metal3
1258
1259 # Define MiM2 cap bottom plate for spacing rule
1260 templayer mim2_bottom
1261 bloat-all *mimcap2 *metal4
1262
1263 # Note that metal fill is performed by the foundry and so is not
1264 # an option for a cifoutput style.
1265
1266 # Check latchup rule (15um minimum from tap LICON center to any
1267 # non-tap diffusion. Note that to count as a tap, the diffusion
1268 # must be contacted to LI
1269
1270 templayer ptap_reach psc,mvpsc
1271 and-not dnwell
1272 # grow total is 15um. grow in 0.84um increments to ensure that
1273 # no nwell ring is crossed
1274 grow 840
1275 and-not nwell,dnwell
1276 grow 840
1277 and-not nwell,dnwell
1278 grow 840
1279 and-not nwell,dnwell
1280 grow 840
1281 and-not nwell,dnwell
1282 grow 840
1283 and-not nwell,dnwell
1284 grow 840
1285 and-not nwell,dnwell
1286 grow 840
1287 and-not nwell,dnwell
1288 grow 840
1289 and-not nwell,dnwell
1290 grow 840
1291 and-not nwell,dnwell
1292 grow 840
1293 and-not nwell,dnwell
1294 grow 840
1295 and-not nwell,dnwell
1296 grow 840
1297 and-not nwell,dnwell
1298 grow 840
1299 and-not nwell,dnwell
1300 grow 840
1301 and-not nwell,dnwell
1302 grow 840
1303 and-not nwell,dnwell
1304 grow 840
1305 and-not nwell,dnwell
1306 grow 840
1307 and-not nwell,dnwell
1308 grow 635
1309 and-not nwell,dnwell
1310
1311 templayer ptap_missing *ndiff,*mvndiff
1312 and-not dnwell
1313 and-not ptap_reach
1314
1315 templayer ntap_reach nsc,mvnsc
1316 # grow total is 15um. grow in 1.27um increments to ensure that
1317 # no nwell ring is crossed. There is no difference between
1318 # ntaps in and out of deep nwell.
1319 grow 1270
1320 and nwell
1321 grow 1270
1322 and nwell
1323 grow 1270
1324 and nwell
1325 grow 1270
1326 and nwell
1327 grow 1270
1328 and nwell
1329 grow 1270
1330 and nwell
1331 grow 1270
1332 and nwell
1333 grow 1270
1334 and nwell
1335 grow 1270
1336 and nwell
1337 grow 1270
1338 and nwell
1339 grow 1270
1340 and nwell
1341 grow 945
1342 and nwell
1343
1344 templayer ntap_missing *pdiff,*mvpdiff
1345 and-not dnwell
1346 and-not ntap_reach
1347
1348 templayer dptap_reach psc,mvpsc
1349 and dnwell
1350 grow 840
1351 and-not nwell
1352 and dnwell
1353 grow 840
1354 and-not nwell
1355 and dnwell
1356 grow 840
1357 and-not nwell
1358 and dnwell
1359 grow 840
1360 and-not nwell
1361 and dnwell
1362 grow 840
1363 and-not nwell
1364 and dnwell
1365 grow 840
1366 and-not nwell
1367 and dnwell
1368 grow 840
1369 and-not nwell
1370 and dnwell
1371 grow 840
1372 and-not nwell
1373 and dnwell
1374 grow 840
1375 and-not nwell
1376 and dnwell
1377 grow 840
1378 and-not nwell
1379 and dnwell
1380 grow 840
1381 and-not nwell
1382 and dnwell
1383 grow 840
1384 and-not nwell
1385 and dnwell
1386 grow 840
1387 and-not nwell
1388 and dnwell
1389 grow 840
1390 and-not nwell
1391 and dnwell
1392 grow 840
1393 and-not nwell
1394 and dnwell
1395 grow 840
1396 and-not nwell
1397 and dnwell
1398 grow 840
1399 and-not nwell
1400 and dnwell
1401 grow 635
1402 and-not nwell
1403 and dnwell
1404
1405 templayer dptap_missing *ndiff,*mvndiff
1406 and dnwell
1407 and-not dptap_reach
1408
1409 templayer m1_small_hole *m1
1410 close 140000
1411
1412 templayer m1_hole_empty m1_small_hole
1413 and-not *m1
1414
1415 templayer m2_small_hole *m2
1416 close 140000
1417
1418 templayer m2_hole_empty m2_small_hole
1419 and-not *m2
1420
1421#ifdef EXPERIMENTAL
1422#----------------------------------------------------------------
1423style paint
1424#----------------------------------------------------------------
1425# NOTE: This style is used for database manipulations only via
1426# the "cif paint" command.
1427#----------------------------------------------------------------
1428
1429 scalefactor 10 nanometers
1430
1431 templayer m1grow *m1
1432 grow 290
1433
1434 # layer listrap: Use the following set of commands to strap local
1435 # interconnect wires with metal1 (inside the cursor box) to satisfy
1436 # the maximum aspect ratio rule for local interconnect:
1437 #
1438 # tech unlock *
1439 # cif ostyle paint
1440 # cif paint m1strap comment
1441 # cif paint m1strap m1
1442 # cif paint listrap licon
1443 # erase comment
1444
1445 templayer m1strap *li
1446 and-not m1grow
1447 grow 30
1448
1449 templayer listrap comment
1450 slots 30 170 170 60
1451
1452#endif (EXPERIMENTAL)
1453
1454end
1455
1456#-----------------------------------------------------------------------
1457cifinput
1458#-----------------------------------------------------------------------
1459# NOTE: All values in this section MUST be multiples of 25
1460# or else magic will scale below the allowed layout grid size
1461#-----------------------------------------------------------------------
1462
1463style vendorimport
1464 scalefactor 10 nanometers
1465 gridlimit 5
1466
1467 options ignore-unknown-layer-labels no-reconnect-labels
1468
1469#ifndef MIM
1470 ignore CAPM
1471 ignore CAPM2
1472#endif (!MIM)
1473#ifndef METAL5
1474 ignore MET4,VIA3
1475 ignore MET5,VIA4
1476#endif
1477 ignore NPC
1478 ignore SEALID
1479 ignore NPNID
1480 ignore PNPID
1481 ignore CAPID
1482 ignore LDNTM
1483 ignore HVNTM
1484 ignore POLYMOD
1485 ignore LOWTAPDENSITY
1486
1487 layer nwell NWELL,WELLTXT,WELLPIN
1488 labels NWELL
1489 labels WELLTXT text
1490 labels WELLPIN port
1491
1492 layer pwell SUBTXT,SUBPIN
1493 labels SUBTXT text
1494 labels SUBPIN port
1495
1496 layer dnwell DNWELL
1497 labels DNWELL
1498
1499 layer rpw PWRES
1500 and DNWELL
1501 labels PWRES
1502
1503 templayer ndiffarea DIFF,DIFFTXT,DIFFPIN
1504 and-not POLY
1505 and-not NWELL
1506 and-not PPLUS
1507 and-not DIODE
1508 and-not DIFFRES
1509 and-not THKOX
1510 and NPLUS
1511 copyup ndifcheck
1512 labels DIFF
1513 labels DIFFTXT text
1514 labels DIFFPIN port
1515 labels TAPPIN port
1516
1517 layer ndiff ndiffarea
1518
1519 # Copy ndiff areas up for contact checks
1520 templayer xndifcheck ndifcheck
1521 copyup ndifcheck
1522
1523 templayer mvndiffarea DIFF,DIFFTXT,DIFFPIN
1524 and-not POLY
1525 and-not NWELL
1526 and-not PPLUS
1527 and-not DIODE
1528 and-not DIFFRES
1529 and THKOX
1530 and NPLUS
1531 copyup ndifcheck
1532 labels DIFF
1533 labels DIFFTXT text
1534 labels DIFFPIN port
1535
1536 layer mvndiff mvndiffarea
1537
1538 # Copy ndiff areas up for contact checks
1539 templayer mvxndifcheck mvndifcheck
1540 copyup mvndifcheck
1541
1542 layer ndiode DIFF
1543 and NPLUS
1544 and DIODE
1545 and-not NWELL
1546 and-not POLY
1547 and-not PPLUS
1548 and-not THKOX
1549 and-not LVTN
1550 labels DIFF
1551
1552 layer ndiodelvt DIFF
1553 and NPLUS
1554 and DIODE
1555 and-not NWELL
1556 and-not POLY
1557 and-not PPLUS
1558 and-not THKOX
1559 and LVTN
1560 labels DIFF
1561
1562 templayer ndiodearea DIODE
1563 and NPLUS
1564 and-not THKOX
1565 and-not NWELL
1566 copyup DIODE,NPLUS
1567
1568 layer ndiffres DIFFRES
1569 and NPLUS
1570 and-not THKOX
1571 labels DIFF
1572
1573 templayer pdiffarea DIFF,DIFFTXT,DIFFPIN
1574 and-not POLY
1575 and NWELL
1576 and-not NPLUS
1577 and-not DIODE
1578 and-not THKOX
1579 and PPLUS
1580 copyup pdifcheck
1581 labels DIFF
1582 labels DIFFTXT text
1583 labels DIFFPIN port
1584
1585 layer pdiff pdiffarea
1586
1587 layer mvndiode DIFF
1588 and NPLUS
1589 and DIODE
1590 and THKOX
1591 and-not POLY
1592 and-not PPLUS
1593 and-not LVTN
1594 labels DIFF
1595
1596 layer nndiode DIFF
1597 and NPLUS
1598 and DIODE
1599 and THKOX
1600 and-not POLY
1601 and-not PPLUS
1602 and LVTN
1603 labels DIFF
1604
1605 templayer mvndiodearea DIODE
1606 and NPLUS
1607 and THKOX
1608 and-not NWELL
1609 copyup DIODE,NPLUS
1610
1611 layer mvndiffres DIFFRES
1612 and NPLUS
1613 and THKOX
1614 labels DIFF
1615
1616 templayer mvpdiffarea DIFF,DIFFTXT,DIFFPIN
1617 and-not POLY
1618 and NWELL
1619 and-not NPLUS
1620 and THKOX
1621 and-not DIODE
1622 and-not DIFFRES
1623 and PPLUS
1624 copyup mvpdifcheck
1625 labels DIFF
1626 labels DIFFTXT text
1627 labels DIFFPIN port
1628
1629 layer mvpdiff mvpdiffarea
1630
1631 # Copy pdiff areas up for contact checks
1632 templayer xpdifcheck pdifcheck
1633 copyup pdifcheck
1634
1635 layer pdiode DIFF
1636 and PPLUS
1637 and-not POLY
1638 and-not NPLUS
1639 and-not THKOX
1640 and-not LVTN
1641 and-not HVTP
1642 and DIODE
1643 labels DIFF
1644
1645 layer pdiodelvt DIFF
1646 and PPLUS
1647 and-not POLY
1648 and-not NPLUS
1649 and-not THKOX
1650 and LVTN
1651 and-not HVTP
1652 and DIODE
1653 labels DIFF
1654
1655 layer pdiodehvt DIFF
1656 and PPLUS
1657 and-not POLY
1658 and-not NPLUS
1659 and-not THKOX
1660 and-not LVTN
1661 and HVTP
1662 and DIODE
1663 labels DIFF
1664
1665 templayer pdiodearea DIODE
1666 and PPLUS
1667 and-not THKOX
1668 copyup DIODE,PPLUS
1669
1670 # Define pfet areas as known pdiff, regardless of the presence of a well.
1671
1672 templayer pfetarea DIFF
1673 and-not NPLUS
1674 and-not THKOX
1675 and POLY
1676
1677 layer pfet pfetarea
1678 and-not LVTN
1679 and-not HVTP
1680 and-not STDCELL
1681 labels DIFF
1682
1683 layer scpfet pfetarea
1684 and-not LVTN
1685 and-not HVTP
1686 and STDCELL
1687 labels DIFF
1688
1689 layer pfetlvt pfetarea
1690 and LVTN
1691 labels DIFF
1692
1693 layer pfethvt pfetarea
1694 and HVTP
1695 labels DIFF
1696
1697 # Always force nwell under pfet (nwell encloses pdiff by 0.18)
1698 layer nwell pfetarea
1699 grow 180
1700
1701 # Copy mvpdiff areas up for contact checks
1702 templayer mvxpdifcheck mvpdifcheck
1703 copyup mvpdifcheck
1704
1705 layer mvpdiode DIFF
1706 and PPLUS
1707 and-not POLY
1708 and-not NPLUS
1709 and THKOX
1710 and DIODE
1711 labels DIFF
1712
1713 templayer mvpdiodearea DIODE
1714 and PPLUS
1715 and THKOX
1716 copyup DIODE,PPLUS
1717
1718 # Define pfet areas as known pdiff,
1719 # regardless of the presence of a
1720 # well.
1721
1722 templayer mvpfetarea DIFF
1723 and-not NPLUS
1724 and THKOX
1725 and POLY
1726
1727 layer mvpfet mvpfetarea
1728 labels DIFF
1729
1730 layer pdiff DIFF,DIFFTXT,DIFFPIN
1731 and-not NPLUS
1732 and-not POLY
1733 and-not THKOX
1734 and-not DIODE
1735 and-not DIFFRES
1736 labels DIFF
1737 labels DIFFTXT text
1738 labels DIFFPIN port
1739
1740 layer pdiffres DIFFRES
1741 and PPLUS
1742 and NWELL
1743 and-not THKOX
1744 labels DIFF
1745
1746 layer nfet DIFF
1747 and POLY
1748 and-not PPLUS
1749 and NPLUS
1750 and-not THKOX
1751 and-not LVTN
1752 and-not SONOS
1753 and-not STDCELL
1754 labels DIFF
1755
1756 layer scnfet DIFF
1757 and POLY
1758 and-not PPLUS
1759 and NPLUS
1760 and-not THKOX
1761 and-not LVTN
1762 and-not SONOS
1763 and STDCELL
1764 labels DIFF
1765
1766 layer nfetlvt DIFF
1767 and POLY
1768 and-not PPLUS
1769 and NPLUS
1770 and-not THKOX
1771 and LVTN
1772 and-not SONOS
1773 labels DIFF
1774
1775 layer nsonos DIFF
1776 and POLY
1777 and-not PPLUS
1778 and NPLUS
1779 and-not THKOX
1780 and LVTN
1781 and SONOS
1782 labels DIFF
1783
1784 templayer nsdarea DIFF
1785 and NPLUS
1786 and NWELL
1787 and-not POLY
1788 and-not PPLUS
1789 and-not THKOX
1790 copyup nsubcheck
1791
1792 layer nsd nsdarea
1793 labels DIFF
1794
1795 layer nsd TAP,TAPPIN
1796 and NPLUS
1797 labels TAP
1798 labels TAPPIN port
1799
1800 templayer nsdexpand nsdarea
1801 grow 500
1802
1803 # Copy nsub areas up for contact checks
1804 templayer xnsubcheck nsubcheck
1805 copyup nsubcheck
1806
1807 templayer psdarea DIFF
1808 and PPLUS
1809 and-not NWELL
1810 and-not POLY
1811 and-not NPLUS
1812 and-not THKOX
1813 and-not pfetexpand
1814 copyup psubcheck
1815
1816 layer psd psdarea
1817 labels DIFF
1818
1819 layer psd TAP,TAPPIN
1820 and PPLUS
1821 and-not THKOX
1822 labels TAP
1823 labels TAPPIN port
1824
1825 templayer psdexpand psdarea
1826 grow 500
1827
1828 layer mvpdiff DIFF,DIFFTXT,DIFFPIN
1829 and-not NPLUS
1830 and-not POLY
1831 and THKOX
1832 and mvpfetexpand
1833 labels DIFF
1834 labels DIFFTXT text
1835 labels DIFFPIN port
1836
1837 layer mvpdiffres DIFFRES
1838 and PPLUS
1839 and NWELL
1840 and THKOX
1841 and-not mvrdpioedge
1842 labels DIFF
1843
1844 layer mvnfet DIFF
1845 and POLY
1846 and-not PPLUS
1847 and NPLUS
1848 and-not LVTN
1849 and THKOX
1850 labels DIFF
1851
1852 layer mvnnfet DIFF
1853 and POLY
1854 and-not PPLUS
1855 and NPLUS
1856 and LVTN
1857 and THKOX
1858 labels DIFF
1859
1860 templayer mvnsdarea DIFF
1861 and NPLUS
1862 and NWELL
1863 and-not POLY
1864 and-not PPLUS
1865 and THKOX
1866 copyup mvnsubcheck
1867
1868 layer mvnsd mvnsdarea
1869 labels DIFF
1870
1871 layer mvnsd TAP,TAPPIN
1872 and NPLUS
1873 and THKOX
1874 labels TAP
1875 labels TAPPIN port
1876
1877 templayer mvnsdexpand mvnsdarea
1878 grow 500
1879
1880 # Copy nsub areas up for contact checks
1881 templayer mvxnsubcheck mvnsubcheck
1882 copyup mvnsubcheck
1883
1884 templayer mvpsdarea DIFF
1885 and PPLUS
1886 and-not NWELL
1887 and-not POLY
1888 and-not NPLUS
1889 and THKOX
1890 and-not mvpfetexpand
1891 copyup mvpsubcheck
1892
1893 layer mvpsd mvpsdarea
1894 labels DIFF
1895
1896 layer mvpsd TAP,TAPPIN
1897 and PPLUS
1898 and THKOX
1899 labels TAP
1900 labels TAPPIN port
1901
1902 templayer mvpsdexpand mvpsdarea
1903 grow 500
1904
1905 # Copy psub areas up for contact checks
1906 templayer xpsubcheck psubcheck
1907 copyup psubcheck
1908
1909 templayer mvxpsubcheck mvpsubcheck
1910 copyup mvpsubcheck
1911
1912 layer psd DIFF
1913 and-not PPLUS
1914 and-not NPLUS
1915 and-not POLY
1916 and-not THKOX
1917 and-not pfetexpand
1918 and psdexpand
1919
1920 layer nsd DIFF
1921 and-not PPLUS
1922 and-not NPLUS
1923 and-not POLY
1924 and-not THKOX
1925 and nsdexpand
1926
1927 layer mvpsd DIFF
1928 and-not PPLUS
1929 and-not NPLUS
1930 and-not POLY
1931 and THKOX
1932 and-not mvpfetexpand
1933 and mvpsdexpand
1934
1935 layer mvnsd DIFF
1936 and-not PPLUS
1937 and-not NPLUS
1938 and-not POLY
1939 and THKOX
1940 and mvnsdexpand
1941
1942 templayer hresarea POLY
1943 and RPM
1944 grow 3000
1945
1946 templayer uresarea POLY
1947 and URPM
1948 grow 3000
1949
1950 templayer diffresarea DIFFRES
1951 and-not THKOX
1952 grow 3000
1953
1954 templayer mvdiffresarea DIFFRES
1955 and THKOX
1956 grow 3000
1957
1958 templayer resarea diffresarea,mvdiffresarea,hresarea,uresarea
1959
1960 layer pfet POLY
1961 and DIFF
1962 and diffresarea
1963 and-not NPLUS
1964 and-not STDCELL
1965
1966 layer scpfet POLY
1967 and DIFF
1968 and diffresarea
1969 and-not NPLUS
1970 and STDCELL
1971
1972 templayer xpolyterm RPM,URPM
1973 and POLY
1974 and-not POLYRES
1975 # add back the 0.06um contact surround in the direction of the resistor
1976 grow 60
1977 and POLY
1978
1979 layer xpc xpolyterm
1980
1981 templayer polyarea POLY
1982 and-not POLYRES
1983 and-not POLYSHORT
1984 and-not DIFF
1985 and-not RPM
1986 and-not URPM
1987 copyup polycheck
1988
1989 layer poly polyarea,POLYTXT,POLYPIN
1990 labels POLY
1991 labels POLYTXT text
1992 labels POLYPIN port
1993
1994 # Copy (non-resistor) poly areas up for contact checks
1995 templayer xpolycheck polycheck
1996 copyup polycheck
1997
1998 layer mrp1 POLY
1999 and POLYRES
2000 and-not RPM
2001 and-not URPM
2002 labels POLY
2003
2004 layer rmp POLY
2005 and POLYSHORT
2006 labels POLY
2007
2008 layer xhrpoly POLY
2009 and POLYRES
2010 and RPM
2011 and-not URPM
2012 and PPLUS
2013 and NPC
2014 and-not xpolyterm
2015 labels POLY
2016
2017 layer uhrpoly POLY
2018 and POLYRES
2019 and URPM
2020 and-not RPM
2021 and NPC
2022 and-not xpolyterm
2023 labels POLY
2024
2025 templayer ndcbase CONT
2026 and DIFF
2027 and NPLUS
2028 and-not NWELL
2029 and LI
2030 and-not THKOX
2031
2032 layer ndc ndcbase
2033 grow 85
2034 shrink 85
2035 shrink 85
2036 grow 85
2037 or ndcbase
2038 labels CONT
2039
2040 templayer nscbase CONT
2041 and DIFF,TAP
2042 and NPLUS
2043 and NWELL
2044 and LI
2045 and-not THKOX
2046
2047 layer nsc nscbase
2048 grow 85
2049 shrink 85
2050 shrink 85
2051 grow 85
2052 or nscbase
2053 labels CONT
2054
2055 templayer pdcbase CONT
2056 and DIFF
2057 and PPLUS
2058 and NWELL
2059 and LI
2060 and-not THKOX
2061
2062 layer pdc pdcbase
2063 grow 85
2064 shrink 85
2065 shrink 85
2066 grow 85
2067 or pdcbase
2068 labels CONT
2069
2070 templayer pdcnowell CONT
2071 and DIFF
2072 and PPLUS
2073 and pfetexpand
2074 and LI
2075 and-not THKOX
2076
2077 layer pdc pdcnowell
2078 grow 85
2079 shrink 85
2080 shrink 85
2081 grow 85
2082 or pdcnowell
2083 labels CONT
2084
2085 templayer pscbase CONT
2086 and DIFF,TAP
2087 and PPLUS
2088 and-not NWELL
2089 and-not pfetexpand
2090 and LI
2091 and-not THKOX
2092
2093 layer psc pscbase
2094 grow 85
2095 shrink 85
2096 shrink 85
2097 grow 85
2098 or pscbase
2099 labels CONT
2100
2101 templayer pcbase CONT
2102 and POLY
2103 and-not DIFF
2104 and-not RPM,URPM
2105 and LI
2106
2107 layer pc pcbase
2108 grow 85
2109 shrink 85
2110 shrink 85
2111 grow 85
2112 or pcbase
2113 labels CONT
2114
2115 templayer ndicbase CONT
2116 and DIFF
2117 and NPLUS
2118 and DIODE
2119 and-not POLY
2120 and-not PPLUS
2121 and-not THKOX
2122 and-not LVTN
2123
2124 layer ndic ndicbase
2125 grow 85
2126 shrink 85
2127 shrink 85
2128 grow 85
2129 or ndicbase
2130 labels CONT
2131
2132 templayer ndilvtcbase CONT
2133 and DIFF
2134 and NPLUS
2135 and DIODE
2136 and-not POLY
2137 and-not PPLUS
2138 and-not THKOX
2139 and LVTN
2140
2141 layer ndilvtc ndilvtcbase
2142 grow 85
2143 shrink 85
2144 shrink 85
2145 grow 85
2146 or ndilvtcbase
2147 labels CONT
2148
2149 templayer pdicbase CONT
2150 and DIFF
2151 and PPLUS
2152 and DIODE
2153 and-not POLY
2154 and-not NPLUS
2155 and-not THKOX
2156 and-not LVTN
2157 and-not HVTP
2158
2159 layer pdic pdicbase
2160 grow 85
2161 shrink 85
2162 shrink 85
2163 grow 85
2164 or pdicbase
2165 labels CONT
2166
2167 templayer pdilvtcbase CONT
2168 and DIFF
2169 and PPLUS
2170 and DIODE
2171 and-not POLY
2172 and-not NPLUS
2173 and-not THKOX
2174 and LVTN
2175 and-not HVTP
2176
2177 layer pdilvtc pdilvtcbase
2178 grow 85
2179 shrink 85
2180 shrink 85
2181 grow 85
2182 or pdilvtcbase
2183 labels CONT
2184
2185 templayer pdihvtcbase CONT
2186 and DIFF
2187 and PPLUS
2188 and DIODE
2189 and-not POLY
2190 and-not NPLUS
2191 and-not THKOX
2192 and-not LVTN
2193 and HVTP
2194
2195 layer pdihvtc pdihvtcbase
2196 grow 85
2197 shrink 85
2198 shrink 85
2199 grow 85
2200 or pdihvtcbase
2201 labels CONT
2202
2203 templayer mvndcbase CONT
2204 and DIFF
2205 and NPLUS
2206 and-not NWELL
2207 and LI
2208 and THKOX
2209
2210 layer mvndc mvndcbase
2211 grow 85
2212 shrink 85
2213 shrink 85
2214 grow 85
2215 or mvndcbase
2216 labels CONT
2217
2218 templayer mvnscbase CONT
2219 and DIFF,TAP
2220 and NPLUS
2221 and NWELL
2222 and LI
2223 and THKOX
2224
2225 layer mvnsc mvnscbase
2226 grow 85
2227 shrink 85
2228 shrink 85
2229 grow 85
2230 or mvnscbase
2231 labels CONT
2232
2233 templayer mvpdcbase CONT
2234 and DIFF
2235 and PPLUS
2236 and NWELL
2237 and LI
2238 and THKOX
2239
2240 layer mvpdc mvpdcbase
2241 grow 85
2242 shrink 85
2243 shrink 85
2244 grow 85
2245 or mvpdcbase
2246 labels CONT
2247
2248 templayer mvpdcnowell CONT
2249 and DIFF
2250 and PPLUS
2251 and mvpfetexpand
2252 and MET1
2253 and THKOX
2254
2255 layer mvpdc mvpdcnowell
2256 grow 85
2257 shrink 85
2258 shrink 85
2259 grow 85
2260 or mvpdcnowell
2261 labels CONT
2262
2263 templayer mvpscbase CONT
2264 and DIFF,TAP
2265 and PPLUS
2266 and-not NWELL
2267 and-not mvpfetexpand
2268 and LI
2269 and THKOX
2270
2271 layer mvpsc mvpscbase
2272 grow 85
2273 shrink 85
2274 shrink 85
2275 grow 85
2276 or mvpscbase
2277 labels CONT
2278
2279 templayer mvndicbase CONT
2280 and DIFF
2281 and NPLUS
2282 and DIODE
2283 and-not POLY
2284 and-not PPLUS
2285 and-not LVTN
2286 and THKOX
2287
2288 layer mvndic mvndicbase
2289 grow 85
2290 shrink 85
2291 shrink 85
2292 grow 85
2293 or mvndicbase
2294 labels CONT
2295
2296 templayer nndicbase CONT
2297 and DIFF
2298 and NPLUS
2299 and DIODE
2300 and-not POLY
2301 and-not PPLUS
2302 and LVTN
2303 and THKOX
2304
2305 layer nndic nndicbase
2306 grow 85
2307 shrink 85
2308 shrink 85
2309 grow 85
2310 or nndicbase
2311 labels CONT
2312
2313 templayer mvpdicbase CONT
2314 and DIFF
2315 and PPLUS
2316 and DIODE
2317 and-not POLY
2318 and-not NPLUS
2319 and THKOX
2320
2321 layer mvpdic mvpdicbase
2322 grow 85
2323 shrink 85
2324 shrink 85
2325 grow 85
2326 or mvpdicbase
2327 labels CONT
2328
2329 layer locali LI,LITXT,LIPIN
2330 and-not LIRES,LISHORT
2331 and-not COREID
2332 labels LI
2333 labels LITXT text
2334 labels LIPIN port
2335
2336 layer coreli LI,LITXT,LIPIN
2337 and-not LIRES,LISHORT
2338 and COREID
2339 labels LI
2340 labels LITXT text
2341 labels LIPIN port
2342
2343 layer rli LI
2344 and LIRES,LISHORT
2345 labels LIRES,LISHORT
2346
2347 layer lic MCON
2348 grow 95
2349 shrink 95
2350 shrink 85
2351 grow 85
2352 or MCON
2353 labels MCON
2354
2355 layer m1 MET1,MET1TXT,MET1PIN
2356 and-not MET1RES,MET1SHORT
2357 labels MET1
2358 labels MET1TXT text
2359 labels MET1PIN port
2360
2361 layer rm1 MET1
2362 and MET1RES,MET1SHORT
2363 labels MET1RES,MET1SHORT
2364
2365#ifdef MIM
2366 layer mimcap MET3
2367 and CAPM
2368 labels CAPM
2369
2370 layer mimcc VIA3
2371 and CAPM
2372 grow 60
2373 grow 40
2374 shrink 40
2375 labels CAPM
2376
2377 layer mimcap2 MET4
2378 and CAPM2
2379 labels CAPM2
2380
2381 layer mim2cc VIA4
2382 and CAPM2
2383 grow 190
2384 grow 210
2385 shrink 210
2386 labels CAPM2
2387
2388#endif (MIM)
2389
2390 templayer m2cbase VIA1
2391 grow 55
2392
2393 layer m2c m2cbase
2394 grow 30
2395 shrink 30
2396 shrink 130
2397 grow 130
2398 or m2cbase
2399
2400 layer m2 MET2,MET2TXT,MET2PIN
2401 and-not MET2RES,MET2SHORT
2402 labels MET2
2403 labels MET2TXT text
2404 labels MET2PIN port
2405
2406 layer rm2 MET2
2407 and MET2RES,MET2SHORT
2408 labels MET2RES,MET2SHORT
2409
2410 templayer m3cbase VIA2
2411 grow 40
2412
2413 layer m3c m3cbase
2414 grow 60
2415 shrink 60
2416 shrink 140
2417 grow 140
2418 or m3cbase
2419
2420 layer m3 MET3,MET3TXT,MET3PIN
2421 and-not MET3RES,MET3SHORT
2422#ifdef MIM
2423 and-not CAPM
2424#endif (MIM)
2425 labels MET3
2426 labels MET3TXT text
2427 labels MET3PIN port
2428
2429 layer rm3 MET3
2430 and MET3RES,MET3SHORT
2431 labels MET3RES,MET3SHORT
2432
2433#ifdef (METAL5)
2434
2435 templayer via3base VIA3
2436#ifdef MIM
2437 and-not CAPM
2438#endif (MIM)
2439 grow 60
2440
2441 layer via3 via3base
2442 grow 40
2443 shrink 40
2444 shrink 160
2445 grow 160
2446 or via3base
2447
2448 layer m4 MET4,MET4TXT,MET4PIN
2449 and-not MET4RES,MET4SHORT
2450#ifdef MIM
2451 and-not CAPM2
2452#endif (MIM)
2453 labels MET4
2454 labels MET4TXT text
2455 labels MET4PIN port
2456
2457 layer rm4 MET4
2458 and MET4RES,MET4SHORT
2459 labels MET4RES,MET4SHORT
2460
2461 layer m5 MET5,MET5TXT,MET5PIN
2462 and-not MET5RES,MET5SHORT
2463 labels MET5
2464 labels MET5TXT text
2465 labels MET5PIN port
2466
2467 layer rm5 MET5
2468 and MET5RES,MET5SHORT
2469 labels MET5RES,MET5SHORT
2470
2471 templayer via4base VIA4
2472#ifdef MIM
2473 and-not CAPM2
2474#endif (MIM)
2475 grow 190
2476
2477 layer via4 via4base
2478 grow 210
2479 shrink 210
2480 shrink 590
2481 grow 590
2482 or via4base
2483#endif (METAL5)
2484
2485#ifdef REDISTRIBUTION
2486 layer metrdl RDL,RDLTXT,RDLPIN
2487 labels RDL
2488 labels RDLTXT text
2489 labels RDLPIN port
2490#endif
2491
2492 # Find diffusion not covered in
2493 # NPLUS or PPLUS and pull it into
2494 # the next layer up
2495
2496 templayer gentrans DIFF
2497 and-not PPLUS
2498 and-not NPLUS
2499 and POLY
2500 copyup DIFF,POLY
2501
2502 templayer gendiff DIFF,TAP
2503 and-not PPLUS
2504 and-not NPLUS
2505 and-not POLY
2506 copyup DIFF
2507
2508 # Handle contacts found by copyup
2509
2510 templayer ndiccopy CONT
2511 and LI
2512 and DIODE
2513 and NPLUS
2514 and-not THKOX
2515
2516 layer ndic ndiccopy
2517 grow 85
2518 shrink 85
2519 shrink 85
2520 grow 85
2521 or ndiccopy
2522 labels CONT
2523
2524 templayer mvndiccopy CONT
2525 and LI
2526 and DIODE
2527 and NPLUS
2528 and THKOX
2529
2530 layer mvndic mvndiccopy
2531 grow 85
2532 shrink 85
2533 shrink 85
2534 grow 85
2535 or mvndiccopy
2536 labels CONT
2537
2538 templayer pdiccopy CONT
2539 and LI
2540 and DIODE
2541 and PPLUS
2542 and-not THKOX
2543
2544 layer pdic pdiccopy
2545 grow 85
2546 shrink 85
2547 shrink 85
2548 grow 85
2549 or pdiccopy
2550 labels CONT
2551
2552 templayer mvpdiccopy CONT
2553 and LI
2554 and DIODE
2555 and PPLUS
2556 and THKOX
2557
2558 layer mvpdic mvpdiccopy
2559 grow 85
2560 shrink 85
2561 shrink 85
2562 grow 85
2563 or mvpdiccopy
2564 labels CONT
2565
2566 templayer ndccopy CONT
2567 and ndifcheck
2568
2569 layer ndc ndccopy
2570 grow 85
2571 shrink 85
2572 shrink 85
2573 grow 85
2574 or ndccopy
2575 labels CONT
2576
2577 templayer mvndccopy CONT
2578 and mvndifcheck
2579
2580 layer mvndc mvndccopy
2581 grow 85
2582 shrink 85
2583 shrink 85
2584 grow 85
2585 or mvndccopy
2586 labels CONT
2587
2588 templayer pdccopy CONT
2589 and pdifcheck
2590
2591 layer pdc pdccopy
2592 grow 85
2593 shrink 85
2594 shrink 85
2595 grow 85
2596 or pdccopy
2597 labels CONT
2598
2599 templayer mvpdccopy CONT
2600 and mvpdifcheck
2601
2602 layer mvpdc mvpdccopy
2603 grow 85
2604 shrink 85
2605 shrink 85
2606 grow 85
2607 or mvpdccopy
2608 labels CONT
2609
2610 templayer pccopy CONT
2611 and polycheck
2612
2613 layer pc pccopy
2614 grow 85
2615 shrink 85
2616 shrink 85
2617 grow 85
2618 or pccopy
2619 labels CONT
2620
2621 templayer nsccopy CONT
2622 and nsubcheck
2623
2624 layer nsc nsccopy
2625 grow 85
2626 shrink 85
2627 shrink 85
2628 grow 85
2629 or nsccopy
2630 labels CONT
2631
2632 templayer mvnsccopy CONT
2633 and mvnsubcheck
2634
2635 layer mvnsc mvnsccopy
2636 grow 85
2637 shrink 85
2638 shrink 85
2639 grow 85
2640 or mvnsccopy
2641 labels CONT
2642
2643 templayer psccopy CONT
2644 and psubcheck
2645
2646 layer psc psccopy
2647 grow 85
2648 shrink 85
2649 shrink 85
2650 grow 85
2651 or psccopy
2652 labels CONT
2653
2654 templayer mvpsccopy CONT
2655 and mvpsubcheck
2656
2657 layer mvpsc mvpsccopy
2658 grow 85
2659 shrink 85
2660 shrink 85
2661 grow 85
2662 or mvpsccopy
2663 labels CONT
2664
2665 # Find contacts not covered in
2666 # metal and pull them into the
2667 # next layer up
2668
2669 templayer gencont CONT
2670 and LI
2671 and-not DIFF,TAP
2672 and-not POLY
2673 and-not DIODE
2674 and-not nsubcheck
2675 and-not psubcheck
2676 and-not mvnsubcheck
2677 and-not mvpsubcheck
2678 copyup CONT,LI
2679
2680 templayer barecont CONT
2681 and-not LI
2682 and-not nsubcheck
2683 and-not psubcheck
2684 and-not mvnsubcheck
2685 and-not mvpsubcheck
2686 copyup CONT
2687
2688 layer glass GLASS,PADTXT,PADPIN
2689 labels GLASS
2690 labels PADTXT text
2691 labels PADPIN port
2692
2693 templayer boundary BOUND,STDCELL,PADCELL
2694 boundary
2695
2696 layer comment LVSTEXT
2697 labels LVSTEXT text
2698
2699 layer comment TTEXT
2700 labels TTEXT text
2701
2702 layer fillblock FILLOBSM1,FILLOBSM2,FILLOBSM3,FILLOBSM4
2703 labels FILLOBSM1,FILLOBSM2,FILLOBSM3,FILLOBSM4
2704
2705# MOS Varactor
2706
2707 layer var POLY
2708 and DIFF
2709 and NPLUS
2710 and NWELL
2711 and-not THKOX
2712 and-not HVTP
2713 grow 25
2714 labels POLY
2715
2716 layer varhvt POLY
2717 and DIFF
2718 and NPLUS
2719 and NWELL
2720 and-not THKOX
2721 and HVTP
2722 grow 25
2723 labels POLY
2724
2725 layer mvvar POLY
2726 and DIFF
2727 and NPLUS
2728 and NWELL
2729 and THKOX
2730 grow 25
2731 labels POLY
2732
2733 calma NWELL 64 20
2734 calma DIFF 65 20
2735 calma DNWELL 64 18
2736 calma PWRES 64 13
2737 calma TAP 65 44
2738 # LVTN
2739 calma LVTN 125 44
2740 # HVTP
2741 calma HVTP 78 44
2742 # SONOS (TUNM)
2743 calma SONOS 80 20
2744 # NPLUS = NSDM
2745 calma NPLUS 93 44
2746 # PPLUS = PSDM
2747 calma PPLUS 94 20
2748 # HVI
2749 calma THKOX 75 20
2750 # NPC
2751 calma NPC 95 20
2752 # P+ POLY MASK
2753 calma RPM 86 20
2754 calma URPM 79 20
2755 calma LDNTM 11 44
2756 calma HVNTM 125 20
2757 # Poly resistor ID mark
2758 calma POLYRES 66 13
2759 # Diffusion resistor ID mark
2760 calma DIFFRES 65 13
2761 calma POLY 66 20
2762 calma POLYMOD 66 83
2763 # Diode ID mark
2764 calma DIODE 81 23
2765 # Bipolar NPN mark
2766 calma NPNID 82 20
2767 # Bipolar PNP mark
2768 calma PNPID 82 20
2769 # Capacitor ID
2770 calma CAPID 82 64
2771 # Core area ID mark
2772 calma COREID 81 2
2773 # Standard cell ID mark
2774 calma STDCELL 81 4
2775 # Padframe cell ID mark
2776 calma PADCELL 81 3
2777 # Seal ring ID mark
2778 calma SEALID 81 1
2779 # Low tap density ID mark
2780 calma LOWTAPDENSITY 81 14
2781
2782 # LICON
2783 calma CONT 66 44
2784 calma LI 67 20
2785 calma MCON 67 44
2786
2787 calma MET1 68 20
2788 calma VIA1 68 44
2789 calma MET2 69 20
2790 calma VIA2 69 44
2791 calma MET3 70 20
2792#ifdef METAL5
2793 calma VIA3 70 44
2794 calma MET4 71 20
2795 calma VIA4 71 44
2796 calma MET5 72 20
2797#endif
2798#ifdef REDISTRIBUTION
2799 calma RDL 74 20
2800#endif
2801 calma GLASS 76 20
2802
2803 calma SUBPIN 64 59
2804 calma PADPIN 76 5
2805 calma DIFFPIN 65 6
2806 calma TAPPIN 65 5
2807 calma WELLPIN 64 5
2808 calma LIPIN 67 5
2809 calma POLYPIN 66 5
2810 calma MET1PIN 68 5
2811 calma MET2PIN 69 5
2812 calma MET3PIN 70 5
2813#ifdef METAL5
2814 calma MET4PIN 71 5
2815 calma MET5PIN 72 5
2816#endif
2817#ifdef REDISTRIBUTION
2818 calma RDLPIN 74 5
2819#endif
2820
2821 calma LIRES 67 13
2822 calma MET1RES 68 13
2823 calma MET2RES 69 13
2824 calma MET3RES 70 13
2825#ifdef METAL5
2826 calma MET4RES 71 13
2827 calma MET5RES 72 13
2828#endif
2829
2830 calma POLYSHORT 66 15
2831 calma LISHORT 67 15
2832 calma MET1SHORT 68 15
2833 calma MET2SHORT 69 15
2834 calma MET3SHORT 70 15
2835#ifdef METAL5
2836 calma MET4SHORT 71 15
2837 calma MET5SHORT 72 15
2838#endif
2839
2840 calma SUBTXT 122 16
2841 calma PADTXT 76 16
2842 calma DIFFTXT 65 16
2843 calma POLYTXT 66 16
2844 calma WELLTXT 64 16
2845 calma LITXT 67 16
2846 calma MET1TXT 68 16
2847 calma MET2TXT 69 16
2848 calma MET3TXT 70 16
2849#ifdef METAL5
2850 calma MET4TXT 71 16
2851 calma MET5TXT 72 16
2852#endif
2853#ifdef REDISTRIBUTION
2854 calma RDLPIN 74 16
2855#endif
2856
2857 calma BOUND 235 4
2858
2859 calma LVSTEXT 83 44
2860
2861#ifdef (MIM)
2862 calma CAPM 89 44
2863 calma CAPM2 97 44
2864#endif (MIM)
2865
2866 calma FILLOBSM1 62 24
2867 calma FILLOBSM2 105 52
2868 calma FILLOBSM3 107 24
2869 calma FILLOBSM4 112 4
2870
2871end
2872
2873#-----------------------------------------------------
2874# Digital flow maze router cost parameters
2875#-----------------------------------------------------
2876
2877mzrouter
2878end
2879
2880#-----------------------------------------------------
2881# Vendor DRC rules
2882#-----------------------------------------------------
2883
2884drc
2885
2886 style drc variants (fast),(full),(routing)
2887
2888 scalefactor 10
2889
2890 cifstyle drc
2891
2892 variants (fast),(full)
2893
2894#-----------------------------
2895# DNWELL
2896#-----------------------------
2897
2898 width dnwell 3000 "Deep N-well width < %d (Dnwell 2)"
2899 spacing dnwell dnwell 6300 touching_ok "Deep N-well spacing < %d (Dnwell 3)"
2900 spacing dnwell allnwell 4500 surround_ok \
2901 "Deep N-well spacing to N-well < %d (Nwell 7)"
2902 cifmaxwidth nwell_missing 0 bend_illegal \
2903 "N-well overlap of Deep N-well < 0.4um outside, 1.03um inside (Nwell 5a, 7)"
2904 cifmaxwidth dnwell_missing 0 bend_illegal \
2905 "SONOS nFET must be in Deep N-well (Tunm 6a)"
2906
2907#-----------------------------
2908# NWELL
2909#-----------------------------
2910
2911 width allnwell 840 "N-well width < %d (Nwell 1)"
2912 spacing allnwell allnwell 1270 touching_ok "N-well spacing < %d (Nwell 2a)"
2913
2914#-----------------------------
2915# DIFF
2916#-----------------------------
2917
2918 width *ndiff,nfet,scnfet,*nsd,*ndiode,ndiffres,*pdiff,pfet,scpfet,*psd,*pdiode,pdiffres \
2919 150 "Diffusion width < %d (Diff/tap 1)"
2920 width *mvndiff,mvnfet,mvnnfet,*mvndiode,*nndiode,mvndiffres,*mvpdiff,mvpfet,*mvpdiode 290 \
2921 "MV Diffusion width < %d (Diff/tap 14)"
2922 width *mvnsd,*mvpsd 150 "MV Tap width < %d (Diff/tap 1)"
2923 extend *mvpsd *mvndiff 700 "MV Butting tap length < %d (Diff/tap 16)"
2924 extend *mvnsd *mvpdiff 700 "MV Butting tap length < %d (Diff/tap 16)"
2925 extend *psd *ndiff 290 "Butting tap length < %d (Diff/tap 4)"
2926 extend *nsd *pdiff 290 "Butting tap length < %d (Diff/tap 4)"
2927 width mvpdiffres 150 "MV P-Diffusion resistor width < %d (Diff/tap 14a)"
2928 spacing alldifflv,var,varhvt alldifflv,var,varhvt 270 touching_ok \
2929 "Diffusion spacing < %d (Diff/tap 3)"
2930 spacing alldiffmvnontap,mvvar alldiffmvnontap,mvvar 300 touching_ok \
2931 "MV Diffusion spacing < %d (Diff/tap 15a)"
2932 spacing alldiffmv *mvnsd,*mvpsd 270 touching_ok \
2933 "MV Diffusion to MV tap spacing < %d (Diff/tap 3)"
2934 spacing *mvndiff,mvnfet,mvnnfet,*mvndiode,*nndiode,mvndiffres,mvvar *mvpsd 370 \
2935 touching_ok "MV P-Diffusion to MV N-tap spacing < %d (Diff/tap 15b)"
2936 spacing *mvnsd,*mvpdiff,mvpfet,mvvar,*mvpdiode *mvpsd,*psd 760 touching_illegal \
2937 "MV Diffusion in N-well to P-tap spacing < %d (Diff/tap 20 + Diff/tap 17,19)"
2938 spacing *ndiff,*ndiode,nfet allnwell 340 touching_illegal \
2939 "N-Diffusion spacing to N-well < %d (Diff/tap 9)"
2940 spacing *mvndiff,*mvndiode,mvnfet,mvnnfet allnwell 340 touching_illegal \
2941 "N-Diffusion spacing to N-well < %d (Diff/tap 9)"
2942 spacing *psd allnwell 130 touching_illegal \
2943 "P-tap spacing to N-well < %d (Diff/tap 11)"
2944 spacing *mvpsd allnwell 130 touching_illegal \
2945 "P-tap spacing to N-well < %d (Diff/tap 11)"
2946 surround *nsd allnwell 180 absence_illegal \
2947 "N-well overlap of N-tap < %d (Diff/tap 10)"
2948 surround *mvnsd allnwell 330 absence_illegal \
2949 "N-well overlap of MV N-tap < %d (Diff/tap 19)"
2950 surround *pdiff,*pdiode,pfet,scpfet allnwell 180 absence_illegal \
2951 "N-well overlap of P-Diffusion < %d (Diff/tap 8)"
2952 surround *mvpdiff,*mvpdiode,mvpfet allnwell 330 absence_illegal \
2953 "N-well overlap of P-Diffusion < %d (Diff/tap 17)"
2954 surround mvvar allnwell 560 absence_illegal \
2955 "N-well overlap of MV varactor < %d (LVTN 10 + LVTN 4b)"
2956 spacing *mvndiode *mvndiode 1070 touching_ok \
2957 "MV N-diode spacing < %d (HVNTM.2 + 2 * HVNTM.3)"
2958
2959 # Butting junction rules
2960 edge4way (*psd)/a ~(*ndiff,*psd)/a 125 ~(*ndiff)/a (*ndiff)/a 125 \
2961 "N-Diffusion to P-tap spacing < %d across butted junction"
2962 edge4way (*ndiff)/a ~(*ndiff,*psd)/a 125 ~(*psd)/a (*psd)/a 125 \
2963 "N-Diffusion to P-tap spacing < %d across butted junction"
2964 edge4way (*nsd)/a ~(*pdiff,*nsd)/a 125 ~(*pdiff)/a (*pdiff)/a 125 \
2965 "P-Diffusion to N-tap spacing < %d across butted junction"
2966 edge4way (*pdiff)/a ~(*pdiff,*nsd)/a 125 ~(*nsd)/a (*nsd)/a 125 \
2967 "P-Diffusion to N-tap spacing < %d across butted junction"
2968
2969 edge4way (*mvpsd)/a ~(*mvndiff,*mvpsd)/a 125 ~(*mvndiff)/a (*mvndiff)/a 125 \
2970 "MV N-Diffusion to MV P-tap spacing < %d across butted junction"
2971 edge4way (*mvndiff)/a ~(*mvndiff,*mvpsd)/a 125 ~(*mvpsd)/a (*mvpsd)/a 125 \
2972 "MV N-Diffusion to MV P-tap spacing < %d across butted junction"
2973 edge4way (*mvnsd)/a ~(*mvpdiff,*mvnsd)/a 125 ~(*mvpdiff)/a (*mvpdiff)/a 125 \
2974 "MV P-Diffusion to MV N-tap spacing < %d across butted junction"
2975 edge4way (*mvpdiff)/a ~(*mvpdiff,*mvnsd)/a 125 ~(*mvnsd)/a (*mvnsd)/a 125 \
2976 "MV P-Diffusion to MV N-tap spacing < %d across butted junction"
2977
2978 variants (full)
2979
2980 # Latchup rules
2981 cifmaxwidth ptap_missing 0 bend_illegal \
2982 "N-diff distance to P-tap must be < 15.0um (LU 2)"
2983 cifmaxwidth dptap_missing 0 bend_illegal \
2984 "N-diff distance to P-tap in deep Nwell must be < 15.0um (LU 2.1)"
2985 cifmaxwidth ntap_missing 0 bend_illegal \
2986 "P-diff distance to N-tap must be < 15.0um (LU 3)"
2987
2988 variants *
2989
2990#-----------------------------
2991# POLY
2992#-----------------------------
2993
2994 width allpoly 150 "Poly width < %d (Poly 1a)"
2995 spacing allpoly allpoly 210 touching_ok "Poly spacing < %d (Poly 2)"
2996 spacing allpolynonfet alldifflvnonfet 75 corner_ok allfets \
2997 "Poly spacing to Diffusion < %d (Poly 4a)"
2998 spacing npres *nsd 480 touching_illegal \
2999 "Poly resistor spacing to N-tap < %d (Poly 9)"
3000 overhang *ndiff,rndiff nfet,scnfet 250 "N-Diffusion overhang of nmos < %d (Poly 7)"
3001 overhang *mvndiff,mvrndiff mvnfet,mvnnfet 250 \
3002 "N-Diffusion overhang of nmos < %d (Poly 7)"
3003 overhang *pdiff,rpdiff pfet,scpfet 250 "P-Diffusion overhang of pmos < %d (Poly 7)"
3004 overhang *mvpdiff,mvrpdiff mvpfet 250 "P-Diffusion overhang of pmos < %d (Poly 7)"
3005 overhang *poly allfets 130 "Poly overhang of transistor < %d (Poly 8)"
3006 rect_only allfets "No bends in transistors (Poly 11)"
3007 rect_only xhrpoly,uhrpoly "No bends in poly resistors (Poly 11)"
3008 extend xpc/a xhrpoly,uhrpoly 2160 \
3009 "Poly contact extends poly resistor by < %d (LIcon 1c + LI 5)"
3010 spacing xhrpoly,uhrpoly xhrpoly,uhrpoly 1240 touching_illegal \
3011 "Distance between precision resistors < %d (RPM 2 + 2 * RPM 3)"
3012
3013#--------------------------------------------------------------------
3014# NPC (Nitride Poly Cut)
3015#--------------------------------------------------------------------
3016
3017# Layer NPC is defined automatically around poly contacts (grow 0.1um)
3018
3019#--------------------------------------------------------------------
3020# CONT (LICON, contact between poly/diff and LI)
3021#--------------------------------------------------------------------
3022
3023 width ndc/li 170 "N-diffusion contact width < %d (LIcon 1)"
3024 width nsc/li 170 "N-tap contact width < %d (LIcon 1)"
3025 width pdc/li 170 "P-diffusion contact width < %d (LIcon 1)"
3026 width psc/li 170 "P-tap contact width < %d (LIcon 1)"
3027 width ndic/li 170 "N-diode contact width < %d (LIcon 1)"
3028 width pdic/li 170 "P-diode contact width < %d (LIcon 1)"
3029 width pc/li 170 "Poly contact width < %d (LIcon 1)"
3030
3031 width xpc/li 350 "Poly resistor contact width < %d (LIcon 1b + 2 * LI 5)"
3032
3033 width mvndc/li 170 "N-diffusion contact width < %d (LIcon 1)"
3034 width mvnsc/li 170 "N-tap contact width < %d (LIcon 1)"
3035 width mvpdc/li 170 "P-diffusion contact width < %d (LIcon 1)"
3036 width mvpsc/li 170 "P-tap contact width < %d (LIcon 1)"
3037 width mvndic/li 170 "N-diode contact width < %d (LIcon 1)"
3038 width mvpdic/li 170 "P-diode contact width < %d (LIcon 1)"
3039
3040 spacing allpdiffcont allndiffcont 170 touching_illegal \
3041 "Diffusion contact spacing < %d (LIcon 2)"
3042 spacing allndiffcont allndiffcont 170 touching_ok \
3043 "Diffusion contact spacing < %d (LIcon 2)"
3044 spacing allpdiffcont allpdiffcont 170 touching_ok \
3045 "Diffusion contact spacing < %d (LIcon 2)"
3046 spacing pc pc 170 touching_ok "Poly1 contact spacing < %d (LIcon 2)"
3047
3048 spacing pc alldiff 190 touching_illegal \
3049 "Poly contact spacing to diffusion < %d (LIcon 14)"
3050 spacing pc allpfets 235 touching_illegal \
3051 "Poly contact spacing to pFET < %d (LIcon 9 + PSDM 5a)"
3052
3053 spacing ndc,pdc nfet,pfet 55 touching_illegal \
3054 "Diffusion contact to gate < %d (LIcon 11)"
3055 spacing ndc,pdc scnfet,scpfet 50 touching_illegal \
3056 "Diffusion contact to standard cell gate < %d (LIcon 11)"
3057 spacing mvndc,mvpdc mvnfet,mvnnfet,mvpfet 55 touching_illegal \
3058 "Diffusion contact to gate < %d (LIcon 11)"
3059 spacing ndc,mvndc rnd,mvrnd 60 touching_illegal "Diffusion contact to rndiff < %d ()"
3060 spacing pdc,mvpdc rdp,mvrdp 60 touching_illegal "Diffusion contact to rndiff < %d ()"
3061 spacing nsc varactor,varhvt 250 touching_illegal \
3062 "Diffusion contact to varactor gate < %d (LIcon 10)"
3063 spacing mvnsc mvvar 250 touching_illegal \
3064 "Diffusion contact to varactor gate < %d (LIcon 10)"
3065
3066 surround ndc/a *ndiff,nfet,scnfet,nfetlvt 40 absence_illegal \
3067 "N-diffusion overlap of N-diffusion contact < %d (LIcon 5a)"
3068 surround pdc/a *pdiff,pfet,scpfet,pfethvt,pfetlvt 40 absence_illegal \
3069 "P-diffusion overlap of P-diffusion contact < %d (LIcon 5a)"
3070 surround ndic/a *ndi 40 absence_illegal \
3071 "N-diode overlap of N-diode contact < %d (LIcon 5a)"
3072 surround pdic/a *pdi 40 absence_illegal \
3073 "P-diode overlap of N-diode contact < %d (LIcon 5a)"
3074
3075 surround ndc/a *ndiff,nfet,scnfet,nfetlvt 60 directional \
3076 "N-diffusion overlap of N-diffusion contact < %d in one direction (LIcon 5c)"
3077 surround pdc/a *pdiff,pfet,scpfet,pfethvt,pfetlvt 60 directional \
3078 "P-diffusion overlap of P-diffusion contact < %d in one direction (LIcon 5c)"
3079 surround ndic/a *ndi 60 directional \
3080 "N-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
3081 surround pdic/a *pdi 60 directional \
3082 "P-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
3083
3084 surround nsc/a *nsd 120 directional \
3085 "N-tap overlap of N-tap contact < %d in one direction (LIcon 7)"
3086 surround psc/a *psd 120 directional \
3087 "P-tap overlap of P-tap contact < %d in one direction (LIcon 7)"
3088
3089 surround mvndc/a *mvndiff,mvnfet 40 absence_illegal \
3090 "N-diffusion overlap of N-diffusion contact < %d (LIcon 5a)"
3091 surround mvpdc/a *mvpdiff,mvpfet 40 absence_illegal \
3092 "P-diffusion overlap of P-diffusion contact < %d (LIcon 5a)"
3093 surround mvndic/a *mvndi 40 absence_illegal \
3094 "N-diode overlap of N-diode contact < %d (LIcon 5a)"
3095 surround mvpdic/a *mvpdi 40 absence_illegal \
3096 "P-diode overlap of N-diode contact < %d (LIcon 5a)"
3097
3098 surround mvndc/a *mvndiff,mvnfet 60 directional \
3099 "N-diffusion overlap of N-diffusion contact < %d in one direction (LIcon 5c)"
3100 surround mvpdc/a *mvpdiff,mvpfet 60 directional \
3101 "P-diffusion overlap of P-diffusion contact < %d in one direction (LIcon 5c)"
3102 surround mvndic/a *mvndi 60 directional \
3103 "N-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
3104 surround mvpdic/a *mvpdi 60 directional \
3105 "P-diode overlap of N-diode contact < %d in one direction (LIcon 5c)"
3106
3107 surround mvnsc/a *mvnsd 120 directional \
3108 "N-tap overlap of N-tap contact < %d in one direction (LIcon 7)"
3109 surround mvpsc/a *mvpsd 120 directional \
3110 "P-tap overlap of P-tap contact < %d in one direction (LIcon 7)"
3111
3112 surround pc/a *poly,mrp1,xhrpoly,uhrpoly 50 absence_illegal \
3113 "Poly overlap of poly contact < %d (LIcon 8)"
3114 surround pc/a *poly,mrp1,xhrpoly,uhrpoly 80 directional \
3115 "Poly overlap of poly contact < %d in one direction (LIcon 8a)"
3116
3117 exact_overlap ndc/a,pdc/a,psc/a,nsc/a,pc/a,ndic/a,pdic/a
3118 exact_overlap mvndc/a,mvpdc/a,mvpsc/a,mvnsc/a,mvndic/a,mvpdic/a
3119
3120#-------------------------------------------------------------
3121# LI - Local interconnect layer
3122#-------------------------------------------------------------
3123
3124 width *li,rli 170 "Local interconnect width < %d (LI 1)"
3125 width coreli 140 "Core local interconnect width < %d (LI c1)"
3126 spacing allli allli,*obsli 170 touching_ok "Local interconnect spacing < %d (LI 3)"
3127 spacing coreli allli,*obsli 140 touching_ok "Core local interconnect spacing < %d (LI c2)"
3128
3129 surround pc/li *li 80 directional \
3130 "Local interconnect overlap of poly contact < %d in one direction (LI 5)"
3131
3132 surround ndc/li,nsc/li,pdc/li,psc/li,ndic/li,pdic/li,mvndc/li,mvnsc/li,mvpdc/li,mvpsc/li,mvndic/li,mvpdic/li \
3133 *li,rli 80 directional \
3134 "Local interconnect overlap of diffusion contact < %d in one direction (LI 5)"
3135
3136 area allli,*obsli 56100 170 "Local interconnect minimum area < %a (LI 6)"
3137
3138#-------------------------------------------------------------
3139# MCON - Contact between local interconnect and metal1
3140#-------------------------------------------------------------
3141
3142 width lic/m1 170 "Mcon width < %d (Mcon 1)"
3143 spacing lic/m1 lic/m1,obslic/m1 170 touching_ok "Mcon spacing < %d (Mcon 2)"
3144
3145 exact_overlap lic/m1
3146
3147#-------------------------------------------------------------
3148# METAL1 -
3149#-------------------------------------------------------------
3150
3151 width *m1,rm1 140 "Metal1 width < %d (Met1 1)"
3152 spacing allm1 allm1,*obsm1 140 touching_ok "Metal1 spacing < %d (Met1 2)"
3153 area allm1,*obsm1 83000 140 "Metal1 minimum area < %a (Met1 6)"
3154
3155 surround lic/m1 *met1 30 absence_illegal \
3156 "Metal1 overlap of local interconnect contact < %d (Met1 4)"
3157 surround lic/m1 *met1 60 directional \
3158 "Metal1 overlap of local interconnect contact < %d in one direction (Met1 5)"
3159
3160variants (fast),(full)
3161 widespacing allm1 3000 allm1,*obsm1 280 touching_ok \
3162 "Metal1 > 3um spacing to unrelated m1 < %d (Met1 3a)"
3163 widespacing *obsm1 3000 allm1 280 touching_ok \
3164 "Metal1 > 3um spacing to unrelated m1 < %d (Met1 3a)"
3165
3166variants (full)
3167 cifmaxwidth m1_hole_empty 0 bend_illegal \
3168 "Min area of metal1 holes > 0.14um^2 (Met1 7)"
3169variants *
3170
3171#--------------------------------------------------
3172# VIA1
3173#--------------------------------------------------
3174
3175 width v1/m1 260 "Via1 width < %d (Via 1a + 2 * Via 4a)"
3176 spacing v1 v1 60 touching_ok "Via1 spacing < %d (Via 2 - 2 * Via 4a)"
3177 surround v1/m1 *m1 30 directional \
3178 "Metal1 overlap of Via1 < %d in one direction (Via 5a - Via 4a)"
3179 surround v1/m2 *m2 30 directional \
3180 "Metal2 overlap of Via1 < %d in one direction (Met2 5 - Met2 4)"
3181
3182 exact_overlap v1/m2
3183
3184#--------------------------------------------------
3185# METAL2 -
3186#--------------------------------------------------
3187
3188 width allm2 140 "Metal2 width < %d (Met2 1)"
3189 spacing allm2 allm2,obsm2 140 touching_ok "Metal2 spacing < %d (Met2 2)"
3190 area allm2,obsm2 67600 140 "Metal2 minimum area < %a (Met2 6)"
3191
3192variants (fast),(full)
3193 widespacing allm2 3000 allm2,obsm2 280 touching_ok \
3194 "Metal2 > 3um spacing to unrelated m2 < %d (Met2 3)"
3195 widespacing obsm2 3000 allm2 280 touching_ok \
3196 "Metal2 > 3um spacing to unrelated m2 < %d (Met2 3)"
3197
3198variants (full)
3199 cifmaxwidth m2_hole_empty 0 bend_illegal \
3200 "Min area of metal2 holes > 0.14um^2 (Met2 7)"
3201variants *
3202
3203#--------------------------------------------------
3204# VIA2
3205#--------------------------------------------------
3206
3207 width v2/m2 280 "Via2 width < %d (Via2 1a + 2 * Via2 4)"
3208
3209 spacing v2 v2 120 touching_ok "Via2 spacing < 0.24um (Via2 2 - 2 * Via2 4)"
3210
3211 surround v2/m2 *m2 45 directional \
3212 "Metal2 overlap of Via2 < %d in one direction (Via2 4a - Via2 4)"
3213 surround v2/m3 *m3 25 absence_illegal "Metal3 overlap of Via2 < %d (Met3 4)"
3214
3215 exact_overlap v2/m2
3216
3217#--------------------------------------------------
3218# METAL3 -
3219#--------------------------------------------------
3220
3221 width allm3 300 "Metal3 width < %d (Met3 1)"
3222 spacing allm3 allm3,obsm3 300 touching_ok "Metal3 spacing < %d (Met3 2)"
3223 area allm3,obsm3 240000 300 "Metal3 minimum area < %a (Met3 6)"
3224
3225variants (fast),(full)
3226 widespacing allm3 3000 allm3,obsm3 400 touching_ok \
3227 "Metal3 > 3um spacing to unrelated m3 < %d (Met3 3d)"
3228 widespacing obsm3 3000 allm3 400 touching_ok \
3229 "Metal3 > 3um spacing to unrelated m3 < %d (Met3 3d)"
3230variants *
3231
3232
3233#ifdef METAL5
3234#--------------------------------------------------
3235# VIA3 - Requires METAL5 Module
3236#--------------------------------------------------
3237
3238 width v3/m3 320 "Via3 width < %d (Via3 1 + 2 * Via3 4)"
3239 spacing v3 v3 80 touching_ok "Via3 spacing < %d (Via3 2 - 2 * Via3 4)"
3240 surround v3/m3 *m3 30 directional \
3241 "Metal3 overlap of Via3 in one direction < %d (Via3 5 - Via3 4)"
Tim Edwardsba66a982020-07-13 13:33:41 -04003242 surround v3/m4 *m4 5 absence_illegal \
3243 "Metal4 overlap of Via3 < %d (Met4 3 - Via3 4)"
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003244
3245 exact_overlap v3/m3
3246
3247#-----------------------------
3248# METAL4 - METAL4 Module
3249#-----------------------------
3250
3251variants *
3252
3253 width allm4 300 "Metal4 width < %d (Met4 1)"
3254 spacing allm4 allm4,obsm4 300 touching_ok "Metal4 spacing < %d (Met4 2)"
3255 area allm4,obsm4 240000 300 "Metal4 minimum area < %a (Met4 4a)"
3256
3257variants (fast),(full)
3258 widespacing allm4 3000 allm4,obsm4 400 touching_ok \
3259 "Metal4 > 3um spacing to unrelated m4 < %d (S2M4)"
3260 widespacing obsm4 3000 allm4 400 touching_ok \
3261 "Metal4 > 3um spacing to unrelated m4 < %d (S2M4)"
3262variants *
3263
3264#--------------------------------------------------
3265# VIA4 - Requires METAL5 Module
3266#--------------------------------------------------
3267
3268 width v4/m4 1180 "Via4 width < %d (Via4 1 + 2 * Via4 4)"
3269 spacing v4 v4 420 touching_ok "Via4 spacing < %d (Via4 2 - 2 * Via4 4)"
3270 surround v4/m5 *m5 120 absence_illegal \
3271 "Metal5 overlap of Via4 < %d (Met5 3 - Via4 4)"
3272
3273 exact_overlap v4/m4
3274
3275#-----------------------------
3276# METAL5 - METAL5 Module
3277#-----------------------------
3278
3279 width allm5 1600 "Metal5 width < %d (Met5 1)"
3280 spacing allm5 allm5,obsm5 1600 touching_ok "Metal5 spacing < %d (Met5 2)"
3281 area allm5,obsm5 4000000 1600 "Metal5 minimum area < %a (Met5 4)"
3282
3283#endif (METAL5)
3284
3285#ifdef REDISTRIBUTION
3286
3287variants (full)
3288
3289 width metrdl 10000 "RDL width < %d (Rdl 1)"
3290 spacing metrdl metrdl 10000 touching_ok "RDL spacing < %d (Rdl 2)"
3291 surround glass metrdl 10750 absence_ok "RDL must surround glass cut by %d (Rdl 3)"
3292 spacing metrdl padl 19660 surround_ok "RDL spacing to unrelated pad < %d (Rdl 6)"
3293
3294variants *
3295
3296#endif (REDISTRIBUTION)
3297
3298#--------------------------------------------------
3299# NMOS, PMOS
3300#--------------------------------------------------
3301
3302 extend allfets *poly 420 "Transistor width < %d (Diff/tap 2)"
3303 # Except: Note that standard cells allow transistor width minimum 0.36um
3304 width pfetlvt 350 "LVT PMOS gate length < %d (Poly 1b)"
3305
3306 spacing *nsd,*mvnsd allpolynonfet 55 touching_illegal \
3307 "N-tap spacing to field poly < %d (Poly 5)"
3308 spacing *psd,*mvpsd allpolynonfet 55 touching_illegal \
3309 "P-tap spacing to field poly < %d (Poly 5)"
3310
3311 # Full edge rule required to describe FET to butted tap distance
3312 edge4way *psd *ndiff 300 *ndiff *psd 300 \
3313 "Butting P-tap spacing to NMOS gate < %d (Poly 6)"
3314 edge4way *nsd *pdiff 300 *pdiff *nsd 300 \
3315 "Butting N-tap spacing to PMOS gate < %d (Poly 6)"
3316 edge4way *mvpsd *mvndiff 300 *mvndiff *mvpsd 300 \
3317 "Butting MV P-tap spacing to MV NMOS gate < %d (Poly 6)"
3318 edge4way *mvnsd *mvpdiff 300 *mvpdiff *mvnsd 300 \
3319 "Butting MV N-tap spacing to MV PMOS gate < %d (Poly 6)"
3320
3321 # No LV FETs in HV diff
3322 spacing pfet,scpfet,pfetlvt,pfethvt,*pdiff *mvpdiff 360 touching_illegal \
3323 "LV P-diffusion to MV P-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
3324
3325 spacing nfet,scnfet,nfetlvt,varactor,varhvt,*ndiff *mvndiff 360 touching_illegal \
3326 "LV N-diffusion to MV N-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
3327
3328 # No HV FETs in LV diff
3329 spacing mvpfet,*mvpdiff *pdiff 360 touching_illegal \
3330 "MV P-diffusion to LV P-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
3331
3332 spacing mvnfet,mvvaractor,*mvndiff *ndiff 360 touching_illegal \
3333 "MV N-diffusion to LV N-diffusion < %d (Diff/tap 23 + Diff/tap 22)"
3334
3335 # Minimum length of MV FETs. Note that this is larger than the minimum
3336 # width (0.29um), so an edge rule is required
3337
3338 edge4way mvndiff mvnfet 500 mvnfet 0 0 \
3339 "MV NMOS minimum length < %d (Poly 13)"
3340
3341 edge4way mvnsd mvvaractor 500 mvvaractor 0 0 \
3342 "MV Varactor minimum length < %d (Poly 13)"
3343
3344 edge4way mvpdiff mvpfet 500 mvpfet 0 0 \
3345 "MV PMOS minimum length < %d (Poly 13)"
3346
3347#--------------------------------------------------
3348# mrp1 (N+ poly resistor)
3349#--------------------------------------------------
3350
3351 width mrp1 330 "mrp1 resistor width < %d (Poly 3)"
3352
3353#--------------------------------------------------
3354# xhrpoly (P+ poly resistor)
3355#--------------------------------------------------
3356
3357 width xhrpoly 350 "xhrpoly resistor width < %d (P+ Poly 1a)"
3358 # NOTE: xhrpoly resistor requires choice of discrete widths 0.35, 0.69, ... up to 1.27.
3359
3360#--------------------------------------------------
3361# uhrpoly (P+ poly resistor, 2kOhm/sq)
3362#--------------------------------------------------
3363
3364 width uhrpoly 350 "uhrpoly resistor width < %d"
3365 spacing xhrpoly,uhrpoly,xpc alldiff 480 touching_illegal \
3366 "xhrpoly/uhrpoly resistor spacing to diffusion < %d (Poly 9)"
3367
3368#------------------------------------
3369# MOS Varactor device rules
3370#------------------------------------
3371
3372 overhang *nsd var,varhvt 250 \
3373 "N-Tap overhang of Varactor < %d (Var 4)"
3374
3375 overhang *mvnsd mvvar 250 \
3376 "N-Tap overhang of Varactor < %d (Var 4)"
3377
3378 width var,varhvt,mvvar 180 "Varactor length < %d (Var 1)"
3379 extend var,varhvt,mvvar *poly 1000 "Varactor width < %d (Var 2)"
3380
3381#ifdef MIM
3382#-----------------------------------------------------------
3383# MiM CAP (CAPM) -
3384#-----------------------------------------------------------
3385
3386 width *mimcap 2000 "MiM cap width < %d (Capm 1)"
3387 spacing *mimcap *mimcap 840 touching_ok "MiM cap spacing < %d (Capm 2a)"
3388 spacing *mimcap via2/m3 1270 touching_illegal \
3389 "MiM cap spacing to via2 < %d (Capm 5)"
3390 surround *mimcc *mimcap 200 absence_illegal \
3391 "MiM cap must surround MiM cap contact by %d (Capm 4)"
3392 rect_only *mimcap "MiM cap must be rectangular (Capm 7)
3393
3394 surround *mimcap *metal3/m3 140 absence_illegal \
3395 "Metal3 must surround MiM cap by %d (Capm 3)"
3396 spacing via2 *mimcap 50 touching_illegal "MiM cap cannot overlap via2 (Capm 8)"
3397 spacing via3 *mimcap 50 touching_illegal "MiM cap cannot overlap via3 (Capm 8)"
3398 # (resolve scaling issue!)
3399 # cifspacing mim_bottom mim_bottom 1200 touching_ok \
3400 # "MiM cap bottom plate spacing < %d (Capm 2b)"
3401
3402 # MiM cap contact rules (VIA3)
3403
3404 width mimcc/m3 320 "MiM cap contact width < %d (Via3 1 + 2 * Via3 4)"
3405 spacing mimcc mimcc 80 touching_ok "MiM cap contact spacing < %d (Via3 2 - 2 * Via3 4)"
3406 surround mimcc/m4 *m4 5 directional \
3407 "Metal4 overlap of MiM cap contact in one direction < %d (Met4 3 - Via3 4)"
3408 exact_overlap mimcc/m3
3409
3410 width *mimcap2 2000 "MiM cap width < %d (Cap2m 1)"
3411 spacing *mimcap2 *mimcap2 840 touching_ok "MiM cap spacing < %d (Cap2m 2a)"
3412 spacing *mimcap2 via3/m4 1270 touching_illegal \
3413 "MiM cap spacing to via3 < %d (Cap2m 5)"
3414 surround *mim2cc *mimcap2 200 absence_illegal \
3415 "MiM cap must surround MiM cap contact by %d (Cap2m 4)"
3416 rect_only *mimcap2 "MiM cap must be rectangular (Cap2m 7)
3417
3418 surround *mimcap2 *metal4/m4 140 absence_illegal \
3419 "Metal4 must surround MiM cap by %d (Cap2m 3)"
3420 spacing via3 *mimcap2 50 touching_illegal "MiM cap cannot overlap via3 (Cap2m 8)"
3421 spacing via4 *mimcap2 50 touching_illegal "MiM cap cannot overlap via4 (Cap2m 8)"
3422 # (resolve scaling issue!)
3423 # cifspacing mim2_bottom mim2_bottom 1200 touching_ok \
3424 # "MiM2 cap bottom plate spacing < %d (Cap2m 2b)"
3425
3426 # MiM cap contact rules (VIA4)
3427
3428 width mim2cc/m4 1180 "MiM2 cap contact width < %d (Via4 1 + 2 * Via4 4)"
3429 spacing mim2cc mim2cc 420 touching_ok \
3430 "MiM2 cap contact spacing < %d (Via4 2 - 2 * Via4 4)"
3431 surround mim2cc/m5 *m5 120 absence_illegal \
3432 "Metal5 overlap of MiM2 cap contact < %d (Met5 3 - Via4 4)"
3433 exact_overlap mim2cc/m4
3434
3435#endif (MIM)
3436
3437#----------------------------
3438# End DRC style
3439#----------------------------
3440
3441end
3442
3443#----------------------------
3444# LEF format definitions
3445#----------------------------
3446
3447lef
3448
Tim Edwards282d9542020-07-15 17:52:08 -04003449 masterslice pwell pwell PWELL substrate
3450 masterslice nwell nwell NWELL
Tim Edwardsd9fe0002020-07-14 21:53:24 -04003451
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003452 routing li li1 LI1 LI li
3453
3454 routing m1 met1 MET1 m1
3455 routing m2 met2 MET2 m2
3456 routing m3 met3 MET3 m3
3457#ifdef METAL5
3458 routing m4 met4 MET4 m4
3459 routing m5 met5 MET5 m5
3460#endif (METAL5)
3461#ifdef REDISTRIBUTION
3462 routing mrdl met6 MET6 m6 MRDL METRDL
3463#endif
3464
3465 cut lic mcon MCON Mcon
3466 cut m2c via via1 VIA VIA1 cont2 via12
3467 cut m3c via2 VIA2 cont3 via23
3468#ifdef METAL5
3469 cut via3 via3 VIA3 cont4 via34
3470 cut via4 via4 VIA4 cont5 via45
3471#endif (METAL5)
3472
3473 obs obsli li1
3474 obs obsm1 met1
3475 obs obsm2 met2
3476 obs obsm3 met3
3477
3478#ifdef METAL5
3479 obs obsm4 met4
3480 obs obsm5 met5
3481#endif (METAL5)
3482#ifdef REDISTRIBUTION
3483 obs obsmrdl met6
3484#endif
3485
3486 obs obslic mcon
3487
3488end
3489
3490#-----------------------------------------------------
3491# Device and Parasitic extraction
3492#-----------------------------------------------------
3493
3494
3495extract
3496 style ngspice variants (lvs),(sim),(si)
3497 cscale 1
3498 # NOTE: SkyWater SPICE libraries use .option scale 1E6 so all
3499 # dimensions must be in units of microns in the extract file.
3500 # Use extract style "ngspice(si)" to override this and produce
3501 # a file with SI units for length/area.
3502
3503 variants (lvs),(sim)
3504 lambda 1E6
3505 variants (si)
3506 lambda 1.0
3507 variants *
3508
3509 units microns
3510 step 7
3511 sidehalo 2
3512
3513 # NOTE: MiM cap layers have been purposely put out of order,
3514 # may want to reconsider.
3515
3516 planeorder dwell 0
3517 planeorder well 1
3518 planeorder active 2
3519 planeorder locali 3
3520 planeorder metal1 4
3521 planeorder metal2 5
3522 planeorder metal3 6
3523#ifdef METAL5
3524 planeorder metal4 7
3525 planeorder metal5 8
3526#ifdef REDISTRIBUTION
3527 planeorder metali 9
3528 planeorder block 10
3529 planeorder comment 11
3530 planeorder cap1 12
3531 planeorder cap2 13
3532#else (!REDISTRIBUTION)
3533 planeorder block 9
3534 planeorder comment 10
3535 planeorder cap1 11
3536 planeorder cap2 12
3537#endif (!REDISTRIBUTION)
3538#else (!METAL5)
3539#ifdef REDISTRIBUTION
3540 planeorder metali 7
3541 planeorder block 8
3542 planeorder comment 9
3543 planeorder cap1 10
3544 planeorder cap2 11
3545#else (!REDISTRIBUTION)
3546 planeorder block 7
3547 planeorder comment 8
3548 planeorder cap1 9
3549 planeorder cap2 10
3550#endif (!REDISTRIBUTION)
3551#endif (!METAL5)
3552
3553 height dnwell -0.1 0.1
3554 height nwell,pwell 0.0 0.2062
3555 height alldiff 0.2062 0.12
3556 height allpoly 0.3262 0.18
3557 height alldiffcont 0.3262 0.61
3558 height pc 0.5062 0.43
3559 height allli 0.9361 0.10
3560 height lic 1.0361 0.34
3561 height allm1 1.3761 0.36
3562 height v1 1.7361 0.27
3563 height allm2 2.0061 0.36
3564 height v2 2.3661 0.42
3565 height allm3 2.7861 0.845
3566#ifdef METAL5
3567 height v3 3.6311 0.39
3568 height allm4 4.0211 0.845
3569 height v4 4.8661 0.505
3570 height allm5 5.3711 1.26
3571 height mimcap 2.4661 0.2
3572 height mimcap2 3.7311 0.2
3573 height mimcc 2.6661 0.12
3574 height mim2cc 3.9311 0.09
3575#ifdef REDISTRIBUTION
3576 height mrdlc 6.6311 5.2523
3577 height mrdl 11.8834 4.0
3578#endif (!REDISTRIBUTION)
3579#endif (!METAL5)
3580
3581 # Antenna check parameters
3582 # Note that checks w/diode diffusion are not modeled
3583 model partial
3584 antenna poly sidewall 50 none
3585 antenna allcont surface 3 none
3586 antenna li sidewall 75 0 450
3587 antenna lic surface 3 0 18
3588 antenna m1,m2,m3 sidewall 400 2600 400
3589 antenna v1 surface 3 0 18
3590 antenna v2 surface 6 0 36
3591#ifdef METAL5
3592 antenna m4,m5 sidewall 400 2600 400
3593 antenna v3,v4 surface 6 0 36
3594#endif (METAL5)
3595
3596 tiedown alldiffnonfet
3597
3598 substrate *ppdiff,*mvppdiff,space/w,pwell well $SUB -dnwell
3599
3600# Layer resistance: Use document xp018-PDS-v4_2_1.pdf
3601
3602# Resistances are in milliohms per square
3603# Optional 3rd argument is the corner adjustment fraction
3604# Device values come from trtc.cor (typical corner)
3605 resist (dnwell)/dwell 2200000
3606 resist (pwell)/well 3050000
3607 resist (nwell)/well 1700000
3608 resist (rpw)/well 3050000 0.5
3609 resist (*ndiff,nsd)/active 120000
3610 resist (*pdiff,*psd)/active 197000
3611 resist (*mvndiff,mvnsd)/active 114000
3612 resist (*mvpdiff,*mvpsd)/active 191000
3613
3614 resist ndiffres/active 120000 0.5
3615 resist pdiffres/active 197000 0.5
3616 resist mvndiffres/active 114000 0.5
3617 resist mvpdiffres/active 191000 0.5
3618 resist mrp1/active 48200 0.5
3619 resist xhrpoly/active 319800 0.5
3620 resist uhrpoly/active 2000000 0.5
3621
3622 resist (allpolynonres)/active 48200
3623 resist rmp/active 48200
3624
3625 resist (allli)/locali 12200
3626 resist (allm1)/metal1 125
3627 resist (allm2)/metal2 125
3628 resist (allm3)/metal3 47
3629#ifdef METAL5
3630 resist (allm4)/metal4 47
3631 resist (allm5)/metal5 29
3632#endif (METAL5)
3633#ifdef REDISTRIBUTION
3634 resist mrdl/metali 5
3635#endif (REDISTRIBUTION)
3636
3637 contact ndc,nsc 15000
3638 contact pdc,psc 15000
3639 contact mvndc,mvnsc 15000
3640 contact mvpdc,mvpsc 15000
3641 contact pc 15000
3642 contact lic 152000
3643 contact m2c 4500
3644 contact m3c 3410
3645#ifdef METAL5
3646#ifdef MIM
3647 contact mimcc 4500
3648 contact mim2cc 3410
3649#endif (MIM)
3650 contact via3 3410
3651 contact via4 380
3652#endif (METAL5)
3653#ifdef REDISTRIBUTION
3654 contact mrdlc 6
3655#endif (REDISTRIBUTION)
3656
3657#-------------------------------------------------------------------------
3658# Parasitic capacitance values: Use document (...)
3659#-------------------------------------------------------------------------
3660# This uses the new "default" definitions that determine the intervening
3661# planes from the planeorder stack, take care of the reflexive sideoverlap
3662# definitions, and generally clean up the section and make it more readable.
3663#
Tim Edwardsa043e432020-07-10 16:50:44 -04003664# Also uses "units microns" statement. All values are taken from the
3665# document PEX/xRC/cap_models. Fringe capacitance values are approximated.
3666# Units are aF/um^2 for area caps and aF/um for perimeter and sidewall caps.
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003667#-------------------------------------------------------------------------
3668# Remember that device capacitances to substrate are taken care of by the
3669# models. Thus, active and poly definitions ignore all "fet" types.
3670# fet types are excluded when computing parasitic capacitance to
3671# active from layers above them because poly is a shield; fet types are
3672# included for parasitics from layers above to poly. Resistor types
3673# should be removed from all parasitic capacitance calculations, or else
3674# they just create floating caps. Technically, the capacitance probably
3675# should be split between the two terminals. Unsure of the correct model.
3676#-------------------------------------------------------------------------
3677
3678#n-well
3679# NOTE: This value not found in PEX files
3680defaultareacap nwell well 120
3681
3682#n-active
3683# Rely on device models to capture *ndiff area cap
3684# Do not extract parasitics from resistors
3685# defaultareacap allnactivenonfet active 790
3686# defaultperimeter allnactivenonfet active 280
3687
3688#p-active
3689# Rely on device models to capture *pdiff area cap
3690# Do not extract parasitics from resistors
3691# defaultareacap allpactivenonfet active 810
3692# defaultperimeter allpactivenonfet active 300
3693
3694#poly
3695# Do not extract parasitics from resistors
3696# defaultsidewall allpolynonfet active 22
Tim Edwardsa043e432020-07-10 16:50:44 -04003697# defaultareacap allpolynonfet active 106
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003698# defaultperimeter allpolynonfet active 57
3699
Tim Edwards411f5d12020-07-11 14:58:57 -04003700 defaultsidewall *poly active 23
Tim Edwardsa043e432020-07-10 16:50:44 -04003701 defaultareacap *poly active nwell,obswell,pwell well 106
3702 defaultperimeter *poly active nwell,obswell,pwell well 55
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003703
3704#locali
Tim Edwards411f5d12020-07-11 14:58:57 -04003705 defaultsidewall allli locali 33
Tim Edwardsa043e432020-07-10 16:50:44 -04003706 defaultareacap allli locali nwell,obswell,pwell well 37
3707 defaultperimeter allli locali nwell,obswell,pwell well 55
3708 defaultoverlap allli locali nwell well 37
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003709
3710#locali->diff
Tim Edwardsa043e432020-07-10 16:50:44 -04003711 defaultoverlap allli locali allactivenonfet active 37
3712 defaultsideoverlap allli locali allactivenonfet active 55
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003713
3714#locali->poly
Tim Edwardsa043e432020-07-10 16:50:44 -04003715 defaultoverlap allli locali allpolynonres active 94
3716 defaultsideoverlap allli locali allpolynonres active 52
3717 defaultsideoverlap *poly active allli locali 25
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003718
3719#metal1
Tim Edwards411f5d12020-07-11 14:58:57 -04003720 defaultsidewall allm1 metal1 45
Tim Edwardsa043e432020-07-10 16:50:44 -04003721 defaultareacap allm1 metal1 nwell,obswell,pwell well 26
3722 defaultperimeter allm1 metal1 nwell,obswell,pwell well 41
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003723 defaultoverlap allm1 metal1 nwell well 26
3724
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003725#metal1->diff
Tim Edwardsa043e432020-07-10 16:50:44 -04003726 defaultoverlap allm1 metal1 allactivenonfet active 26
3727 defaultsideoverlap allm1 metal1 allactivenonfet active 41
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003728
3729#metal1->poly
Tim Edwardsa043e432020-07-10 16:50:44 -04003730 defaultoverlap allm1 metal1 allpolynonres active 45
3731 defaultsideoverlap allm1 metal1 allpolynonres active 47
3732 defaultsideoverlap *poly active allm1 metal1 17
3733
3734#metal1->locali
3735 defaultoverlap allm1 metal1 allli locali 114
3736 defaultsideoverlap allm1 metal1 allli locali 59
3737 defaultsideoverlap allli locali allm1 metal1 35
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003738
3739#metal2
Tim Edwards411f5d12020-07-11 14:58:57 -04003740 defaultsidewall allm2 metal2 50
Tim Edwardsa043e432020-07-10 16:50:44 -04003741 defaultareacap allm2 metal2 nwell,obswell,pwell well 17
3742 defaultperimeter allm2 metal2 nwell,obswell,pwell well 41
3743 defaultoverlap allm2 metal2 nwell well 38
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003744
3745#metal2->diff
Tim Edwardsa043e432020-07-10 16:50:44 -04003746 defaultoverlap allm2 metal2 allactivenonfet active 17
3747 defaultsideoverlap allm2 metal2 allactivenonfet active 41
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003748
3749#metal2->poly
Tim Edwardsa043e432020-07-10 16:50:44 -04003750 defaultoverlap allm2 metal2 allpolynonres active 24
3751 defaultsideoverlap allm2 metal2 allpolynonres active 41
3752 defaultsideoverlap *poly active allm2 metal2 11
3753
3754#metal2->locali
3755 defaultoverlap allm2 metal2 allli locali 38
3756 defaultsideoverlap allm2 metal2 allli locali 46
3757 defaultsideoverlap allli locali allm2 metal2 22
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003758
3759#metal2->metal1
Tim Edwardsa043e432020-07-10 16:50:44 -04003760 defaultoverlap allm2 metal2 allm1 metal1 134
3761 defaultsideoverlap allm2 metal2 allm1 metal1 67
3762 defaultsideoverlap allm1 metal1 allm2 metal2 48
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003763
3764#metal3
Tim Edwardsa043e432020-07-10 16:50:44 -04003765 defaultsidewall allm3 metal3 63
3766 defaultoverlap allm3 metal3 nwell well 12
3767 defaultareacap allm3 metal3 nwell,obswell,pwell well 12
3768 defaultperimeter allm3 metal3 nwell,obswell,pwell well 41
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003769
3770#metal3->diff
Tim Edwardsa043e432020-07-10 16:50:44 -04003771 defaultoverlap allm3 metal3 allactive active 12
3772 defaultsideoverlap allm3 metal3 allactive active 41
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003773
3774#metal3->poly
Tim Edwardsa043e432020-07-10 16:50:44 -04003775 defaultoverlap allm3 metal3 allpolynonres active 16
3776 defaultsideoverlap allm3 metal3 allpolynonres active 44
3777 defaultsideoverlap *poly active allm3 metal3 9
3778
3779#metal3->locali
3780 defaultoverlap allm3 metal3 allli locali 21
3781 defaultsideoverlap allm3 metal3 allli locali 47
3782 defaultsideoverlap allli locali allm3 metal3 15
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003783
3784#metal3->metal1
Tim Edwardsa043e432020-07-10 16:50:44 -04003785 defaultoverlap allm3 metal3 allm1 metal1 35
3786 defaultsideoverlap allm3 metal3 allm1 metal1 55
3787 defaultsideoverlap allm1 metal1 allm3 metal3 27
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003788
3789#metal3->metal2
Tim Edwardsa043e432020-07-10 16:50:44 -04003790 defaultoverlap allm3 metal3 allm2 metal2 86
3791 defaultsideoverlap allm3 metal3 allm2 metal2 70
3792 defaultsideoverlap allm2 metal2 allm3 metal3 44
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003793
3794#ifdef METAL5
3795#metal4
Tim Edwardsa043e432020-07-10 16:50:44 -04003796 defaultsidewall allm4 metal4 67
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003797# defaultareacap alltopm metal4 well 6
3798 areacap allm4/m4 8
3799 defaultoverlap allm4 metal4 nwell well 8
Tim Edwardsa043e432020-07-10 16:50:44 -04003800 defaultperimeter allm4 metal4 well 37
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003801
3802#metal4->diff
Tim Edwardsa043e432020-07-10 16:50:44 -04003803 defaultoverlap allm4 metal4 allactivenonfet active 8
3804 defaultsideoverlap allm4 metal4 allactivenonfet active 37
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003805
3806#metal4->poly
Tim Edwardsa043e432020-07-10 16:50:44 -04003807 defaultoverlap allm4 metal4 allpolynonres active 10
3808 defaultsideoverlap allm4 metal4 allpolynonres active 38
3809 defaultsideoverlap *poly active allm4 metal4 6
3810
3811#metal4->locali
3812 defaultoverlap allm4 metal4 allli locali 12
3813 defaultsideoverlap allm4 metal4 allli locali 40
3814 defaultsideoverlap allli locali allm4 metal4 10
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003815
3816#metal4->metal1
Tim Edwardsa043e432020-07-10 16:50:44 -04003817 defaultoverlap allm4 metal4 allm1 metal1 15
3818 defaultsideoverlap allm4 metal4 allm1 metal1 43
3819 defaultsideoverlap allm1 metal1 allm4 metal4 16
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003820
3821#metal4->metal2
Tim Edwardsa043e432020-07-10 16:50:44 -04003822 defaultoverlap allm4 metal4 allm2 metal2 20
3823 defaultsideoverlap allm4 metal4 allm2 metal2 46
3824 defaultsideoverlap allm2 metal2 allm4 metal4 22
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003825
3826#metal4->metal3
Tim Edwardsa043e432020-07-10 16:50:44 -04003827 defaultoverlap allm4 metal4 allm3 metal3 84
3828 defaultsideoverlap allm4 metal4 allm3 metal3 71
3829 defaultsideoverlap allm3 metal3 allm4 metal4 43
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003830
3831#metal5
Tim Edwardsa043e432020-07-10 16:50:44 -04003832 defaultsidewall allm5 metal5 127
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003833# defaultareacap allm5 metal5 well 6
3834 areacap allm5/m5 6
3835 defaultoverlap allm5 metal5 nwell well 6
Tim Edwardsa043e432020-07-10 16:50:44 -04003836 defaultperimeter allm5 metal5 well 39
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003837
3838#metal5->diff
Tim Edwardsa043e432020-07-10 16:50:44 -04003839 defaultoverlap allm5 metal5 allactivenonfet active 6
3840 defaultsideoverlap allm5 metal5 allactivenonfet active 39
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003841
3842#metal5->poly
Tim Edwardsa043e432020-07-10 16:50:44 -04003843 defaultoverlap allm5 metal5 allpolynonres active 7
3844 defaultsideoverlap allm5 metal5 allpolynonres active 40
3845 defaultsideoverlap *poly active allm5 metal5 6
3846
3847#metal5->locali
3848 defaultoverlap allm5 metal5 allli locali 8
3849 defaultsideoverlap allm5 metal5 allli locali 41
3850 defaultsideoverlap allli locali allm5 metal5 8
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003851
3852#metal5->metal1
Tim Edwardsa043e432020-07-10 16:50:44 -04003853 defaultoverlap allm5 metal5 allm1 metal1 9
3854 defaultsideoverlap allm5 metal5 allm1 metal1 43
3855 defaultsideoverlap allm1 metal1 allm5 metal5 12
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003856
3857#metal5->metal2
Tim Edwardsa043e432020-07-10 16:50:44 -04003858 defaultoverlap allm5 metal5 allm2 metal2 11
3859 defaultsideoverlap allm5 metal5 allm2 metal2 46
3860 defaultsideoverlap allm2 metal2 allm5 metal5 16
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003861
3862#metal5->metal3
Tim Edwardsa043e432020-07-10 16:50:44 -04003863 defaultoverlap allm5 metal5 allm3 metal3 20
3864 defaultsideoverlap allm5 metal5 allm3 metal3 54
3865 defaultsideoverlap allm3 metal3 allm5 metal5 28
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003866
3867#metal5->metal4
Tim Edwardsa043e432020-07-10 16:50:44 -04003868 defaultoverlap allm5 metal5 allm4 metal4 68
3869 defaultsideoverlap allm5 metal5 allm4 metal4 83
3870 defaultsideoverlap allm4 metal4 allm5 metal5 47
Tim Edwards55f4d0e2020-07-05 15:41:02 -04003871#endif (METAL5)
3872
3873# Devices: Use document (...)
3874
3875variants (sim)
3876
3877 device msubcircuit pshort pfet,scpfet *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
3878 device msubcircuit plowvt pfetlvt *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
3879 device msubcircuit phighvt pfethvt *pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
3880
3881 device msubcircuit nshort nfet,scnfet *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
3882 device msubcircuit nlowvt nfetlvt *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
3883 device msubcircuit sonos_e nsonos *ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
3884 device subcircuit xcnwvc varactor *nndiff nwell error l=l w=w
3885 device subcircuit xcnwvc2 varhvt *nndiff nwell error l=l w=w
3886 device subcircuit xchvnwc mvvaractor *mvnndiff nwell error l=l w=w
3887
3888 device msubcircuit phv mvpfet *mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w
3889 device msubcircuit nhv mvnfet *mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
3890 device msubcircuit nhvnative mvnnfet *mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
3891
3892 device rsubcircuit short rmp *poly space/w,pwell,nwell error l=l w=w
3893 device rsubcircuit short rli1 *li,coreli space/w,pwell,nwell error l=l w=w
3894 device rsubcircuit short rmetal1 *metal1 space/w,pwell,nwell error l=l w=w
3895 device rsubcircuit short rmetal2 *metal2 space/w,pwell,nwell error l=l w=w
3896 device rsubcircuit short rmetal3 *metal3 space/w,pwell,nwell error l=l w=w
3897#ifdef METAL5
3898 device rsubcircuit short rm4 *m4 space/w,pwell,nwell error l=l w=w
3899 device rsubcircuit short rm5 *m5 space/w,pwell,nwell error l=l w=w
3900#endif (METAL5)
3901
3902 device rsubcircuit xhrpoly xhrpoly xpc pwell,space/w error l=l w=w
3903 device rsubcircuit uhrpoly uhrpoly xpc pwell,space/w error l=l w=w
3904 device rsubcircuit mrp1 mrp1 *poly pwell,space/w error l=l w=w
3905
3906 device rsubcircuit mrdn ndiffres *ndiff pwell,space/w error l=l w=w
3907 device rsubcircuit mrdp pdiffres *pdiff nwell error l=l w=w
3908 device rsubcircuit xpwres rpw pwell dnwell error l=l w=w
3909
3910 device rsubcircuit mrdn_hv mvndiffres *mvndiff pwell,space/w error l=l w=w
3911 device rsubcircuit mrdp_hv mvpdiffres *mvpdiff nwell error l=l w=w
3912
3913 device subcircuit pdiode *pdiode nwell a=a p=p
3914 device msubcircuit ndiode *ndiode pwell,space/w a=a p=p
3915 device subcircuit pdiode_h *mvpdiode nwell a=a p=p
3916 device msubcircuit ndiode_h *mvndiode pwell,space/w a=a p=p
3917
3918 # These are parasitic devices
3919 device msubcircuit ndiode_lvt *ndiodelvt pwell,space/w a=a p=p
3920 device subcircuit pdiode_lvt *pdiodelvt nwell a=a p=p
3921 device subcircuit pdiode_hvt *pdiodehvt nwell a=a p=p
3922 device msubcircuit ndiode_native *nndiode pwell,space/w a=a p=p
3923
3924#ifdef MIM
3925 device subcircuit xcmimc1 *mimcap m3 nwell,pwell,space/w error a=a p=p s=subs
3926 device subcircuit xcmimc2 *mimcap2 m4,mimcc/m4 nwell,pwell,space/w error a=a p=p s=subs
3927#endif (MIM)
3928
3929 variants (lvs),(si)
3930
3931 device mosfet pshort scpfet,pfet pdiff,pdiffres,pdc nwell
3932 device mosfet plowvt pfetlvt pdiff,pdiffres,pdc nwell
3933 device mosfet phighvt pfethvt pdiff,pdiffres,pdc nwell
3934 device mosfet nshort scnfet,nfet ndiff,ndiffres,ndc pwell,space/w
3935 device mosfet nlowvt nfetlvt ndiff,ndiffres,ndc pwell,space/w
3936 device mosfet sonos_e nsonos ndiff,ndiffres,ndc pwell,space/w
3937 device mosfet phv mvpfet mvpdiff,mvpdiffres,mvpdc nwell
3938 device mosfet nhv mvnfet mvndiff,mvndiffres,mvndc pwell,space/w
3939 device mosfet nhvnative mvnnfet *mvndiff,mvndiffres pwell,space/w
3940
3941 # These devices always extract as subcircuits
3942 device subcircuit xcnwvc varactor *nndiff nwell error l=l w=w
3943 device subcircuit xcnwvc2 varhvt *nndiff nwell error l=l w=w
3944 device subcircuit xchvnwc mvvaractor *mvnndiff nwell error l=l w=w
3945
3946 device resistor short rmp *poly
3947 device resistor short rli1 *li,coreli
3948 device resistor short rmetal1 *metal1
3949 device resistor short rmetal2 *metal2
3950 device resistor short rmetal3 *metal3
3951#ifdef METAL5
3952 device resistor short rm4 *m4
3953 device resistor short rm5 *m5
3954#endif (METAL5)
3955
3956 device resistor xhrpoly xhrpoly xpc
3957 device resistor uhrpoly uhrpoly xpc
3958 device resistor mrp1 mrp1 *poly
3959 device resistor mrdn ndiffres *ndiff
3960 device resistor mrdp pdiffres *pdiff
3961 device resistor mrdn_hv mvndiffres *mvndiff
3962 device resistor mrdp_hv mvpdiffres *mvpdiff
3963 device resistor xpwres rpw pwell
3964
3965 device pdiode pdiode *pdiode nwell a=a p=p
3966 device ndiode ndiode *ndiode pwell,space/w a=a p=p
3967 device pdiode pdiode_h *mvpdiode nwell a=a p=p
3968 device ndiode ndiode_h *mvndiode pwell,space/w a=a p=p
3969
3970 # These are parasitic devices
3971 device ndiode ndiode_lvt *ndiodelvt pwell,space/w a=a p=p
3972 device pdiode pdiode_lvt *pdiodelvt nwell a=a p=p
3973 device pdiode pdiode_hvt *pdiodehvt nwell a=a p=p
3974 device ndiode ndiode_native *nndiode pwell,space/w a=a p=p
3975
3976 device subcircuit pdiode_h *mvpdiode nwell a=a p=p
3977 device msubcircuit ndiode_h *mvndiode pwell,space/w a=a p=p
3978
3979
3980#ifdef MIM
3981 device capacitor xcmimc1 *mimcap *m3 1
3982 device capacitor xcmimc2 *mimcap2 *m4 1
3983#endif (MIM)
3984
3985end
3986
3987#-----------------------------------------------------
3988# Wiring tool definitions
3989#-----------------------------------------------------
3990
3991wiring
3992 # All wiring values are in nanometers
3993 scalefactor 10
3994
3995 contact lic 170 li 0 0 m1 30 60
3996 contact v1 260 m1 0 30 m2 0 30
3997 contact v2 280 m2 0 45 m3 25 0
3998#ifdef METAL5
Tim Edwardsba66a982020-07-13 13:33:41 -04003999 contact v3 320 m3 0 30 m4 5 5
Tim Edwards55f4d0e2020-07-05 15:41:02 -04004000 contact v4 1180 m4 0 m5 120
4001#endif (METAL5)
4002
4003 contact pc 170 poly 50 80 li 0 80
4004 contact pdc 170 pdiff 40 60 li 0 80
4005 contact ndc 170 ndiff 40 60 li 0 80
4006 contact psc 170 psd 40 60 li 0 80
4007 contact nsc 170 nsd 40 60 li 0 80
4008
4009end
4010
4011#-----------------------------------------------------
4012# Plain old router. . .
4013#-----------------------------------------------------
4014
4015router
4016end
4017
4018#------------------------------------------------------------
4019# Plowing (restored in magic 8.2, need to fill this section)
4020#------------------------------------------------------------
4021
4022plowing
4023end
4024
4025#-----------------------------------------------------------------
4026# No special plot layers defined (use default PNM color choices)
4027#-----------------------------------------------------------------
4028
4029plot
4030 style pnm
4031 default
4032 draw fillblock no_color_at_all
4033 draw nwell cwell
4034end
4035