From ac8eada0d8bd36dfa8b192638a797372d70c8519 Mon Sep 17 00:00:00 2001 From: Matt Guthaus Date: Wed, 24 Jan 2018 13:02:55 -0800 Subject: [PATCH] Fix devices sizes in SCMOS sense amp. Elaborate magic/netgen scripts in comments. --- compiler/verify/magic.py | 7 +- technology/scn3me_subm/gds_lib/sense_amp.gds | Bin 7394 -> 8496 bytes technology/scn3me_subm/mag_lib/sense_amp.mag | 216 ++++++++++--------- 3 files changed, 121 insertions(+), 102 deletions(-) diff --git a/compiler/verify/magic.py b/compiler/verify/magic.py index 08a84238..54071b4f 100644 --- a/compiler/verify/magic.py +++ b/compiler/verify/magic.py @@ -16,6 +16,8 @@ gds rescale false gds polygon subcell true gds warning default gds read $1 +load $1 +save $1 drc count drc why quit -noprompt @@ -43,9 +45,10 @@ netgen -noconsole <A5Z!{ zr_5FzG3y^F`PdI;i%q_Pv*Xo6Yi3Wemv<@=ab!`esRZ{P`~JT(r@=# zZ|pN$FjR8c?>=Fki+()z?~3bZoCi0U4g6N}i}PXpq90HCcf4ix`H9fK_|;Z3a?$go z-?`N6jStOk{j%i#elv2>k7xa-y+3?$-228CJx}_~-Rg^Gvwki4h|dSP=*N@(luomm zeOQuDcm)N^%~^#oF~(@oydt9`on#YtADc zxtR0m=g?j=`WFwM4gHIr$K#*WKOX&yc=Rvk{A;}CcMh6e=QWG(UN9pUJx})Eb1Hb8 zZ+wVHF6MmJ4ZK@kEr~}i=6vdW^JJ)Be7iT)FM6J>ACJ04Jn9#7K6T2N)Wemq(Ko!^?V&dhHwd34x}T=e5fpZR;iuN}_6xb0GyKhg7~&phEV zeI-m75 zfcnKvYeM~^=h^!4s9(gRelh1$Cm!{Sc;sTv=RPsiWp?fRB^Qr{`-kYqll4zO5IojF z+JSiFV$PraXYg3>@F5<#nDcL6A3Q!U_z;g=%=wI;y#wPH*~^fNo@d98$GAm2#xLf4 z#)-$cMLcpb=QB<`#x3HJi#eZh@?OR-(iXYsd3OAGj9k}_6OZwWxa4BZUl{Kn*?WHHKI^4;+-o5h zJ&(s<@#*uE!O)jTJLID0NxyBc*@4r+7iouF^gQb??+xFVMA}ii(DS4}t=sH_i(&sQ zezeYvT=YEa^SzDlt0L{FU0D16R+&HMdEMEt-xvAbN-lby?4R#huXly|MfxWfJx}_4 zW_CXle35p@MbDEypPNU0j`_YKG7fUl^Q=EQXmOp7|GPhg|eL>GQn}k9tL(JCKVxpMF?7@kQEEUB&UZ|3&fo#X9r7Uwf=|;*SGi z{SiG+`qb&qr<(nXubm6^i=HQa_PsnO;BzkW+=yKCJnIi%2)_8h+Te?xC;d6|%<#Bg zMLcq`<}Z%tkNd{41L6CZ__d!8a?$g+|BBDL$92+kswCGRxmdgYDn928pZlMPM=s`k zo^vtxJZ}-{n_TofuK)gc{Jf86aQGtkesan$45gh*6yE^ ze4dlxiQn`EU-UfDf0%ck-*LYX_1sRZJ->_k5BGgM_DUjkupba}KGz-3iKt)1BNsi- z*3WZ3KJy}V^!W88dY<$-N8D#vCqz9r6g^M+?9+JuNdF=pxmbJtSeZYrQ|^c^vgkvdct%=z^5#QE_3U8Eh= zRUFUOzkXv_uSMEXyU_Eb&-vHBLF78nbx|Bo`aE}F-R3?bQU|$MTfZyw$NSb!g#C|5 zJ8HK$p6EY(&R1UypC57UM94+Y6Moodu+DS;7Dskf_aB}oebznp9rz;ckc+kbM`iq1 zv45%f^uu#*_DdplsIKC8vVQ8uWA7lY7zyJMJx}_y&o$2dTBIG-RUA+H?6X*V@kQDp z7d=n<+@tWgPDJ`A7jwS;e!zYmA2M!oG3WC=k$%{Jip)Q`=y|e!)-C$Q7iouF%=OPa zv3B!06=_HFS{#r2UsB$G!@M(2=1b)7j+_tC^Q2E-c--$qJaRGT|JVHwk6f(X|0dPX zJk_sX>Zcx9oBxVWo%o!05l`bPjwi>@{PJS{Mb=z$(etEFeY}`|kvfXHoAf;CQy(wp zpBKc}xQgSkzcN1mts6qEJcp)c$XY@!dLH|a$G&&jd~yBqf}A&AqW{|T{kF{C&wc%x z!QamtGh6s~Hve|r)G_kcAznwUOMh4Qb-Qy`WB1tDRr{-uv_0D!uS`d{T=)b>+P zKKRR=@QYra`kzVt{Uc__-!_}Ou;!VaX6T}qXZ;iZG~0LA?8$#>e&{)%i(a1fPrGKe z`l{J%&sp5`n;E+3dg@=A=1<;V9reLHQS+?FMi;$2>nG2lrIEk5`*h?lx}Np-TrqoS zrrF{ZH5c{x#d2Nr^3=a1&7XdLe%)-&?=`=+=)dUYS^xZFW~cv%_~JLm&Co^Hv;N-I zW+OvpPyA5xh>s<@=;cNKD;^KOxNBYbMc1=_#%|3FvspK4Za5TUDSCOO&G$N13>#D^}H z{KWZkOT-sXo{#vV>&5u^h%4eFzF6|#x5w`HT3_#gczu(Cqm$ zW;4I5x$aKP2hq#3`7_5^XIQI5)_ru*^{k)qd+n(hKXK?>*$4CAmKJph!e)7ae{vtkfvE*l+X79NFWKH%y zbkWPR`A{Q1YshHpgvBJt5h*Ry`sjXg8NFVYUW z=z7-AeY5d=bkX&q|HUn453Vy4X-Dls*NgsDr_B2PG81X1@{Q5;teG-j4 ze0wFXmH2&c>?fk@Y5aztb&q*6?OILdAG+9@e+@s^4L^I8h!0&X`FT!e?0H@jiH$D0 zp635T+JEY?ciwgqKD_7hNyY_Xmym%$p-8V(k#g16_1I z+kdVR`wZ)ZNIU4F>sdeNG~QpZ=7{*v#n$_aM*hrG_DR+Y5g)qfdNw}w*k`z3McPrj zRe9D=p1e09f06el=wj>r$+-OSk-tbD$_tkK#Mx@`{36nh@~X;<`M-QL)@zY=)Gl;A z>*qSN->2sX=7Hu#Ri5?p+{L=hej$-|+DKIaV9dHOHv+#$N2i6848=MMZL?XVt-t@B4CKKmv<)^1Vf7O~{ldp7#P zUZnFBI_*{E+5E{HA7=+~$?oWn=z7*q`^<6nVUc!}S5=<%bIxMz#V^thy6Ae=-#-#Q z<_UgCd~~to*ZW7#>-Zu4Mi)zdo)d|~^%EI)bkX%}{;XTX#V^thx>$dv#;HAj$)9{+ zYy2C2^2E<|7xAfIRe84mj4vO?Uu4Zi7hTW#$&U}?FOo-<_ZVHz`pJ(Ez&mZeE0q8oL|-Rb+WEUdlyEjw|(=_)<%2d>iN0J>%F;uxEXg`J>M6+-r?a^J)a+S c+-m$fvpSo$HKI0ZRacQ(Ls4sz$L_KJ0KC?J00000 diff --git a/technology/scn3me_subm/mag_lib/sense_amp.mag b/technology/scn3me_subm/mag_lib/sense_amp.mag index 1db1f86a..32dfb9d8 100644 --- a/technology/scn3me_subm/mag_lib/sense_amp.mag +++ b/technology/scn3me_subm/mag_lib/sense_amp.mag @@ -1,121 +1,135 @@ magic tech scmos -timestamp 1516667220 +timestamp 1516827653 << nwell >> -rect 0 0 40 83 +rect 0 0 40 102 << pwell >> -rect 0 83 40 152 +rect 0 102 40 163 << ntransistor >> -rect 21 115 23 128 -rect 12 89 14 102 -rect 20 89 22 102 +rect 21 130 23 139 +rect 12 108 14 117 +rect 20 108 22 117 << ptransistor >> -rect 12 67 14 77 -rect 20 67 22 77 -rect 11 20 13 33 -rect 27 20 29 33 +rect 12 78 14 96 +rect 20 78 22 96 +rect 11 20 13 44 +rect 27 20 29 44 << ndiffusion >> -rect 20 115 21 128 -rect 23 115 24 128 -rect 11 89 12 102 -rect 14 89 15 102 -rect 19 89 20 102 -rect 22 89 23 102 +rect 20 130 21 139 +rect 23 130 24 139 +rect 11 108 12 117 +rect 14 108 15 117 +rect 19 108 20 117 +rect 22 108 23 117 << pdiffusion >> -rect 11 67 12 77 -rect 14 67 15 77 -rect 19 67 20 77 -rect 22 67 23 77 -rect 10 20 11 33 -rect 13 20 14 33 -rect 26 20 27 33 -rect 29 20 30 33 +rect 7 94 12 96 +rect 11 80 12 94 +rect 7 78 12 80 +rect 14 94 20 96 +rect 14 80 15 94 +rect 19 80 20 94 +rect 14 78 20 80 +rect 22 94 27 96 +rect 22 80 23 94 +rect 22 78 27 80 +rect 10 20 11 44 +rect 13 20 14 44 +rect 26 20 27 44 +rect 29 20 30 44 << ndcontact >> -rect 16 115 20 128 -rect 24 115 28 128 -rect 7 89 11 102 -rect 15 89 19 102 -rect 23 89 27 102 +rect 16 130 20 139 +rect 24 130 28 139 +rect 7 108 11 117 +rect 15 108 19 117 +rect 23 108 27 117 << pdcontact >> -rect 7 67 11 77 -rect 15 67 19 77 -rect 23 67 27 77 -rect 6 20 10 33 -rect 14 20 18 33 -rect 22 20 26 33 -rect 30 20 34 33 +rect 7 80 11 94 +rect 15 80 19 94 +rect 23 80 27 94 +rect 6 20 10 44 +rect 14 20 18 44 +rect 22 20 26 44 +rect 30 20 34 44 +<< nsubstratendiff >> +rect 18 64 22 66 +rect 18 58 22 60 << psubstratepcontact >> -rect 32 127 36 131 +rect 32 138 36 142 << nsubstratencontact >> -rect 18 47 22 55 +rect 18 60 22 64 << polysilicon >> -rect 21 128 23 138 -rect 21 114 23 115 -rect 3 112 23 114 -rect 3 36 5 112 -rect 12 107 34 109 -rect 12 102 14 107 -rect 20 102 22 104 -rect 12 77 14 89 -rect 20 77 22 89 -rect 32 86 34 107 -rect 30 82 34 86 -rect 12 65 14 67 -rect 20 58 22 67 -rect 13 56 22 58 -rect 9 44 11 54 -rect 32 44 34 82 -rect 33 40 34 44 -rect 3 34 13 36 -rect 11 33 13 34 -rect 27 33 29 35 +rect 21 139 23 149 +rect 21 129 23 130 +rect 3 127 23 129 +rect 3 47 5 127 +rect 12 122 34 124 +rect 12 117 14 122 +rect 20 117 22 119 +rect 12 96 14 108 +rect 20 96 22 108 +rect 32 105 34 122 +rect 30 101 34 105 +rect 12 76 14 78 +rect 20 69 22 78 +rect 13 67 22 69 +rect 9 55 11 65 +rect 32 55 34 101 +rect 33 51 34 55 +rect 3 45 13 47 +rect 11 44 13 45 +rect 27 44 29 46 rect 11 19 13 20 rect 27 19 29 20 rect 11 17 29 19 << polycontact >> -rect 20 138 24 142 -rect 26 82 30 86 -rect 9 54 13 58 -rect 9 40 13 44 -rect 29 40 33 44 +rect 20 149 24 153 +rect 26 101 30 105 +rect 9 65 13 69 +rect 9 51 13 55 +rect 29 51 33 55 << metal1 >> -rect -2 138 20 142 -rect 24 138 36 142 -rect -2 131 32 135 -rect 24 128 28 131 -rect 16 102 19 115 -rect 7 77 11 89 -rect 23 86 27 89 -rect 23 82 26 86 -rect 23 77 27 82 -rect 7 58 11 67 -rect 15 64 18 67 -rect 15 61 21 64 -rect 7 54 9 58 -rect 18 55 21 61 -rect -2 47 18 51 -rect 22 47 36 51 -rect 6 33 9 43 -rect 33 40 34 44 -rect 31 33 34 40 +rect -2 149 20 153 +rect 24 149 36 153 +rect -2 142 32 146 +rect 24 139 28 142 +rect 16 117 19 130 +rect 7 94 11 108 +rect 23 105 27 108 +rect 23 101 26 105 +rect 7 69 11 80 +rect 15 94 19 96 +rect 15 78 19 80 +rect 23 94 27 101 +rect 23 78 27 80 +rect 15 75 18 78 +rect 15 72 21 75 +rect 7 65 9 69 +rect 18 66 21 72 +rect 18 64 22 66 +rect -2 60 18 62 +rect 22 60 36 62 +rect -2 58 36 60 +rect 6 44 9 54 +rect 33 51 34 55 +rect 31 44 34 51 rect 3 20 6 23 rect 3 15 7 20 << m2contact >> -rect 32 131 36 135 -rect 13 33 17 37 -rect 22 33 26 37 +rect 32 142 36 146 +rect 13 44 17 48 +rect 22 44 26 48 rect 3 11 7 15 << metal2 >> -rect 10 37 14 152 -rect 20 37 24 152 -rect 32 135 36 152 -rect 32 127 36 131 -rect 10 33 13 37 -rect 20 33 22 37 +rect 10 48 14 163 +rect 20 48 24 163 +rect 32 146 36 163 +rect 32 138 36 142 +rect 10 44 13 48 +rect 20 44 22 48 rect 3 8 7 11 rect 3 0 7 4 -rect 10 0 14 33 -rect 20 0 24 33 +rect 10 0 14 44 +rect 20 0 24 44 << m3contact >> rect 3 4 7 8 << metal3 >> @@ -124,12 +138,14 @@ rect 2 4 3 8 rect 7 4 8 8 rect 2 3 8 4 << m3p >> -rect 0 0 34 152 +rect 0 0 34 163 << labels >> -rlabel metal3 3 3 3 3 2 Dout -rlabel metal1 0 138 0 138 4 SCLK -rlabel metal1 0 131 0 131 5 gnd -rlabel metal1 0 47 0 47 3 vdd -rlabel metal2 20 0 20 0 1 BR -rlabel metal2 10 0 10 0 1 BL +flabel metal1 0 58 0 58 4 FreeSans 26 0 0 0 vdd +flabel metal1 0 149 0 149 4 FreeSans 26 0 0 0 en +flabel metal1 0 142 0 142 4 FreeSans 26 0 0 0 gnd +flabel metal2 10 0 10 0 4 FreeSans 26 0 0 0 bl +flabel metal2 20 0 20 0 4 FreeSans 26 0 0 0 br +flabel metal3 3 3 3 3 4 FreeSans 26 0 0 0 dout +<< properties >> +string path 270.000 468.000 270.000 486.000 288.000 486.000 288.000 468.000 270.000 468.000 << end >>