-
Notifications
You must be signed in to change notification settings - Fork 1
/
osu180nm.tech
9590 lines (7650 loc) · 160 KB
/
osu180nm.tech
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
tech
format 29
scmos
end
version
version 2001a
description "SCMOS: Submit as technology.lambda: SCN6M_SUBM.10 [to process: TSMC18]"
end
planes
well,w
implant,i
select,s
active,a
metal1,m1
metal2,m2
metal3,m3
metal4,m4
metal5,m5
metal6,m6
metali,mi
oxide,ox
comment
xp
contact
via1,v1
via2,v2
via3,v3
via4,v4
via5,v5
viai,vi
fill
end
types
well nwell,nw
active nwr
well pwell,pw
implant n_field_implant,nfi
implant p_field_implant,pfi
select nselect,ns
select pselect,ps
active ntransistor,nfet
active ptransistor,pfet
active diffusion,diff
active transistor,fet
active ndiffusion,ndif,green
active pdiffusion,pdif,brown
active ndcontact,ndc
active pdcontact,pdc
active psubstratepdiff,pohmicdiff,pod,ppdiff,ppd,psd
active nsubstratendiff,nohmicdiff,nod,nndiff,nnd,nsd
active psubstratepcontact,pohmiccontact,poc,pwcontact,pwc,psc
active nsubstratencontact,nohmiccontact,noc,nwcontact,nwc,nsc
active nwsd
active nwsc
active polysilicon,red,poly,p
active polycontact,pcontact,polycut,pc
active polypplus,pp
active polynplus,pn
active polyppluscontact,ppcontact,ppc
active polynpluscontact,pncontact,pnc
contact genericcontact,gcontact,gc
metal1 metal1,m1,blue
metal1 pseudo_rmetal1,prm1
metal1 rmetal1,rm1
metal1 fillm1,fm1
metal1 m2contact,m2cut,m2c,via1,v1
metal2 metal2,m2,purple
metal2 pseudo_rmetal2,prm2
metal2 rmetal2,rm2
metal2 fillm2,fm2
via1 gv1
metal2 m3contact,m3cut,m3c,via2,v2
metal3 metal3,m3,cyan
metal3 pseudo_rmetal3,prm3
metal3 rmetal3,rm3
metal3 fillm3,fm3
via2 gv2
metal3 m4contact,m4cut,m4c,via3,v3
metal4 metal4,m4,yellow
metal4 pseudo_rmetal4,prm4
metal4 rmetal4,rm4
metal4 fillm4,fm4
via3 gv3
metal4 m5contact,m5cut,m5c,via4,v4
metal5 metal5,m5
metal5 pseudo_rmetal5,prm5
metal5 rmetal5,rm5
metal5 fillm5,fm5
via4 gv4
metal5 m6contact,m6cut,m6c,via5,v5
metal6 metal6,m6
metal6 pseudo_rmetal6,prm6
metal6 rmetal6,rm6
metal6 fillm6,fm6
via5 gv5
metal6 pad
metal6 micontact,micut,mic,viai,vi
metali metali,mim,mi
mi pseudo_rmetali,prmi
mi rmi
viai gvi
oxide glass
active silicide_block,sb
active poly_resist,pres
active pseudo_rpoly,prp
active rpoly,rp
active pseudo_rndiffusion,prnd
active rndiffusion,rndiff,rnd
active pseudo_rpdiffusion,prpd
active rpdiffusion,rpdiff,rpd
active pseudo_rnwell,prnwell,prnw
active rnwell,rnw
active pseudo_nwr,pnwr
implant filln,fn
fill filla,fa
fill fillb,fb
active fillp,fp
active fillapm,fapm
active activen_resist,anres
active activep_resist,apres
xp xp
xp m1p
xp m2p
xp m3p
xp m4p
xp m5p
xp m6p
comment comment
comment bb
end
contact
pc poly metal1
ppc pp metal1
pnc pn metal1
ndc ndiff metal1
pdc pdiff metal1
nsc nsd metal1
nwsc nwsd metal1
psc psd metal1
m2c metal1 metal2
m3c metal2 metal3
m4c metal3 metal4
m5c metal4 metal5
m6c metal5 metal6
mic metal6 metali
stackable pc m2c pm12contact,pm12c
stackable ppc m2c ppm12contact,ppm12c
stackable pnc m2c pnm12contact,pnm12c
stackable pdc m2c pdm12contact,pdm12c
stackable psc m2c psm12contact,psm12c,pom12c,pwm12c
stackable ndc m2c ndm12contact,ndm12c
stackable nsc m2c nsm12contact,nsm12c,nom12c,nwm12c
stackable nwsc m2c nwsm12contact,nwsm12c
stackable m2c m3c m123contact,m123c
stackable m3c m4c m234contact,m234c
stackable m4c m5c m345contact,m345c
stackable m5c m6c m456contact,m456c
end
styles
styletype mos
nwr 54
pnwr 53
nwsd 3 54
nwsc 3 20 32 54
nwell 12
pwell 13
nfi 53
pfi 54
nselect 43
pselect 44
diff 25
tran 2 4
ndiff 2
pdiff 4
nsd 3
psd 5
nfet 6 7
pfet 8 9
ndc 2 20 32
pdc 4 20 32
nsc 3 20 32
psc 5 20 32
poly 1
pp 1 44
pn 1 43
pcontact 1 20 32
gc 32
metal1 20
rm1 20 48
prm1 48
m1p 20 34
fm1 20 34
fp 1 34
fa 32
fb 45 34
fn 45 34
fapm 1 20 21 34
gv1 55
m2contact 20 21 55
metal2 21
rm2 21 48
prm2 48
m2p 21 34
fm2 21 34
gv2 56
m3contact 21 22 56
metal3 22
rm3 22 48
prm3 48
m3p 22 34
fm3 22 34
gv3 57
m4contact 22 23 57
metal4 23
rm4 23 48
prm4 48
m4p 23 34
fm4 23 34
gv4 58
m5contact 23 24 58
metal5 24
rm5 24 48
m5p 24 34
fm5 24 34
prm5 48
gv5 60
m6contact 24 26 60
metal6 26
rm6 26 48
m6p 26 34
fm6 26 34
prm6 48
gvi 61
micontact 26 27 61
mi 27
rmi 27 48
prmi 48
pad 22 23 34 38
glass 34
xp 25 34
sb 10
pres 47 48
rp 47 48
prp 48
anres 2 48
rnd 2 48
prnd 48
apres 4 53
rpd 4 53
prpd 53
rnw 12 53
prnw 54
comment 45
bb 32
error_p 42
error_s 42
error_ps 42
magnet 54
rotate 57
fence 59
end
compose
compose nfet poly ndiff
compose pfet poly pdiff
compose nfet pn ndiff
compose pfet pp pdiff
paint diff nselect ndiff
paint diff pselect pdiff
compose tran poly diff
paint tran nselect nfet
paint tran pselect pfet
paint psd ns ndiff
paint nsd ps pdiff
paint ndiff ps psd
paint pdiff ns nsd
paint pad m1 pad
paint pad m2 pad
paint pad m2c pad
paint pfi nwell nfi
paint nfi pwell pfi
paint anres nwell apres
paint apres pwell anres
paint ndc nwell pdc
paint nfet nwell pfet
paint ndiff nwell pdiff
paint psd nwell nsd
paint psc nwell nsc
paint pdc pwell ndc
paint pfet pwell nfet
paint pdiff pwell ndiff
paint nsd pwell psd
paint nsc pwell psc
paint pad m3 pad
paint pad m4 pad
paint pad m5 pad
paint pad m6 pad
compose pres poly sb
paint sb poly pres
paint poly sb pres
erase pres sb poly
compose anres ndiff sb
paint sb ndiff anres
paint ndiff sb anres
erase anres sb ndiff
compose apres pdiff sb
paint sb pdiff apres
paint pdiff sb apres
erase apres sb pdiff
#CRE/CRM
compose rm1 prm1 m1
compose rm2 prm2 m2
compose rm3 prm3 m3
compose rm4 prm4 m4
compose rm5 prm5 m5
compose rm6 prm6 m6
compose rmi prmi mi
compose rp prp poly
compose rnd prnd ndiff
compose rpd prpd pdiff
paint nwell rnw space
paint nwell nwr space
paint nwell prnw space
paint poly fp fp
paint m1 fm1 fm1
paint m2 fm2 fm2
paint m3 fm3 fm3
paint m4 fm4 fm4
paint m5 fm5 fm5
paint m6 fm6 fm6
end
connect
nwell,nsc/a,nwsc/a,nsd,nwsd nwell,nsc/a,nwsc/a,nsd,nwsd
pwell,psc/a,psd pwell,psc/a,psd
m1,fm1,fapm,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2c/m1 m1,fm1,fapm,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2c/m1
m2,fm2,fapm,m2c/m2,m3c/m2,m3c/m2 m2,fm2,fapm,m2c/m2,m3c/m2,m3c/m2
m3,fm3,fapm,m3c/m3,m4c/m3,m4c/m3 m3,fm3,fapm,m3c/m3,m4c/m3,m4c/m3
m4,fm4,fapm,m4c/m4,m5c/m4,m5c/m4 m4,fm4,fapm,m4c/m4,m5c/m4,m5c/m4
m5,fm5,fapm,m5c/m5,m6c/m5,m6c/m5 m5,fm5,fapm,m5c/m5,m6c/m5,m6c/m5
m6,fm6,fapm,m6c/m6,mic/m6 m6,fm6,fapm,m6c/m6,mic/m6
mi,mic/mi mi,mic/mi
ndiff,nsd,nwsd,ndc/a,nsc/a,nwsc/a,pdiff,psd,pdc/a,psc/a ndiff,nsd,nwsd,ndc/a,nsc/a,nwsc/a,pdiff,psd,pdc/a,psc/a
poly,fp,pp,pn,nfet,pfet,fet,fapm,pc/a,ppc/a,pnc/a poly,fp,pp,pn,nfet,pfet,fet,fapm,pc/a,ppc/a,pnc/a
gc poly,fp,pp,pn,ndiff,pdiff,nsd,nwsd,psd,m1,fm1,fapm,m2c/m1
gv1 m1,fm1,fapm,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2,fm2,fapm,m3c/m2
gv2 m2,fm2,fapm,m2c/m2,m3c/m2,m3,fm3,fapm,m4c/m3
gv3 m3,fm3,fapm,m3c/m3,m4c/m3,m4,fm4,fapm,m5c/m4
gv4 m4,fm4,fapm,m4c/m4,m5c/m4,m5,fm5,fapm,m6c/m5
gv5 m5,fm5,fapm,m5c/m5,m6c/m5,m6,fm6,fapm
gvi m6,fm6,fapm,m6c/m6,mic/m6,mi
pad m1,fm1,m2,fm2,m3,fm3,m4,fm4,m5,fm5,m6,fm6
rm1 prm1
rm2 prm2
rm3 prm3
rm4 prm4
rm5 prm5
rm6 prm6
rmi prmi
rnw prnw
nwr pnwr
rp prp
rnd prnd
rpd prpd
pres sb
anres sb
apres sb
end
cifoutput
style lambda=0.10(p)
scalefactor 10 5
options calma-permissive-labels
layer CWN nwell,rnw,nwr,nwsd,nwsc
bloat-or pdiff,apres,rpd,pdc/a,pfet * 60
bloat-or nsd,nsc/a * 30
bloat-or nfi * 40
grow 30
shrink 30
labels nwell,rnw,nwr,nwsd,nwsc
calma 42 0
layer CWNR nwsd,nwsc,nwr
grow 140
calma 91 0
layer CWND nwr
labels nwr
calma 92 0
layer CAA nwsd,nwsc,nwr
grow 110
labels nwsd,nwsc
calma 43 0
layer CSN
bloat-or nwsd,nwsc * 80 nwr 0
calma 43 0
templayer TNWR
bloat-or nwr * 110 nwsd,nwsc 50
templayer TCSB nwsd,nwsc
grow 30
and-not TNWR
layer CSB nwsd,nwsc,nwr
grow 140
and-not TCSB
calma 29 0
layer CRNW pnwr
labels pnwr
calma 93 0
layer CWP pwell
bloat-or ndiff,anres,rnd,ndc/a,nfet * 60
bloat-or psd,psc/a * 30
bloat-or pfi * 40
grow 30
shrink 30
and-not CWN
labels pwell
calma 41 0
templayer TNS ns
templayer TPS ps
#we give priority to selects autogenerated around diffusions (vrs. ohmics)
#XDP = (pdiff*20) Or ps
#XDN = (ndiff*20) Or ns
#FSP = ((pdiff*20,psc*20) Or XDP And-Not XDN Or ps shrink-grow
#FSN = ((ndiff*20,nsc*20) Or XDN And-Not FDP Or ns shrink-grow
#CSN = FSN
#CSP = FSP
#diffusion auto-nselect (will have priority)
templayer XDN
bloat-or ndiff,anres,rnd,ndc/a * 20 psd,psc/a 0
bloat-or pn * 10 pp 0
or TNS
#diffusion auto-pselect (will have priority)
templayer XDP
bloat-or pdiff,apres,rpd,pdc/a * 20 nsd,nsc/a 0
bloat-or pp * 10 pn 0
or TPS
#final pselect
templayer FSP
bloat-or pdiff,apres,rpd,pfet,psd,pdc/a,psc/a,pfet * 20 ndiff,anres,rnd,ndc/a,nsd,nsc/a,nfet 0
or XDP
#give diff nselect priority
and-not XDN
or TPS
shrink 10
grow 10
grow 10
shrink 10
#final nselect
templayer FSN
bloat-or ndiff,anres,rnd,nfet,nsd,nwsd,ndc/a,nsc/a,nwsc/a,nfet * 20 pdiff,apres,rpd,pdc/a,psd,psc/a,pfet 0
and-not nwr
or XDN
#never conflict with final pselect
and-not FSP
#drawn select always goes
or TNS
shrink 10
grow 10
grow 10
shrink 10
layer CSN FSN
calma 45 0
layer CSP FSP
calma 44 0
layer CAA diff,ndiff,anres,rnd,nfet,nsd,nwsd,pdiff,apres,rpd,pfet,psd,ndc/a,nsc/a,nwsc/a,pdc/a,psc/a,pfet,pfet,fet
labels diff,ndiff,anres,rnd,nfet,nsd,nwsd,pdiff,apres,rpd,pfet,psd,ndc/a,nsc/a,nwsc/a,pdc/a,psc/a,pfet,pfet,fet
calma 43 0
layer CCA nwsc/m1
squares 20 20 30
calma 48 0
layer CCA ndc/m1,nsc/m1
squares 10 20 30
calma 48 0
layer CCA pdc/m1,psc/m1
squares 10 20 30
calma 48 0
layer CPG poly,pp,pn,pres,rp,nfet,pfet,fet,pc/a,ppc/a,pnc/a
labels poly,pp,pn,pres,rp,nfet,pfet,fet,pc/a,ppc/a,pnc/a
calma 46 0
layer CCP pc/m1,ppc/m1,pnc/m1
squares 10 20 30
calma 47 0
layer CCC gc
squares 0 20 30
calma 25 0
layer CV1 m2c/m1
squares 10 20 30
calma 50 0
layer CV1 gv1
squares 0 20 30
calma 50 0
layer CV2 m3c/m2
squares 10 20 30
calma 61 0
layer CV2 gv2
squares 0 20 30
calma 61 0
layer CV3 m4c/m3
squares 10 20 30
calma 30 0
layer CV3 gv3
squares 0 20 30
calma 30 0
layer CV4 m5c/m4
squares 10 20 30
calma 32 0
layer CV4 gv4
squares 0 20 30
calma 32 0
layer CV5 m6c/m5
squares 10 30 40
calma 36 0
layer CV5 gv5
squares 0 30 40
calma 36 0
layer CV5 mic/mi
squares 30 30 200
calma 36 0
layer CV5 gvi
squares 0 30 200
calma 36 0
templayer XPAD1 pad
shrink 60
templayer XPAD2 XPAD1
shrink 60
layer CM6 pad
labels pad
calma 37 0
layer CV5 XPAD2
squares 10 30 90
calma 36 0
layer CM5 pad
labels pad
calma 33 0
layer CV4 XPAD2
squares 80 20 100
calma 32 0
layer CM4 pad
labels pad
calma 31 0
layer CV3 XPAD2
squares 20 20 100
calma 30 0
layer CM3 pad
labels pad
calma 62 0
layer CV2 XPAD2
squares 80 20 100
calma 61 0
layer CM2 pad
labels pad
calma 51 0
layer CV1 XPAD2
squares 20 20 100
calma 50 0
layer CM1 pad
calma 49 0
layer CM1 m1,rm1,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2c/m1
labels m1,rm1,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2c/m1
calma 49 0
layer CM2 m2,rm2,m2c/m2,m3c/m2,m3c/m2
labels m2,rm2,m2c/m2,m3c/m2,m3c/m2
calma 51 0
layer CMFP m1p
labels m1p
calma 81 0
layer CMSP m2p
labels m2p
calma 82 0
layer 100 fp
labels fp
calma 100 0
layer 101 fm1
labels fm1
calma 101 0
layer 102 fm2
labels fm2
calma 102 0
layer 103 fm3
labels fm3
calma 103 0
layer 104 fm4
labels fm4
calma 104 0
layer 105 fm5
labels fm5
calma 105 0
layer 106 fm6
labels fm6
calma 106 0
layer 109 fa
or fb
squares 0 200 40
labels fa
calma 109 0
layer 119 fn
calma 119 0
layer 110 fapm
labels fapm
calma 110 0
# layer CPG fp
layer CPG fp,fapm
squares 0 200 40
labels fp
calma 46 0
# layer CM1 fm1
layer CM1 fm1,fapm
squares 0 200 40
labels fm1
calma 49 0
# layer CM2 fm2
layer CM2 fm2,fapm
squares 0 200 40
labels fm2
calma 51 0
# layer CM3 fm3
layer CM3 fm3,fapm
squares 0 200 40
labels fm3
calma 62 0
layer CM3 m3,rm3,m3c/m3,m4c/m3,m4c/m3
labels m3,rm3,m3c/m3,m4c/m3,m4c/m3
calma 62 0
layer CMTP m3p
labels m3p
calma 83 0
layer CM4 m4,rm4,m4c/m4,m5c/m4,m5c/m4
labels m4,rm4,m4c/m4,m5c/m4,m5c/m4
calma 31 0
layer CMQP m4p
labels m4p
calma 84 0
# layer CM4 fm4
layer CM4 fm4,fapm
squares 0 200 40
labels fm4
calma 31 0
layer CM5 m5,rm5,m5c/m5,m6c/m5,m6c/m5
labels m5,rm5,m5c/m5,m6c/m5,m6c/m5
calma 33 0
layer CMPP m5p
labels m5p
calma 85 0
# layer CM5 fm5
layer CM5 fm5,fapm
squares 0 200 40
labels fm5
calma 33 0
layer CM6 m6,rm6,m6c/m6,mic/m6
labels m6,rm6,m6c/m6,mic/m6
calma 37 0
layer CM6P m6p
labels m6p
calma 85 0
# layer CM6 fm6
layer CM6 fm6,fapm
squares 0 200 40
labels fm6
calma 37 0
layer CTM mi,mic/mi
labels mi,mic/mi
calma 35 0
layer COG pad
shrink 500
labels pad
calma 52 0
layer COG glass
labels glass
calma 52 0
layer CFI nfi,pfi
labels nfi,pfi
calma 27 0
layer CSB sb,pres,anres,apres
labels sb,pres,anres,apres
calma 29 0
#CRE/CRM
layer CRW rnw,prnw
labels rnw,prnw
calma 65 0
layer CRG rp,prp,pres
labels rp,prp,pres
calma 67 0
layer CRD rnd,rpd,prnd,prpd,anres,apres
labels rnd,rpd,prnd,prpd,anres,apres
calma 66 0
layer CRE rnw,rp,rnd,rpd,pres,anres,apres
labels rnw,rp,rnd,rpd,pres,anres,apres
calma 64 0
layer CRF rm1,prm1
labels rm1,prm1
calma 71 0
layer CRS rm2,prm2
labels rm2,prm2
calma 72 0
layer CRT rm3,prm3
labels rm3,prm3
calma 73 0
layer CRQ rm4,prm4
labels rm4,prm4
calma 74 0
layer CRP rm5,prm5
labels rm5,prm5
calma 75 0
layer CR6 rm6,prm6
labels rm6,prm6
calma 76 0
layer CRI rmi,prmi
labels rmi,prmi
calma 79 0
#CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3,rm4,prm4,rm5,prm5,rm6,prm6,rmi,prmi
#CRE/CRM calma 70 0
layer CX comment
labels comment
calma 63 0
layer XP pad,xp
labels pad,xp
calma 26 0
style fill-only
scalefactor 10 5
layer 100 fp
calma 100 0
layer 101 fm1
calma 101 0
layer 102 fm2
calma 102 0
layer 103 fm3
calma 103 0
layer 104 fm4
calma 104 0
layer 105 fm5
calma 105 0
layer 106 fm6
calma 106 0
layer 109 fa
or fb
calma 109 0
layer 119 fn
calma 119 0
style fapm-boxes
# this output style creates fill boxes automatically (to meet minimum
# density requirements for poly and metal layers) 5 microns outside of
# drawn layout IF: 1. you have a flattened version of your chip
# 2. over which you paint the special fill layer 'fa', preferably with
# a size that is a multiple of 20 + n * (20 + 4), 3. set 'cif
# ostype fapm-boxes' and cif out to a file (this actually creates the
# fill boxes on cif/strm layer '110' using the magic 'squares'
# command), 4. cif in the resulting file (which creates boxes on magic
# layer 'fapm') and place this cell onto your chip (and verify absence
# of drc errors or shorts), then 5. cif out under your regular cif out
# style, where the 'fapm' layer creates fill boxes on poly and all
# metal layers.
scalefactor 10 5
templayer CRIT fapm,fn,diff,ndiff,anres,rnd,nfet,nsd,nwsd,pdiff,apres,rpd,pfet,psd,ndc/a,nsc/a,nwsc/a,pdc/a,psc/a,pfet,pfet,fet,poly,pp,pn,pres,rp,nfet,pfet,fet,pc/a,ppc/a,pnc/a
or fm1,m1,rm1,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2c/m1
or fm2,m2,rm2,m2c/m2,m3c/m2,m3c/m2
or fm3,m3,rm3,m3c/m3,m4c/m3,m4c/m3
or fm4,m4,rm4,m4c/m4,m5c/m4,m5c/m4
or fm5,m5,rm5,m5c/m5,m6c/m5,m6c/m5
or fm6,m6,rm6,m6c/m6,mic/m6
or glass,pad
grow 500
and fa
layer 110 fa
squares 0 200 40
and-not CRIT
shrink 95
grow 95
or fapm
labels fapm
calma 110 0
style fapm-stripes
scalefactor 10 5
# this output style creates the above layer 110 as stripes for reduced size
# HOWEVER it requires each 'fa' box to first be an exact multiple as above
# and then *replacing* the left side (1-lambda wide) stripe of each 'fa' box
# to be a 1-lambda wide layer 'fb' box -- else you won't get strips!
templayer CRIT fapm,fn,diff,ndiff,anres,rnd,nfet,nsd,nwsd,pdiff,apres,rpd,pfet,psd,ndc/a,nsc/a,nwsc/a,pdc/a,psc/a,pfet,pfet,fet,poly,pp,pn,pres,rp,nfet,pfet,fet,pc/a,ppc/a,pnc/a
or fm1,m1,rm1,ndc/m1,nsc/m1,nwsc/m1,pdc/m1,psc/m1,pc/m1,ppc/m1,pnc/m1,m2c/m1
or fm2,m2,rm2,m2c/m2,m3c/m2,m3c/m2
or fm3,m3,rm3,m3c/m3,m4c/m3,m4c/m3
or fm4,m4,rm4,m4c/m4,m5c/m4,m5c/m4
or fm5,m5,rm5,m5c/m5,m6c/m5,m6c/m5
or fm6,m6,rm6,m6c/m6,mic/m6
or glass,pad
grow 500
and fa
templayer FB fa
or fb
squares 0 200 40
and-not CRIT
layer 110 fa
squares 0 200 40
and-not CRIT
or FB
shrink 95
grow 95
or fapm
labels fapm
calma 110 0
style lambda=0.10(cp)
scalefactor 10 5
layer CWN nwell,rnw,nwr,nwsd,nwsc
bloat-or pdiff,apres,rpd,pdc/a,pfet * 60
bloat-or nsd,nsc/a * 30
bloat-or nfi * 40
grow 30
shrink 30
labels nwell,rnw,nwr,nwsd,nwsc
calma 42 0
layer CWNR nwsd,nwsc,nwr
grow 140
calma 91 0
layer CWND nwr
labels nwr
calma 92 0
layer CAA nwsd,nwsc,nwr
grow 110
labels nwsd,nwsc
calma 43 0
layer CSN
bloat-or nwsd,nwsc * 80 nwr 0
calma 43 0
templayer TNWR
bloat-or nwr * 110 nwsd,nwsc 50
templayer TCSB nwsd,nwsc
grow 30
and-not TNWR
layer CSB nwsd,nwsc,nwr
grow 140
and-not TCSB
calma 29 0
layer CRNW pnwr
labels pnwr
calma 93 0
layer CWP pwell
bloat-or ndiff,anres,rnd,ndc/a,nfet * 60
bloat-or psd,psc/a * 30
bloat-or pfi * 40
grow 30
shrink 30
and-not CWN
labels pwell
calma 41 0
templayer TNS ns
templayer TPS ps
#we give priority to selects autogenerated around diffusions (vrs. ohmics)
#XDP = (pdiff*20) Or ps
#XDN = (ndiff*20) Or ns
#FSP = ((pdiff*20,psc*20) Or XDP And-Not XDN Or ps shrink-grow
#FSN = ((ndiff*20,nsc*20) Or XDN And-Not FDP Or ns shrink-grow
#CSN = FSN
#CSP = FSP
#diffusion auto-nselect (will have priority)
templayer XDN
bloat-or ndiff,anres,rnd,ndc/a * 20 psd,psc/a 0
bloat-or pn * 10 pp 0
or TNS
#diffusion auto-pselect (will have priority)
templayer XDP
bloat-or pdiff,apres,rpd,pdc/a * 20 nsd,nsc/a 0
bloat-or pp * 10 pn 0
or TPS
#final pselect
templayer FSP