From 26146b6838881f0d5a42dddba9399bc0489607ff Mon Sep 17 00:00:00 2001 From: mrg Date: Sun, 26 May 2019 22:28:16 -0700 Subject: [PATCH] Fix SCN3ME_SUBM stuff. Update cells to be DRC clean with rule 5.5.b Allow magic for FreePDK45 but not debugged. Revert to older Magic tech file for SCN3ME_SUBM --- compiler/verify/__init__.py | 3 - .../scn3me_subm/gds_lib/cell_1rw_1r.gds | Bin 6458 -> 6394 bytes technology/scn3me_subm/gds_lib/cell_1w_1r.gds | Bin 6454 -> 6390 bytes technology/scn3me_subm/gds_lib/cell_6t.gds | Bin 5916 -> 5916 bytes technology/scn3me_subm/gds_lib/dff.gds | Bin 16622 -> 16622 bytes .../gds_lib/incorrect/cell_1rw_1r.gds | Bin 6330 -> 0 bytes .../gds_lib/incorrect/cell_1w_1r.gds | Bin 8192 -> 0 bytes .../gds_lib/incorrect/replica_cell_1rw_1r.gds | Bin 6282 -> 0 bytes .../gds_lib/incorrect/replica_cell_1w_1r.gds | Bin 8192 -> 0 bytes .../gds_lib/replica_cell_1rw_1r.gds | Bin 6410 -> 6346 bytes .../gds_lib/replica_cell_1w_1r.gds | Bin 6406 -> 6342 bytes .../scn3me_subm/gds_lib/replica_cell_6t.gds | Bin 6060 -> 6060 bytes technology/scn3me_subm/gds_lib/sense_amp.gds | Bin 8312 -> 8312 bytes technology/scn3me_subm/gds_lib/tri_gate.gds | Bin 4576 -> 4576 bytes .../scn3me_subm/gds_lib/write_driver.gds | Bin 11804 -> 11804 bytes .../scn3me_subm/mag_lib/cell_1rw_1r.mag | 56 +- technology/scn3me_subm/mag_lib/cell_1w_1r.mag | 56 +- .../mag_lib/replica_cell_1rw_1r.mag | 56 +- .../mag_lib/replica_cell_1w_1r.mag | 56 +- technology/scn3me_subm/mag_lib/setup.tcl | 10 +- technology/scn3me_subm/sp_lib/cell_1rw_1r.sp | 20 +- technology/scn3me_subm/sp_lib/cell_1w_1r.sp | 20 +- .../scn3me_subm/sp_lib/replica_cell_1rw_1r.sp | 20 +- .../scn3me_subm/sp_lib/replica_cell_1w_1r.sp | 20 +- .../scn3me_subm/tech/SCN3ME_SUBM.30.tech | 1555 ++++------------- technology/scn4m_subm/tech/SCN4M_SUBM.20.tech | 72 +- technology/scn4m_subm/tech/tech.py | 4 +- 27 files changed, 515 insertions(+), 1433 deletions(-) delete mode 100644 technology/scn3me_subm/gds_lib/incorrect/cell_1rw_1r.gds delete mode 100644 technology/scn3me_subm/gds_lib/incorrect/cell_1w_1r.gds delete mode 100644 technology/scn3me_subm/gds_lib/incorrect/replica_cell_1rw_1r.gds delete mode 100644 technology/scn3me_subm/gds_lib/incorrect/replica_cell_1w_1r.gds diff --git a/compiler/verify/__init__.py b/compiler/verify/__init__.py index 04fa9746..c7bec114 100644 --- a/compiler/verify/__init__.py +++ b/compiler/verify/__init__.py @@ -33,9 +33,6 @@ else: OPTS.lvs_exe = get_tool("LVS", ["calibre","assura","netgen"], OPTS.lvs_name) OPTS.pex_exe = get_tool("PEX", ["calibre","magic"], OPTS.pex_name) -if OPTS.check_lvsdrc and OPTS.tech_name == "freepdk45": - debug.check(OPTS.drc_exe[0]!="magic","Magic does not support FreePDK45 for DRC.") - if OPTS.drc_exe == None: from .none import run_drc,print_drc_stats elif "calibre"==OPTS.drc_exe[0]: diff --git a/technology/scn3me_subm/gds_lib/cell_1rw_1r.gds b/technology/scn3me_subm/gds_lib/cell_1rw_1r.gds index f9cec56965719c38ebb10025fb5ffa5cf8f57f68..a4fea073f7794ef11cbd2daa04f721b08f919b4f 100644 GIT binary patch delta 428 zcmZXOy-EW?6ot=hCUG4i?go==f>;a^P{SrJDbs0TD#1TcL?mo&scp&>X~MjLMG6ZM zrV;T0ti&P@5G+zyr_#o`4C59Sm+x{o=brnLeD6vW;30=~=HU)`)KS4Q;=f&>HI}XL zzu2G1Ee;$$0ZE$iJOD_y)Z6Te$(>8!$OqcRjAzdP>6ZGz+wf#_2po5Sc$V>W1dwj2 zzxZcPQr~LV_7Xdd1z+I4971s%24V6 delta 410 zcmexmxXVb1fsKKQftf*uk%^(4ft5juL6CtFh+%9d27`%8`hu8(Nz0U^zA!NOZ(v|h z2|>`20t^fwaR|Lxi!qK-N!EvfA&7&4LGcfQ4%@-N01}7Ln^!T(F-`8^HQxN2!+lRXR!Ts;g7CVMukaV}z<%)u=J7Sri~h;b*es<8tN1*zi(8U~|1uP`ux#9=g0 z|2lyvMzC4~9tH+}8wLg#4blTM14J9}OnxUgOUZZw#5fBF1Pw9{Bo3h`X9=Z=fuunu z!IXj6K--=Ponzqu8pg)U#9%*hj{;vv0s|O8=*g?Zr%j$9;XIjJf_JimgbpWAm_w4S SEG1>KuY^7uI|Bm?3j+WIVomY@ diff --git a/technology/scn3me_subm/gds_lib/cell_1w_1r.gds b/technology/scn3me_subm/gds_lib/cell_1w_1r.gds index b10f2726c7b71f099531797c8e464ad569b30c46..382018a72c5508ba11ee26a0f7b90ab724a76510 100644 GIT binary patch delta 428 zcmZXOy-EW?6ot=hHgOyx?gk8#ASzQVsBw);N*};fg1;ytLADTU(bmEug^kP`1WA!f z7!V6fOR>rW$QC|=wR0K9Ei5kI<#5hD_a*z;Qm7$71&b`eEvjgviCLt7yTIn7+KB&) zgD15b0=v&ZmX|z<0MZ>z!p@mmKLhqS(5;s|dId;#G~-|?P@N&L-viRGl7|lf>5k?* zEGmln=C@rhvG)cD>+{TVJ>jV!8_8L23O-^9)ssdxPufZMw9zZ!qSR`mBXLnp=nUDY z&9gss=RLc1vlg8){T|=x`^HYwpCpopa{Z|(8lRz-Qfe-*^@r@}l~$xL<*{CtbL|BQ T91Or)wVT|28pd{J?1cCQr~yu% delta 417 zcmexnxXnn3fsKKQftf*uk%^(4ft5juL6CtFh+%9d27`%8x`LR32}_iuzA!NOZ(v|h z2|>`20t^fwaR|LxjWLcmaHQxN4A%nm~C0%6h#;7R{0Jks){Qv*} diff --git a/technology/scn3me_subm/gds_lib/incorrect/cell_1rw_1r.gds b/technology/scn3me_subm/gds_lib/incorrect/cell_1rw_1r.gds deleted file mode 100644 index 2d12b8eea9b4107adacb23f749aeeec1f17ef784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6330 zcmbW5J&aXF7=~Z==dyuySr8Bm3jPZ$unTJdC4x%)i5Q7)lo%6@uF+y+3^A;Qg@uJC z78VvJT3DFaSWsAOVL@Sxg@uKMg@px$g$0F$g@xb4oHu9g#czn73mYDOEhTeoXflbX^dZPPlwTh5gDX6Utlt{y+06IV)n^U<@VEi?4gPoA6ulQz-K&};wx zIzD}T`l58(-#wRJme9>8PyILkAwB$~wBz%hkNhQ}n^B(niG!c`CO&kt<-hyu;@kgX zPkiWR%TGU9yZBA|;c<24Y5zBTRAMcD+mp7?&FD+&r+vmwU6a0}o1v$E;!v0PCUcK& zhMxM#Gj)k=ZaPu&Z-!p`=j-)z>pRlfU!^@i^?Y_wLN}v4^>190?)gQUneDl6UP3pc zJoRteQG7SO)e|4O+42*c4|UD@cUPXqUpQ8LM?UU}AKi>LQa^dR>%EdclbGmc=&7GP zF;?Yw|d1XUbFHG`|&kVikXWYazX$QYKGX6vL z{YQ*rr%Jxe`#&wQ&Cu)kL;mT@()_fDj{kq`|3mp>oaCDEo6G^a8G0I@apGg#CO&j?#J^ClKgGrS4`+Xq z_Z}{D?aG^e`c8b4cHAxu zJ@s?XvrpnR=|8#|dg|vLjlB!MNjvCfYyR=@p{~ig;kOyT)A;n0*!2f5x*27uf9zbD zYxWD~9MTrL8G7m`zxY_cCcZB3SK0FW{KovTXF~RZ#`$gN{^6aMSoGVZFX(3IY5%!T z@N)l{^dH>}J@qqYKGZeq-(7j?XWyj`{~ek5(aq3PKl4o9M$cd9fdsy^p$l_pS}LknZK?)^)tWtI4_%?cQf?V&pdN6|0exLH$zYT zoVmGJza~C(GxXYjvYtOYT+F}uOgH~#=vV#GCI0`8`+qzCe^2xOH|LHge%92^!RpHV zb?QZXQSZX?a-$w+u8E7Ky@l)4i+6-*@AWrF+Kcts_b=Mw|J|tf%4q+F>hZqedLwa% X>hW&S)jQv+$GeZ~IWOyDJQMl{QEIs5 diff --git a/technology/scn3me_subm/gds_lib/incorrect/cell_1w_1r.gds b/technology/scn3me_subm/gds_lib/incorrect/cell_1w_1r.gds deleted file mode 100644 index 080a29e3340ca246cceb29908585c6eb92868b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI0Ka3Ss6o(IQcONgXF3W9ocjjP&1z}hB(vY<%>Cxv zduHyPnP+WlS=;7TwQR=L+LW!aZFaY9unFtfI-9ixn{2h0&%gT8+x@r9HjYg^a`dAE zPyX=rjYG#T@B8xe=a+15B6g?R?N`qC`{#NW&-E_Yc*m@LTg!G?d#Yt-^V4Jg*S80M zOMLFS*^$T1M8%!s>+NrUXVXu1IuAY`%(mR$o%?s3G&^<444!$>?5;m+D((#Z4L8gl z{mBd-`@?L@7c~`khCX>|2l2@-DqiyM`zHAiZ}$r|@vGxue)>(VG!A?`sJJuq*L<9E zK%B+zYLdG;9{S{E%#ik+LsZ-u`kWsZZoQfEi;6o#pSt71b%#@5M8%!C-_7rzJKr@s zea#F$vuL*cYE8wRp}+RB+5Nwm!ChUmsp*=EJ465WEy;)Yo8PR7UmXv9+Gxkmcg3Bd z-#eImh`axjn)uc6(5G%Y-cR+TJ@pe6cZNQ7V~mioQ$JC0XXulE)A5v_xl4XgacAf= zKJq~FGJa9!Si;6pQe?A{SZ4UpQ&T-;&$}cMJ41MZHZpgXlyQsJ`_xI-cXMarhEF|yT z_L|(w)$!23=K-^azc+*U%vn)!XXsO7Y6fYKFDmW~eeSWnzovVT{?1%Ud5~IG$3vg`;Hi#`gML88OZk~A)Le6hyv!k}xHHU8|G3_e_VS?O&d{gdw9_~^ z2mOYMmwc`}?I72S>nAE+^5;KH`5<-6cluEs5Btw?u9MD#qg`=l(Pymq)SY!)RNPtg z87DsNRXeD7WBmK_`A4pUODX3=pQSpAiaYcCL;mD-v+krBTv$%;Frwnl(5KI|gLtgt zqT(f=Hrny>UGb97yO!R)m^0K&RNNW%pY@t{5RaUq;tju-*WY~OJ)e#Df8KdT#T)Pc zxA>2}H_+|meDX!boq7L<{CxeQJ@Z)P9;%LqKJU1CPj7yIDBgH~AIeXSXb1J(Au3+- zc~_?$Y<_%GRo`wt#e+*uqy>y6ICoX3NTJBvQw9Qd>+uc){)^m%V$&4TnB zM^xMy`aHL}&XD%_qT*8(dNGl25XOVlNIv)De zopun9cW+T~XXrPdpIkrIRLGiE9S?oJ@yHFyP5(v3ouSXX(Hcg-`DPUrcZNP=)Q*?$ zikHUEdPh5m%R8f}c**CwQzxkBo~XDp>_2&_6Qpi@|BH&3>Sw-Ddp7FD+z}ObhWYWh z$JkbPk}oRm9QfWvet+`yZxg>iwKuQg?^ga!@>>+&dr$mqo!R!qe%Ds+Jl(;0XL)&r z4$r6YODRw9UpW4Z_dKt?p*%iZ#UijL&oL(^CiiaSGp=XmlV9&<^=ua1X4 z&uhNrA!`upkEpma^#8-}2}AW`+|(FSd&Vy+?hNxYKH5P%#xE+~@b~BUUpD6k?@`P} z-lrg2bv(~MO8=yQ!&Lm(dOv8cE+^k=T5K0-Z5MEYJG4}I=Y+G#!2 zcLh}38TzcFY>~MXoq2rv`1*CT$Ns4~_nsNL=;fjRp})+Y|JiKv`G(8ZFUezJD)i}XX|s>;LuulhR0n*E_BZJ~?am(Wl9jGek7 zeMc8v5B*tZr%ufAow(XaiZ_b*bi(Vf3 zS1*}8{hQhNM9m%3X6T}qhyIO|$@lR2n)uMglAqXos4M2*tMV}Z%z@qS5FhF9df+J&wc{fwRcLL~3_ zMAwUc#!XC-cJPa>@$bohf5bR&JmpI~bScFaUC-k;{A0JxrpL@UE5*I@X6T~pp`SkD zW4{pbp^GIy9zN6+^Y2x87++^Rx#KPX`7NP~u7`f^*!YMe;zJi({=Iqr8TWs@KP>aJ zZ!?dg_IeOiU!=W$)bB9t`H-^!U35Jkf5U%pn0)M&_#r-YvE=8@M&3AkMe>F& zmh!i~n|$0K@k4y*V#&`w%~{KSC+glHx*m@If1Lk~{4q{)&G<#;09|xFjL$gnF>Vnb zy4dp1}J~V)Bb82gxtGp7+1u*ZG;BceH~pw)WqKpFGib z?rI|MJ?NtAVSLsMKJq8xLl;Ya;;`mfD`-$-my4)@QbvAE|%sG4tz_enkA}qU)ibc_we|`x82Otja?_amZW# z{{!-dE|&6V{*Y^aD!E-B&D2-cJ$=^tM`!-3^3c!x;^V$6YTiZHLqGG(!~Bc% z8(nlg^mAwCVf~8u&_&mC|FL}j@bHj3@eQ9t9?`$v^Lv;0|F!@AH}U`LG5&wez2TK# zt-raqIGlb!J#WwJU6`LQ)Z@<7y`I{ec|bkC<9mA_e$r~s*Js^7Z;SuWdc66=H!hrCy0FskFZC`h^;T`XZC2dYvb|PJwalzD zJ?4LXd*JuP7p|L~c+yN%+&RA4{`L3N{bZ-};N!t;%l&=1f5&OFXD*w;voD+7^>;IFx&NWMa7+=zwwIMeZQK)y57UwL;v>e$%pvcE>^@ZkB2^O zwBzTy;?B_T9Zf#OJ^V>U{PK9{Q@4BGPxYfc^%E6$hCX#;jF7QYKT&aK=#zi;WXjLn zCBLY+GxQlBc_4Wizo>Xqe%dVh5(}AkxT50DFhBjL9mJ#mqT)?HwWb}!;~I*JH~HkH z_K@0>UsT+g_kVvrf0(OJpG$N1c|XtHXU#;#ouS`eNDkcpt=W;S6**UVJoGnzYPRz$ zGe~>RAu8?+ea?>ySwqM#D(=kvPCkCx9RDMoaNL26kZ4}I!`r#dnY`T-Sh%FkS(=9)9)We!2bone0Z$MuG^mj@Mh zhCcnKoyNgA=r>fn$>+M$4syM?exl+{e&@rK4^p>$ryu3TzAI_W$(+7)*;`ivEy zy0eapiaQ&9#)(gR)eb6N8~?$4{*mkGV#@j8XQ_^&;?6w(kUx3dtUGB24=ty67*TO& z=+kG~K|I!RQSm09Hrny>UGXNLcP+hpF=wcmsJJuiKkGH^ARakI#cO^qufO@mdp;ZQ z|Ge{xir3!%Z}OjbZ=l=hPVz;?oq7L<{CxeQJ@Z)P9x9KAKJU1CPp^M}C|-MiAIeXS zXb0=x4~jSWqS#UsT)~`rP+ggXlNkoTB2+&}WR=@$y~q zrt!00(GKGB&L=9~Ox-^7Q_LzBE{XW%@zCda z%eOdW4PyNf6?caI|M)#%sD6x_8bfN&_(jE?VSdI(JBY{lMa66W;r#x~=G@>th`Gr7 z5M(Ql=lO^HY|aln)&hLURvr(1t`Tbp#A7`c6?caI%+=IKsON}C-^=5n&pk>zt*81f zfQmaqpLLWC(r?yNQE_MJ^Ulu(@pvAHiaQ6sr(pf?`rmpz^fij#27JwVrM@194&M=S zYHM5Q@XlX4t7~=m#*xzAc$SqWqxzYWA*5N)!Dfq@IC4n`ZLOy0+##|2Ub5;jWN{EcG~qZ-J1 zkQhiAj0Ukm;xHPhwT=s-6=W+=>o%?=RyB|@AY~xiV6^8Ii19GmfM>IvfE4588G;Ry zBZNG}U`B#ykQ$Ia&nug^37un^d_=rw@&XB+$zLP{CW}ajOb(E6o_t!IS4vcZfgvP; UfkTq5ECuLN7C|6p2Vxcm0H7&Q3jhEB delta 410 zcmX?Q*kz=|z{bGDz|0`S$iz_2z{()SAPD61Ah8W5Dwzvn3TCZSlKR5H;J<-^K_vu1 zM+z`7fW#s6W-G=xMkQGv28JLG1_s4H2s&&B0|Q7LLT}#1B*!#)2CwmEZq|#;lVvys zxJ>piFmUxSFqrJwY{t2Wak2!r2v|&~10u$q#Hz*)G!&$c8)z7e_PoNt01}7MK>hm! zq!__!4R{zB_-z;%U^GY%%nT51z%zND;4CHM2@vBf91t|fIFLAmo@^zQCI*rQnFLb? zVgqg4CUlO4185i diff --git a/technology/scn3me_subm/gds_lib/replica_cell_1w_1r.gds b/technology/scn3me_subm/gds_lib/replica_cell_1w_1r.gds index bab19446192c461168c38b42f083fe93ddd05db9..5d25a34fc916518a14c51f39bb09970b770e4612 100644 GIT binary patch delta 428 zcmZoOI%cTEz{bGDz|0`S$iz_2z{()SAjZH2BoS==iAtt|n1UH=lr&iw82mRdFc_sE z=tuzu29P*}-fYGg$Ec(o!@v;4!N6d^gP_B9Fff3`A@t^LOma+0IvorQ!6pn0dJhnE zXb%GeNE||M{>Ji%SqWqxzYWA*5N)!Dfq@IC4n`ZLOy0$z#|2Ub5;jWN{E1@`qZ-J1 zkQhiAj0Ukm;xHPhwTcU(6=W+=>n5%wRyB|@AY~xiV6^8Ii19GmfM>InfE458DS{1? zLxeoUU`B#ykQ$Ia&nufZ37un^{6bt}@(uBl$#W!hCV!9+m~0^tKKZ>kuau|+14Bpx U1BWDASqjjlEP_DH4#X@B0FC%iyZ`_I delta 417 zcmX?R*k+`}z{bGDz|0`S$iz_2z{()SAPD61Ah8W5Dwzsm3TCWPlKR5H;J<-^K_vu1 zM+z`7fW#s6W;4b(MkQGv28JLG1_s4H2s&&B0|Q7LLT}#2B*!#)3a{~IcGio`lO;F> zxJ>piFmUxSFqrJwY{a>Uak2=v2v|&~10u$q#Hz*)G!&$c8)z7e_PoNt01}7MK>fP} zq!__!4R{zB_-z;%U^GY%%nT51z%zN5;4CHM2@vBf91t|fIFLAmo@^$RCI*rQnFLb? zVgqg4By^62185ia*TxY delta 37 icmZ3Zzeaz8ICmKXCj$!u9|I!;|3oEAWbVc^H*o-jf(8}< diff --git a/technology/scn3me_subm/gds_lib/sense_amp.gds b/technology/scn3me_subm/gds_lib/sense_amp.gds index 0fc7eb56b105ae597059d4dca58f1a69987badd0..11081bd361edcfd05f6b8d3a5e7200e12953c4de 100644 GIT binary patch delta 37 icmez2@WWw(ICnV%D}xk+AcFvd+(ac~WbVcU2?YS80S5;F delta 37 icmez2@WWw(ICmKXCj$!u4}&3t(L^O(O diff --git a/technology/scn3me_subm/gds_lib/write_driver.gds b/technology/scn3me_subm/gds_lib/write_driver.gds index fdd3ad883b0f7ba91571eb508c5a78e27876802e..0bef7b7973766b293c75f95a3892e39ed2b0dc5f 100644 GIT binary patch delta 37 icmbOeGbd((ICnV%D}xk+AcFvd+(ac)WbVeKUAh31LI*kk delta 37 icmbOeGbd((ICmKXCj$!u4}%c{=R_q_WbVeKUAh2~vj-#q diff --git a/technology/scn3me_subm/mag_lib/cell_1rw_1r.mag b/technology/scn3me_subm/mag_lib/cell_1rw_1r.mag index e87557e9..6a6fbc86 100644 --- a/technology/scn3me_subm/mag_lib/cell_1rw_1r.mag +++ b/technology/scn3me_subm/mag_lib/cell_1rw_1r.mag @@ -1,6 +1,6 @@ magic tech scmos -timestamp 1558915277 +timestamp 1558933786 << nwell >> rect 0 48 54 77 << pwell >> @@ -22,8 +22,10 @@ rect 13 34 14 38 rect 16 34 17 38 rect 21 34 22 38 rect 17 30 22 34 -rect 24 30 25 38 -rect 29 30 30 38 +rect 24 36 30 38 +rect 24 32 25 36 +rect 29 32 30 36 +rect 24 30 30 32 rect 32 34 33 38 rect 37 34 38 38 rect 40 34 41 38 @@ -31,8 +33,10 @@ rect 32 30 37 34 rect 9 21 14 23 rect 13 17 14 21 rect 16 17 22 23 -rect 24 17 25 23 -rect 29 17 30 23 +rect 24 22 30 23 +rect 24 18 25 22 +rect 29 18 30 22 +rect 24 17 30 18 rect 32 17 38 23 rect 40 21 45 23 rect 40 17 41 21 @@ -44,11 +48,11 @@ rect 32 56 33 59 << ndcontact >> rect 9 34 13 38 rect 17 34 21 38 -rect 25 30 29 38 +rect 25 32 29 36 rect 33 34 37 38 rect 41 34 45 38 rect 9 17 13 21 -rect 25 17 29 23 +rect 25 18 29 22 rect 41 17 45 21 << pdcontact >> rect 17 56 21 60 @@ -57,17 +61,17 @@ rect 33 56 37 60 << psubstratepcontact >> rect 25 9 29 13 << nsubstratencontact >> -rect 25 70 29 74 +rect 37 70 41 74 << polysilicon >> rect 22 59 24 62 rect 30 59 32 62 rect 22 45 24 56 rect 30 53 32 56 -rect 13 41 16 45 +rect 13 41 16 43 rect 14 38 16 41 rect 22 38 24 41 rect 30 38 32 49 -rect 38 41 41 45 +rect 38 41 41 43 rect 38 38 40 41 rect 14 32 16 34 rect 38 32 40 34 @@ -88,26 +92,26 @@ rect 12 24 16 28 rect 38 24 42 28 << metal1 >> rect 0 70 25 74 -rect 29 70 54 74 +rect 29 70 37 74 +rect 41 70 54 74 rect 0 63 54 67 -rect 6 45 10 63 +rect 9 45 13 63 rect 16 56 17 60 rect 37 56 38 60 rect 16 53 20 56 rect 16 49 28 53 -rect 6 41 9 45 rect 16 38 19 49 rect 35 45 38 56 -rect 44 45 48 63 rect 26 41 38 45 -rect 45 41 48 45 +rect 41 45 45 63 rect 35 38 38 41 rect 6 34 9 38 rect 16 34 17 38 +rect 25 36 29 38 rect 37 34 38 38 rect 45 34 48 38 -rect 25 23 29 30 -rect 25 13 29 17 +rect 25 22 29 32 +rect 25 13 29 18 rect 0 9 25 13 rect 29 9 54 13 rect 0 2 16 6 @@ -139,12 +143,14 @@ rect 48 0 52 34 << comment >> rect 0 0 54 72 << labels >> -rlabel metal1 27 4 27 4 1 wl1 -rlabel psubstratepcontact 27 11 27 11 1 gnd -rlabel metal2 4 7 4 7 2 bl0 -rlabel metal2 11 7 11 7 1 bl1 -rlabel metal2 43 7 43 7 1 br1 -rlabel metal2 50 7 50 7 8 br0 -rlabel metal1 19 72 19 72 5 vdd -rlabel metal1 19 65 19 65 1 wl0 +rlabel metal1 27 4 27 4 4 wl1 +rlabel psubstratepcontact 27 11 27 11 4 gnd +rlabel metal2 4 7 4 7 4 bl0 +rlabel metal2 50 7 50 7 4 br0 +rlabel metal1 19 65 19 65 4 wl0 +rlabel metal2 11 7 11 7 4 bl1 +rlabel metal2 43 7 43 7 4 br1 +rlabel metal1 18 72 18 72 1 vdd +<< properties >> +string path 0.000 0.000 243.000 0.000 243.000 324.000 0.000 324.000 0.000 0.000 << end >> diff --git a/technology/scn3me_subm/mag_lib/cell_1w_1r.mag b/technology/scn3me_subm/mag_lib/cell_1w_1r.mag index e87557e9..6a6fbc86 100644 --- a/technology/scn3me_subm/mag_lib/cell_1w_1r.mag +++ b/technology/scn3me_subm/mag_lib/cell_1w_1r.mag @@ -1,6 +1,6 @@ magic tech scmos -timestamp 1558915277 +timestamp 1558933786 << nwell >> rect 0 48 54 77 << pwell >> @@ -22,8 +22,10 @@ rect 13 34 14 38 rect 16 34 17 38 rect 21 34 22 38 rect 17 30 22 34 -rect 24 30 25 38 -rect 29 30 30 38 +rect 24 36 30 38 +rect 24 32 25 36 +rect 29 32 30 36 +rect 24 30 30 32 rect 32 34 33 38 rect 37 34 38 38 rect 40 34 41 38 @@ -31,8 +33,10 @@ rect 32 30 37 34 rect 9 21 14 23 rect 13 17 14 21 rect 16 17 22 23 -rect 24 17 25 23 -rect 29 17 30 23 +rect 24 22 30 23 +rect 24 18 25 22 +rect 29 18 30 22 +rect 24 17 30 18 rect 32 17 38 23 rect 40 21 45 23 rect 40 17 41 21 @@ -44,11 +48,11 @@ rect 32 56 33 59 << ndcontact >> rect 9 34 13 38 rect 17 34 21 38 -rect 25 30 29 38 +rect 25 32 29 36 rect 33 34 37 38 rect 41 34 45 38 rect 9 17 13 21 -rect 25 17 29 23 +rect 25 18 29 22 rect 41 17 45 21 << pdcontact >> rect 17 56 21 60 @@ -57,17 +61,17 @@ rect 33 56 37 60 << psubstratepcontact >> rect 25 9 29 13 << nsubstratencontact >> -rect 25 70 29 74 +rect 37 70 41 74 << polysilicon >> rect 22 59 24 62 rect 30 59 32 62 rect 22 45 24 56 rect 30 53 32 56 -rect 13 41 16 45 +rect 13 41 16 43 rect 14 38 16 41 rect 22 38 24 41 rect 30 38 32 49 -rect 38 41 41 45 +rect 38 41 41 43 rect 38 38 40 41 rect 14 32 16 34 rect 38 32 40 34 @@ -88,26 +92,26 @@ rect 12 24 16 28 rect 38 24 42 28 << metal1 >> rect 0 70 25 74 -rect 29 70 54 74 +rect 29 70 37 74 +rect 41 70 54 74 rect 0 63 54 67 -rect 6 45 10 63 +rect 9 45 13 63 rect 16 56 17 60 rect 37 56 38 60 rect 16 53 20 56 rect 16 49 28 53 -rect 6 41 9 45 rect 16 38 19 49 rect 35 45 38 56 -rect 44 45 48 63 rect 26 41 38 45 -rect 45 41 48 45 +rect 41 45 45 63 rect 35 38 38 41 rect 6 34 9 38 rect 16 34 17 38 +rect 25 36 29 38 rect 37 34 38 38 rect 45 34 48 38 -rect 25 23 29 30 -rect 25 13 29 17 +rect 25 22 29 32 +rect 25 13 29 18 rect 0 9 25 13 rect 29 9 54 13 rect 0 2 16 6 @@ -139,12 +143,14 @@ rect 48 0 52 34 << comment >> rect 0 0 54 72 << labels >> -rlabel metal1 27 4 27 4 1 wl1 -rlabel psubstratepcontact 27 11 27 11 1 gnd -rlabel metal2 4 7 4 7 2 bl0 -rlabel metal2 11 7 11 7 1 bl1 -rlabel metal2 43 7 43 7 1 br1 -rlabel metal2 50 7 50 7 8 br0 -rlabel metal1 19 72 19 72 5 vdd -rlabel metal1 19 65 19 65 1 wl0 +rlabel metal1 27 4 27 4 4 wl1 +rlabel psubstratepcontact 27 11 27 11 4 gnd +rlabel metal2 4 7 4 7 4 bl0 +rlabel metal2 50 7 50 7 4 br0 +rlabel metal1 19 65 19 65 4 wl0 +rlabel metal2 11 7 11 7 4 bl1 +rlabel metal2 43 7 43 7 4 br1 +rlabel metal1 18 72 18 72 1 vdd +<< properties >> +string path 0.000 0.000 243.000 0.000 243.000 324.000 0.000 324.000 0.000 0.000 << end >> diff --git a/technology/scn3me_subm/mag_lib/replica_cell_1rw_1r.mag b/technology/scn3me_subm/mag_lib/replica_cell_1rw_1r.mag index 48a3f4c1..a7387b7e 100644 --- a/technology/scn3me_subm/mag_lib/replica_cell_1rw_1r.mag +++ b/technology/scn3me_subm/mag_lib/replica_cell_1rw_1r.mag @@ -1,6 +1,6 @@ magic tech scmos -timestamp 1558915332 +timestamp 1558933826 << nwell >> rect 0 48 54 77 << pwell >> @@ -22,8 +22,10 @@ rect 13 34 14 38 rect 16 34 17 38 rect 21 34 22 38 rect 17 30 22 34 -rect 24 30 25 38 -rect 29 30 30 38 +rect 24 36 30 38 +rect 24 32 25 36 +rect 29 32 30 36 +rect 24 30 30 32 rect 32 34 33 38 rect 37 34 38 38 rect 40 34 41 38 @@ -31,8 +33,10 @@ rect 32 30 37 34 rect 9 21 14 23 rect 13 17 14 21 rect 16 17 22 23 -rect 24 17 25 23 -rect 29 17 30 23 +rect 24 22 30 23 +rect 24 18 25 22 +rect 29 18 30 22 +rect 24 17 30 18 rect 32 17 38 23 rect 40 21 45 23 rect 40 17 41 21 @@ -44,11 +48,11 @@ rect 32 56 33 59 << ndcontact >> rect 9 34 13 38 rect 17 34 21 38 -rect 25 30 29 38 +rect 25 32 29 36 rect 33 34 37 38 rect 41 34 45 38 rect 9 17 13 21 -rect 25 17 29 23 +rect 25 18 29 22 rect 41 17 45 21 << pdcontact >> rect 17 56 21 60 @@ -57,17 +61,17 @@ rect 33 56 37 60 << psubstratepcontact >> rect 25 9 29 13 << nsubstratencontact >> -rect 25 70 29 74 +rect 37 70 41 74 << polysilicon >> rect 22 59 24 62 rect 30 59 32 62 rect 22 45 24 56 rect 30 53 32 56 -rect 13 41 16 45 +rect 13 41 16 43 rect 14 38 16 41 rect 22 38 24 41 rect 30 38 32 49 -rect 38 41 41 45 +rect 38 41 41 43 rect 38 38 40 41 rect 14 32 16 34 rect 38 32 40 34 @@ -88,27 +92,27 @@ rect 12 24 16 28 rect 38 24 42 28 << metal1 >> rect 0 70 25 74 -rect 29 70 54 74 +rect 29 70 37 74 +rect 41 70 54 74 rect 0 63 54 67 -rect 6 45 10 63 +rect 9 45 13 63 rect 16 56 17 60 rect 29 56 33 60 rect 37 56 38 60 rect 16 53 20 56 rect 16 49 28 53 -rect 6 41 9 45 rect 16 38 19 49 rect 35 45 38 56 -rect 44 45 48 63 rect 26 41 38 45 -rect 45 41 48 45 +rect 41 45 45 63 rect 35 38 38 41 rect 6 34 9 38 rect 16 34 17 38 +rect 25 36 29 38 rect 37 34 38 38 rect 45 34 48 38 -rect 25 23 29 30 -rect 25 13 29 17 +rect 25 22 29 32 +rect 25 13 29 18 rect 0 9 25 13 rect 29 9 54 13 rect 0 2 16 6 @@ -140,12 +144,14 @@ rect 48 0 52 34 << comment >> rect 0 0 54 72 << labels >> -rlabel metal1 27 4 27 4 1 wl1 -rlabel psubstratepcontact 27 11 27 11 1 gnd -rlabel metal2 4 7 4 7 2 bl0 -rlabel metal2 11 7 11 7 1 bl1 -rlabel metal2 43 7 43 7 1 br1 -rlabel metal2 50 7 50 7 8 br0 -rlabel metal1 19 72 19 72 5 vdd -rlabel metal1 19 65 19 65 1 wl0 +rlabel metal1 27 4 27 4 4 wl1 +rlabel psubstratepcontact 27 11 27 11 4 gnd +rlabel metal2 4 7 4 7 4 bl0 +rlabel metal2 50 7 50 7 4 br0 +rlabel metal1 19 65 19 65 4 wl0 +rlabel metal2 11 7 11 7 4 bl1 +rlabel metal2 43 7 43 7 4 br1 +rlabel metal1 18 72 18 72 1 vdd +<< properties >> +string path 0.000 0.000 243.000 0.000 243.000 324.000 0.000 324.000 0.000 0.000 << end >> diff --git a/technology/scn3me_subm/mag_lib/replica_cell_1w_1r.mag b/technology/scn3me_subm/mag_lib/replica_cell_1w_1r.mag index 48a3f4c1..a7387b7e 100644 --- a/technology/scn3me_subm/mag_lib/replica_cell_1w_1r.mag +++ b/technology/scn3me_subm/mag_lib/replica_cell_1w_1r.mag @@ -1,6 +1,6 @@ magic tech scmos -timestamp 1558915332 +timestamp 1558933826 << nwell >> rect 0 48 54 77 << pwell >> @@ -22,8 +22,10 @@ rect 13 34 14 38 rect 16 34 17 38 rect 21 34 22 38 rect 17 30 22 34 -rect 24 30 25 38 -rect 29 30 30 38 +rect 24 36 30 38 +rect 24 32 25 36 +rect 29 32 30 36 +rect 24 30 30 32 rect 32 34 33 38 rect 37 34 38 38 rect 40 34 41 38 @@ -31,8 +33,10 @@ rect 32 30 37 34 rect 9 21 14 23 rect 13 17 14 21 rect 16 17 22 23 -rect 24 17 25 23 -rect 29 17 30 23 +rect 24 22 30 23 +rect 24 18 25 22 +rect 29 18 30 22 +rect 24 17 30 18 rect 32 17 38 23 rect 40 21 45 23 rect 40 17 41 21 @@ -44,11 +48,11 @@ rect 32 56 33 59 << ndcontact >> rect 9 34 13 38 rect 17 34 21 38 -rect 25 30 29 38 +rect 25 32 29 36 rect 33 34 37 38 rect 41 34 45 38 rect 9 17 13 21 -rect 25 17 29 23 +rect 25 18 29 22 rect 41 17 45 21 << pdcontact >> rect 17 56 21 60 @@ -57,17 +61,17 @@ rect 33 56 37 60 << psubstratepcontact >> rect 25 9 29 13 << nsubstratencontact >> -rect 25 70 29 74 +rect 37 70 41 74 << polysilicon >> rect 22 59 24 62 rect 30 59 32 62 rect 22 45 24 56 rect 30 53 32 56 -rect 13 41 16 45 +rect 13 41 16 43 rect 14 38 16 41 rect 22 38 24 41 rect 30 38 32 49 -rect 38 41 41 45 +rect 38 41 41 43 rect 38 38 40 41 rect 14 32 16 34 rect 38 32 40 34 @@ -88,27 +92,27 @@ rect 12 24 16 28 rect 38 24 42 28 << metal1 >> rect 0 70 25 74 -rect 29 70 54 74 +rect 29 70 37 74 +rect 41 70 54 74 rect 0 63 54 67 -rect 6 45 10 63 +rect 9 45 13 63 rect 16 56 17 60 rect 29 56 33 60 rect 37 56 38 60 rect 16 53 20 56 rect 16 49 28 53 -rect 6 41 9 45 rect 16 38 19 49 rect 35 45 38 56 -rect 44 45 48 63 rect 26 41 38 45 -rect 45 41 48 45 +rect 41 45 45 63 rect 35 38 38 41 rect 6 34 9 38 rect 16 34 17 38 +rect 25 36 29 38 rect 37 34 38 38 rect 45 34 48 38 -rect 25 23 29 30 -rect 25 13 29 17 +rect 25 22 29 32 +rect 25 13 29 18 rect 0 9 25 13 rect 29 9 54 13 rect 0 2 16 6 @@ -140,12 +144,14 @@ rect 48 0 52 34 << comment >> rect 0 0 54 72 << labels >> -rlabel metal1 27 4 27 4 1 wl1 -rlabel psubstratepcontact 27 11 27 11 1 gnd -rlabel metal2 4 7 4 7 2 bl0 -rlabel metal2 11 7 11 7 1 bl1 -rlabel metal2 43 7 43 7 1 br1 -rlabel metal2 50 7 50 7 8 br0 -rlabel metal1 19 72 19 72 5 vdd -rlabel metal1 19 65 19 65 1 wl0 +rlabel metal1 27 4 27 4 4 wl1 +rlabel psubstratepcontact 27 11 27 11 4 gnd +rlabel metal2 4 7 4 7 4 bl0 +rlabel metal2 50 7 50 7 4 br0 +rlabel metal1 19 65 19 65 4 wl0 +rlabel metal2 11 7 11 7 4 bl1 +rlabel metal2 43 7 43 7 4 br1 +rlabel metal1 18 72 18 72 1 vdd +<< properties >> +string path 0.000 0.000 243.000 0.000 243.000 324.000 0.000 324.000 0.000 0.000 << end >> diff --git a/technology/scn3me_subm/mag_lib/setup.tcl b/technology/scn3me_subm/mag_lib/setup.tcl index af55a416..01639fe2 100644 --- a/technology/scn3me_subm/mag_lib/setup.tcl +++ b/technology/scn3me_subm/mag_lib/setup.tcl @@ -4,10 +4,12 @@ equate class {-circuit1 nfet} {-circuit2 n} equate class {-circuit1 pfet} {-circuit2 p} # This circuit has symmetries and needs to be flattened to resolve them # or the banks won't pass -flatten class {-circuit1 precharge_array_1} -flatten class {-circuit1 precharge_array_2} -flatten class {-circuit1 precharge_array_3} -flatten class {-circuit1 precharge_array_4} +flatten class {-circuit1 bitcell_array_0} +flatten class {-circuit1 bitcell_array_1} +#flatten class {-circuit1 precharge_array_0} +#flatten class {-circuit1 precharge_array_1} +#flatten class {-circuit1 precharge_array_2} +#flatten class {-circuit1 precharge_array_3} property {-circuit1 nfet} remove as ad ps pd property {-circuit1 pfet} remove as ad ps pd property {-circuit2 n} remove as ad ps pd diff --git a/technology/scn3me_subm/sp_lib/cell_1rw_1r.sp b/technology/scn3me_subm/sp_lib/cell_1rw_1r.sp index 37f25f75..f58867a7 100644 --- a/technology/scn3me_subm/sp_lib/cell_1rw_1r.sp +++ b/technology/scn3me_subm/sp_lib/cell_1rw_1r.sp @@ -1,14 +1,14 @@ .SUBCKT cell_1rw_1r bl0 br0 bl1 br1 wl0 wl1 vdd gnd -MM9 RA_to_R_right wl1 br1 gnd n w=1.2u l=0.4u -MM8 RA_to_R_right Q gnd gnd n w=1.2u l=0.4u -MM7 RA_to_R_left Q_bar gnd gnd n w=1.2u l=0.4u -MM6 RA_to_R_left wl1 bl1 gnd n w=1.2u l=0.4u -MM5 Q wl0 bl0 gnd n w=0.8u l=0.4u -MM4 Q_bar wl0 br0 gnd n w=0.8u l=0.4u -MM1 Q Q_bar gnd gnd n w=1.6u l=0.4u -MM0 Q_bar Q gnd gnd n w=1.6u l=0.4u -MM3 Q Q_bar vdd vdd p w=0.6u l=0.4u -MM2 Q_bar Q vdd vdd p w=0.6u l=0.4u +MM9 RA_to_R_right wl1 br1 gnd n w=1.8u l=0.6u +MM8 RA_to_R_right Q gnd gnd n w=1.8u l=0.6u +MM7 RA_to_R_left Q_bar gnd gnd n w=1.8u l=0.6u +MM6 RA_to_R_left wl1 bl1 gnd n w=1.8u l=0.6u +MM5 Q wl0 bl0 gnd n w=1.2u l=0.6u +MM4 Q_bar wl0 br0 gnd n w=1.2u l=0.6u +MM1 Q Q_bar gnd gnd n w=2.4u l=0.6u +MM0 Q_bar Q gnd gnd n w=2.4u l=0.6u +MM3 Q Q_bar vdd vdd p w=0.9u l=0.6u +MM2 Q_bar Q vdd vdd p w=0.9u l=0.6u .ENDS diff --git a/technology/scn3me_subm/sp_lib/cell_1w_1r.sp b/technology/scn3me_subm/sp_lib/cell_1w_1r.sp index b40f589a..fe981d6d 100644 --- a/technology/scn3me_subm/sp_lib/cell_1w_1r.sp +++ b/technology/scn3me_subm/sp_lib/cell_1w_1r.sp @@ -1,14 +1,14 @@ .SUBCKT cell_1w_1r bl0 br0 bl1 br1 wl0 wl1 vdd gnd -MM9 RA_to_R_right wl1 br1 gnd n w=1.2u l=0.4u -MM8 RA_to_R_right Q gnd gnd n w=1.2u l=0.4u -MM7 RA_to_R_left Q_bar gnd gnd n w=1.2u l=0.4u -MM6 RA_to_R_left wl1 bl1 gnd n w=1.2u l=0.4u -MM5 Q wl0 bl0 gnd n w=0.8u l=0.4u -MM4 Q_bar wl0 br0 gnd n w=0.8u l=0.4u -MM1 Q Q_bar gnd gnd n w=1.6u l=0.4u -MM0 Q_bar Q gnd gnd n w=1.6u l=0.4u -MM3 Q Q_bar vdd vdd p w=0.6u l=0.4u -MM2 Q_bar Q vdd vdd p w=0.6u l=0.4u +MM9 RA_to_R_right wl1 br1 gnd n w=1.8u l=0.6u +MM8 RA_to_R_right Q gnd gnd n w=1.8u l=0.6u +MM7 RA_to_R_left Q_bar gnd gnd n w=1.8u l=0.6u +MM6 RA_to_R_left wl1 bl1 gnd n w=1.8u l=0.6u +MM5 Q wl0 bl0 gnd n w=1.2u l=0.6u +MM4 Q_bar wl0 br0 gnd n w=1.2u l=0.6u +MM1 Q Q_bar gnd gnd n w=2.4u l=0.6u +MM0 Q_bar Q gnd gnd n w=2.4u l=0.6u +MM3 Q Q_bar vdd vdd p w=0.9u l=0.6u +MM2 Q_bar Q vdd vdd p w=0.9u l=0.6u .ENDS diff --git a/technology/scn3me_subm/sp_lib/replica_cell_1rw_1r.sp b/technology/scn3me_subm/sp_lib/replica_cell_1rw_1r.sp index 94bdb75e..a8654c83 100644 --- a/technology/scn3me_subm/sp_lib/replica_cell_1rw_1r.sp +++ b/technology/scn3me_subm/sp_lib/replica_cell_1rw_1r.sp @@ -1,14 +1,14 @@ .SUBCKT replica_cell_1rw_1r bl0 br0 bl1 br1 wl0 wl1 vdd gnd -MM9 RA_to_R_right wl1 br1 gnd n w=1.2u l=0.4u -MM8 RA_to_R_right Q gnd gnd n w=1.2u l=0.4u -MM7 RA_to_R_left vdd gnd gnd n w=1.2u l=0.4u -MM6 RA_to_R_left wl1 bl1 gnd n w=1.2u l=0.4u -MM5 Q wl0 bl0 gnd n w=0.8u l=0.4u -MM4 vdd wl0 br0 gnd n w=0.8u l=0.4u -MM1 Q vdd gnd gnd n w=1.6u l=0.4u -MM0 vdd Q gnd gnd n w=1.6u l=0.4u -MM3 Q vdd vdd vdd p w=0.6u l=0.4u -MM2 vdd Q vdd vdd p w=0.6u l=0.4u +MM9 RA_to_R_right wl1 br1 gnd n w=1.8u l=0.6u +MM8 RA_to_R_right Q gnd gnd n w=1.8u l=0.6u +MM7 RA_to_R_left vdd gnd gnd n w=1.8u l=0.6u +MM6 RA_to_R_left wl1 bl1 gnd n w=1.8u l=0.6u +MM5 Q wl0 bl0 gnd n w=1.2u l=0.6u +MM4 vdd wl0 br0 gnd n w=1.2u l=0.6u +MM1 Q vdd gnd gnd n w=2.4u l=0.6u +MM0 vdd Q gnd gnd n w=2.4u l=0.6u +MM3 Q vdd vdd vdd p w=0.9u l=0.6u +MM2 vdd Q vdd vdd p w=0.9u l=0.6u .ENDS diff --git a/technology/scn3me_subm/sp_lib/replica_cell_1w_1r.sp b/technology/scn3me_subm/sp_lib/replica_cell_1w_1r.sp index 6c2d3c1b..5b9c9b18 100644 --- a/technology/scn3me_subm/sp_lib/replica_cell_1w_1r.sp +++ b/technology/scn3me_subm/sp_lib/replica_cell_1w_1r.sp @@ -1,14 +1,14 @@ .SUBCKT replica_cell_1w_1r bl0 br0 bl1 br1 wl0 wl1 vdd gnd -MM9 RA_to_R_right wl1 br1 gnd n w=1.2u l=0.4u -MM8 RA_to_R_right Q gnd gnd n w=1.2u l=0.4u -MM7 RA_to_R_left vdd gnd gnd n w=1.2u l=0.4u -MM6 RA_to_R_left wl1 bl1 gnd n w=1.2u l=0.4u -MM5 Q wl0 bl0 gnd n w=0.8u l=0.4u -MM4 vdd wl0 br0 gnd n w=0.8u l=0.4u -MM1 Q vdd gnd gnd n w=1.6u l=0.4u -MM0 vdd Q gnd gnd n w=1.6u l=0.4u -MM3 Q vdd vdd vdd p w=0.6u l=0.4u -MM2 vdd Q vdd vdd p w=0.6u l=0.4u +MM9 RA_to_R_right wl1 br1 gnd n w=1.8u l=0.6u +MM8 RA_to_R_right Q gnd gnd n w=1.8u l=0.6u +MM7 RA_to_R_left vdd gnd gnd n w=1.8u l=0.6u +MM6 RA_to_R_left wl1 bl1 gnd n w=1.8u l=0.6u +MM5 Q wl0 bl0 gnd n w=1.2u l=0.6u +MM4 vdd wl0 br0 gnd n w=1.2u l=0.6u +MM1 Q vdd gnd gnd n w=2.4u l=0.6u +MM0 vdd Q gnd gnd n w=2.4u l=0.6u +MM3 Q vdd vdd vdd p w=0.9u l=0.6u +MM2 vdd Q vdd vdd p w=0.9u l=0.6u .ENDS diff --git a/technology/scn3me_subm/tech/SCN3ME_SUBM.30.tech b/technology/scn3me_subm/tech/SCN3ME_SUBM.30.tech index be511001..bc447205 100644 --- a/technology/scn3me_subm/tech/SCN3ME_SUBM.30.tech +++ b/technology/scn3me_subm/tech/SCN3ME_SUBM.30.tech @@ -1,10 +1,10 @@ tech - format 32 + format 29 scmos end version - version 2002a + version 2001a description "SCMOS: Submit as technology.lambda: SCN3ME_SUBM.30 [to process: AMIc5]" end @@ -34,8 +34,7 @@ types select nselect,ns select pselect,ps cap electrode,poly2,el,p2 - cap electrodecontact,poly2contact,poly2c,p2c,elc - cap p2m12contact,p2m12c + metal1 electrodecontact,poly2contact,poly2c,p2c,elc cap electrodecap,ecap,poly2cap,p2cap,pcap contact genericpoly2contact,gc2 active ntransistor,nfet @@ -104,12 +103,7 @@ contact psc psd metal1 m2c metal1 metal2 m3c metal2 metal3 - stackable pc m2c pm12contact,pm12c - 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 m2c m3c m123contact,m123c + stackable end styles @@ -147,7 +141,6 @@ styles fapm 1 20 21 34 gv1 55 m2contact 20 21 55 - p2m12contact 14 20 21 32 55 metal2 21 rm2 21 48 prm2 48 @@ -218,10 +211,6 @@ compose paint nsc pwell psc paint poly2 poly ecap erase ecap poly poly2 - paint p2c poly2 p2c - paint p2c ecap p2c - paint p2m12c poly2 p2m12c - paint p2m12c ecap p2m12c paint pad m3 pad compose phr poly2 hr paint hr poly2 phr @@ -246,18 +235,15 @@ end connect nwell,nsc/a,nsd nwell,nsc/a,nsd pwell,psc/a,psd pwell,psc/a,psd - m1,fm1,fapm,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 m1,fm1,fapm,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 + m1,fm1,fapm,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 m1,fm1,fapm,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,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 m3,fm3,fapm,m3c/m3 ndiff,ndc/a,pdiff,pdc/a ndiff,ndc/a,pdiff,pdc/a poly,fp,nfet,pfet,fet,fapm,pc/a poly,fp,nfet,pfet,fet,fapm,pc/a + poly2,ecap,p2c poly2,ecap,p2c gc2 poly2,ecap,metal1 - p2c poly2,ecap,m1,fm1,fapm,m2c/m1 - p2m12c poly2,ecap,m1,fm1,fapm,m2c/m1,m2,fm2,fapm,m2c/m2,m3c/m2 - poly2,ecap,p2c,p2m12c poly2,ecap,p2c,p2m12c - gc2 poly2,ecap,m1,fm1,fapm,m2c/m1 gc poly,fp,ndiff,pdiff,nsd,psd,m1,fm1,fapm,m2c/m1 - gv1 m1,fm1,fapm,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2,fm2,fapm,m3c/m2 + gv1 m1,fm1,fapm,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2,fm2,fapm,m3c/m2 gv2 m2,fm2,fapm,m2c/m2,m3c/m2,m3,fm3,fapm pad m1,fm1,m2,fm2,m3,fm3 rm1 prm1 @@ -275,12 +261,8 @@ cifoutput style lambda=0.30(p) scalefactor 30 15 + options calma-permissive-labels - # This is a custom section to add bounding boxes in OpenRAM - layer BB bb - labels bb - calma 63 0 - layer CWN nwell,rnw bloat-or pdiff,rpd,pdc/a,pfet * 180 bloat-or nsd,nsc/a * 90 @@ -377,7 +359,7 @@ style lambda=0.30(p) squares 0 60 90 calma 55 0 - layer CCE p2c,p2m12c + layer CCE p2c squares 30 60 90 calma 55 0 @@ -389,7 +371,7 @@ style lambda=0.30(p) squares 0 60 90 calma 25 0 - layer CV1 m2c/m1,p2m12c + layer CV1 m2c/m1 squares 30 60 90 calma 50 0 @@ -431,12 +413,12 @@ style lambda=0.30(p) layer CM1 pad calma 49 0 - layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c - labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c + layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 + labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 calma 49 0 - layer CM2 m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c - labels m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c + 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 @@ -527,8 +509,8 @@ style lambda=0.30(p) labels hr,phr calma 34 0 - layer CEL poly2,ecap,phr,p2c,p2m12c - labels poly2,ecap,phr,p2c,p2m12c + layer CEL poly2,ecap,phr,p2c + labels poly2,ecap,phr,p2c calma 56 0 #CRE/CRM @@ -559,8 +541,8 @@ style lambda=0.30(p) #CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3 #CRE/CRM calma 70 0 - layer CX comment - labels comment + layer CX comment,bb + labels comment,bb calma 63 0 layer XP pad,xp @@ -606,9 +588,9 @@ style fapm-boxes scalefactor 30 15 - templayer CRIT fapm,fn,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,nsc/a,pdc/a,psc/a,pfet,pfet,fet,poly,rp,nfet,pfet,fet,pc/a,poly2,ecap,phr,p2c,p2m12c - or fm1,m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c - or fm2,m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c + templayer CRIT fapm,fn,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,nsc/a,pdc/a,psc/a,pfet,pfet,fet,poly,rp,nfet,pfet,fet,pc/a,poly2,ecap,phr,p2c + or fm1,m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 + or fm2,m2,rm2,m2c/m2,m3c/m2,m3c/m2 or fm3,m3,rm3,m3c/m3 or glass,pad grow 510 @@ -631,9 +613,9 @@ style fapm-stripes # and then *replacing* the left side (1-lambda wide) stripe of each 'fa' box # to be a 1-lambda wide layer 'fb' box -- else you won't get strips! - templayer CRIT fapm,fn,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,nsc/a,pdc/a,psc/a,pfet,pfet,fet,poly,rp,nfet,pfet,fet,pc/a,poly2,ecap,phr,p2c,p2m12c - or fm1,m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c - or fm2,m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c + templayer CRIT fapm,fn,diff,ndiff,rnd,nfet,nsd,pdiff,rpd,pfet,psd,ndc/a,nsc/a,pdc/a,psc/a,pfet,pfet,fet,poly,rp,nfet,pfet,fet,pc/a,poly2,ecap,phr,p2c + or fm1,m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 + or fm2,m2,rm2,m2c/m2,m3c/m2,m3c/m2 or fm3,m3,rm3,m3c/m3 or glass,pad grow 510 @@ -754,7 +736,7 @@ style lambda=0.30(cp) squares 0 60 90 calma 25 0 - layer CCC p2c,p2m12c + layer CCC p2c squares 30 60 90 calma 25 0 @@ -766,7 +748,7 @@ style lambda=0.30(cp) squares 0 60 90 calma 25 0 - layer CV1 m2c/m1,p2m12c + layer CV1 m2c/m1 squares 30 60 90 calma 50 0 @@ -808,12 +790,12 @@ style lambda=0.30(cp) layer CM1 pad calma 49 0 - layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c - labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c + layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 + labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 calma 49 0 - layer CM2 m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c - labels m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c + 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 @@ -904,8 +886,8 @@ style lambda=0.30(cp) labels hr,phr calma 34 0 - layer CEL poly2,ecap,phr,p2c,p2m12c - labels poly2,ecap,phr,p2c,p2m12c + layer CEL poly2,ecap,phr,p2c + labels poly2,ecap,phr,p2c calma 56 0 #CRE/CRM @@ -936,8 +918,8 @@ style lambda=0.30(cp) #CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3 #CRE/CRM calma 70 0 - layer CX comment - labels comment + layer CX comment,bb + labels comment,bb calma 63 0 layer XP pad,xp @@ -1034,7 +1016,7 @@ style lambda=0.30(c) squares 0 60 90 calma 25 0 - layer CCC p2c,p2m12c + layer CCC p2c squares 30 60 90 calma 25 0 @@ -1046,7 +1028,7 @@ style lambda=0.30(c) squares 0 60 90 calma 25 0 - layer CV1 m2c/m1,p2m12c + layer CV1 m2c/m1 squares 30 60 90 calma 50 0 @@ -1088,12 +1070,12 @@ style lambda=0.30(c) layer CM1 pad calma 49 0 - layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c - labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c + layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 + labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 calma 49 0 - layer CM2 m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c - labels m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c + 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 @@ -1184,8 +1166,8 @@ style lambda=0.30(c) labels hr,phr calma 34 0 - layer CEL poly2,ecap,phr,p2c,p2m12c - labels poly2,ecap,phr,p2c,p2m12c + layer CEL poly2,ecap,phr,p2c + labels poly2,ecap,phr,p2c calma 56 0 #CRE/CRM @@ -1216,8 +1198,8 @@ style lambda=0.30(c) #CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3 #CRE/CRM calma 70 0 - layer CX comment - labels comment + layer CX comment,bb + labels comment,bb calma 63 0 layer XP pad,xp @@ -1314,7 +1296,7 @@ style lambda=0.30() squares 0 60 90 calma 55 0 - layer CCE p2c,p2m12c + layer CCE p2c squares 30 60 90 calma 55 0 @@ -1326,7 +1308,7 @@ style lambda=0.30() squares 0 60 90 calma 25 0 - layer CV1 m2c/m1,p2m12c + layer CV1 m2c/m1 squares 30 60 90 calma 50 0 @@ -1368,12 +1350,12 @@ style lambda=0.30() layer CM1 pad calma 49 0 - layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c - labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1,p2c,p2m12c + layer CM1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 + labels m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 calma 49 0 - layer CM2 m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c - labels m2,rm2,m2c/m2,m3c/m2,m3c/m2,p2m12c + 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 @@ -1464,8 +1446,8 @@ style lambda=0.30() labels hr,phr calma 34 0 - layer CEL poly2,ecap,phr,p2c,p2m12c - labels poly2,ecap,phr,p2c,p2m12c + layer CEL poly2,ecap,phr,p2c + labels poly2,ecap,phr,p2c calma 56 0 #CRE/CRM @@ -1496,8 +1478,8 @@ style lambda=0.30() #CRE/CRM layer CRM rm1,prm1,rm2,prm2,rm3,prm3 #CRE/CRM calma 70 0 - layer CX comment - labels comment + layer CX comment,bb + labels comment,bb calma 63 0 layer XP pad,xp @@ -1514,7 +1496,7 @@ style lambda=0.30(p) # This is a custom section to add bounding boxes in OpenRAM layer bb BB labels BB - calma 63 0 + calma BB 63 0 layer nwell CWN and-not CWNR @@ -1721,7 +1703,6 @@ layer nwell CWN layer ndc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -1735,7 +1716,6 @@ layer nwell CWN layer ndc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -1749,7 +1729,6 @@ layer nwell CWN layer nsc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -1763,7 +1742,6 @@ layer nwell CWN layer nsc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -1777,7 +1755,6 @@ layer nwell CWN layer pdc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -1791,7 +1768,6 @@ layer nwell CWN layer pdc CAA and CSP and CCC - and-not CV1 and-not CTA and-not CPS @@ -1805,7 +1781,6 @@ layer nwell CWN layer psc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -1819,128 +1794,6 @@ layer nwell CWN layer psc CAA and CSP and CCC - and-not CV1 - and-not CWNR - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer ndc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer ndc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer nsc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer nsc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer pdc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer pdc CAA - and CSP - and CCC - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer psc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer psc CAA - and CSP - and CCC - and CV1 - and CV2 and-not CWNR and-not CTA @@ -1971,7 +1824,6 @@ layer nwell CWN calma CRG 67 * layer pc CCP - and-not CV1 and CPG and-not CPC and-not CEL @@ -1983,7 +1835,6 @@ layer nwell CWN calma CCP 47 * layer pc CCC - and-not CV1 and CPG and-not CPC and-not CEL @@ -1994,82 +1845,6 @@ layer nwell CWN shrink 15 calma CCC 25 * - layer pc CCP - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCP 47 * - - layer pc CCC - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - layer gc CCP and-not CPG and-not CPC @@ -2134,11 +1909,6 @@ layer nwell CWN calma CV2 61 * layer m2c CV1 - and-not CV2 - and-not CCC - and-not CCE - and-not CCP - and-not CCA and-not XP grow 30 and CM2 @@ -2147,32 +1917,6 @@ layer nwell CWN shrink 15 calma CV1 50 * - - - layer p2m12c CV1 - and-not CV2 - and CCE - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - - layer p2m12c CV1 - and-not CV2 - and CCC - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - layer m1 CM1 and-not CRM and-not CRF @@ -2219,14 +1963,6 @@ layer nwell CWN labels CMSP calma CMSP 82 * - - - - - - - - layer fp 100 calma 100 100 * @@ -2249,8 +1985,6 @@ layer nwell CWN calma 110 110 * layer m3c CV2 - - and-not CV1 and-not XP grow 30 and CM3 @@ -2259,7 +1993,6 @@ layer nwell CWN shrink 15 calma CV2 61 * - layer m3 CM3 and-not CRM and-not CRT @@ -2329,6 +2062,20 @@ layer nwell CWN and-not CRE calma CRG2 68 * + layer elc CCE + grow 30 + and CM1 + and CEL + labels CM1 + calma CCE 55 * + + layer elc CCC + grow 30 + and CM1 + and CEL + labels CM1 + calma CCC 25 * + layer comment CX labels CX calma CX 63 * @@ -2348,6 +2095,11 @@ layer nwell CWN style lambda=0.30(s) scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -2554,7 +2306,6 @@ style lambda=0.30(s) layer ndc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -2568,7 +2319,6 @@ style lambda=0.30(s) layer ndc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -2582,7 +2332,6 @@ style lambda=0.30(s) layer nsc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -2596,7 +2345,6 @@ style lambda=0.30(s) layer nsc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -2610,7 +2358,6 @@ style lambda=0.30(s) layer pdc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -2624,7 +2371,6 @@ style lambda=0.30(s) layer pdc CAA and CSP and CCC - and-not CV1 and-not CTA and-not CPS @@ -2638,7 +2384,6 @@ style lambda=0.30(s) layer psc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -2652,128 +2397,6 @@ style lambda=0.30(s) layer psc CAA and CSP and CCC - and-not CV1 - and-not CWNR - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer ndc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer ndc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer nsc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer nsc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer pdc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer pdc CAA - and CSP - and CCC - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer psc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer psc CAA - and CSP - and CCC - and CV1 - and CV2 and-not CWNR and-not CTA @@ -2804,7 +2427,6 @@ style lambda=0.30(s) calma CRG 67 * layer pc CCP - and-not CV1 and CPG and-not CPC and-not CEL @@ -2816,7 +2438,6 @@ style lambda=0.30(s) calma CCP 47 * layer pc CCC - and-not CV1 and CPG and-not CPC and-not CEL @@ -2827,82 +2448,6 @@ style lambda=0.30(s) shrink 15 calma CCC 25 * - layer pc CCP - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCP 47 * - - layer pc CCC - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - layer gc CCP and-not CPG and-not CPC @@ -2967,11 +2512,6 @@ style lambda=0.30(s) calma CV2 61 * layer m2c CV1 - and-not CV2 - and-not CCC - and-not CCE - and-not CCP - and-not CCA and-not XP grow 30 and CM2 @@ -2980,32 +2520,6 @@ style lambda=0.30(s) shrink 15 calma CV1 50 * - - - layer p2m12c CV1 - and-not CV2 - and CCE - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - - layer p2m12c CV1 - and-not CV2 - and CCC - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - layer m1 CM1 and-not CRM and-not CRF @@ -3052,14 +2566,6 @@ style lambda=0.30(s) labels CMSP calma CMSP 82 * - - - - - - - - layer fp 100 calma 100 100 * @@ -3082,8 +2588,6 @@ style lambda=0.30(s) calma 110 110 * layer m3c CV2 - - and-not CV1 and-not XP grow 30 and CM3 @@ -3092,7 +2596,6 @@ style lambda=0.30(s) shrink 15 calma CV2 61 * - layer m3 CM3 and-not CRM and-not CRT @@ -3162,6 +2665,20 @@ style lambda=0.30(s) and-not CRE calma CRG2 68 * + layer elc CCE + grow 30 + and CM1 + and CEL + labels CM1 + calma CCE 55 * + + layer elc CCC + grow 30 + and CM1 + and CEL + labels CM1 + calma CCC 25 * + layer comment CX labels CX calma CX 63 * @@ -3181,6 +2698,11 @@ style lambda=0.30(s) style lambda=0.30(ps) scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -3388,7 +2910,6 @@ style lambda=0.30(ps) layer ndc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -3402,7 +2923,6 @@ style lambda=0.30(ps) layer ndc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -3416,7 +2936,6 @@ style lambda=0.30(ps) layer nsc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -3430,7 +2949,6 @@ style lambda=0.30(ps) layer nsc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -3444,7 +2962,6 @@ style lambda=0.30(ps) layer pdc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -3458,7 +2975,6 @@ style lambda=0.30(ps) layer pdc CAA and CSP and CCC - and-not CV1 and-not CTA and-not CPS @@ -3472,7 +2988,6 @@ style lambda=0.30(ps) layer psc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -3486,128 +3001,6 @@ style lambda=0.30(ps) layer psc CAA and CSP and CCC - and-not CV1 - and-not CWNR - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer ndc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer ndc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer nsc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer nsc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer pdc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer pdc CAA - and CSP - and CCC - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer psc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer psc CAA - and CSP - and CCC - and CV1 - and CV2 and-not CWNR and-not CTA @@ -3638,7 +3031,6 @@ style lambda=0.30(ps) calma CRG 67 * layer pc CCP - and-not CV1 and CPG and-not CPC and-not CEL @@ -3650,7 +3042,6 @@ style lambda=0.30(ps) calma CCP 47 * layer pc CCC - and-not CV1 and CPG and-not CPC and-not CEL @@ -3661,82 +3052,6 @@ style lambda=0.30(ps) shrink 15 calma CCC 25 * - layer pc CCP - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCP 47 * - - layer pc CCC - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - layer gc CCP and-not CPG and-not CPC @@ -3801,11 +3116,6 @@ style lambda=0.30(ps) calma CV2 61 * layer m2c CV1 - and-not CV2 - and-not CCC - and-not CCE - and-not CCP - and-not CCA and-not XP grow 30 and CM2 @@ -3814,32 +3124,6 @@ style lambda=0.30(ps) shrink 15 calma CV1 50 * - - - layer p2m12c CV1 - and-not CV2 - and CCE - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - - layer p2m12c CV1 - and-not CV2 - and CCC - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - layer m1 CM1 and-not CRM and-not CRF @@ -3886,14 +3170,6 @@ style lambda=0.30(ps) labels CMSP calma CMSP 82 * - - - - - - - - layer fp 100 calma 100 100 * @@ -3916,8 +3192,6 @@ style lambda=0.30(ps) calma 110 110 * layer m3c CV2 - - and-not CV1 and-not XP grow 30 and CM3 @@ -3926,7 +3200,6 @@ style lambda=0.30(ps) shrink 15 calma CV2 61 * - layer m3 CM3 and-not CRM and-not CRT @@ -3996,6 +3269,20 @@ style lambda=0.30(ps) and-not CRE calma CRG2 68 * + layer elc CCE + grow 30 + and CM1 + and CEL + labels CM1 + calma CCE 55 * + + layer elc CCC + grow 30 + and CM1 + and CEL + labels CM1 + calma CCC 25 * + layer comment CX labels CX calma CX 63 * @@ -4015,6 +3302,11 @@ style lambda=0.30(ps) style lambda=0.30() scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -4219,7 +3511,6 @@ style lambda=0.30() layer ndc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -4233,7 +3524,6 @@ style lambda=0.30() layer ndc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -4247,7 +3537,6 @@ style lambda=0.30() layer nsc CAA and CSN and CCA - and-not CV1 and-not CWNR and-not CTA @@ -4261,7 +3550,6 @@ style lambda=0.30() layer nsc CAA and CSN and CCC - and-not CV1 and-not CWNR and-not CTA @@ -4275,7 +3563,6 @@ style lambda=0.30() layer pdc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -4289,7 +3576,6 @@ style lambda=0.30() layer pdc CAA and CSP and CCC - and-not CV1 and-not CTA and-not CPS @@ -4303,7 +3589,6 @@ style lambda=0.30() layer psc CAA and CSP and CCA - and-not CV1 and-not CTA and-not CPS @@ -4317,128 +3602,6 @@ style lambda=0.30() layer psc CAA and CSP and CCC - and-not CV1 - and-not CWNR - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer ndc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer ndc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer nsc CAA - and CSN - and CCA - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer nsc CAA - and CSN - and CCC - and CV1 - and CV2 - and-not CWNR - and-not CTA - - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer pdc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer pdc CAA - and CSP - and CCC - and CV1 - and CV2 - and-not CTA - - and-not CPS - and CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCC 25 * - - layer psc CAA - and CSP - and CCA - and CV1 - and CV2 - and-not CTA - - and-not CPS - and-not CWN - and CM1 - grow 30 - grow 15 - shrink 15 - calma CCA 48 * - - layer psc CAA - and CSP - and CCC - and CV1 - and CV2 and-not CWNR and-not CTA @@ -4469,7 +3632,6 @@ style lambda=0.30() calma CRG 67 * layer pc CCP - and-not CV1 and CPG and-not CPC and-not CEL @@ -4481,7 +3643,6 @@ style lambda=0.30() calma CCP 47 * layer pc CCC - and-not CV1 and CPG and-not CPC and-not CEL @@ -4492,82 +3653,6 @@ style lambda=0.30() shrink 15 calma CCC 25 * - layer pc CCP - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCP 47 * - - layer pc CCC - and CV1 - and CV2 - and CPG - and-not CPC - and-not CEL - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and-not CV1 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - - layer p2c CCE - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCE 55 * - - layer p2c CCC - and CV1 - and CV2 - and CPG - and CEL - and-not CPC - and-not CAA - grow 30 - and CM1 - grow 15 - shrink 15 - calma CCC 25 * - layer gc CCP and-not CPG and-not CPC @@ -4632,11 +3717,6 @@ style lambda=0.30() calma CV2 61 * layer m2c CV1 - and-not CV2 - and-not CCC - and-not CCE - and-not CCP - and-not CCA and-not XP grow 30 and CM2 @@ -4645,32 +3725,6 @@ style lambda=0.30() shrink 15 calma CV1 50 * - - - layer p2m12c CV1 - and-not CV2 - and CCE - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - - layer p2m12c CV1 - and-not CV2 - and CCC - grow 30 - and CM2 - and CM1 - and CPG - and CEL - grow 15 - shrink 15 - calma CV1 50 * - layer m1 CM1 and-not CRM and-not CRF @@ -4717,14 +3771,6 @@ style lambda=0.30() labels CMSP calma CMSP 82 * - - - - - - - - layer fp 100 calma 100 100 * @@ -4747,8 +3793,6 @@ style lambda=0.30() calma 110 110 * layer m3c CV2 - - and-not CV1 and-not XP grow 30 and CM3 @@ -4757,7 +3801,6 @@ style lambda=0.30() shrink 15 calma CV2 61 * - layer m3 CM3 and-not CRM and-not CRT @@ -4827,6 +3870,20 @@ style lambda=0.30() and-not CRE calma CRG2 68 * + layer elc CCE + grow 30 + and CM1 + and CEL + labels CM1 + calma CCE 55 * + + layer elc CCC + grow 30 + and CM1 + and CEL + labels CM1 + calma CCC 25 * + layer comment CX labels CX calma CX 63 * @@ -4846,6 +3903,11 @@ style lambda=0.30() style lambda=0.30(c) scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -5301,6 +4363,11 @@ style lambda=0.30(c) style lambda=0.30(cs) scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -5758,6 +4825,11 @@ style lambda=0.30(cs) style lambda=0.30(cps) scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -6216,6 +5288,11 @@ style lambda=0.30(cps) style lambda=0.30(cp) scalefactor 30 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -6740,27 +5817,22 @@ drc width pc/m1 4 \ "Poly contact width < 4 (Mosis #5.1)" - width gc 2 \ "GC contact width < 2 (Mosis #6.1)" width ndc/m1 4 \ "Diffusion contact width < 4 (Mosis #6.1)" - width nsc/m1 4 \ "Diffusion contact width < 4 (Mosis #6.1)" - width pdc/m1 4 \ "Diffusion contact width < 4 (Mosis #6.1)" - width psc/m1 4 \ "Diffusion contact width < 4 (Mosis #6.1)" - - width m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 3 \ + width m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 3 \ "Metal1 width < 3 (Mosis #7.1)" width gv1 2 \ @@ -6769,22 +5841,13 @@ drc width m2c/m1 4 \ "Metal2 contact width < 4 (Mosis #8.1)" - - - - - - - width p2m12c 4 \ - "Metal2 contact width < 4 (Mosis #8.1)" - - width p2m12c 4 \ - "stacked p2m12c width < 4 (Mosis #8.1)" - width m2,fm2,rm2,m2c/m2,m3c/m2 3 \ "Metal2 width < 3 (Mosis #9.1)" - width poly2,ecap,phr,p2c,p2m12c,p2c,p2m12c 5 \ + width ecap 8 \ + "Ecap width < 8 (Mosis #11.1)" + + width poly2,ecap,phr 5 \ "Poly2 width < 5 (Mosis #11.1)" width gc2 2 \ @@ -6793,16 +5856,12 @@ drc width p2c 4 \ "Poly2 contact width < 4 (Mosis #13.1)" - width p2m12c 4 \ - "Poly2 contact width < 4 (Mosis #13.1)" - width gv2 2 \ "GV2 via width < 2 (Mosis #14.1)" width m3c/m2 4 \ "Metal3 contact width < 4 (Mosis #14.1)" - width m3,fm3,rm3,m3c/m3,pad 5 \ "Metal3 width < 5 (Mosis #15.1)" @@ -6890,7 +5949,7 @@ drc edge4way nfet,pfet,fet space/active,ndiff,rnd,ndc/a,pdiff,rpd,pdc/a 3 ndiff,rnd,ndc/a,pdiff,rpd,pdc/a,nfet,pfet,fet 0 0 \ "N-Diffusion,P-Diffusion overhang of Transistor < 3 (Mosis #3.4)" active - edge4way poly,fp,rp,pc/a ~(poly,fp,rp,pc/a,nfet,pfet,fet,prp)/active 1 space space 1 \ + edge4way poly,fp,rp,pc/a ~(poly,fp,rp,pc/a,nfet,pfet,fet,prp)/active 1 space/a space/a 1 \ "Poly spacing to Diffusion < 1 (Mosis #3.5)" edge4way nfet ~(nfet)/active 3 ~(pselect)/select ~(nfet)/active 3 \ @@ -6977,12 +6036,9 @@ drc spacing gc gc 3 touching_ok \ "Generic contact spacing < 3 (Mosis #5.3)" - edge4way ~(gc)/contact gc 1 ~(ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1)/metal1 0 0 \ + edge4way ~(gc)/contact gc 1 ~(ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c)/metal1 0 0 \ "GC contact cannot touch Metal1 contacts (Mosis #0)" metal1 - edge4way ~(gc2)/contact gc2 1 ~(ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1)/metal1 0 0 \ - "Generic contact2 cannot touch Metal1 contacts (Mosis #0)" metal1 - spacing gv1 m2c/m2 2 touching_illegal \ "GV1 via spacing to Metal2 contacts < 2 (Mosis #14.2)" @@ -7001,12 +6057,6 @@ drc spacing psc/m1 ndc/m1 1 touching_illegal \ "psc spacing to ndc < 1 (Mosis #6.3)" - - - - - - spacing nfet,pfet ndc/a,pdc/a,psc/a,nsc/a 1 touching_illegal \ "N-Transistor,P-Transistor spacing to Diffusion contact < 1 (Mosis #6.4)" @@ -7020,35 +6070,44 @@ drc "Diffusion spacing to Diffusion contact < 4 (Mosis #6.5.b)" spacing pc/a ndc/a,pdc/a,psc/a,nsc/a 2 touching_illegal \ - "pc/a,pm12c/a spacing to ndc/a,pdc/a,psc/a,nsc/a < 2 (Mosis #6.7)" + "pc/a spacing to ndc/a,pdc/a,psc/a,nsc/a < 2 (Mosis #6.7)" - spacing m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 3 touching_ok \ + spacing m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 3 touching_ok \ "Metal1 spacing < 3 (Mosis #7.2)" - spacing m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 fm1,fapm 3 touching_illegal \ + spacing m1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 fm1,fapm 3 touching_illegal \ "Metal1 spacing to fill layer (fm1) < 3 (Mosis #7.2)" spacing fm1 fm1 4 touching_ok \ "Metal1 fill layer (fm1) spacing < 4 (Mosis #0)" - edge4way gc space 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 space 1 \ + edge4way gc space 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 space 1 \ "Metal1 must overlap GC contact by 1 (Mosis #7.3,7.4)" metal1 - edge4way ~(m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1)/metal1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 1 ~(gc)/contact 0 0 \ + edge4way ~(m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1)/metal1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 1 ~(gc)/contact 0 0 \ "Metal1(edge) cannot touch GC contact (Mosis #7.3+7.4)" contact spacing gv1 gv1 3 touching_ok \ "GV1 via spacing < 3 (Mosis #8.2)" - edge4way gv1 ~(gv1)/via1 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 ~(gv1)/via1 1 \ + edge4way gv1 ~(gv1)/via1 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 ~(gv1)/via1 1 \ "Metal1 overlap of GV1 via < 1 (Mosis #8.3)" metal1 - edge4way gv1 space 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 space 1 \ + edge4way gv1 space 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 space 1 \ "Metal1 must overlap GV1 via by 1 (Mosis #8.3)" metal1 - edge4way ~(m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1)/metal1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 1 ~(gv1)/via1 0 0 \ + edge4way ~(m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1)/metal1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 1 ~(gv1)/via1 0 0 \ "Metal1(edge) cannot touch GV1 via (Mosis #8.3)" via1 + spacing gc gv1 2 touching_illegal \ + "GC contact spacing to GV1 via < 2 (Mosis #8.4)" + + spacing gc m2c/m2 2 touching_illegal \ + " spacing to Metal2 contacts < 2 (Mosis #14.2)" + + spacing gc m2c/m2 2 touching_illegal \ + "GC contact spacing to Metal2 contacts < 2 (Mosis #8.4)" + spacing m2,rm2,m2c/m2,m3c/m2 m2,rm2,m2c/m2,m3c/m2 3 touching_ok \ "Metal2 spacing < 3 (Mosis #9.2)" @@ -7079,7 +6138,7 @@ drc edge4way ~(ecap)/cap ecap 1 poly,fp,rp,pc/a 0 0 \ "Ecap must touch Poly (Mosis #11.3x)" active - edge4way poly2,phr,p2c,p2m12c space 5 ~(poly,fp,rp,pc/a)/active space 5 \ + edge4way poly2,phr space 5 ~(poly,fp,rp,pc/a)/active space 5 \ "Poly2 spacing to Poly < 5 (Mosis #11.3c)" active spacing ecap pc/a 2 touching_illegal \ @@ -7088,13 +6147,13 @@ drc spacing ecap gc 3 touching_illegal \ "Ecap spacing to Generic contact < 3 (Mosis #11.5)" - spacing poly2,ecap,phr,p2c,p2m12c poly2,ecap,phr,p2c,p2m12c 3 touching_ok \ + spacing poly2,ecap,phr poly2,ecap,phr 3 touching_ok \ "Poly2 spacing < 3 (Mosis #11.2)" - spacing poly2,ecap,phr,p2c,p2m12c pc/a,ndc/a,pdc/a,psc/a,nsc/a 2 touching_illegal \ + spacing poly2,ecap,phr pc/a,ndc/a,pdc/a,psc/a,nsc/a 2 touching_illegal \ "Poly2 spacing to Poly contact,Diffusion contact < 2 (Mosis #11.5)" - spacing poly2,ecap,phr,p2c,p2m12c gc,gc 3 touching_illegal \ + spacing poly2,ecap,phr gc,gc 3 touching_illegal \ "Poly2 spacing to GC contact < 3 (Mosis #11.5)" spacing gc2 gc2 3 touching_ok \ @@ -7103,17 +6162,17 @@ drc edge4way ~(ecap)/cap ecap 3 ~(gc2)/contact ecap 3 \ "Ecap overlap of Generic contact2 < 3 (Mosis #13.3)" contact - edge4way ~(ecap)/cap ecap 2 ~(p2c,p2m12c)/cap ecap 2 \ - "Ecap overlap of Poly2 contact < 2 (Mosis #13.3)" cap + edge4way ~(ecap)/cap ecap 2 ~(p2c)/metal1 ecap 2 \ + "Ecap overlap of Poly2 contact < 2 (Mosis #13.3)" metal1 - edge4way gc2 space 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 space 1 \ + edge4way gc2 space 1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 space 1 \ "Metal1 must overlap Generic contact2 by 1 (Mosis #13.4)" metal1 - edge4way ~(m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1)/metal1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 1 ~(gc2)/contact 0 0 \ + edge4way ~(m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1)/metal1 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 1 ~(gc2)/contact 0 0 \ "Metal1(edge) cannot touch Generic contact2 (Mosis #13.4)" contact - edge4way ~(poly2,ecap,phr,p2c,p2m12c)/cap poly2,ecap,phr,p2c,p2m12c 1 ~(p2c,p2m12c)/cap poly2,ecap,phr,p2c,p2m12c 1 \ - "Poly2 overlap of Poly2 contact < 1 (Mosis #13.4)" cap + edge4way ~(poly2,ecap,phr)/cap poly2,ecap,phr 1 ~(p2c)/metal1 poly2,ecap,phr 1 \ + "Poly2 overlap of Poly2 contact < 1 (Mosis #13.4)" metal1 spacing gv2 gv2 3 touching_ok \ "GV2 via spacing < 3 (Mosis #14.2)" @@ -7127,6 +6186,12 @@ drc edge4way ~(m2,fm2,rm2,m2c/m2,m3c/m2)/metal2 m2,fm2,rm2,m2c/m2,m3c/m2 1 ~(gv2)/via2 0 0 \ "Metal2(edge) cannot touch GV2 via (Mosis #14.3)" via2 + spacing gv1 gv2 2 touching_illegal \ + "GV1 via spacing to GV2 via < 2 (Mosis #14.4)" + + spacing gv1 m3c/m2 1 touching_illegal \ + "GV1 via spacing to Metal3 contact < 1 (Mosis #14.4)" + spacing m3,rm3,m3c/m3,pad m3,rm3,m3c/m3,pad 3 touching_ok \ "Metal3 spacing < 3 (Mosis #15.2)" @@ -7148,7 +6213,7 @@ drc spacing hr,phr hr,phr 4 touching_ok \ "High-Resist spacing < 4 (Mosis #27.2)" - spacing hr,phr,phr p2c,p2m12c 2 touching_illegal \ + spacing hr,phr,phr p2c 2 touching_illegal \ "High-Resist spacing to Poly2 contact < 2 (Mosis #27.3)" spacing hr,phr,phr gc 2 touching_illegal \ @@ -7157,10 +6222,10 @@ drc edge4way hr,phr space 2 ~(ndiff,rnd,ndc/a,pdiff,rpd,pdc/a)/active 0 2 \ "High-Resist space to Diffusion < 2 (Mosis #27.4)" active - spacing hr,phr,phr poly2,ecap,phr,p2c,p2m12c 2 touching_ok \ + spacing hr,phr,phr poly2,ecap,phr 2 touching_ok \ "High-Resist spacing to other Poly2 < 2 (Mosis #27.5)" - edge4way hr,phr space 2 ~(poly2,ecap,phr,p2c,p2m12c)/contact hr,phr 2 \ + edge4way hr,phr space 2 ~(poly2,ecap,phr)/contact hr,phr 2 \ "High-Resist space to Poly2 < 2 (Mosis #27.5x)" contact spacing nwell phr 4 touching_illegal \ @@ -7271,7 +6336,7 @@ drc edge4way gc2 ~(gc2)/contact 1 ~(gc2)/contact (~(gc2),gc2)/contact 1 \ "Contact not rectangular (Magic rule)" - edge4way p2c,p2m12c ~(p2c,p2m12c)/cap 1 ~(p2c,p2m12c)/cap (~(p2c,p2m12c),p2c,p2m12c)/cap 1 \ + edge4way p2c ~(p2c)/metal1 1 ~(p2c)/metal1 (~(p2c),p2c)/metal1 1 \ "Contact not rectangular (Magic rule)" edge4way gc ~(gc)/contact 1 ~(gc)/contact (~(gc),gc)/contact 1 \ @@ -7291,12 +6356,12 @@ drc exact_overlap gc,ndc/a,pdc/a,psc/a,nsc/a,gc,pc/a,gc - exact_overlap gc2,p2c,p2m12c + exact_overlap gc2,p2c edge4way pad ~(pad)/m3 1 ~(pad)/m3 (~(pad),pad)/m3 1 \ "Contact not rectangular (Magic rule)" - exact_overlap ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1 + exact_overlap ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c exact_overlap m2c/m2 @@ -7356,17 +6421,17 @@ lef ignore PC ignore CA -routing m1 M1 m1 met1 -routing m2 M2 m2 met2 -routing m3 M3 m3 met3 +routing m1 metal1 M1 m1 met1 +routing m2 metal2 M2 m2 met2 +routing m3 metal3 M3 m3 met3 -contact m2c via via1 V1 v1 +contact m2c via1 via V1 v1 contact m3c via2 V2 v2 end extract - style AMI0.5um(amic5)from:T24H + style AMI0.5um(amic5)from:T11Z cscale 1 lambda 30 step 100 @@ -7387,162 +6452,164 @@ extract planeorder via2 13 planeorder fill 14 - resist (ndiff,rnd,ndc,nsd,nsc)/active 82200 - resist (pdiff,rpd,pdc,psd,psc)/active 105200 - resist (nwell)/well 808000 - resist (rnw)/active 808000 - resist (pwell)/well 1 - resist (poly,fp,rp,pc,pc,nfet,pfet,fet)/active 22000 - resist (poly2,ecap,p2c,p2m12c,p2c,p2m12c)/cap 40300 - resist (phr)/cap 40300 - resist (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c,m2c)/metal1 90 - resist (m2,fm2,rm2,m2c,m3c,m3c)/metal2 90 - resist (m3,fm3,rm3,m3c,pad)/metal3 50 + substrate *psd,space/w,pwell well - contact ndc 4 62700 - contact pdc 4 160000 - contact pc 4 15600 - contact p2c 4 26100 - contact m2c 4 910 - contact m3c 4 830 + resist (ndiff,rnd,ndc,nsd,nsc)/active 82400 + resist (pdiff,rpd,pdc,psd,psc)/active 102700 + resist (nwell)/well 816000 + resist (rnw)/active 816000 0.5 + resist (pwell)/well 1 + resist (poly,fp,rp,pc,pc,nfet,pfet,fet)/active 22300 + resist (poly2,ecap,p2c)/cap 41300 + resist (phr)/cap 41300 0.5 + resist (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c,m2c)/metal1 90 + resist (m2,fm2,rm2,m2c,m3c,m3c)/metal2 90 + resist (m3,fm3,rm3,m3c,pad)/metal3 60 + + contact ndc 4 58700 + contact pdc 4 141000 + contact pc 4 15800 + contact p2c 4 26800 + contact m2c 4 760 + contact m3c 4 730 #poly2 - overlap (poly,fp,rp,pc,pc)/active (poly2,ecap,phr,p2c,p2m12c,p2c,p2m12c)/cap 84.960 + overlap (poly,fp,rp,pc,pc)/active (poly2,ecap,phr,p2c)/cap 82.260 #nwell,cwell,pwell - areacap (nwell)/well 3.600 + areacap (nwell)/well 3.510 #rnw - areacap (rnw)/active 3.600 + areacap (rnw)/active 3.510 #ndiff -# MODEL HANDLES THIS: areacap (ndiff,ndc)/active 38.430 -# MODEL HANDLES THIS: overlap (ndiff,ndc)/active ~space/w 38.430 -# MODEL HANDLES THIS: perimc (ndiff,ndc)/active ~(ndiff,ndc,nfet,pfet,fet)/active 94.800 -# MODEL HANDLES THIS: sideoverlap (ndiff,ndc)/active ~(ndiff,ndc,nfet,pfet,fet)/active ~space/w 94.800 +# MODEL HANDLES THIS: areacap (ndiff,ndc)/active 38.070 +# MODEL HANDLES THIS: overlap (ndiff,ndc)/active ~space/w 38.070 +# MODEL HANDLES THIS: perimc (ndiff,ndc)/active ~(ndiff,ndc,nfet,pfet,fet)/active 95.700 +# MODEL HANDLES THIS: sideoverlap (ndiff,ndc)/active ~(ndiff,ndc,nfet,pfet,fet)/active ~space/w 95.700 - areacap (rnd)/active 38.430 - overlap (rnd)/active ~space/w 38.430 - perimc (rnd)/active ~(rnd)/active 94.800 - sideoverlap (rnd)/active ~(rnd)/active ~space/w 94.800 + areacap (rnd)/active 38.070 + overlap (rnd)/active ~space/w 38.070 + perimc (rnd)/active ~(rnd)/active 95.700 + sideoverlap (rnd)/active ~(rnd)/active ~space/w 95.700 #pdiff -# MODEL HANDLES THIS: areacap (pdiff,pdc)/active 65.880 -# MODEL HANDLES THIS: overlap (pdiff,pdc)/active ~space/w 65.880 -# MODEL HANDLES THIS: perimc (pdiff,pdc)/active ~(pdiff,pdc,nfet,pfet,fet)/active 75.300 -# MODEL HANDLES THIS: sideoverlap (pdiff,pdc)/active ~(pdiff,pdc,nfet,pfet,fet)/active ~space/w 75.300 +# MODEL HANDLES THIS: areacap (pdiff,pdc)/active 65.610 +# MODEL HANDLES THIS: overlap (pdiff,pdc)/active ~space/w 65.610 +# MODEL HANDLES THIS: perimc (pdiff,pdc)/active ~(pdiff,pdc,nfet,pfet,fet)/active 73.800 +# MODEL HANDLES THIS: sideoverlap (pdiff,pdc)/active ~(pdiff,pdc,nfet,pfet,fet)/active ~space/w 73.800 - areacap (rpd)/active 65.880 - overlap (rpd)/active ~space/w 65.880 - perimc (rpd)/active ~(rpd)/active 75.300 - sideoverlap (rpd)/active ~(rpd)/active ~space/w 75.300 + areacap (rpd)/active 65.610 + overlap (rpd)/active ~space/w 65.610 + perimc (rpd)/active ~(rpd)/active 73.800 + sideoverlap (rpd)/active ~(rpd)/active ~space/w 73.800 #rnw #poly -# MODEL HANDLES THIS: overlap (nfet)/active (ndiff,rnd,ndc)/active 221.670 -# MODEL HANDLES THIS: sideoverlap (nfet)/active ~(nfet)/active (ndiff,rnd,ndc)/active 58.500 -# MODEL HANDLES THIS: overlap (pfet)/active (pdiff,rpd,pdc)/active 213.480 -# MODEL HANDLES THIS: sideoverlap (pfet)/active ~(pfet)/active (pdiff,rpd,pdc)/active 82.800 +# MODEL HANDLES THIS: overlap (nfet)/active (ndiff,rnd,ndc)/active 225.450 +# MODEL HANDLES THIS: sideoverlap (nfet)/active ~(nfet)/active (ndiff,rnd,ndc)/active 65.700 +# MODEL HANDLES THIS: overlap (pfet)/active (pdiff,rpd,pdc)/active 219.060 +# MODEL HANDLES THIS: sideoverlap (pfet)/active ~(pfet)/active (pdiff,rpd,pdc)/active 69 - areacap (poly,fp,rp,pc)/active 7.740 - overlap (poly,fp,rp,pc)/active ~space/w 7.740 + areacap (poly,fp,rp,pc)/active 7.920 + overlap (poly,fp,rp,pc)/active ~space/w 7.920 #poly2 #rnw #metal1 - areacap (m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 2.700 + areacap (m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 2.790 #metal1-sub blocked by ~space/a,~space/c - overlap (m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 ~space/w 2.700 ~space/a,~space/c - perimc (m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 20.700 - sideoverlap (m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 ~space/w 20.700 ~space/a,~space/c + overlap (m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 ~space/w 2.790 ~space/a,~space/c + perimc (m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 22.200 + sideoverlap (m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 ~space/w 22.200 ~space/a,~space/c #rnw - overlap (m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 rnw/active 2.700 ~space/c - sideoverlap (m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,pdc,pc,m2c)/metal1 rnw/active 20.700 ~space/c + overlap (m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 rnw/active 2.790 ~space/c + sideoverlap (m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,pdc,pc,p2c,m2c)/metal1 rnw/active 22.200 ~space/c #metal1-diff blocked by ~space/c - overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (ndiff,rnd,ndc)/active 3.150 ~space/c - sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (ndiff,rnd,ndc)/active 20.700 ~space/c - overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (pdiff,rpd,pdc)/active 3.150 ~space/c - sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (pdiff,rpd,pdc)/active 20.700 ~space/c + overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (ndiff,rnd,ndc)/active 3.150 ~space/c + sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (ndiff,rnd,ndc)/active 22.200 ~space/c + overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (pdiff,rpd,pdc)/active 3.150 ~space/c + sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (pdiff,rpd,pdc)/active 22.200 ~space/c #metal1-poly blocked by ~space/c - overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (poly,fp,rp,pc,nfet,pfet,fet)/active 4.590 ~space/c - sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (poly,fp,rp,pc,nfet,pfet,fet)/active 15.900 ~space/c - sideoverlap (poly,fp,rp,pc,nfet,pfet,fet)/active ~(poly,fp,rp,pc,nfet,pfet,fet)/active (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 15.900 ~space/c + overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (poly,fp,rp,pc,nfet,pfet,fet)/active 4.680 ~space/c + sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (poly,fp,rp,pc,nfet,pfet,fet)/active 18 ~space/c + sideoverlap (poly,fp,rp,pc,nfet,pfet,fet)/active ~(poly,fp,rp,pc,nfet,pfet,fet)/active (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 18 ~space/c #metal1-poly2 not blocked - overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (poly2,ecap,phr,p2c,p2m12c)/cap 3.960 + overlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (poly2,ecap,phr)/cap 4.320 #metal2 - areacap (m2,fm2,rm2,m3c)/metal2 1.350 + areacap (m2,fm2,rm2,m3c)/metal2 1.440 #metal2-sub blocked by - overlap (m2,fm2,rm2,m3c)/metal2 ~space/w 1.350 ~space/a,~space/m1,~space/c - perimc (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 15.900 - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 ~space/w 15.900 ~space/a,~space/m1,~space/c - overlap (m2,fm2,rm2,m3c)/metal2 rnw/active 1.350 ~space/m1,~space/c - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 rnw/active 15.900 ~space/m1,~space/c + overlap (m2,fm2,rm2,m3c)/metal2 ~space/w 1.440 ~space/a,~space/m1,~space/c + perimc (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 17.400 + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 ~space/w 17.400 ~space/a,~space/m1,~space/c + overlap (m2,fm2,rm2,m3c)/metal2 rnw/active 1.440 ~space/m1,~space/c + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 rnw/active 17.400 ~space/m1,~space/c #metal2-*diff blocked by ~space/m1,~space/c - overlap (m2,fm2,rm2,m3c)/metal2 (ndiff,rnd,ndc)/active 1.350 ~space/m1,~space/c - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (ndiff,rnd,ndc)/active 15.900 ~space/m1,~space/c - overlap (m2,fm2,rm2,m2c,m3c)/metal2 (pdiff,rpd,pdc)/active 1.350 ~space/m1,~space/c - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (pdiff,rpd,pdc)/active 15.900 ~space/m1,~space/c + overlap (m2,fm2,rm2,m3c)/metal2 (ndiff,rnd,ndc)/active 1.440 ~space/m1,~space/c + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (ndiff,rnd,ndc)/active 17.400 ~space/m1,~space/c + overlap (m2,fm2,rm2,m2c,m3c)/metal2 (pdiff,rpd,pdc)/active 1.440 ~space/m1,~space/c + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (pdiff,rpd,pdc)/active 17.400 ~space/m1,~space/c #metal2-poly blocked by ~space/m1,~space/c overlap (m2,fm2,rm2,m3c)/metal2 (poly,fp,rp,pc,nfet,pfet,fet)/active 1.350 ~space/m1,~space/c - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (poly,fp,rp,pc,nfet,pfet,fet)/active 10.800 ~space/m1,~space/c - sideoverlap (poly,fp,rp,pc,nfet,pfet,fet)/active ~(poly,fp,rp,pc,nfet,pfet,fet)/active (m2,fm2,rm2,m2c,m3c)/metal2 10.800 ~space/m1,~space/c + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (poly,fp,rp,pc,nfet,pfet,fet)/active 11.400 ~space/m1,~space/c + sideoverlap (poly,fp,rp,pc,nfet,pfet,fet)/active ~(poly,fp,rp,pc,nfet,pfet,fet)/active (m2,fm2,rm2,m2c,m3c)/metal2 11.400 ~space/m1,~space/c #metal2-poly2 blocked by ~space/m1 #M2->M1 - overlap (m2,fm2,rm2,m3c)/metal2 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 2.520 - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 14.700 - sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (m2,fm2,rm2,m2c,m3c)/metal2 14.700 + overlap (m2,fm2,rm2,m3c)/metal2 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 2.700 + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 15 + sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (m2,fm2,rm2,m2c,m3c)/metal2 15 #metal3 areacap (m3,fm3,rm3,pad)/metal3 0.900 #metal3-sub blocked by ~space/a,~space/m1,~space/m2,~space/c overlap (m3,fm3,rm3,pad)/metal3 ~space/w 0.900 ~space/a,~space/m1,~space/m2,~space/c - perimc (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 10.500 - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 ~space/w 10.500 ~space/a,~space/m1,~space/m2,~space/c + perimc (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 11.400 + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 ~space/w 11.400 ~space/a,~space/m1,~space/m2,~space/c #rnw overlap (m3,fm3,rm3,pad)/metal3 rnw/active 0.900 ~space/m1,~space/m2,~space/c - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 rnw/active 10.500 ~space/m1,~space/m2,~space/c + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 rnw/active 11.400 ~space/m1,~space/m2,~space/c #metal3-*diff blocked by ~space/m1,~space/m2,~space/c overlap (m3,fm3,rm3,pad)/metal3 (ndiff,rnd,ndc)/active 0.990 ~space/m1,~space/m2,~space/c - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (ndiff,rnd,ndc)/active 10.500 ~space/m1,~space/m2,~space/c + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (ndiff,rnd,ndc)/active 11.400 ~space/m1,~space/m2,~space/c overlap (m3,fm3,rm3,pad)/metal3 (pdiff,rpd,pdc)/active 0.990 ~space/m1,~space/m2,~space/c - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (pdiff,rpd,pdc)/active 10.500 ~space/m1,~space/m2,~space/c + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (pdiff,rpd,pdc)/active 11.400 ~space/m1,~space/m2,~space/c #metal3-poly blocked by ~space/m1,~space/m2,~space/c overlap (m3,fm3,rm3,pad)/metal3 (poly,fp,rp,pc,nfet,pfet,fet)/active 0.810 ~space/m1,~space/m2,~space/c - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (poly,fp,rp,pc,nfet,pfet,fet)/active 8.100 ~space/m1,~space/m2,~space/c - sideoverlap (poly,fp,rp,pc,nfet,pfet,fet)/active ~(poly,fp,rp,pc,nfet,pfet,fet)/active (m3,fm3,rm3,m3c,pad)/metal3 8.100 ~space/m1,~space/m2,~space/c + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (poly,fp,rp,pc,nfet,pfet,fet)/active 8.400 ~space/m1,~space/m2,~space/c + sideoverlap (poly,fp,rp,pc,nfet,pfet,fet)/active ~(poly,fp,rp,pc,nfet,pfet,fet)/active (m3,fm3,rm3,m3c,pad)/metal3 8.400 ~space/m1,~space/m2,~space/c #metal3-poly2 blocked by ~space/m1,~space/m2 #M3->M1 - overlap (m3,fm3,rm3,pad)/metal3 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 1.080 ~space/m2 + overlap (m3,fm3,rm3,pad)/metal3 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 1.080 ~space/m2 #metal3-metal1 blocked by ~space/m2 - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 9.900 ~space/m2 - sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,m2c)/metal1 (m3,fm3,rm3,m3c,pad)/metal3 9.900 ~space/m2 + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 9.600 ~space/m2 + sideoverlap (m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 ~(m1,fm1,rm1,ndc,nsc,pdc,psc,pc,p2c,m2c)/metal1 (m3,fm3,rm3,m3c,pad)/metal3 9.600 ~space/m2 #M3->M2 - overlap (m3,fm3,rm3,pad)/metal3 (m2,fm2,rm2,m2c,m3c)/metal2 3.060 - sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (m2,fm2,rm2,m2c,m3c)/metal2 16.800 - sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (m3,fm3,rm3,m3c,pad)/metal3 16.800 + overlap (m3,fm3,rm3,pad)/metal3 (m2,fm2,rm2,m2c,m3c)/metal2 2.880 + sideoverlap (m3,fm3,rm3,m3c,pad)/metal3 ~(m3,fm3,rm3,m3c,pad)/metal3 (m2,fm2,rm2,m2c,m3c)/metal2 15.600 + sideoverlap (m2,fm2,rm2,m2c,m3c)/metal2 ~(m2,fm2,rm2,m2c,m3c)/metal2 (m3,fm3,rm3,m3c,pad)/metal3 15.600 #metal4 @@ -7554,44 +6621,28 @@ extract #metali -#fets +#devices -# fet pfet pdiff,pdc 2 pfet Vdd! nwell 83 213 -# fet pfet pdiff,pdc 1 pfet Vdd! nwell 83 213 + device mosfet pfet pfet pdiff,pdc nwell ERROR 69 219 + device mosfet nfet nfet ndiff,ndc pwell,space/w ERROR 66 225 - device mosfet pfet pfet pdiff,pdc nwell $VDD 83 213 + fetresis pfet linear 21001 + fetresis pfet saturation 21001 + fetresis nfet linear 6020 + fetresis nfet saturation 6020 -# fet nfet ndiff,ndc 2 nfet Gnd! pwell 59 222 -# fet nfet ndiff,ndc 1 nfet Gnd! pwell 59 222 + device resistor nwellResistor rnwell *nsd + device resistor polyResistor rpoly *poly + device resistor poly2Resistor rpoly2 *poly2 + device resistor ndiffResistor rndiff *ndiff + device resistor pdiffResistor rpdiff *pdiff - device mosfet nfet nfet ndiff,ndc pwell $GND 59 222 + device resistor metal1Resistor rmetal1 *metal1 + device resistor metal2Resistor rmetal2 *metal2 + device resistor metal3Resistor rmetal3 *metal3 - fetresis pfet linear 20996 - fetresis pfet saturation 20996 - fetresis nfet linear 6144 - fetresis nfet saturation 6144 + device resistor presResistor phr *poly2 -# fet rnwell nsd,nsc 2 nwellResistor Gnd! nwell,pwell 0 0 -# fet rpoly poly,pc 2 polyResistor Gnd! nwell,pwell 0 0 -# fet rpoly2 poly2,p2c 2 poly2Resistor Gnd! nwell,pwell 0 0 -# fet rndiff ndiff,ndc 2 ndiffResistor Gnd! nwell,pwell 0 0 -# fet rpdiff pdiff,pdc 2 pdiffResistor Gnd! nwell,pwell 0 0 - - device resistor None rnwell nsd,nsc - device resistor None rpoly poly,pc - device resistor None rpoly2 poly2,p2c - device resistor None rndiff ndiff,ndc - device resistor None rpdiff pdiff,pdc - -# fet rmetal1 metal1 2 metal1Resistor Gnd! nwell,pwell 0 0 -# fet rmetal2 metal2 2 metal2Resistor Gnd! nwell,pwell 0 0 -# fet rmetal3 metal3 2 metal3Resistor Gnd! nwell,pwell 0 0 -# fet phr poly2,p2c 2 phrResistor Gnd! nwell,pwell 0 0 - - device resistor None rmetal1 *metal1 - device resistor None rmetal2 *metal2 - device resistor None rmetal3 *metal3 - device resistor None phr poly2,p2c end @@ -7606,7 +6657,7 @@ end router layer2 metal2 3 m2,fm2,rm2,m2c/m2,m3c/m2,m3c/m2 4 poly,fp,rp,ndiff,rnd,nsd,pdiff,rpd,psd,m1,fm1,rm1 1 - layer1 metal1 3 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 3 + layer1 metal1 3 m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 3 contacts m2contact 4 gridspacing 8 @@ -7706,12 +6757,12 @@ style colorversatec 4949 A0A0 5252 2828 \ 9494 0A0A 2525 8282 \ 4949 A0A0 5252 2828 - poly2,ecap,phr,p2c,p2m12c yellow \ + poly2,ecap,phr yellow \ FFFF FFFF FFFF FFFF \ FFFF FFFF FFFF FFFF \ FFFF FFFF FFFF FFFF \ FFFF FFFF FFFF FFFF - m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 cyan \ + m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 cyan \ AAAA 0000 AAAA 0000 \ AAAA 0000 AAAA 0000 \ AAAA 0000 AAAA 0000 \ @@ -7834,7 +6885,7 @@ style versatec 8080 4000 2020 1010 \ 0808 0004 0202 0101 \ 8080 0040 2020 1010 - m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,m2c/m1 \ + m1,fm1,rm1,ndc/m1,nsc/m1,pdc/m1,psc/m1,pc/m1,p2c,m2c/m1 \ 8080 0000 0000 0000 \ 0808 0000 0000 0000 \ 8080 0000 0000 0000 \ diff --git a/technology/scn4m_subm/tech/SCN4M_SUBM.20.tech b/technology/scn4m_subm/tech/SCN4M_SUBM.20.tech index deaae865..7207f681 100644 --- a/technology/scn4m_subm/tech/SCN4M_SUBM.20.tech +++ b/technology/scn4m_subm/tech/SCN4M_SUBM.20.tech @@ -1764,6 +1764,11 @@ cifinput style lambda=0.20(p) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -2450,10 +2455,6 @@ style lambda=0.20(p) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -2470,6 +2471,11 @@ style lambda=0.20(p) style lambda=0.20(s) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -3158,10 +3164,6 @@ style lambda=0.20(s) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -3178,6 +3180,11 @@ style lambda=0.20(s) style lambda=0.20(ps) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -3810,10 +3817,6 @@ style lambda=0.20(ps) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -3830,6 +3833,11 @@ style lambda=0.20(ps) style lambda=0.20() scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -4516,10 +4524,6 @@ style lambda=0.20() and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -4536,6 +4540,11 @@ style lambda=0.20() style lambda=0.20(c) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -4989,10 +4998,6 @@ style lambda=0.20(c) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -5009,6 +5014,11 @@ style lambda=0.20(c) style lambda=0.20(cs) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -5464,10 +5474,6 @@ style lambda=0.20(cs) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -5484,6 +5490,11 @@ style lambda=0.20(cs) style lambda=0.20(cps) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -5940,10 +5951,6 @@ style lambda=0.20(cps) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * @@ -5960,6 +5967,11 @@ style lambda=0.20(cps) style lambda=0.20(cp) scalefactor 20 + # This is a custom section to add bounding boxes in OpenRAM + layer bb BB + labels BB + calma BB 63 0 + layer nwell CWN and-not CWNR and-not CTA @@ -6414,10 +6426,6 @@ style lambda=0.20(cp) and-not CBA calma CAA 43 * - layer comment CX - labels CX - calma CX 63 * - calma CTA 60 * calma CRW 65 * diff --git a/technology/scn4m_subm/tech/tech.py b/technology/scn4m_subm/tech/tech.py index 882e16d5..a5756ce3 100644 --- a/technology/scn4m_subm/tech/tech.py +++ b/technology/scn4m_subm/tech/tech.py @@ -86,8 +86,8 @@ drc["has_nwell"] = True drc["grid"]=0.5*_lambda_ #DRC/LVS test set_up -drc["drc_rules"]=drclvs_home+"/calibreDRC_scn3me_subm.rul" -drc["lvs_rules"]=drclvs_home+"/calibreLVS_scn3me_subm.rul" +drc["drc_rules"]=None #drclvs_home+"/calibreDRC_scn3me_subm.rul" +drc["lvs_rules"]=None #drclvs_home+"/calibreLVS_scn3me_subm.rul" drc["layer_map"]=os.environ.get("OPENRAM_TECH")+"/scn3me_subm/layers.map" # minwidth_tx with contact (no dog bone transistors)