From 6ebf08998738cbffe5cee2e6fb22739dd83f7ea8 Mon Sep 17 00:00:00 2001 From: Staf Verhaegen Date: Sun, 19 Dec 2021 10:55:42 +0100 Subject: [PATCH] StdCellLib DRC fixes and via enclosure improvement * Fix DRC errors: * min tap licon enclosure * minimum licon on poly to difftap and nsdm space * minimum poly to difftap space * minimum implant space after P&R * Update via enclosure for routing to make width/height same as the routing layers above and below. In order to compute enclosures properly also right orientation has to be used for PinOnly layer. * TODO: CRL.RoutingLayerGauge.PowerSupply --- .../libs.ref/StdCellLib/gds/StdCellLib.gds | Bin 179982 -> 182670 bytes .../libs.ref/StdCellLib/gds/a2_x2.gds | Bin 4576 -> 4704 bytes .../libs.ref/StdCellLib/gds/a3_x2.gds | Bin 4636 -> 4828 bytes .../libs.ref/StdCellLib/gds/a4_x2.gds | Bin 5512 -> 5960 bytes .../libs.ref/StdCellLib/gds/ao22_x2.gds | Bin 5262 -> 5262 bytes .../libs.ref/StdCellLib/gds/buf_x1.gds | Bin 3684 -> 3556 bytes .../libs.ref/StdCellLib/gds/buf_x2.gds | Bin 5412 -> 5284 bytes .../libs.ref/StdCellLib/gds/buf_x4.gds | Bin 8100 -> 7972 bytes .../libs.ref/StdCellLib/gds/decap_w0.gds | Bin 4142 -> 4014 bytes .../libs.ref/StdCellLib/gds/diode_w1.gds | Bin 2778 -> 2714 bytes .../libs.ref/StdCellLib/gds/fill.gds | Bin 586 -> 586 bytes .../libs.ref/StdCellLib/gds/inv_x0.gds | Bin 2724 -> 2596 bytes .../libs.ref/StdCellLib/gds/inv_x1.gds | Bin 3108 -> 3108 bytes .../libs.ref/StdCellLib/gds/inv_x2.gds | Bin 3364 -> 3364 bytes .../libs.ref/StdCellLib/gds/inv_x4.gds | Bin 4772 -> 4772 bytes .../libs.ref/StdCellLib/gds/mx2_x2.gds | Bin 6016 -> 6080 bytes .../libs.ref/StdCellLib/gds/nand2_x0.gds | Bin 2738 -> 2738 bytes .../libs.ref/StdCellLib/gds/nand3_x0.gds | Bin 3838 -> 3838 bytes .../libs.ref/StdCellLib/gds/nand4_x0.gds | Bin 4298 -> 4298 bytes .../libs.ref/StdCellLib/gds/nor2_x0.gds | Bin 2738 -> 2738 bytes .../libs.ref/StdCellLib/gds/nor3_x0.gds | Bin 3262 -> 3262 bytes .../libs.ref/StdCellLib/gds/nor4_x0.gds | Bin 3722 -> 3722 bytes .../libs.ref/StdCellLib/gds/nsnrlatch_x1.gds | Bin 5962 -> 6090 bytes .../libs.ref/StdCellLib/gds/nxr2_x1.gds | Bin 7282 -> 7154 bytes .../libs.ref/StdCellLib/gds/o2_x2.gds | Bin 4128 -> 4256 bytes .../libs.ref/StdCellLib/gds/o3_x2.gds | Bin 5148 -> 5532 bytes .../libs.ref/StdCellLib/gds/o4_x2.gds | Bin 5704 -> 6216 bytes .../libs.ref/StdCellLib/gds/oa22_x2.gds | Bin 5294 -> 5486 bytes .../libs.ref/StdCellLib/gds/one_x1.gds | Bin 4284 -> 4156 bytes .../libs.ref/StdCellLib/gds/powmid_x0.gds | Bin 4848 -> 6384 bytes .../libs.ref/StdCellLib/gds/sff1_x4.gds | Bin 15858 -> 16050 bytes .../libs.ref/StdCellLib/gds/sff1r_x4.gds | Bin 17618 -> 17810 bytes .../libs.ref/StdCellLib/gds/tie.gds | Bin 1098 -> 1098 bytes .../libs.ref/StdCellLib/gds/tie_diff.gds | Bin 2510 -> 2446 bytes .../libs.ref/StdCellLib/gds/tie_poly.gds | Bin 1262 -> 1262 bytes .../libs.ref/StdCellLib/gds/xr2_x1.gds | Bin 7376 -> 7248 bytes .../libs.ref/StdCellLib/gds/zero_x1.gds | Bin 4286 -> 4158 bytes .../libs.ref/StdCellLib/gds/zeroone_x1.gds | Bin 4432 -> 4304 bytes .../StdCellLib/liberty/StdCellLib_fast.lib | 10 +- .../liberty/StdCellLib_fast_raw.lib | 10 +- .../StdCellLib/liberty/StdCellLib_nom.lib | 4 +- .../StdCellLib/liberty/StdCellLib_nom_raw.lib | 4 +- .../StdCellLib/liberty/StdCellLib_slow.lib | 8 +- .../liberty/StdCellLib_slow_raw.lib | 8 +- .../libs.ref/StdCellLib/spice/StdCellLib.spi | 72 +- .../libs.ref/StdCellLib/spice/a2_x2.spi | 4 +- .../libs.ref/StdCellLib/spice/a3_x2.spi | 6 +- .../libs.ref/StdCellLib/spice/a4_x2.spi | 8 +- .../libs.ref/StdCellLib/spice/ao22_x2.spi | 2 +- .../libs.ref/StdCellLib/spice/decap_w0.spi | 4 +- .../libs.ref/StdCellLib/spice/mx2_x2.spi | 2 +- .../StdCellLib/spice/nsnrlatch_x1.spi | 2 +- .../libs.ref/StdCellLib/spice/nxr2_x1.spi | 4 +- .../libs.ref/StdCellLib/spice/o2_x2.spi | 4 +- .../libs.ref/StdCellLib/spice/o3_x2.spi | 2 +- .../libs.ref/StdCellLib/spice/oa22_x2.spi | 2 +- .../libs.ref/StdCellLib/spice/one_x1.spi | 4 +- .../libs.ref/StdCellLib/spice/sff1_x4.spi | 6 +- .../libs.ref/StdCellLib/spice/sff1r_x4.spi | 12 +- .../libs.ref/StdCellLib/spice/xr2_x1.spi | 2 +- .../libs.ref/StdCellLib/spice/zero_x1.spi | 4 +- .../libs.ref/StdCellLib/spice/zeroone_x1.spi | 4 +- .../libs.ref/StdCellLib/verilog/a2_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/a3_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/a4_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/ao22_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/buf_x1.v | 2 +- .../libs.ref/StdCellLib/verilog/buf_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/buf_x4.v | 2 +- .../libs.ref/StdCellLib/verilog/inv_x0.v | 2 +- .../libs.ref/StdCellLib/verilog/inv_x1.v | 2 +- .../libs.ref/StdCellLib/verilog/inv_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/inv_x4.v | 2 +- .../libs.ref/StdCellLib/verilog/mx2_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/nand2_x0.v | 2 +- .../libs.ref/StdCellLib/verilog/nand3_x0.v | 2 +- .../libs.ref/StdCellLib/verilog/nand4_x0.v | 2 +- .../libs.ref/StdCellLib/verilog/nor2_x0.v | 2 +- .../libs.ref/StdCellLib/verilog/nor3_x0.v | 2 +- .../libs.ref/StdCellLib/verilog/nor4_x0.v | 2 +- .../StdCellLib/verilog/nsnrlatch_x1.v | 2 +- .../libs.ref/StdCellLib/verilog/nxr2_x1.v | 2 +- .../libs.ref/StdCellLib/verilog/o2_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/o3_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/o4_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/oa22_x2.v | 2 +- .../libs.ref/StdCellLib/verilog/sff1_x4.v | 2 +- .../libs.ref/StdCellLib/verilog/sff1r_x4.v | 2 +- .../libs.ref/StdCellLib/verilog/xr2_x1.v | 2 +- .../libs.ref/StdCellLib/vhdl/a2_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/a3_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/a4_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/ao22_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/buf_x1.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/buf_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/buf_x4.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/inv_x0.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/inv_x1.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/inv_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/inv_x4.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/mx2_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nand2_x0.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nand3_x0.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nand4_x0.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nor2_x0.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nor3_x0.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nor4_x0.vhdl | 2 +- .../StdCellLib/vhdl/nsnrlatch_x1.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/nxr2_x1.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/o2_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/o3_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/o4_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/oa22_x2.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/sff1_x4.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/sff1r_x4.vhdl | 2 +- .../libs.ref/StdCellLib/vhdl/xr2_x1.vhdl | 2 +- .../coriolis2/node130/sky130/StdCellLib.py | 10222 ++++++++-------- .../etc/coriolis2/node130/sky130/techno.py | 28 +- .../libs.tech/klayout/share/Sky130.drc | 54 +- .../libs.tech/klayout/share/Sky130.lvs | 28 +- .../klayout/share/Sky130_extract.lvs | 28 +- .../klayout/tech/C4M.Sky130/C4M.Sky130.lyt | 2 +- .../klayout/tech/C4M.Sky130/drc/DRC.lydrc | 54 +- .../klayout/tech/C4M.Sky130/lvs/Extract.lylvs | 28 +- 124 files changed, 5230 insertions(+), 5510 deletions(-) diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/StdCellLib.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/StdCellLib.gds index ad8ebabcb02564be8e0fb67287c0b62552efd8e8..ea8cc53eb83f86801caada8261c5c96dbdba9897 100644 GIT binary patch literal 182670 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 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/a2_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/a2_x2.gds index 9004a7af649b4a4bab95152ce44c2a634b311186..80c904191dbc95f3bcedb17646e92f5a1fc38d1e 100644 GIT binary patch literal 4704 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 delta 1284 zcmZvcPe>GD6u{q3n`i;NUK&%B2fonArzyFMA0UgCPaV9DM~Q}H#%5? z==LrW9h5G1TNsF_%Mx^`F5AtZ!*&QH2$ra*K zSaB6LR-G`vUgVyLuD&}$%e~h(KrL7F!3G&i^eTEn!{Z?v>%%>`9kg*OH2u$d z9G`}B*6=;(k8eU#Wfcy2TQxTNo`_C;BHeZ{4@b|M(EfS_27hE~6i-CAK56YA;SHbD82pWeGrlLHyOXKAsa~r~Csdj8DpMC__H&hYox2OXt57@1K-b|9_AP9H diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/a4_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/a4_x2.gds index a0bc4145a67a118b7cef695e489ebeb75a1c9ee2..b0e47c9f6e9a790190fc1e6c0cfb1b2ebc7e6b27 100644 GIT binary patch literal 5960 zcmd^@ZA_JA7{{-8Ip?4dh)9P-1yiI1!?!$PDWWO9#!B*}iN~~YBudn&Cu4bhSwe}R zAA*)!sI}-rjm=)zqK(#aY<`fnR=Cz;(-t$`XqB=2VE6wz{GU#B?(?Cq@xh<_U(f%# z?sMJGbKlQ%i%Sv`{E~Y|g8K(am263o`y?^?|Kdq-tyx(vl9ibJP{xJdJ3hQ|V!^n! z*AEq6%aq(?yKjukwRPT>&>WE@kBBQRL6(T?&IHMlx{O50y5$vjb9;nm@?`widEy>r z+9w^VJG@jV-iw`*Mw)oeaEBlc!iTs+<~2+j7rXx4gY8;hY5a3GM)H8j3*DiqyP&dA z>nly%w>MAYAnHPQXzDV5tom!r?=SysKvHJ(DzmQyB)NM)$oVycviwv~$b#t|QuS4* zko1AE^0U89W!>7xruAjoU$W)-Uez5QuF(FqkS314A`Zfb{yJn{LtB0Pe$-bQKl%zk zh`i7pn!4y8>MKngeMKCE54uC^~NofiSdFXteOncZb zB=o|xA&rC3F<)fsZvmYTl6Ao7ew2;g??oAjw{O+u$;w5deCuLZ0{H%a{WhV^FH?i<%H8#Y;=Mm8WOb%Taz641`J`t=<0O5cE&sfU z1DYR1-UrSPIb7V_D8AB0Axn>jG)^Kf{kHtmF1Krba9{C|%-GfGaNVUoDIBQ~a^;0? zjg!bvf2{o1O@CZfUh&qNb;@w+xf1c*D0DcbzfqP}dxZ>rF{0xq_x@6;<0qk`za(_@ zp9~j;HBP=*?NL7o9sMJrKXS8B$Q83XWko}ukmb|cHBL_Qg>?KRe-{|*_v8M+@5cH9 z9(jLQ{UrK2W>25?7erstACf*WR(^B;%VQmW$@;NXiM&<5pwR|M<9qq?6i8u%!)?Si&JU{k^ z)K9y0k4UfT)3unS4%+JD*~;#z)U`2Zy?M7VYa&SB-1C8X*EPSNqz>Br^UsE4 zVb6$wi>f^Ou0c`fKUA( ze0Y~3;bYw9NB^EkFVp$+zf-CGBdLQn|6P+tWaE;MfKOd+)OSIWI%xBw{-(tNt-tx3 zdaX}V2jlqzJHzVV=5AF#Nga&mf9A~&^#>Ppsh^|{#`D)+>Q(=9HT~)*se|$SJ8uuF ze|Ouk`bp|wJpbMjQUCtF4E2-LL7N}z-~O5Xy8gZJdF0)mqz>BrSoaVI;luhzQjh1y z{2vJ9>G&H)N_6}rbBr7&qb|d>B7TJ)R%qKiFEP<3C(j zspBW9gSPru|C&w===yiOU`W?Lk~(Pfw3 zef0m;2_fx&^Lvfjf08#%K0R^4pc7>>iMDHwFafAz=Es zA=MpzTrYQ@AC`2|#3v36>2)A{h&yCn!|3rx*Pq>1sr8k{U$Wb;eh_t`J2Z74^wn#9 zrHPkr4r&}kUFZ%?UFMHfA7>S1m(AXn=Rv}xi49nPET|yptBPdg=GK7SF z@68g8gV2$WJoR0tZ0H#ll6Ao7@oXM_pTf5w{O-jeCC=$E9uns;6$iTXJO;%12=bHk zfwA(}nf#dNWB&RGpB>S8J~qme8$7BztZmi#JV}~3<{5DiKFqg6<~6j{$9$l^()cmY z@Po(;-Jz+A`9yuCiDRA-2jPS6ka-QG>qp)c6);k*O_l^=p??C zGirSLtqkHDnSNXTNn0BAIuK_#*&90@;*1A6iTqRE4QYN5`RTXiFFMnw*MS)S^wUEQ zF>dH2^3VFITl0g+Prohy!mA#=4#XMJyzdJg;tUBoiTsO-M>Ic({Pf%MuP&$%_sn4d gab~hCKj;u=D$vPOKbOebdY_Q=ftufK_T?n`6XBIFnE(I) delta 1505 zcmZ{kT}YE*6vxjtH$S%Nbj}ZE>-BZQ)MZOT^gS!iITo9I_LPFAyHSqo&WRWf8GZk_Of-pMF$(0 z%@L?GnF~LG14^I_>cM*W_p09L{#P9Jwgg=kaKF=_a6@A{pC+MpF9|})k*ixC*4v^< z)`_HbOlWzMZk($j(?q_0;dGemmoI0zUMM;8a6QFTLmJf!B}b~PxxK`ngW`o4EctV5 zmMWS8&TX2MX6ee@w~U(H)n9X9>#qU56`*K0KvbHw(S9wKfRo-$K&oD=$4j&4R)l6| zVj~ST$76t032Rjej_sLk9+TE?yVN2xd)8-W^{dFQJ`^{rhsdMF_x_r1sz)X3de1zZ z8mxiRt##<$59H}Ea-@pek2F-DNI+jQ0=2JJpuZ!Qr{qYLvitO7y?it8iy^+5u-3?t zTvvB4$#uRTX|5AWj#NR1PahcNI_+D6>x4cdN2)k#t66UIH|4lZSa0OWOv-V@)X;y& z#bTsQV^JtMQtdbg8lta5>eHJ?S-bE&!J6>A zkt5X(YS9(e;$M=i2`?HsQU%L=`eK^3F+Izg@QRTm`Qyf)!*wG|EY%hcfkfkGD?G0&f*cj#P1%Pk*cN)|rtIZxv1( zIZ~w#G-{_~+A1WCa?*BC^SXHHjf}=ig)>HuR6+c>xsL&U?Tb?#{Mv<*BUP~cwz5`? zt4_PCVX3@_{pAM{_Jxuo)o=Gi8U10E?{31}rSC+QuJp9XTu=^BPy}FenqdHJrDg~M z`Ju50`$!e?cv@sW><_YE$v*X2A8&Ghw&I|l=KuNBN9WWZc6$nqS;gJ$&CVLIUrocZ k!P&bp(ED8=q`YZAMCa;_yDKx|d2do@EMZ$AUZnv302YU?M*si- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/ao22_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/ao22_x2.gds index 37c0c44d4649890c44b1bca66d17bd9bffa1dce1..87f3d62ee72c3d7bd683f01520f95b9d5f674a04 100644 GIT binary patch literal 5262 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 IB$*-q0<>T|_y7O^ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/buf_x1.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/buf_x1.gds index 12dbaf3bfed72b8e67823558722f9d29acf7bd39..0c54dbb1a8986710971d43a48742f4c054020d70 100644 GIT binary patch literal 3556 zcmd6pZ)jCz9LIm1-Q68`@7$f4F%t^OGx{Y*~HEn6s%Kj`6 zyt>ef$h>E~h+q-Y5VK{7Ln1|py5HZ~_w1B=&I?~PxO~R< zc|O1A&pFR?uY|?2GP2|@tKt`lO06uARZ`~vUu-Mfv87ccURK@`JAcFZ^y=WFH78CU zTytfSEGaj8mEmyr8@s#uAC{0U60WjjlY|#q5|?DGOhVuFdmsC(E%l$-Li*c6HFBHZ zQu3qid8xWMs$4!+)LP_2&(28QA4MVA4>Z-om`{I`);iBu6tpgR^juNvk?g0OXMSAY z@f+?MhbG+hk<67oKQ*^MfB%)5k}Z#k^7M8`mbW=VGB5F8>uHEjWywsIcW0Z<2k82;0So=cSq_n1&_=@lV5piQsTcB1RVHi zMyl3Ldt?rpe5~>CW_P8-@4M?KnS;0cF?~P%d&GSs{cR@y&e!jbf9LC;n?Kjdb(74! z^+(wh!1*?X;3&s|dA8~c1h&kTq&6WO`aBhC`r{qK$6uljSn`XKz+ zV7o{7Y&ZFfS7g)&;otpLuSfW7H~G;^6H@(opMZGZtM^ZOWDc5qy!VN*Mm_fp>1I9m zBy%vxzjr#Neq%1JKFJ&m@|zM_^&c4RQ=eoGntbfh{TtjpT=9ducO-Mr4{=nS(+8+gE1P-#;Mglgz;&|3E`b{e$Nk)hC&QCLi|}zSqF~ z&oRBfNao)6p5gv347vC8&}#SoCYgh#@o_(+9fXJbn`9p3<9vFU3Q+XsU4IiY1WDff0PanUl(e~s8TiJ7MQYy14A&;F&Nd1L`kn9Kg>+P8RK14nE zkz2jWWyQSKC0Dnu*Lo!Tf%DbF?`q6%u-aYYd!z39Namp5cfVibg8A4#Imyp9WIu4edL56A_)n7 d*z0jqe5K~(v5y^D{M(3-^gyj&QJQy1{sB2nv(x|p literal 3684 zcmd6qO>7ip7{?!%-C^2o=`L*PHbrS6l(kY)3C2BCENzH|R;g%Z11U76l|mFh3c4|9 z+tiOnDQqOjqQ-3E!5-A~qG@6@Jt%1i@#FzROqz(;n2>M)?WMx}pXq-brSBX#*<|}` z{_p#Hzh>sysaO&UWn|Sop{2h`i4;qj)JVktx7Z=8eS5P=Vo9VicK)xzSJzHH96x(* zxc-mjvMOTsiY=?>*t7ey4@%e;u}VX-Rjg$pNyvuS5()p9^*%*C8L9l*7Si7qj>{c> zqvJ=f&PeI7t*qId(y_?YT&q+J7KCI!&@>+Ae7bf{$2o8)t>cpKm1lK4lKqs6tdILU zwb@1kW{M>1FX{1)H&i0^0l&LO$)%^@LuP5;`D-;W%glr^6=2-tmP!numm9+`vw z^YHtLwhpP-W(zn{o0gToc6($Fn*8DqFG=F}oPZ-=UYF8MvmTj)CLeoz`!RQ?`48Ov zlgz<8{g~cguIc{fxsm=hlYjU7cjv$R{r|Im?vwi_nS1*$ai1^e`mGE}OiG;RqpZ0} zP92#NyV824w|C*34E>7MyZr_R%>D4ZwYN2iRcReE_bNY|k;fk@pw~<0UjLi5E!3rE zeeO2sePeC3C33M_K)d%vvCk(xG6((ljo**%OQ{dSFa0y^5gyx3e(Yqc`XKxjwHc4_ z*>3X7zw1{Ygr9sS>k&TNO@7HpwJdw%x`6Qtk+P}=kIX@nkLM=&`l!~8s`9+n4U#z+ z$kL&y-bI{~t{+*}Y`FB0w&QCH2O+Kz)=TGkWXP$G< zpJWc2e5`->718zYIUdvXlgvSrkNNk8-Rsx&v3vbU=Ag;P{9TD^oqzx54LU!`95nfu zzkBnn-akDT=k)#|nS()oU!Sf1!TF^6By%vxKYS*o{`2)|^-1PnkpIFDt?Iwrl~JE$ z4hH#0Z}zMI>R48Nk~tXUzqW2v{o~)})hC&QLH=OpxcbA_Cez%vt`D|KYv5=vAgJiG_PA8T{RIWy5A zRiAVS$sF|i`+V=g@cD`ED5y^|2N(0PAGGb-GNJ5ya!B_@o|vD~{gCVj`p0v>-xGrI z?4Jv=dav`H>~Q1v<9dC``@eC{Zf#CT_5*{)dty&s$3tC!Pd;_P9iL=BaIx{)o%O}* zMkV@ITG<$N>ilQ@LT*i@G$+U6t+L{1R!DlFe|+bykN>ybns1ts?OR0oQD;GFS_(ok Lcj)>{9fsvLW5by6 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/buf_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/buf_x2.gds index 3efff676792e3dfd01e379cb491128a488bc4828..cdaec4b0fb3ec625ab20fa33b45e7a4357ae7cee 100644 GIT binary patch literal 5284 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 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/buf_x4.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/buf_x4.gds index 2db227f209887f1036171b791b734f19947e5683..c464db43633f2c165d826d19767feaa6ac0e2268 100644 GIT binary patch literal 7972 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 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/decap_w0.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/decap_w0.gds index 9b008c40f85b0b06081bb35085f4097f8c633fe3..7ef8b9ade4e086cb04a53976ada3a9962ba3113f 100644 GIT binary patch literal 4014 zcmbW4ZAhJE9LE10^>}o?9A74eGfvjp$xRYhXv@Y)V{>iH6)R+GcA84!T8Lt^#h7g? z?PX4qm2FV2eUYLuh(JbxD+*f>t7shRi!mx01*2k0mYSReeG&rOlf ztxZlWj=hpxkBA)eiRyv>et($f&%X!%ZGRT}spi4^@j3lD$@A~+Z%M$ymgB82zaeIa zo|v-G^}#3G+fzT6wJiBuZ*S`7{`dQ?{(d&_e68UAENYEfM%Sc)p}@4|UaFg?a?roO z{(gA4iG2|LqFY+#iJm@p^>Kc}$IkNn6x}()^CKz;Q}q{ragqJfE@NL*4!Zg{eYR1o8b8pm4mK6<}V9`=`TMLpg^6aAuc z(A9_k_FqoYU;Dxo{i1Tv)rbF%%`NoT{?tjos2p_l;a^p8mj3!vGxUqf!BqWwoBG*b zGc&}#s2p_lG5`9b{hWW}$|24#DhE^bAF7yUzvWbdeNj1>s=xJtS@ySGm}6g54!Zi- zzpYOt|9-X>hPZxFIq2$R{qg-F`rFD%=@*rQu0H(nw@SJHZ4FWSMdhHY4}ZtIQTjXA z*U>L32VH&mJHDx-zq6-_eo;B->cii4zKQ;wPq)x7DhFMC_;+Nt(7*G|PWnaVpsNpm zcTp$(J#Y8ZFDeIJefYaq_0!+;zprtK{$1aW(Jv|oU48iby2j}54@}T6 zDhFMC_;>eC(7$KVB>kdt(A9^3_mN5Z_tZ?&FDeIJefaktpQeA`T?zU{<)Et%|K2kR z`uA<0rC(GIy87@R_-dB^!5wq-i^@S)ANQ`2(d7MWbh)>F@BSq!2VH&KukbmD9`0YF z@_+VQ7ydu7%wrJ?{7_A14{oxO^KlcEgMPoiAG$SR&EI)IWa{j|7lk11d9%V&0UqmER1-0@XbA_vkXG6!w_q1UIh|NP}~?UT$wW8YifAG_=dqOH_(?V{$P?Vb9jF8CJADhr|F!)(*emvj$?XE<=pHc4qHX)7Y zV?r_qO?|AV`;|pq*R!)%bUh?o4udCSTUw81J{ks1> z-?i^ox9+da`h2QJ;!^%uT0mzkBQ?JyN@NZOpKq}5p6u5?h<@YksS?rSxT%l*gKI!^ zv7bripsl~|y>aa~?a6ANWDc78*niQxbGrYUJ}v0}BAJ7xKGuEHI9M7qrWDc78 z@ZUT-ul|1=>7x2?y>mtVBy-Tzhre}jQT-d2 zi|QwtgQhxb4}be@3H5iJ>sLR?95nUe-*O?Y{?5Y*^^?p&Qy>0&?n|k^ z^T%=ZlgvR=AO5X%{p#;}Go^l#IcVy`zx7yF{o9(S)K4-8O?~)#zV!XQ`+Yyj95nUe zA8-rmA1utPpJWc2`ta}Bo7VeJ{p|gIdcR*JbI{a>ALAf;*#9JRTOa-hPWb17k=7aY zlgvSzALH<&2S3T&)`vg+ZeH(yba+nvBy-T_$2k1x!A~-`_2J)lX+iztlV7NxWDeT= z7>6G{_(|rrKK%Pzmel{)*(>TNnS(Yz#^FZ~ev-MZ4}WG*)PG>vRX@obwD~a(KYH+! z%x!)6pEwdze>U2#ev&z8^J5%-^x!9%+xqZ7Ih$1fQ@um#Cz*pbKgQul4}Oxltq=dx z-=x+5%%P0>N#>xNSF71 zP}|ZkRg(!N-jgbRaP@r(?0c;!?xTqkc^zn*Z&xv{^G#n&XrIJ;UF1wg-|s+P2L|U$ gUVlD+{GMEro!dqE>Tq5*^yGzP?$PhB^;jl<0>C)kZU6uP diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/diode_w1.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/diode_w1.gds index 9e237e60dd81d6a052b8d68bbdbeb5f1483205b6..f44b15da5ac9f8de1678932ce84310c76606d5e9 100644 GIT binary patch literal 2714 zcmcK5Z%7ky9LMpmw|QKs+oYQ?$BNQO_oen~=bDag0(fdBf#UIH_iAS+>RsQ&r zU;NGI3*u4iT$R7w)GYqqTbFngJJ;?*tM7k#DU_m`10;Ram>_Rfm{9CyfAfb|J=uS} z^)Xsg6(ZFBH~aDJUT<7SYbPp++duV;T=Ri+v2!zdKE}W?>qrkqt>dHExqo{@uD|^p zao(u?Z<+kRpa1Idah^DD6npyoJ=Xneetv}-8RRkV-<&6Y8t$GXSCQTuiLAWO46k#S zSg-5pQNONkGD>=p-l=}oe?IEUceP6HwKBO@{8{Tyt$W42w_5HM6g$^`t^V}6@0;ab z%kSzCk7DPle35Q`d(89L@VG%dik++S8+V1p`=_JgQS4lm-`pM(zvX9KJc^yG@`2HW z_|ol3@hEn#%9l?~iVwEVh)1z=Rer}}O8m~D1@S0$uF6-IkoY~X4Dl#-uFCH}?H7OW zOHe$DovZTo73O!ty#6QN#l)l7xhj9EEiS(4M?yS`ovZRKBT4aRx0>H&^I3^v=c;_` z>lyKFEh+IRcCN}___`pzeUQYX*tsg-xycaUHQ^VJV&|%S_sO96=v+uVik++SJvSP} z_pT3%N3nBNzHdA#{#tEJJc^yG^4CAa#mBBD#G}}`DnD3iJ_F7B@9vv`coaKV<%iE$ z&(D!>*7Fm^&b9ki+y8pUOq{e&LE?G?QOdoXOcy&>iEF(4lGuIyZuALus3-%mD(N3nCo=a|nCC;b97a>fz> literal 2778 zcmcK6O-K}R9LDjVtB$MrvdSu25?c`(YOH}J(aW|ar3TuIl~AU%i6WRGm=wiYRAyvb zks3j4w=TsJ1kokCNL|FEmq3C_1j#N|2Qz=q`siTn{}ANmE06PGW_M>)vBcpxA^CBR zq|cHnDUu=UB+>r8I33o(O23FZK5>U@b+F@_rV)=i+{^j%YI(gkJ_oeGkjoyC? z?|+U%T#~wQ|0O;3$ldl~apqZFfxzPHjB#9YLG-xJPV;fqSBk~Tvs%qZ{pYhTK5Ks5 zYsL7i^u5;SP3x?k#J$3D$Ma}=)>itI$)E6PJx+L*yVm|$uk<z{!yFA#W^yVm5lzjeXyJnn&Kxob^+_ct%R|E3R~<*qgPn$iyVLmz_h zEO)KRA8iW3ANv)CXSr)lzW!bW{^X`%c$T}?g3@1J82Tntc0VFMP+851!?&HTlk~weVf58{t{*T9fa7*#Up4DhSVV*P8t0 zPa*i=#V|a}U2F2Uv%BH%Jnw~Pxob^6R51j9|6}xTHOpOV_or;XzvIV3k~M!ov=y_3 zvg&+fsob?D-|HWPe;BESXSr+bzQOjtik{c;#S8B`5`kyAYfZk&Jq~|;upFM{uC;sL e^7-fId=pZ+OVG!4VabYX6qfr!qdsY&3GxS$u-T>n diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/fill.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/fill.gds index ad45b2bc96aea2626eed4646f6e91ac396576889..d60bb1faf93d4d6c68514c52cfdae6da93285f7c 100644 GIT binary patch delta 88 zcmX@ba*9QXfsKKQDS|;n}k z6{IqXoK0IX!m^!2gsX7bsw~VT2n+%vhpo%_yx=iNJ`lcu#& zS)P{vk^B^<0@_6$`~PHUdP`F+QOM(~F<-5xXTOZ@ExCK|>YmR*D)Tveg}UC=-FG4t zC$B-I7iqMg^kR)dRAqXo_&_UpU#En|ltIy_27!n(y(P5Cud#d{EBY`ata#K&W;8-z z@TAHGVxG_?U&qj@_0^OTH(@R+&s^Zxjk7bHKE^9C-y$&x*cJNaD0V1ue;@{XzxM4Y+VH>LmV zdw_ib?PE^9+y1!MuhvI>|6c#b^P^7G4I-Yc-><$u>-~l`GRbf4zh^l@EzMTPMfI-C zF6EdNs7+A8&UrGTdS7p^`@FGkHLtzhd0ugR5vz8eQ|~6ns{hTiWzMZy`L3#@Z}^M`d#|(;D{mT2#7e-$>--jQ@$kY zpPg0b28cM*&F?ux;-6nJ<@rIxnQs1t%Q5j&;kfu9;!HQce>x%lrTV1!AmU6n|H|7o z@vrsuhz}ypbn>}>_*`HPzcZzOK*Y1>hC~04PpJN%*sb~=M4aigKKD0|Guh+*2ND0< zKW@9%{6|gFR;>QBSU8lV(uc_`5og-hhtIzoc>80;q|h!>ixu)wwcAGS2T`)WhzaxCqZD|k5r~{=_s|NzR`W8)ORJVNqr!4rm?e<`$~>bkieEFW2By}B5?QPn6!iNm}c`U z91hC(Odi)&9?FtEw43={!?}h`C5da9`atB&mA+f{k8usKE}*f^%(q$}>-sa#M}7ZZ z|DXAzPSgz|&(>d|zoM5_cxunF%x{z9ssGK~mft&da;~an-+1;W$nmU=m|90Km3*4c5;@bj zZ;XEFP)d9z`+-0@OZL!i<~zDmRD4=Lk2*bNq`zI$St4he`MlpsgZduO=}!ga+=0lM zR(^RTB>tL(u=pTyrj;LzN5o&}ZxbIx&NTCRZ!~=SDf_p1T$A?@h@5HWbKQsEY?J4A z_BG1$LF7y;|A;dx{?R*~;)BSUR(|jHnD~9K#>5AaGp+pN-3jqy%Cz_(a;BAk;$}+x zQ#EPvLF7y;e{lA-_-EP|#0QZx&3xXsql0nTzvE?-vVTG3Of#R)-DHhh&fn$PpqxJt zIn&JN^Tq8<_W1mP$p7{aET4bAHz*%MRFIevZrqS0&s2)Q67L*2MQAEZGfA+a=4OKK6tpfc$L)JT?*tT0-iibM%g z*#{+EMHit&weBJ!Mi&uXjc&5&LxP~Lk|63l&+$J`x${DIdGnM1`~IGH&%1Z;Ii!=O z#c6hdHthrXsGN#u5qX^dlcDKNjkQDpPhpMu?EBFDFXvazxP0Zr($9XHUFhx=>v~&9 z*REt0c?}}HM58sNmueKCC8mc;*T%{FA}KU(8Weh95Qv=Vok3Il8q4Rgl6S+xWj*6$ zhJpkJ%(T=3F;A$dx3S)odVTj^iVvPy(J%Eu%oFCRhyE^nxBDB&*!_XXna=*All$}Q zXLOVrSCjDC)*+f#H$)(Ei+}ialRi2B{F_oV_jHOt=a_SS_)XUSYJ(;PKJ^Pv-Tg|1 zm0PM@bn6;W6{o=l$`$&q#eH*DdSL=Exq#-F)uhY`xvd;3d015IJ+I zZ_4>|?g91%bdI_Cs{K*-Z?BL3{=NUn&yPOQH;6pfzt8^tS>JEDMke{J{r9{NQquiCxMwtE@IkMGGI35z@O39a7J`&|%NpyVreQY2{0-+HuhSZt|@9-+Z=-d#hG{ zS4-sF@I6!5o|gN-&@$v7iC8zJP2^1HxpDe48>_`zyX1^gmh@7eNTkZtK-%}eAA4JYn`TJg1i{IMWAU=qk zsq*(1$HhNzt5tjuIaB2)Rwc#neAO#Hh@7eN54R7BpVV%P4+i+f^JaU+%^a;9^A`260;V@=H&;koNUalxKBS@IXO z5Quq9XT6;h&jZw({-aguRVAY0gZ@ZD>Vufa%vVp|i>$uRm)ZSY9Jc!dku#mX{d@@! pzqb`VCGrQxg#13{31ua{{ z57~Y^8)7u~WQ;)DP+q^o+8-@xlJ{dmc;fz7a@G3@Y=3%&^uqxH*FK5LI0%pF^nPV0 z{IWii*R8Cn&yhWhJNaD0>6UCI$t&6VK;+E7eN)bleGjlNpnc5ASM86w{_OKn-@n)Y z`~6WT>IRYL>MzTFKi2uE(#WJT>+f6eu9`a9gQWZPzUf`cGpn*GNW}|B$?)k1_U%*8 z8y?8c>*;ZxSNAuq>-&LKQ8~4T}xt@0s)98uN%ujc6M9#FI z8@pdMm=>SOzR#D*kv)t%`L6ynRUEaxM~m*+WOdg}j>wr#KA*QLzjX#IR;T^)-GRuN zD!(RFFaDg#p!gtirpounLgLS_?h+qF&Q$pe9z?_sw8q2-kuz2PqKSm~i=!#=LF7y) zpU-B?w<-C4)(sib2SMaaC!hCyqc1Jb-}Epe&j*n+RsNQ?aq+`%C&dSmGgbc9gHz&n zdJOSF@sBiS#0QZxRsONDaq*9LPl^vBXFB=ZH{!=) z(m#e~C!~LX$eB()_q{};DgE!_m|yxIh@9!gZ22HRq?{4^X(JD%MU_Sb2CIBa;DwywB57V=XYY3 zu1kpzB4_6FQBOx_M%Fm@V^rQBjL#XD`asNM+SkkefAJFE+xQOb@lFc)K33q*5Xkp6 v9tYzMT~vCnl|Xn*`})=`0r&2oKY|m~wwi=DHm7J_bBaLZ7PEel#X|Z87vKw> diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/inv_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/inv_x2.gds index 94d933e726940c17170c77ba19b29e26f7789a00..fa80a04bfc5f94855c298e14d1a4206ef0859942 100644 GIT binary patch literal 3364 zcmd6pUuYCp6vj_ylW`I^$z)yQE^1jR;$oFXK`KRL8^t6V+7(d(+B8%P(bBM0D%(~u zYTE=64Fom*sV;qzK1f8`u5ThDiw`1wT70P%+b%*uUo;5C&UYr?W~@6Gd^0b<@ZI^H zJLm45J0rGOR4B5@ksqD_vX{W&;J~IxAoNNgG(RA zWL|x^*J#^22lsxQUoLfyh}~q#`(ig+5|<@zM4H$3O5N?e(z)PB@)t))=3rf`yyW+I zKE|5a+jjPyPPKN`C(&b1>L{W_tae|C_ld-K#};c5^`%tSJb|+~W)WnrUBxf3XjTbC4F zR|${fVLp2JzSHky{G{I>$sByycXfXT*MRFn2FJpD)B2eE_vdGSuipRk{j*Q@O){_c zAN8M4@Aqx9#FePG{*ea>>Dl1zxTL*vYL#kS)zXoXhDF!JN!ok&>@i<=e9*sc$Byvp zn%nPi*1<3Q-=@Z_ug$$poogNXTrJUk<0cbQzpE&qW0fR!Ib9`lFt~4m{_O6R>Vxp- z-0!Lq9>>FcT+{MvPHSMl>OD-6IT+^0`^xHr@Y|kLs)Wb!FdzH1E#>VYkBMSRpIeeS zX!7S~+tr_6$*4~<2TguzD69TkiGKA-=Ag-6IFVC7-8G~>$s9EKi|>u9zcgP^pJWb( z`Pkc?k0wiCVxwJS^eJo74=Expvm9*)uj4; zF-LupIcW0xe@dvoy(6tY$s9EKpWa=m{=n`o^-1QS$^WdeSN+d_98jNR4x0SjdwKPD z|2CpN$s9EKU+x-LKW|-BpJWc2{IAax)!)Coq&~?UH2DW^mDNA=Nkx5HlX#F z#pS5?-O+GEBo?nI@x2&Hm4w9iB*w|%W&ILudL$%rchiK9gUDk)6skmBw0ObCl$^ZZW literal 3364 zcmd6qU1(Eh7{{NTHmApap2jRTR7XUHL6p^Q!?BH#Rj{osGa{3KSc_Kh14~pUnQSwi z+ftmH!LcnWY{4rTB6^|3yW)j};sy7C7Kj}X^%$yf?x8D59|IP1x z-{;LaPv43ymX(&JFIi2$NvkwVhb)(n|95dLdw8%FVQe*LD7QW@62w zuq+J)d(F1Jcl^kXY_BvrB6gc4?~C1TNkmq=4dPx+OXHoaa?#GT#I89)G6x$ws}LBFf>fBkY+ee%mU3pziE9P5+x zly&B3{iohYX#L++9Ic;Z4*Kg~?>j&7{e(B=LTAIThi(RcOv z@}B|Eh4haF`KI$R*I!+q_5Jty|Jgt5WZfk5TK%on_se@eqL#SQ>V3Zrzjn#+P*Uue zy?5c1>U^rBFDZ*wPKgtgUGBfFvwqgZc=>^e)RQXjqo@gaCDkXHgC;+o zOR2x2YgB!bIcV}4*JMlTlgz;&AJ2CGpY!_uZ9L&ev>XXbtlfSx*KYF&T{-?ba^-1QS$v-wdqyFbR=hP>egF!y}PX1U<`_G9b1?@j1b1=w9f5A8i z5B-N^Zt~H03%#!P-_z4^?Y|^*Flc@BSB!)3(0@th|Ms^p^nbk<{oW%j#VN5ouFWL1 z2a?FqQ^{~5BhC4gkn}+R{y0DGeeJhh`DSQV`TgaTbpMnRk~!%2M|}4__}ClRvazH- z$sDZbv%cYxiq3KJ>6GrD%rBeK`bgyH{UklmKY#V_UqnuN_2CX5j?5`>Uu=k1gv5Ok z<79sAsI*)h5E6OEUyhE0$iwf<*NAzMlb9Di$#p^h{=8cd|L=JAG&w7S?}_r1vvZI;e%OJk@lU0vs#3vu)^2?dOcG zYpC5@l}zp(J@`Q3I;&5aC08fxR!go)Sk|_t>#XDGl+~XuI8*PXEVtNeqHda2W^B=}8tXNY{EE+JeGaqfS-Wg9S0?jIPfqz9GRH0Iy3T9KT4;x*PASre5<{8#_B<-S$^W$rp`+fL1ySUIcotKT0ze~GEIWq+D*zWC93Yv}4Uap%c# zOCHLZc>5OxpNs0jYS-uW(R8lp*N0qp?V(bccN|MuduhQ$=9lLeeGa)UbFt^QMemE` zx_&i3&kuh`d*Yp#dM(}`Q8~Q0pZ51h+>HO#zKWHzTK&-evVP5L^>u&M_Ah+@%j?&D z>b^zg<@;}nKOdskM@z!e))ehu-MLol-x1kf8zww^v zy&63Z(%4EdSkr-xru9_r)YG?RCKuJ^F}MddK$XO5p9 zeo=X-kAKVA3HNU+OuJuH4nuzC`03#nm52I#w(vaz`F`SiP*e_U`C0$nZL_}qT^|>H z{i1SMtIxWbLwc-VR37T%zpt<4{=sh-+%GDJAwP5c^ze(yLw)?apIUVPP$uPmQ8^6x znd7I2UsN9I;~)O8)%_3c$hlus4nuzC`03#nm52KHA3k%V`$zWox?fZdLw@G?>ERcZ zhx+&*SvBbX$KD@tzo;CB{LJyw!!Ifi_3`I#D!70D*W>ONmBWyqIevQhMdhJB{wMcM zxxbM3!2P0f81gg6PY=JSJk-bk^qaHpfA-p<`$gq2 zi^^fh&m2EJ{G#$upYsRjN;v*a+Rq=N^76T}%K3@&1#?J`^M|NB)aTs69Ma?bAu12` zIk!zr#^<-mtK;*Vs2tYXKhAB;AwAA-qVoUthbn&8wZA)Hi65i$L&Q~M1O8noDux!9N-u)su>l4Yjcafa?gVp@}?qlDMuZ{Qb)tPwzMCGuuAD_RoEBM{h z_@!AUyWr&aZe3^5M1Bu57ss{_Thr?ECX%Oj&G;OWXWp4ElR0Nmk$HO}?Q=-JzGuEn p<{Ms_^EqT)%th8kPbBC1A~}AMoOOxhtY0M8{rmo`jDD%r+dmBnEWZE% literal 4772 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 R2ZY4@sn_}`);^ge{{lWuS^)q6 literal 6016 zcmds*Ur>})7{*@_mQ_JlLR>-;9n?)x7t`F-LBJ^?u}Ebi@(&^=Dk@~zYEEKWt_Ff$ z#P(-utuFAQhB9rZykHu~p`1xB@uG?TO^oFXHCCHm(D%H{v+a!E*%@!+=EuC}Jm-Dh z^L^hrXOB1}DXChfj7m!VS<+;zOps}k692zAlN=T0r6QT5Qpwx@B>tN648oLb5e$P)LlkCfTjy zf$klm{YmBl?fkHwOtPMztt+Y%nNB<@jDSApFZQ1(iuS^bA5gt zkAx58BN2xml0HGZ`KYk!S(wu=b4q}s$0mIPufzZ}+fk~+|Cd_3<- zoz*hEA*ej^(U7?3HwcM3voAQcUJ&zvcGA15OxsE1K|9HDLA(5TU-Pd8H9v^FvzohN zgpTcY`c_N7CR8n%zjP>(_lfMV<_F;m?PN`fUn*Q(LZXgxe^BcIQ7_ub_16NbC*iNk z7o8uFc|kjWsBiNRLG1@ZUws$Oc!|#ZU zZ!_r=y&s96Z!|xj-`zjos6PJr-rf91^_<_kpa1{nkMqoVCmD~;e_C{ZvDUM!BymZa z_52rY8<2Ku9d>3r_SM&qJSUreSYs}qq-nJJSd;L!<9XT_U>K;{~-_(kY)*f9~E#SCY4f60`o){Si zhYLpuoF+K+oK?I3hG(~*oP(&Mavb`Uz88A!$x=}~{p*IuoELtU}fPcjag{6oL# zR;B9ePS>iQWE?c<@!i!I1oZoR=2B3;jt&6CCl5xt^P^IL6aW7(GEff|0Lsy z^zgs``jGlRctq4c$v9}r5C1Radenc*d7t_x83#>z_(nSj9sHAwC(^_Jp&Xa`$8UZ7 zmLVAjP5E(dIrhCr&o3wT`}F)mG7g&bI6oaf*{|oP)|rEPej*tMO?sT$UYq3C^IO}8 z0X@HwjDsdU{I^Yv{{#=&^~hLQ6l?uhe#6a%^WrdFn~0l)u|0 zB;#Pbeq-F74fMDN11G#csCtrd&`#fI<%e(F8-bf2sn&TRkG$0&_hj@5*`Dr}d(RCC zi8yrR>2JGqen^fB#^;Zo$1`P_mA~LjucXcyQtDlew>NrcV-a^l^L`D-$bO({yxdIz z9S_8vL{?2#jJS)Kde*OZ5+KH5f75uYW|m3TZm)pQuY2AdBgS9d3_QJsxGuaT;~Z3Jao;A}gXG5i`n6BZUGN-8HhC7-EcFC(4w48eQ|)>7GyL$|mDNQNpvIzgwYf9DI zU)iPgE`M!SpFICy0>vZaASEw5*#(lG(pJAV^?R3ivL=7mj-#Ol%G=w+n7=*@lDS1> z+x+!^eb_(VtwGGY5CmyobMieo*R&tPeK+>NdncTx^oi?Ee(qpMeWCOrf8lVN;&Xi} zU;10TBZ|@urt(049Palqkmp(gnv+t$^v6rBFQg}&s=n1u?3;*>! zpwB+CuOxG!lh6K5zrV@rvwzd?Z_>B-cY6K%`~TS|_Kjqo?w>n(9D;bVqOYbk))p^Wu zS5Zp{Yab`H)^f*P|JgrC&BQvL5li$Q&N&pp%rg@Z7L~%9y|FZz3+?x?-IsgFe|kXA zVtH{$&mhTMn8}}ee^~vB4H5N8=E6+=g10gC7xs*)Pcj!~@)sAx)vvslP@iNj%;Ybv zG1Xu8+OIyzT*{%Pc&{??olBqM2WG-~_Wp>EAP&}_SqecOIF3jWynq%sph>xjHG8bm@PY2`b z2mJ~4N#;T)U(QYc*`S`EOQqI3gmr#M=0YdGq`pFZp?LmxRcVUHb-TYS^^BKir0Zi9 z+Ugc72VaGd-`@jfOxGeqN6WZ$~=Y>G)~T`&QXp3tejcWpxJ3#G11 aXj1A*PD)*0UtH@8r7nG~pKCoqvhfGqXe&_w literal 2738 zcmdUxUr1A77{;HLJDzgt98)*6SWzURWJMGtvJ_LxsHni3%F4+8Ng>4ws!5r{qN0mj zbdeCji0Up_(8UM}ueuCx1aGQQM0V9Kk~;6ZJ?oI3ftPvnljr+>@Akd>zV93uaJhO= zyU11i5gsf>Iaa`J{~xBy=}+ z6lp?{2^gg=Y=u$gf*;M^#VC3oLFtgG+;G~9;J#jv{?B(|J~Baap0WaS>UHPp9jia9 z^=?*1)F-dKm_d~%22%3iQ~)GBrLBHj?)x@a_3eMYT~RE*9tCM1D{}D5AE$La!Xx*3 z;oFkQQ`X6GC*LqK>I-EZ(jQWMj?d>yf2u-WRJWVT<0EN!u7yAj?TKhkO5H#*r1gdL zg!9#Be{OVSI}yL1?GMRZIM?@rKKsbNlFWrpKKr-u{$@X){abi{v%bB*3+vzC^|Mdx z8_7K1KTq~NS^Klf1us0-?_1s)#*#HDm_g&h;9#y#4)g8|WastuInOKJ3v}-Y!w4ED ztP?D|dY)?4rvun|@t4dRIOjOa`+WvmUT3t{I>%Z6*$Q%ZTC3g>4Z4TjCzB|r{<7x@^+WAR^-1Q!LjKCB3H4W>pH!b@ zE-d8Nm8R9Nf09w3WG*b^H@2ASul*2EpJXm{^5yJy{IK?!#qFb}-jO78p_4Cnhl~rw zlRKJZUdWd_wLjIbck8L12+C`kKr$CPeZKf-W@74}jm6a`nF|Z~gQ0}_=aWhGN#?>r zeq{HA`j^s^>XXcch5XCWwEEFNMtzdG(8-r`GjcVm=V!FqdIzx156N8U?wef!z6(cM{j9CX~ce%8mPaP}7_M>HFP@r6apRa-Ps$?_lnoL7ur%?`UhC z^44rheR6ngGyJQZ(^F0!%tHv zdDaP%p3tejtX0N^Qnze6o~P86oRqqiU7NMOklw%bttX1U16t4g-?QOqbhSYFaQ`?~ Qw2gygZZZ4)iY*r556|xHOaK4? diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/nand3_x0.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/nand3_x0.gds index 35a751557541a52365fced695bce3a82dc3c6371..323758a3558731650e19600f0cf14fb7c80f29d1 100644 GIT binary patch literal 3838 zcmds)Uuaup7{*`I_Vl!*T^iFg+1jlW|5V*1TVV^VjM_n)x#Hr5Se)zpQ?QOvH!3q@ zwRV%*Zey-jE;7V=Bc&H(Adcvbaf}hY5C%i$jRw?Nv|@T8_NL79yvcKRU_Br7*53Te z^M23!B=48=eTi5S2n>ss27A!Fi|Va92Y@HrLrM zBfrmx{fR9k*D0IizJ4!N`W-xz)_&&})9NSRyIhjy`J#}}<0p>_2_5+)`zSqm-IdqB zB~*2HrMoD5cZ>4U^RtqeEDA~8p;UYPd+zzg`xo9nAzN?ch4j|^{Gpl|oe%ipQn!RZ zo^^@2vF_)Oy)&(T5dIC#S(os$?&q&PpH)AIxz#^1=MsL_SM&Ef`_* z?fX;C=ls{cKV?7XzxMqp`@Q?Kw)x+iALq=ulhob$2g~P!^L#`D5|W^^f6-rFmb%CC zV#lrHqob8M`>eY#QeHPScO-R_ALl6QAbhy*Na`j(?x#av=k%U>^@W108@nwebZYyRs~3z|<-2Tl2?BOgBGlhjRqLx$# zjj4Ah^!_;8;`}~v?hleW=$9YuYga!AU+m|EOZZs#`UflD*YW!za3>)LKDCwSZ)K%^ zDlO#X#iTrVEh{AS4X@?24nluuDeaPdKyTi`%6*C7N64%HWx7}Wl;1dK(ZB~nMw zm{?-QTC^)0QLrLNC{nsn(nWC)Em;X}BrcSISc89PvJhue>O1$%86Pz7gKW*_7ta08 zJ@f9H_kC~RA(0qH_Z^A)Uy;H_G@}Q}=>PB&-r&Gqplw64KYi_=3t#;8?yi>eA53lk zy%pWbcwfr%#-1G;*?F{>L!A$JjR`yguPK2x^rttV?z=;&fl3|G(Smy*J9X*q+j(ozvoqK9m(tF zyhZv|U&}ujT>s{)K>PPA#v|jGkve@3#5cb=XS!%}J(LdT8&E!St^S(tTL;2P&b}Yc zSCmfP?oUI0-3Q$lQ92pt*ZkLif5LptfBp9-^lSd>zdxZrdVkh8|NrKvIcx5s^xFJW z;qx6lADINwNCn@I%rD2#a9qbW6*VR7(3?9tG>-3%vb`(BU zYjo>r@G)3^iL1s=#;!`=Si!D8N3GY6*j0C)U8=2mD0bEV@;a;g^a-&yATkChhz<(-FMi2j_<uZ6NT2Fa z|KaNS#orr=>p5(iEgSp)E~59xS%|H-3fMR^1X1hAXul)X_kaH0V85q7@r`G1md!6t zpYKCkZyqA`u5XV)q|SU%eaL8Dcz(8l@7oQ>htc{+*|`5o5y^dX5D$J`GF_a$SjMK$ z3lQZa^(WDTt~8h_VrSY>`Pr_f1d3k`^q2v m{K4Cx{hkco_ix?IFJWL0j2|AlfZX&FMCk#;>#q-3hkpS-&fsAH diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/nand4_x0.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/nand4_x0.gds index 0187a1f341c29bed0516715b3c10a61b0591174e..22c192e533d1d9a1ed4e68c174130500a85b1bee 100644 GIT binary patch literal 4298 zcmd^?O-x*66o!uj3>PxcVH{wvv{KvhQ_xIXBa;*>#iUH_L@~xlG;RGMkye6j&^pG7 zpdw=p%F0ePM!GSCMME^2(T&(NW_00C(iq$*i&}}+NEeN4ntI=J=e^#fd^ef3-8{{E zzUQ1_4s$<7f)WVyOXE#}^4}yRby6YQq{RDwu>!%=z8;ZiNm*C;>wjiG{p;<{np3C8 zZ~r4Ajb&yp6bueOF+6bRp>$kIEs5PH>k>ZeYxyaA|IMj+sr}L3qs@aO^Aft4clql1Y0XLWZ@svn{Xu%*TK(<)>I&ZI zbvBWG*Vzxr9K6vF3w`d9dnK8JCZGE&e!tFq?yva$IzIPT{C*vu`zwCGj_=)Xar<+8 zytmvF_eL^z_ZM=WSN7+#E+AnE+56x4`j}L-EQr+*JU%i~*puPhJHyVofdTV5>*pCs z?YEyG4Z*|qQxH#uHM+HAbCOy(ic`bKjHhZI%u46wLG88Oc&g!>Y4_9)&{??&M+>(OU-hkmxpj^w0zbVb0Lda>`!yi4Yw_p|Nw@w;8WVO5_|4WC*1Y$BP1 zetzTqG4(fIYE_?P4*L0*&Z@ujqgnMy=AfT{*Y2G9iJ$W7lgvSrk7ru%l~ui??mKDe-9<77O+KFKsDtou zcazNhd_2=p2jSuFCYk&Bc&4Kc!o!_SGWYXw*B<&Zr+4m?kK|?DiA5oqgQlN3oto=r^PlaD>HK5Mtva7%4*JbU9rNK~KFQqA$NcBU5<35dSW@Sc%t62TsAE1n z%qN-q`I!IWe80{=ksQ?dBy-SjKI)hc5A#Xpem>@pE~Rz;csir=N#>y6eAF=?9_EwG z{e0Xzldp{F{d2P3{_bSoKO}R|G{3I5NqrDr?AN$Uc&wZJmd>#HApExPojxFZ*1i70 z!grq``){kjrMNtH#!^mQ$V%m8pO6!$5_0potdPjpKb6xuh#3i8M&U+*F*9g=N literal 4298 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 literal 5962 zcmds*ZD^Hc9LE10-PxJ1n@u~~R!8w=$kYtYnI&_+%`&sl98|v7jws7HkyQ|iRFiy} zL2XeVCiTIh7eR~z1sQ}4g0fE?=|e_EqY(TcHS&X<-~V_WAJ(25`r2Up4%h#=?)!S~ z`#$&coZFI?NVHhZZHe+6~vPQ)bDr30r2#aS5xo`pOY@`-F>Dek$V}`&pk& zIeXPa>2PF~4eOuZv)=s>-{OY7CE`;(&R>?x+oYej8eG_V*;c)tEm1lg&cC*hAK#9- zea>UkFIvTstci!tW~}MUyouk0^bp zfBDV%;r^n36COQi(=YX!xbRc6S?#AyL|^-Gqt{{dFPbmfesW{l9;_&=ivkaSeAQA{ z>PlSqZNH7`=r?iAg`C$#`QUKve^|&rv8TnVf9rPE+~4hfanc)&-ml1g(7%}ZX0Q81 z@}=ixJs;fIkhR&@(j`8zcfjTxtuyhl*1Xrn$NO5`FDe&|%fH~xyyu6@H>Yjtrn(ZF zX7t)!U!+Z3J@>TN#g%{789tHx_njT^{E+*iO_BTNT9I*~E;4TTL~<+NaQRt3_?aKb zye<2_vqa_NUn*Zjbt^B1XY~25mYSSAuybepbqiZBtF^ZF*gk2kV%B-1wT_PX z)>eFwv8_)Ia$VcLj{ULi@f^~19nZvH_rJZ@o6r3wf3DQ~_lk90vAxCj*U^7xeP0x% z!|3-S>SsMuhxpi+MClM~-xsCBxc=F9s6%}0E28v}pYIiQh>v|w zlpgYvzqTst`R{(e)ANhcVJJU!^5Y}FC_UsSH+6`Q{G#-bpZwF7b$Na=@Z1%p!%%+e zc=#v3C_UsSH+6`Q{G#-bpZxR*XIJDrzbGAs@+&hwK8w;resWWX_{c9x5BbSmf2!Z} z&s&`L{GxOi%1@m!!$)7D^pKz2)FD3di_$}W^3VTn!1FKIHR$<8=`fU^I{ERDUz8s5 zlbbrkM}ARy$j^HlUWk|XI#D`|%U}LO&K|naVDOQiW`9o>rNcNs?_ty-z7@}Pl_)*r z=e?KrSiS%9-pl(iln&$iXaC<>-{t%NvtRZ4{x3?0aen5FI>g8PiPA%Uo*UF5KAs<< z^pKzYyPi7j`FCH-d45qk4CSXzethH?rHB0FrVjCuUz8s5lfUg~zvpkCp7;EsbQsD{ zo&5O7FG>&j$xR*NBfls;g2~q zeo=bJPj2cEANfV;AwSQLBggap{5U#uz@HzYbQqVPy_q`1$KEYU5BV9t*CuxQ_#OMG z%g0ZY4&(agzNtfe+`lM&sQ>B6`}c^8-Bx`)ZE(^0I%|I6Oo`HAwEw8TYIc{sx_i*z z$xSJ%d8eU7=`hYe?~|1KA^s(qT#5KpkNP)9&JF38vo|>Y-NKnfp?^_2jPuhzb%>At zMd@*V&K(%HZL32Lfg|l7j&0Yi diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/nxr2_x1.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/nxr2_x1.gds index 5675dd38a13effe341575da8c6e2a9d621e2c239..b3c1005057f5932847345e5b0a8a2091a19fab69 100644 GIT binary patch literal 7154 zcmdU!e{5A}8ONXX$L+1OYlqOZ16-%b8eyy~Zfo2I6{ah~CfV9?6;>`Q(2I1XP#rgb zuGr~{vaMO7bWvlCn$<)NahlykjF{+h6Ju!NuNq^*6l3GSU^2CF8a$up^m}{7``+lE z_MZ=Vp7VWvopaCoo)=44MMcV%UsqA{d#kf1tF?DnW%0i)S&`Vfd865q%IbR>U-{eQ zcP>AB*A1s%IC1MA7u)jcu&yqV7|b5NeOGp!Syj?3QD0&2w#4-nw#2qJR$BG;c1zqi z;;jGfq*do;tibbaR(mpI^g`dyD87ij=Vw!X9h44+;xmtvojH$tvb)pg zB#!?j?eh?^Gp_=ri&!fDKs0~qe)v+_*|#>Hzj)%MR=11fp>7d7{fX%Ci;4?N<>&r$ zKj_aH)z7@CACiarAYvz9fzn;mU+4VuwWhK1>Kg;Cwt2ldzw+Y|JJ>gAqU;g>t-ehQ zdMo~0{QeR9(D`#F7W<0(lm2+r-`eX^wt8cSvwcgKwZD)t@wUZz+tk}^;=Rkq?7oXR z6E{3FX7?Y@oA|D$vi6?8wwbu*XwKt_$^%Q)b1AB4<*z1e$sfj@hleiMEr+H|99WjO zcP^VT@x!lPusdIxH4*!re;RQ=+&`Lgzu5DGR@aNzi7(zXJ?4IK<>gk_i`a=PuIR|R zUtBsm?RpVA@kR9oOZCt5mgs4=mi}4ilRZ15y1vFWtX5=gj_S&ifaSY)JWi6;EWx+%F#MO}b7T zO;7vtBq}Z}l|TAD+0xS~e}3TTH?LUpZJ7d@yZoi}ry~7Bld&GY?`nrXzvAXsa{fCJ zA3UFTzxcrEF4v3X@9Bv1L#}(|`^f@{gI%OPfTzdx~F^MTjSxBUDT`q!K^H&OP&{OaQUK=i(Bs<1|@ zi{{T-x#{a2mS{-~9*U=2;;K9PFW7T~=PcQhcw*0<`MVLgj@6axhKIw~u`+Mn60I98 ziT&-ttgK_YYF+TE|FaI}_hcJ=&0FKoFz?9P$5Q@|T=e&hzXL_tVexOESkF5QKSam7 zO_aTyo@cl2dpUoXH1y>C9V5yPL-~1j@k4aH14P-&=~)At&TjLyrlmXWYmg{A4CQBj zH%?}JeymNbA)@Rsq-SpUAv)$K%3e-S{mU*5dHrvBYQ*aoWrv~s)Xy3W-`NKy83diE^%A-cz2PZlV9 zIX!b{O^2-2%wLophU#bT_#ryxFUnp{-@R(i^$;C<0ui13q5SNz9%<&+qp7Hh+FU@YN1~enr_~NKgJ98`7Tt(O(XEeo=N9(vyGZy zdh(|aj(GmQnsLuB$__(%^6!2;G*eu$3upD24dJ$>_?2_NsD_WniL zVJJWSANa|X&wp@l&ifZ-hao-vA9y|I{SThX`}<#%9ftJujUS?;e^K^wdip+i^@8_* z`1BR;Uz8n&^3(s&Kl9%I@MmVce^GWA($oK;l{4P|@Yz}KUz8n&^z@A%qN9IN_Hugq z|46%e|3~tT-oGe24CSZ(C%Wgn{_N$X*DuNrLwf4Q57AM-D0?|Q-!R!DGyW}ltYOx_ zK}FeNC_nulO}Bdg$LHF;e^GWA($oL3Pc(b~A6wDp{fn~0ke@bv{{+}H0^!`8Iw$1w&Wrra>>+Ywb!&Z3e^Uc2gin7Cyo_z~`h>rb> zD0?|Q^Z)eHtk3_MZ;bi;McH8}KXbFV9-#^!Nf_ z9)ezC27*5ixVi7!eAL-C3CbZW@sK7C-$?~_O$+z$~u_p3nZB8K8~KZx&)^voMQ zBrf+s#Lm15lhkL#adv(yt_M=@2Qy;@ z690jrxF1M-=}X0@-iQ09{EQ7gcs_5bS7!_43~9&e89z&coW<$-Qt_ylxp5st&wNGV zGk5X%KezjQMd@Iv_?j<%=7w%mA+KH#J}(6I36Sp_d_He_esRw_j1bpkb0!|_%+eKq00URqAXP6 literal 7282 zcmdU!acq=#8OI+=dp%}>f(6R}2Me$|I#!6A7dN58bVa(kFuI+<%F!}7M(uzu<2F#s znC_fo>-a-D{pXA(c8MC|ve+nzjhRc;KWL(V)EE<{7@ILnHB)b!3A@kp_IsXqzc=wu z`GXJnKJWK=e$R97z3=aSSi)**(za|?P5qy&!LGCUw$kb<|82>dMCaDcW=*r}?rePh zpM_ViJpZu;XJ0yb%bN>rSzXxIkVy3Bj&9hKTW?mIG)v5_u}@lJUX3+bYvXLId$7$C z*AF`9{-j`YE;pJe9o8%0H0jIXbEUBTBUo_uA6 z>mqqsmx#{#MSR3X<%QMivwr5s`XG6kuPFW6^>3;8e68Zo!p{!cBNxU@tO)%_efdw6 z>aUxXwzZp6&bDnG*7j1?#9J4R+m`NT6F;#mZ+Bf9HF4AFyxo0b+{BMRowHBs5-E69$L>^rS+`(?XWfddB}P6@I|}n$cTx3OULb_OD9cytnZxN{>qez=(qo6 z(BtsnsZo!MUE8MJFQSuQykR2madCCeeeM_0$tx~TqGL& zUoAi1C+?RWdxxC4pBKG<@z|!cf3D)mT;Aj2@$RJi#HTJ7{C*OZ7gnp!_i54DwBJAQ z)DNbu`POWi%w6$n{^v^m?S;q>KXWzZ_piA1^-=$xi1%I?_qce^*$(%M)bC0~^&!_i z@Y7_OZTVix5=#>ON1`cL zx$3q97wv`qF-tB5!j<*}v4Ge^@a%{{sgQRu??6#H4Eb3%afpxgi_+u#tbgT;W4``X zADQs^i_&4JKI^_QJM8OUZ6m&ZQ92CySvPTrkM)bv1j z$DUD?9_Q!2Cl2v(|BKS&{Pn*ZwL8ui4Q}j8`kqLX4nyl_4@(^4V-G7zkMpxJ!?o5l< z7p23HpZa^=z0d3SoXL27Q92Cysh=sPyngRchu0US!;qin$G+CQKR@=rHtf$2Q92Cy zd2SGg_;`MZ(&PN}|M1O+z5fG08}$A~=`d8E{`a?}z5nc3*83Nw!;qi;5AGiE{tvx9 z>ivt-VaQM4#34TV7p2Gf>Hm?PL*9Si-wNKpC>@6C)BmA#&inuTbl&?HrNfY){`;RB z_x_Kpn)Lof=`iG{Z{iRi{fpA${Ph3mv**13qc@Iu|Dtpls!#ui^TXc%z={#?Uz83* ze)=CcKjr;DzN6^$NB01u^&%(|Hrmp^!`QZFjSx4P`P81{#*F? z{3-tpEJ}wVKmF&fB)$LRUvBpPMd>i)r*GmAAN`BcXu{b$~2@%R6;Po(_)FG`0YKl>))5Fh&|QF@%8`F(9sw0}PR{b>IzN{6BP%#Aq2 z$NWU;aen$gy`aPUf8ph{_b*C^q5AYq9O9#YQTnz1hh~01c9wp_e{kW1)o;oZt*B|}9Z!$jL<$Lm0zjoTmS##rol%H`!&WPqM?6XDNT{x5oWCh=2X=(mD4G{fztaXmqAtB6)OuwS261+nNr)4w7g0 z52N)!*1I#CFO&TD9FF>dHdK3`EjSS`QiOPsmkTUVN+NM7bG>bg)q)_cdLq|XU*=3U>M zEt9iubdfq6Zz*~`$b99mwqEkzwKB>F$;0O%l8?_xMDP7k+T)P*$X}Vibk?W;!@K%k c-wNBh(VXA;)u27vTQE_2iP1dkORTl`0f}%%DF6Tf diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/o2_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/o2_x2.gds index 51068a19f3616b3288a701addcdba9e251c85a30..30c4127e7c781574159e760c3dde89d5d78560fb 100644 GIT binary patch literal 4256 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 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/o3_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/o3_x2.gds index 9838ced8db1b9373bde87994f644458e0933b313..616fbd24cf3fed6770a440278ea9ab1efa070fb5 100644 GIT binary patch literal 5532 zcmds*TWnNS6o!|*%uH!Zhf78wf41Q05q7AZJUkVz1jD2A~jEg&!=%5V`% z3^MRw>m{*VjMb=VL}C+pAW=yZ9@?mhHIYD~#6}>gQL&K+-2XcLk0Z=E2|U`Duld*c z*V=3EJ^Nh5BUxEdDZeYrdr1nURPy9*$xi=Yd|95lMe{{UvUBJ7&;HeV>gww=hcv&r zYs#<1Ql9JV8|3jcOkb0z7Rm96cnY)R0r3pZk`k%&XG`vika&hCm4#olN^VDw*z5{Q z-hsFjk|v&a*{^YsJ}_s#Hn~;Ov>XDM`0U@EIe{$l4R(a@1Tu9~t zGu30i2WmRBuLH|!v|sYjhBK<$++C~v93o8|eIgFRhkk7`uVJS8x}IkIsEs9f-S9vD1!?tmf`*eNCc?X*$JgZ5_S$h*2Cr5@8TA#$Y(H{vN>qD|HFjN0n-vz4!Qu0em zx#yEUdGK0LNa|oFKh_8R@7&R$-1o4xqsW#wto=qp$9^Q~18>dm7mP3c@Ameu<>&sq z{rzkC?|lDSe(t|a``3McTK+pEy4(WP3Jb?TrjIai79DhO4GIUWL0Q zuc~&u>VMg%&sxvY$S!_5DA_wf@i-tn-zm4!ZeE3#@ZL zaH2)WPf`b+{P;bWo{s2wTed8w=PgMcbn;{U%8n&<{mN&hbp1%`ppzf#hBycx){ms_ z=EwL)TxrztkJ_8m@srd+r}`NGsBc>Qs*n9wwY@{1XQmc+>i#3CgHC?*Kl^mQ_CI&IPx~jSgHHZ?k0sO(!iVPt z5vaKj!a=q8eTQ==%|!Kax7==3hB4rv6pmH>#hc z4!Zec4N3Js?ML;m#ZvOhNGwOeSUAOv4>Y$sy;l@SvZ))yS zKS>>Q^KS`>`nPrZ)lX6fo&4B;+bX+t|GoI7^*m2f2c7&_|Lw5~t-qr`r1eSappzf< zcdYEw`mg*Uy8lV)ppzfyy+$CqK^riJDl2i^RyUW%%} z>E*ckN$Q}JAN{{JETR1${J2T`C#i!@ew=%VgYe<}BdNRj(LdrKe0Uxwso(5ho%X(& zy`fifs>1>n9q*Ow?$p2hyixKuwo4Id;`!f3H4f4TruWDE>&^4#*yVo7eJ^6MqesSs z0{YGkq8{QlO`XZtLRwF0;*}$U8VB*N4&5g68fL1G_j~m7SWZB>=k2&mYmNwc=P36hJ8Rn z$9}O%-%a_g=TGZ<-Qbb6`o0R{y*T%9r%k*!LnrYb>t7ev_gN6{vGk{pKRy4*HBEXQ zSUKN#zB6+%z|i7aflea-=noQ_A4Gooo$^;5?bPc)e5aW3POr_SU7Z4*ME-j&cW8bP s`RRAcKl^8&cq{t^#Qe;-5VVPTfleOzEhKZN^b1KJsQJC-K9VE<0AvYqqW}N^ delta 1474 zcmZvcT}V@57{{M|>!$6vIi1ao?M!KA)|5268-h{PexPD0E+FpWqI!6QOtL7n+t z6d|G1MOQJ}P1MZ@x~Q8@(1qQYH^m4FiHbfh>Up1?N4n_hxA%X3@BcYx=kTs{ucTCP zgWaBkcAMSv9vZ+4en^1p-`_>GGx)!FG~(Z*IKVZM2KP=~vUtC@TSm#S2A;JzvGM6D zboFfllXIlV*!q3G=@K;m4g*r?wxR9)OUE*_|K?M ziFBmcat`@qO~>2YfD{>5h}N=Jt~J+~eM1u!*MN6JgZ+_pnBUMIxj#G917TV=zDm(e zF@08!6pD9DEew(t_;Z9brefttVb({Jp<6lf!uux3V{(oZrZ<{w?bYGXSQy$~7%=ob zwN1{ELh;4ao-93bvvMTe+=VA5c{4{h$zyVk6j^^vT?2X*mkuiQDws1? zj-uk@U4Mv~1GX zzW8v9zIG<(Nb)Wp2J)`HQ^;d-jufVHSDlHIcEg`0jd|V5k)jgl_th^=KrmneayeK# zl@jSNTsiXtB#R?;&>cx_lXE0)uN_P4!Gy;#S(ST)(G;S?Qm&nSgMbuonrf$|>~lR{ er(XZPD)llsM~bOHz8r0ywTTb*jN1d?bi!W>)T0Oh diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/o4_x2.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/o4_x2.gds index efdbdba97c53a70df2c6f70d64316b6dfc83baaf..062a9179416c60e6ac22e7d8236a288f72406924 100644 GIT binary patch literal 6216 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 d9Uq7hb%0JD{oNexYjLu!|JO6k5y(=#*$?rOK zWZvaTQkrY_<+&?z75 zJ^JV>t@p&Peyx|J4m$a3ta=w7?v_V>uUBrFAJ_WGBj^08lO2E6YkeerpgsO-TR+A2 zH|gP+)T~=2q;1I2kNPHeg{9!v4rODYPl^^qgna0Wq!hpJ6>{zQ^f*Z$=u{u#yX%TH zKDeiOP`p>lGhBJRUB>QB3c2*zsE(6}OTSb6R?LTQyJhmn5#{!_bbaL3WK!>o+!rj; z`y-o5k}|ucS4h-RJ{;0|K-7V8l6gR-~`XBQd=nGS-vOaq{U+ zUiFc&+-A*BGA?M!zo_Jr_8XjAT_wR+sxl0$3kh@*zaz#;{LUCB+ulvdo#%#x#P7lQ zPWdaW`(M2&{dY4uMrPp_BJt}mGPx7qa zA8RYtM{luv|JJP|zmvmt_rB%VwaQ)WZZThlXjq*QZSP+5b=Wahzg;C(wC#cP+;GTQ z_*1R&kG4j9W?n-f8d5s^DlhaulY&ppvmv~u1}VIG%VnXIsc7^nPj-(En{OBLXLHN)=l6p2j=1<*e zpU$6f(694{qz;<$!@uETK>ZsVSE-+*4rcRjzFw>T#?E^6lhna%{wMBeR{yq7V(KTU zgC;-L&nHKPbp4E+3hVkwQU^_b-2aXZ9h$%C&$#9%se>jz^6#vSX#S@zL^VH29W?oo zfA_J3=HD};U-OgHL6aZ(n;Y6S|DJ2znxCW&n*4bFTE33!^S7@lq0b*l9W?n-|Gp0f zwEhF@2ep2ZI%x7E|A8FqylL^^nE}mDQU^_b>|Y0ZtoI~~hwk#}{zXy;O@7pW@N!D) zZ*3E;pQH|&{HVKi(V*7<%;zbspQH|&{HVM2OTX5C*m}3Z`HiFwn*6B$aEVXr$2k}0 z0g^gs^5gyC`5(*m{o&ZbDt&(-se>jz=HCmGqdNbNztgVskE9No{K$ViKYeaGaW<^^ zN$Q~8zj5UK3EwMb)cM4-GO8>*(x=}hNPN2(J}Rsh^|{I{9m?{FPm`vOcFs z*{~+8_eZw97Ezt-{JvN3kE9Q@$4|dc7RYidenn4GJabb@oMRWKto?a}IPcE?txwOp zAg=?R;-TINQ$td?E1<+V-%}LP^FE000T?H74)blR(sLO|A83j{b#uF32jZMvxS=;g zoU@^mh=2RpsKy5omwu=C><8kaFYx2ONyJ5eNL~jz#X~=q{p{7gf#}D~Gea4o575cZ uKLWC1-msA9GyV4X)>(?*|8CxB^2^#4qI~nSnAHB@7m~WgbbTI+Ir0w*OFg^* diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/one_x1.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/one_x1.gds index c8dd5b7503add0118551a1132895a9da42662e5b..16034c9b7d9e940bd35f8a7674971beb3bc37245 100644 GIT binary patch literal 4156 zcmchae`u6-9LGOB+iuTpzi!((F6QD|nb&l*X0c^Ut}XOTaTXSb<~*FEW2PNjtIH6V zT3bJyqfsq|n)%Nt5+Q;i1+yrYL0FL-_0K}8Aq7&QhZ6O?KacP2sr(+)AMKylc;EAW zUZ3ytWBZ=?#IoYD@EWV|dnu7>DUy20^ZqWjHyU;`n<%4>wo5`r6YC z=PG4kfw|}R`5xWby(N9C?QcLa@UzsIASsKWbqUVy5|9M(zzhO)8a!5$#V19*M zwePPCOUVb50!ClYO0YLEN9JIz{(YYgX#a(equM8#gQh;_KX}ode{|ZNpJWbt`_cLJ z|M7ctMpmy7<>3d$<@)w74|$MfUoe2xc95nSYPkVV*=h}Ddyv{>12d~!0`rzMiW=i?& zDtBUX>=k!CBy!A0vIqY2`~iLbyw~90T_3mq-`6+q&$S-RhtGBX68HUa?oYKP0V#2= zPkCEZ4(^;1`&!@Q+qUICu4u7)TwkC0xZ+Dm>Duxb&gZ7IP>L;0l zrat_OKFX>;@{p~5k~wJV!(abWO8pJ>1L`N4gQhTiC2O8q2r(A03MH~*AWKgk?4 z_2FM$cUt|eCuY=7G6!?@?}??gzj9_s`y_MF)W`g54ySegb<2iyev&zutN&o#wD#jC zGTJAZgSq;f?w{5E=5tx?lgvR=AJ=cwlkWfX&PrR?PcjEheXKvR&sKj|O-TJDbI{a> zKk-&buYXrtMExXl(A0;&``w88lWSVkPcjEhefYb-X;FW&H>Q4)IcVy`-*Yym{vA)n z)lV`9O?~*c`{U~0@n%x}By-Tzhd))7RDbW=Y4wxLK~o?8)bh0Yd%qk~Kgk?4_2KVt zA5#Al-;SxDWDc78@b~wOsXuK^sGnpGn)>kX>YGsi?&3-HlgvR=AO2m3Ce^>YXf6vir_3yniqkfV(XzIhi=Tt`hd$-Q2pJWc2`ta}nYF7P&+q3E?nS-W2_FW^R z?*40ZiL-uZ|3xwfO?~XI@HvPc_Fp9PzxO-mzb{GQk+4`lG%Edr>!tc^LP+MI*YEAy zH)o{dJ7>@6@W4AmQoV6vj?6)Cf3s)*iJt%Kl=j;OquM8#gQh;_A1-(2fBCpOKgk^Q z_TBw!P+Fb+epziy{3mCX?axG{sDDPtRYx-tc(_GK9tY++-@TcLp6|fPfcD9C7c#P- RY+Ohl2kQ9>o$m+v@+ZVr;tv1- literal 4284 zcmchaUuaup7{*_-HcQigr)?Ihwj-OXi*v+;Sqp8qm97_d1a&po4gV>sTH+JElp@^R6&7SP2{XWqPd-E&L zcb@b6zLRqf-x0s~dlZ>+B!GtutmlcvZ zSXL*?_v<54eIy`3m)kziNa#SaMCPEaKlsXo_Mg3+(mu%?H1^&3pWGDH`Jb8(==@3M zpts+BZTr?Fi_w`-(+t!2mVO-~5RlNV*-#_dVN2=WGQ`;4nll$i+aHIdw=&1d;iuJ|g z4jwcgSNTgyM%I0a^SMu*`MCeZd+mAe())d*{$7>CQ7Qj8DPUkUE!988N@Nate{XN! zInk$m5dDT*6D6X@aZ?|^H;w_(#q&in2W|aTZ>O~1xI3eLk~wJV<9P_*mDT5=@uR%n z?<8~3)W^JUx;&x&=3`m)lgvR=AO4$1X4T*P>%96&=Afw$e`IxD{cGQxRX@obH1*++ zoGPgQmfM%qPcjEhefV1j=GDJ`v7mmEIcVy`-}3%d^+)e_-`DQ@hGY(!`tWZ!yrllt z@KyDb%t2Eh{tZ7gs=swIs(z9=XzIg%#~T6lxA!)xpJWc2`tY}{i>bf;T%Y<$=Afw$ z|E3F3^>;iLQ$NWZH1*-X`<{gQJHAh;pJWc2`tWbA?Nfi}YYFv}%t2Eh{>?`->fh2d zp?;D%XzIh?{aMl9v#;nUnS-W2{QXW|{R8<~^^?p&Qy>1_dy=~T#E9TBSSOlCz*pbKgQul z4}Oxltq=d+OLOW^jen|sk~wJeV;p|;;3t{e`ta{-UQqwTXRoNAWDeT=7>6G{_(|rr zKK$tcQU8HONBtyo(B{WD{OG|?GPm{NfAnxf{h4r^`bp-X&5v>T(Sx64ZtKJU_;g(T zPxK6`pJWc&{1}HHJ@`rHwm$q%ew9@JQ-{*(Cz*pbKgQul4}OyQKlR6J#%>UZo+QaK(|;=8TlJ4e6oz}_-Q$e<3R8E;@7Xw@4v+tWcyZ8zC4tZHQhNOnY%3ZSGp{dKLB+M B^^*Vq diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/powmid_x0.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/powmid_x0.gds index b6e48e2338cc6ccdbae727f397ff2496dafdc2b9..9a33231235052d0ba2eece9b4b1b8801343ad20c 100644 GIT binary patch literal 6384 zcmbuDZ)jfS8OHDCUz0AaZ(`cMHPyXpw??ZjGPMz`O;c@GCtWN=Q^Xiqwb_`qBB&JE zA~>yJlTg8C{bB?^#6PfN9fYwD5k?UFU<3!Ruz^#ApcIO*uB@=`{@v$Xr>AM(!>axA zE7$d0=YF2&e$IK%i8WbW-Jq>qQn&OgYqeF@V%J-J{{Plo*L3fWKC_Pc#yd)L|DO8O ziLs4sNB;2qjbFFh+Q!F*=f^74pfY@D!;Gi57@?w3EB4nOGnx=n-O2i@;lz7T%U{h$7BGW?+X8~eM$ z54zv?K{foK``ZpD^@Hy3YDnq_-5>ZgsULLzk!?x+p!<)mO6o(_g)aW!$zzch(YdaO zPF)e5d5P%ETSRAFB0B39(b*RfoqZG0*IpN6*D{d?)pDbn)QC$;gT5TvtS=u87XOM0DmYqO&d$opp=o?2CxbzKQ7cPeiAGB0Bwp`Tq4L z_n+NRsy}%oa>_*M&hzqH)BCs8@8A5t_Fs%z(?Hq8t6Q3_`9znA z=qry5h7ZxpKN-o0zwWci@FD*CC#N&w-_ltPAL8G3d?6$L)}f?6#J~GgQXk^)no8bEA(XP^J7Ix89dy>;*B*0O%qn%6Wv{nS(GJZp>_e9HzTrc1^iPytl&5d_kR1IJr5EMt8$KjQ|3v9UdHRMA$Hubj{b?# zi}LghACjYgqV%FXeZz<3=$|OPC{N$;AvyXdN?)8G%DsQr&rewMdlLrR|9ULm{lvBt zRlB@>-bC~(j-QNi5dE5gQbzpiPIZS5@ozrTpArA|p8erN{NB$dGUEU2z_IWlet+kD zM*Ii^P(bb>){qs=r`?us>|9!^){U`Im@h?wCKI8IoTz_12pZfSg*O?!F&~@gI zA9S7d;Rju3{rExG*&qC%>+BzX&~^3~Kj=F9j~{fM{@@2)r*HU>b)kzdPESWpMCZC9 zI(0>K<|U#tZxNk!iRi3bL}y<_boNa|r+*?keG}2upM3w4_m7Tvf5Bh%<#3F9{&*$U zElP*^{9Wn&%lqY>|CqJL?n=T3x@}X7S!2qUZ%Uzy%i1f}_qSma(YO89-|teQ-}Cfn z_z-<(#WLdWT0Ip$#2@&ek`aIR%xw4&|G`6}8JQP)MxQr%<{xyQ>*5Dpr#^nrb>@X1 zbe;L*2VG}<_(9jTKMigEPMW?y=J&5{wb|GU!xnsJzg^bXYhx*2-P|8~#>a+j<%%hL zRdl~RQ!)IY>udiw8-CFB%I@CqgYK{E|2+Jl`|JNR9DdOK4c}V$LHBQ*n++c_FZ7H) zZ*t5(=swrQ54uiW{GjX13qR;O^TrRl&ie3!u4{iT+`r`eV)1!f+;91{@{9L-@p|P) zKK<_S{$<}M_x`-smcCKB==Vu}+*L1(+Qh$xW8C8Jll-{vb-na_CEtI^_sQl%2jkrc z@-5u=qsffCJIT-QPd>l>rs>E-@;l~cGLn~HE5GyO4`jg z-F!MDdHJ>SZF3*m_*;Vp4{sT9AIQ&EAE`L-L(xPiG`2zgC`ac*a5U*S=BC zD7~nD*V|o@hvYZ(^<*R`KVLt2zNGzs-@i?t>$1(x=DD(M`LCaYl+t0X{PuyF$U|~F zUiWj5lAQcn`JJcy-Q34Pa`*N6IY=qJsQ&#&PDdV+8~mrAgOudt*Q(Du+W7oPyrUhy zV$eD^`Z-7`9oEXP89N<$NUpQ$=O86H`L*&_cb6j%$z6NE&p}G^@@wV0KIw@(B)6f{ z&p}G^^7Hw-li%m~eQ&+h;veMiF5RD=BZmB1`P`{pUTOd8S_M???G@JfAgg@$)%9jxidy`0r8qaTmSbQhx_%u>S#BKGVwp delta 339 zcmexh_(4^PfsKKQDS|svj{RUuy8Oiu<Q^FEW6n2W5H}4uvyF(CNQ+ESiu0I`*|f8(*7I3X_z>OMm8%B$t@s#oShk9 f{eo|Afc3*@m^g?=(m%O?-*NIsW{1ri`RzFY|J6+o diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/sff1_x4.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/sff1_x4.gds index c39b1576a0a56ba9831d6b1dd7f8748644f71baa..a3ca8c8ab17f29f4cc596056e3ebdccdb0c9926a 100644 GIT binary patch literal 16050 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 Vr_e>l$0wpIztvajzsK(5{sZGp!hiq( literal 15858 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 literal 17618 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 literal 1098 zcmbV~KS%;m9LK+&chA%ObBaZQLrn!4w6#RoMT8I}gwRqn7#KkiMmXjYR#Z|{MvHAN zflJWX6iwmS60{T&IM)(&@0~w;6yDG+pX2*}pZneWy$1$GnM2H_cwXR#48~Y>S)3d_RTLdx9!DDQFc?nQ;fCUtcg9Q~t5jWh>ZXTgN+dobzvg zL+oGfL4Aqxnv+j`s4tQ7R)4=ee{26;3JmzI`Fk#Uaj<#|y@zdNGR^;NQ|Ils>vB2g zx_^JKc|S~XK5;Q0mbTB9Q%}{QHwIedcZb&H`TX{M^$$@ODCoi`QqJk*?{?;ezjsv> zK9O=xC%-gV7XIPWrSOTAbISg_w10Q4grZpk=W#WKj?eNwug}CYl4B4&Pgf9eErLk7McemSRPhZRpRPav diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/tie_diff.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/tie_diff.gds index 760ec8067458832a6084785c0b15993c4edaccce..d3d7eaf211d28efc16dd1353833da44785311686 100644 GIT binary patch literal 2446 zcmbW(Ur1A77{~F)<2-J)^k`y>3%k)OmjMr-x!MlrX;Xob!3#!#k&nEtWMV9d%aY zM~OGcB|)0t8_Hfc2V2DGIe1xJ(bBw zC@f-cvE-Q8O_sDtw^J{nceCrS{vTtqDYq9I&bcCaa|kys*Yw~Aa6yZk){Li2N`-SCPYx3joOYjp{ z%kV7cT9cn_uE3vP6nK_%t;wfd2R^eBhi5t0n*3BY0e>m%!n2%fO@7)-!e2g+f@e9` zntZO5g`c^Yhi5t0n*22>z+a#D;91VKCVwMQgwHQ8!LyueP5ySO1b^py8J^`_Yw~l2 z3jDpj0?%@;HTnB*9QeX`9G>M|8}#Qk{yz}wQ)2yf{DUXa2}juAwV*#6`1_&voa{_t SjmO0#Jj=NjzR~|2hvYXm$B+U5 delta 577 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 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/zero_x1.gds b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/gds/zero_x1.gds index e171e5ec0a006c84ca957f287657529f7b1d0910..ca72265f19e167143fb0b268843221adef5ee77f 100644 GIT binary patch literal 4158 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 literal 4432 zcmd6qZ%AEb9LIm%>D~4JQSZb`hpX9cYm(W*%W%Ufs9WNEk>gU$E~zApHgU8rgO;ng zWVlTlm8&-w7A3uKzS;1_Dk})7h#*)uh-NP`S#9h^e?}4Ye1B)(yHoi*(Oz}meB}F_ z@AG-i;hf`hBrKs&LaJ^Ft^8IBC0|NpjpPRZmPjbvxvfPcx+1s9`|y|a*~`ZpOJ6y4 zsP0mkROQ-x#o_RQf#JP-_Y6Fix=(TTYKYC?Q`y_MF+BfSzu`#CWKRF-K z^^?rOV88YH`FEQ05B|z_j7a`;Qpn90Gg8zxBqZ|HhevcA4E~mzAJ?~Zizm_VCX_qA ziA(u~8X=j3wm#O=^6I><>-p)cx*n1_xLhCS2Y*j#LV2X!UokoPvVT4#a;%SJ5B%r+ zp58yfYw+K$kKe!f>*M!t{`%Zlzw3J7{4lQPU+6zS=KiS&i6@2T`j)gb%ZWX661g?J zzrWvoT;4kWxPANV$CVwelm;`AnGa8{)m!lEp!BW%3dfnJ+dkj_YJJz=KP~$FZP5Ft zpf@JDpCkp0^bbkV&+#mogTebR*!PZiXdgts{H{cn=yBZE$Nht2Ky>lElgvR^f7LsK z+OOQ1(mu%?wDocSSKL3T&u8VwQ~Lao%t2cp>%Q&EnEI=aOsbz`4%+(g-`+Q?{_5Z6 z)lV`9ZGHG_R!^z_j&rl>Cz*q`KKwN&GwQ$do+b5@%t2cp{@Sj2^{-pZsGnpG+WPR< zesE3wu}97S5A*&bnS-`I{Ob=cslTq`n)*rRpsf%8`X4LRUpF38Kgk@l_2IwwOho++ z?Um{$nS-`I{Pk<&>TfvTp?;D%XzRnj@nTHefS@ED53tw9|qM=G6!va z_&1ewsK4pWg!)P5psf%8ro$=qZ>}0sKgk@l_2F;*-1oQb_WdMt(AI~))0xf5C6_xNj?9>Pv-q;-d`kh(AI|^;~;vt|4HVqKKzdy^Y=}?wG-+mnS(Ar#^FZ~ zev-MX4}bFQw4Q%o&y4y>=Ag@uarn`LpJeXp!#{9&PW^+UpQ)c@4!ZmphaWxoN#?FT z{JX0c)c@q!tLi72gDyYD;YSaClDVr7|4^5xe|XVTKgk?)`7sVZdhnCXU48hUI#{Fr zR7Jh|N#>x-k8$|XgP&yX>cf9vx>^0tv~{bWWDdIg7>6G{_(|rjKK##qomBsG`-jv| zG6!9LjKhx}{3P>#>yH+XX#a&bCbUm72W@`r`z9JZ-T%G#k@=Q1`#+L7XzOEdhH(%* z?A=J_fA8-K>^~!SXQW`#?8^;X-<^|+ho`b+4hH>y>3^A)V-GG!#PFq=Zdvu#LYBkN*pz diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast.lib b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast.lib index d6ea493..1d967ae 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast.lib +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast.lib @@ -7,7 +7,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:09 2021 */ +/* Generation date Wed Dec 22 09:42:06 2021 */ /* */ /* liberty data flow `StdCellLib_fast` */ /* */ @@ -18,7 +18,7 @@ library (StdCellLib_fast) { technology (cmos) ; - date : "Fri Dec 10 15:33:09 2021" ; + date : "Wed Dec 22 09:42:06 2021" ; delay_model : table_lookup ; nom_voltage : 1.98 ; nom_temperature : -20.0 ; @@ -3279,7 +3279,7 @@ library (StdCellLib_fast) { values ("28.7, 28.7, 28.7, 32.3, 37.5", \ "30.8, 30.8, 30.8, 34.3, 39.5", \ "34.3, 34.3, 34.3, 37.9, 43.3", \ - "39.1, 39.1, 39.1, 43.0, 48.7", \ + "39.0, 39.0, 39.0, 43.0, 48.7", \ "44.1, 44.1, 44.1, 48.5, 54.9"); } rise_transition (inslew_load_5x5__0) { @@ -3863,7 +3863,7 @@ library (StdCellLib_fast) { values ("9.0, 9.0, 9.0, 13.0, 17.9", \ "9.0, 9.0, 9.0, 13.0, 17.9", \ "9.1, 9.1, 9.1, 13.0, 18.0", \ - "9.5, 9.5, 9.5, 13.4, 18.4", \ + "9.4, 9.4, 9.4, 13.4, 18.4", \ "10.4, 10.4, 10.4, 14.5, 19.5"); } } @@ -4288,7 +4288,7 @@ library (StdCellLib_fast) { rise_transition (inslew_load_5x5__12) { values ("18.9, 18.9, 18.9, 28.7, 48.8", \ "19.0, 19.0, 19.0, 28.8, 48.9", \ - "18.9, 18.9, 18.9, 28.7, 48.7", \ + "18.9, 18.9, 18.9, 28.7, 48.8", \ "19.5, 19.5, 19.5, 29.3, 49.1", \ "20.7, 20.7, 20.7, 30.3, 49.8"); } diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast_raw.lib b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast_raw.lib index b1ec769..abc380b 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast_raw.lib +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_fast_raw.lib @@ -7,7 +7,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:09 2021 */ +/* Generation date Wed Dec 22 09:42:06 2021 */ /* */ /* liberty data flow `StdCellLib_fast` */ /* */ @@ -18,7 +18,7 @@ library (StdCellLib_fast) { technology (cmos) ; - date : "Fri Dec 10 15:33:09 2021" ; + date : "Wed Dec 22 09:42:06 2021" ; delay_model : table_lookup ; nom_voltage : 1.98 ; nom_temperature : -20.0 ; @@ -3279,7 +3279,7 @@ library (StdCellLib_fast) { values ("28.7, 28.7, 28.7, 32.3, 37.5", \ "30.8, 30.8, 30.8, 34.3, 39.5", \ "34.3, 34.3, 34.3, 37.9, 43.3", \ - "39.1, 39.1, 39.1, 43.0, 48.7", \ + "39.0, 39.0, 39.0, 43.0, 48.7", \ "44.1, 44.1, 44.1, 48.5, 54.9"); } rise_transition (inslew_load_5x5__0) { @@ -3863,7 +3863,7 @@ library (StdCellLib_fast) { values ("9.0, 9.0, 9.0, 13.0, 17.9", \ "9.0, 9.0, 9.0, 13.0, 17.9", \ "9.1, 9.1, 9.1, 13.0, 18.0", \ - "9.5, 9.5, 9.5, 13.4, 18.4", \ + "9.4, 9.4, 9.4, 13.4, 18.4", \ "10.4, 10.4, 10.4, 14.5, 19.5"); } } @@ -4275,7 +4275,7 @@ library (StdCellLib_fast) { rise_transition (inslew_load_5x5__12) { values ("18.9, 18.9, 18.9, 28.7, 48.8", \ "19.0, 19.0, 19.0, 28.8, 48.9", \ - "18.9, 18.9, 18.9, 28.7, 48.7", \ + "18.9, 18.9, 18.9, 28.7, 48.8", \ "19.5, 19.5, 19.5, 29.3, 49.1", \ "20.7, 20.7, 20.7, 30.3, 49.8"); } diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom.lib b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom.lib index c84a52b..6826d0f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom.lib +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom.lib @@ -7,7 +7,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:09 2021 */ +/* Generation date Wed Dec 22 09:42:06 2021 */ /* */ /* liberty data flow `StdCellLib_nom` */ /* */ @@ -18,7 +18,7 @@ library (StdCellLib_nom) { technology (cmos) ; - date : "Fri Dec 10 15:33:09 2021" ; + date : "Wed Dec 22 09:42:06 2021" ; delay_model : table_lookup ; nom_voltage : 1.80 ; nom_temperature : 25.0 ; diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom_raw.lib b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom_raw.lib index 8880c75..402291a 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom_raw.lib +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_nom_raw.lib @@ -7,7 +7,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:09 2021 */ +/* Generation date Wed Dec 22 09:42:06 2021 */ /* */ /* liberty data flow `StdCellLib_nom` */ /* */ @@ -18,7 +18,7 @@ library (StdCellLib_nom) { technology (cmos) ; - date : "Fri Dec 10 15:33:09 2021" ; + date : "Wed Dec 22 09:42:06 2021" ; delay_model : table_lookup ; nom_voltage : 1.80 ; nom_temperature : 25.0 ; diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow.lib b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow.lib index 26d2565..47ff818 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow.lib +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow.lib @@ -7,7 +7,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:09 2021 */ +/* Generation date Wed Dec 22 09:42:06 2021 */ /* */ /* liberty data flow `StdCellLib_slow` */ /* */ @@ -18,7 +18,7 @@ library (StdCellLib_slow) { technology (cmos) ; - date : "Fri Dec 10 15:33:09 2021" ; + date : "Wed Dec 22 09:42:06 2021" ; delay_model : table_lookup ; nom_voltage : 1.62 ; nom_temperature : 85.0 ; @@ -413,7 +413,7 @@ library (StdCellLib_slow) { values ("10.8, 10.8, 10.8, 17.4, 25.1", \ "10.8, 10.8, 10.8, 17.4, 25.1", \ "10.8, 10.8, 10.8, 17.4, 25.2", \ - "10.8, 10.8, 10.8, 17.7, 25.5", \ + "10.8, 10.8, 10.8, 17.6, 25.5", \ "11.4, 11.4, 11.4, 18.6, 26.5"); } } @@ -3641,7 +3641,7 @@ library (StdCellLib_slow) { values ("26.6, 26.6, 26.6, 38.2, 58.7", \ "26.7, 26.7, 26.7, 38.2, 58.8", \ "26.7, 26.7, 26.7, 38.1, 58.8", \ - "26.7, 26.7, 26.7, 38.1, 58.9", \ + "26.7, 26.7, 26.7, 38.1, 58.8", \ "26.8, 26.8, 26.8, 38.1, 58.9"); } } diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow_raw.lib b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow_raw.lib index 4342ede..e37dfe7 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow_raw.lib +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/liberty/StdCellLib_slow_raw.lib @@ -7,7 +7,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:09 2021 */ +/* Generation date Wed Dec 22 09:42:06 2021 */ /* */ /* liberty data flow `StdCellLib_slow` */ /* */ @@ -18,7 +18,7 @@ library (StdCellLib_slow) { technology (cmos) ; - date : "Fri Dec 10 15:33:09 2021" ; + date : "Wed Dec 22 09:42:06 2021" ; delay_model : table_lookup ; nom_voltage : 1.62 ; nom_temperature : 85.0 ; @@ -413,7 +413,7 @@ library (StdCellLib_slow) { values ("10.8, 10.8, 10.8, 17.4, 25.1", \ "10.8, 10.8, 10.8, 17.4, 25.1", \ "10.8, 10.8, 10.8, 17.4, 25.2", \ - "10.8, 10.8, 10.8, 17.7, 25.5", \ + "10.8, 10.8, 10.8, 17.6, 25.5", \ "11.4, 11.4, 11.4, 18.6, 26.5"); } } @@ -3641,7 +3641,7 @@ library (StdCellLib_slow) { values ("26.6, 26.6, 26.6, 38.2, 58.7", \ "26.7, 26.7, 26.7, 38.2, 58.8", \ "26.7, 26.7, 26.7, 38.1, 58.8", \ - "26.7, 26.7, 26.7, 38.1, 58.9", \ + "26.7, 26.7, 26.7, 38.1, 58.8", \ "26.8, 26.8, 26.8, 38.1, 58.9"); } } diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/StdCellLib.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/StdCellLib.spi index 72a3f48..336688c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/StdCellLib.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/StdCellLib.spi @@ -1,9 +1,9 @@ * StdCellLib * a2_x2 -.subckt a2_x2 vss q vdd i0 i1 -Mn_net0_1 vss _net0 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um +.subckt a2_x2 vdd q vss i0 i1 Mp_net0_1 vdd _net0 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_net0_1 vss _net0 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i0_1 _net0 i0 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 vdd i0 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i1_1 _net0 i1 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um @@ -11,11 +11,11 @@ Mn_i1_1 _net1 i1 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um .ends a2_x2 * a3_x2 -.subckt a3_x2 vss q vdd i0 i1 i2 -Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um +.subckt a3_x2 vdd q vss i0 i1 i2 Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um -Mp_i0_1 _net1 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i0_1 _net1 i0 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_i0_1 _net1 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net0 i1 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mp_i1_1 vdd i1 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i2_1 _net2 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um @@ -23,13 +23,13 @@ Mp_i2_1 _net1 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends a3_x2 * a4_x2 -.subckt a4_x2 vdd q vss i0 i1 i2 i3 -Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +.subckt a4_x2 vss q vdd i0 i1 i2 i3 Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um -Mn_i0_1 _net1 i0 _net3 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mp_i0_1 vdd i0 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_i1_1 _net1 i1 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_i0_1 _net1 i0 _net3 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net3 i1 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_i1_1 _net1 i1 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i2_1 vdd i2 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i2_1 _net0 i2 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mp_i3_1 _net1 i3 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um @@ -44,8 +44,8 @@ Mp_i0_1 vdd i0 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i0_1 _net2 i0 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i1_1 _net0 i1 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i1_1 _net1 i1 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_i2_1 _net0 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i2_1 _net2 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_i2_1 _net0 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends ao22_x2 * mx2_x2 @@ -55,8 +55,8 @@ Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net5_1 _net1 _net5 _net4 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_net5_1 _net2 _net5 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_cmd_1 _net5 cmd vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_cmd_2 _net1 cmd _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_cmd_2 _net3 cmd _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_cmd_2 _net1 cmd _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mn_cmd_1 _net5 cmd vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mn_i0_1 vss i0 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_i0_1 vdd i0 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um @@ -72,8 +72,8 @@ Mp_nrst_1 nq nrst vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nrst_1 _net0 nrst nq vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mp_nset_1 vdd nset q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nset_1 q nset _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um -Mp_q_1 vdd q nq vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_q_1 vss q _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_q_1 vdd q nq vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends nsnrlatch_x1 * nxr2_x1 @@ -84,18 +84,18 @@ Mn_net3_1 _net4 _net3 nq vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net3_1 _net1 _net3 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_i0_1 _net0 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i0_2 vss i0 _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um -Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i0_2 vdd i0 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i1_1 _net1 i1 nq vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mp_i1_2 vdd i1 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net2 i1 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i1_2 vss i1 _net3 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_i1_2 vdd i1 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends nxr2_x1 * o2_x2 -.subckt o2_x2 vss q vdd i0 i1 -Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um +.subckt o2_x2 vdd q vss i0 i1 Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um Mn_i0_1 _net1 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i1_1 vss i1 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um @@ -108,8 +108,8 @@ Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_i0_1 _net1 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i0_1 _net2 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um -Mp_i1_1 _net0 i1 _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um Mn_i1_1 vss i1 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_i1_1 _net0 i1 _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um Mn_i2_1 _net1 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i2_1 _net1 i2 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um .ends o3_x2 @@ -136,8 +136,8 @@ Mn_i0_1 vss i0 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 _net1 i0 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net2 i1 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i1_1 _net0 i1 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_i2_1 _net0 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i2_1 _net1 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_i2_1 _net0 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um .ends oa22_x2 * powmid_x0 @@ -151,22 +151,22 @@ Mn_ck nckr ck vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ck nckr ck vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_ckr_1 _net1 ckr sff_m vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_ckr_2 y ckr sff_s vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mn_ckr_1 sff_m ckr _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ckr_2 sff_s ckr _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_ckr_1 sff_m ckr _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i u i vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i u i vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nckr_2 sff_m nckr _net5 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nckr_3 y nckr sff_s vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_1 vss nckr ckr vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_3 sff_s nckr _net6 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_nckr_2 _net2 nckr sff_m vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_q_1 _net6 q vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_q_1 _net0 q vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_sffm_1 vss sff_m y vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_sffm_1 vdd sff_m y vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_sffs_1 vss sff_s q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_sffs_1 vdd sff_s q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_sffs_1 vss sff_s q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_sffs_2 q sff_s vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_sffs_2 q sff_s vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_u vss u _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um @@ -180,41 +180,41 @@ Mp_y_1 _net5 y vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_ck_1 nckr ck vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ck_1 nckr ck vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_ckr_1 _net0 ckr sff_m vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_ckr_1 sff_m ckr _net6 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_ckr_2 y ckr sff_s vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ckr_2 sff_s ckr _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_ckr_1 sff_m ckr _net6 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i_1 u i vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i_1 u i vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_1 vss nckr ckr vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mn_nckr_2 _net7 nckr sff_m vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_nckr_3 y nckr sff_s vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nckr_2 sff_m nckr _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_3 sff_s nckr _net8 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mn_nckr_2 _net7 nckr sff_m vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_nckr_3 y nckr sff_s vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nrst_2 _net8 nrst _net5 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_nrst_1 _net4 nrst y vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_nrst_1 y nrst vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nrst_2 vdd nrst _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_q_1 _net5 q vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_q_1 _net3 q vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_sffm_1 vdd sff_m y vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_sffm_1 vss sff_m _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um +Mp_sffm_1 vdd sff_m y vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_sffs_1 vdd sff_s q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_sffs_2 q sff_s vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_sffs_2 q sff_s vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_sffs_1 vss sff_s q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_u_1 vdd u _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_u_1 vss u _net7 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_y_1 _net2 y vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_y_1 _net6 y vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um +Mp_y_1 _net2 y vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends sff1r_x4 * xr2_x1 .subckt xr2_x1 q vss vdd i0 i1 Mn_net0_1 q _net0 _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net0_1 q _net0 _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um -Mn_net3_1 _net4 _net3 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net3_1 _net2 _net3 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_net3_1 _net4 _net3 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i0_1 _net0 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i0_2 vss i0 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um @@ -252,26 +252,26 @@ Mp_i1_2 vdd i1 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um * zero_x1 .subckt zero_x1 vdd vss zero -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends zero_x1 * one_x1 .subckt one_x1 vdd vss one -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends one_x1 * zeroone_x1 .subckt zeroone_x1 vdd vss zero one -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends zeroone_x1 * decap_w0 .subckt decap_w0 vdd vss -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends decap_w0 * inv_x0 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a2_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a2_x2.spi index 69f1596..be9463f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a2_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a2_x2.spi @@ -1,7 +1,7 @@ * a2_x2 -.subckt a2_x2 vss q vdd i0 i1 -Mn_net0_1 vss _net0 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um +.subckt a2_x2 vdd q vss i0 i1 Mp_net0_1 vdd _net0 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_net0_1 vss _net0 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i0_1 _net0 i0 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 vdd i0 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i1_1 _net0 i1 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a3_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a3_x2.spi index 5a1d72f..3f8aa1f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a3_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a3_x2.spi @@ -1,9 +1,9 @@ * a3_x2 -.subckt a3_x2 vss q vdd i0 i1 i2 -Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um +.subckt a3_x2 vdd q vss i0 i1 i2 Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um -Mp_i0_1 _net1 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i0_1 _net1 i0 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_i0_1 _net1 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net0 i1 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mp_i1_1 vdd i1 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i2_1 _net2 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a4_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a4_x2.spi index 3014d60..25cfd4c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a4_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/a4_x2.spi @@ -1,11 +1,11 @@ * a4_x2 -.subckt a4_x2 vdd q vss i0 i1 i2 i3 -Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +.subckt a4_x2 vss q vdd i0 i1 i2 i3 Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um -Mn_i0_1 _net1 i0 _net3 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mp_i0_1 vdd i0 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_i1_1 _net1 i1 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_i0_1 _net1 i0 _net3 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net3 i1 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_i1_1 _net1 i1 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i2_1 vdd i2 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i2_1 _net0 i2 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mp_i3_1 _net1 i3 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/ao22_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/ao22_x2.spi index cc70db0..737d6d5 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/ao22_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/ao22_x2.spi @@ -6,6 +6,6 @@ Mp_i0_1 vdd i0 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i0_1 _net2 i0 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i1_1 _net0 i1 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i1_1 _net1 i1 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_i2_1 _net0 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i2_1 _net2 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_i2_1 _net0 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends ao22_x2 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/decap_w0.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/decap_w0.spi index 7cdadde..27a4cb3 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/decap_w0.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/decap_w0.spi @@ -1,5 +1,5 @@ * decap_w0 .subckt decap_w0 vdd vss -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends decap_w0 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/mx2_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/mx2_x2.spi index 3f18966..135f549 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/mx2_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/mx2_x2.spi @@ -5,8 +5,8 @@ Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net5_1 _net1 _net5 _net4 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_net5_1 _net2 _net5 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_cmd_1 _net5 cmd vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_cmd_2 _net1 cmd _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_cmd_2 _net3 cmd _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_cmd_2 _net1 cmd _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mn_cmd_1 _net5 cmd vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mn_i0_1 vss i0 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_i0_1 vdd i0 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nsnrlatch_x1.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nsnrlatch_x1.spi index e6ce8e8..26609e2 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nsnrlatch_x1.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nsnrlatch_x1.spi @@ -6,6 +6,6 @@ Mp_nrst_1 nq nrst vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nrst_1 _net0 nrst nq vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um Mp_nset_1 vdd nset q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nset_1 q nset _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um -Mp_q_1 vdd q nq vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_q_1 vss q _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=2.0um +Mp_q_1 vdd q nq vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends nsnrlatch_x1 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nxr2_x1.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nxr2_x1.spi index 18de357..da6ef35 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nxr2_x1.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/nxr2_x1.spi @@ -6,10 +6,10 @@ Mn_net3_1 _net4 _net3 nq vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net3_1 _net1 _net3 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_i0_1 _net0 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i0_2 vss i0 _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um -Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i0_2 vdd i0 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_i1_1 _net1 i1 nq vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mp_i1_2 vdd i1 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net2 i1 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i1_2 vss i1 _net3 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_i1_2 vdd i1 _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends nxr2_x1 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o2_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o2_x2.spi index a3cdef3..4d2e50c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o2_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o2_x2.spi @@ -1,7 +1,7 @@ * o2_x2 -.subckt o2_x2 vss q vdd i0 i1 -Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um +.subckt o2_x2 vdd q vss i0 i1 Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um Mn_i0_1 _net1 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i1_1 vss i1 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o3_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o3_x2.spi index 84835d4..4f94345 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o3_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/o3_x2.spi @@ -4,8 +4,8 @@ Mn_net1_1 vss _net1 q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net1_1 vdd _net1 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_i0_1 _net1 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i0_1 _net2 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um -Mp_i1_1 _net0 i1 _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um Mn_i1_1 vss i1 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_i1_1 _net0 i1 _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um Mn_i2_1 _net1 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i2_1 _net1 i2 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.0um .ends o3_x2 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/oa22_x2.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/oa22_x2.spi index f8f17fc..f03cfb9 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/oa22_x2.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/oa22_x2.spi @@ -6,6 +6,6 @@ Mn_i0_1 vss i0 _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 _net1 i0 _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i1_1 _net2 i1 _net0 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i1_1 _net0 i1 _net1 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_i2_1 _net0 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i2_1 _net1 i2 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_i2_1 _net0 i2 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um .ends oa22_x2 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/one_x1.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/one_x1.spi index a323505..40f4d7e 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/one_x1.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/one_x1.spi @@ -1,5 +1,5 @@ * one_x1 .subckt one_x1 vdd vss one -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends one_x1 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1_x4.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1_x4.spi index ad7a67a..69841c2 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1_x4.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1_x4.spi @@ -4,22 +4,22 @@ Mn_ck nckr ck vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ck nckr ck vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_ckr_1 _net1 ckr sff_m vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_ckr_2 y ckr sff_s vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mn_ckr_1 sff_m ckr _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ckr_2 sff_s ckr _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_ckr_1 sff_m ckr _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i u i vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i u i vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nckr_2 sff_m nckr _net5 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nckr_3 y nckr sff_s vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_1 vss nckr ckr vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_3 sff_s nckr _net6 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_nckr_2 _net2 nckr sff_m vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_q_1 _net6 q vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_q_1 _net0 q vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_sffm_1 vss sff_m y vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_sffm_1 vdd sff_m y vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_sffs_1 vss sff_s q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_sffs_1 vdd sff_s q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_sffs_1 vss sff_s q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_sffs_2 q sff_s vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_sffs_2 q sff_s vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_u vss u _net2 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1r_x4.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1r_x4.spi index d303665..506dede 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1r_x4.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/sff1r_x4.spi @@ -3,31 +3,31 @@ Mn_ck_1 nckr ck vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ck_1 nckr ck vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_ckr_1 _net0 ckr sff_m vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mn_ckr_1 sff_m ckr _net6 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_ckr_2 y ckr sff_s vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_ckr_2 sff_s ckr _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mn_ckr_1 sff_m ckr _net6 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_i_1 u i vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_i_1 u i vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_1 vss nckr ckr vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mn_nckr_2 _net7 nckr sff_m vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_nckr_3 y nckr sff_s vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um +Mp_nckr_1 vdd nckr ckr vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nckr_2 sff_m nckr _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nckr_3 sff_s nckr _net8 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mn_nckr_2 _net7 nckr sff_m vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um +Mp_nckr_3 y nckr sff_s vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_nrst_2 _net8 nrst _net5 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_nrst_1 _net4 nrst y vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um Mp_nrst_1 y nrst vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_nrst_2 vdd nrst _net3 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_q_1 _net5 q vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mp_q_1 _net3 q vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um -Mp_sffm_1 vdd sff_m y vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_sffm_1 vss sff_m _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um +Mp_sffm_1 vdd sff_m y vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mp_sffs_1 vdd sff_s q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_sffs_2 q sff_s vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_sffs_2 q sff_s vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um Mn_sffs_1 vss sff_s q vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_u_1 vdd u _net0 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_u_1 vss u _net7 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um -Mp_y_1 _net2 y vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um Mn_y_1 _net6 y vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=0.9um +Mp_y_1 _net2 y vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um .ends sff1r_x4 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/xr2_x1.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/xr2_x1.spi index 80e1c31..1010e5a 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/xr2_x1.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/xr2_x1.spi @@ -2,8 +2,8 @@ .subckt xr2_x1 q vss vdd i0 i1 Mn_net0_1 q _net0 _net4 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net0_1 q _net0 _net2 vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um -Mn_net3_1 _net4 _net3 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_net3_1 _net2 _net3 q vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=4.0um +Mn_net3_1 _net4 _net3 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mn_i0_1 _net0 i0 vss vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.0um Mn_i0_2 vss i0 _net1 vss sky130_fd_pr__nfet_01v8__model l=0.15um w=1.9um Mp_i0_1 _net0 i0 vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=2.0um diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zero_x1.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zero_x1.spi index 052b656..3a33a6f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zero_x1.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zero_x1.spi @@ -1,5 +1,5 @@ * zero_x1 .subckt zero_x1 vdd vss zero -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends zero_x1 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zeroone_x1.spi b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zeroone_x1.spi index 226c0c2..f5834da 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zeroone_x1.spi +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/spice/zeroone_x1.spi @@ -1,5 +1,5 @@ * zeroone_x1 .subckt zeroone_x1 vdd vss zero one -Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.43um -Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.82um +Mn vss one zero vss sky130_fd_pr__nfet_01v8__model l=0.15um w=3.4um +Mp one zero vdd vdd sky130_fd_pr__pfet_01v8__model l=0.15um w=3.8um .ends zeroone_x1 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a2_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a2_x2.v index f01594c..e31f7c3 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a2_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a2_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `a2_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a3_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a3_x2.v index 6539752..1ff0d41 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a3_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a3_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `a3_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a4_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a4_x2.v index b9977dd..00d1ed9 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a4_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/a4_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `a4_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/ao22_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/ao22_x2.v index 70c4748..19b78f8 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/ao22_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/ao22_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `ao22_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x1.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x1.v index df30b57..abaa41d 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x1.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x1.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `buf_x1` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x2.v index d13c26a..9caba70 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `buf_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x4.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x4.v index c5e5246..2836543 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x4.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/buf_x4.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `buf_x4` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x0.v index c3fb561..ff9ac6c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `inv_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x1.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x1.v index ea7bf63..709c05e 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x1.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x1.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `inv_x1` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x2.v index b49cacd..3f0c548 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `inv_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x4.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x4.v index a3b49e7..bf2c485 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x4.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/inv_x4.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `inv_x4` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/mx2_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/mx2_x2.v index 48ed039..615717e 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/mx2_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/mx2_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `mx2_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand2_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand2_x0.v index 21c1e62..0f077f4 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand2_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand2_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nand2_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand3_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand3_x0.v index 2f493cb..10b8604 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand3_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand3_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nand3_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand4_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand4_x0.v index be149b6..42bf2dd 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand4_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nand4_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nand4_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor2_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor2_x0.v index 2c1d51b..bdafd61 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor2_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor2_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nor2_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor3_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor3_x0.v index 7135be8..263ccf8 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor3_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor3_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nor3_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor4_x0.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor4_x0.v index 92991b5..59e8c81 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor4_x0.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nor4_x0.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nor4_x0` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nsnrlatch_x1.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nsnrlatch_x1.v index ff7ae5d..11f0fe6 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nsnrlatch_x1.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nsnrlatch_x1.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nsnrlatch_x1` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nxr2_x1.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nxr2_x1.v index 41459c7..6117c5a 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nxr2_x1.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/nxr2_x1.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:05 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `nxr2_x1` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o2_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o2_x2.v index 215661b..f96ddcc 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o2_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o2_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `o2_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o3_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o3_x2.v index f2efc0d..fed0259 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o3_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o3_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `o3_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o4_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o4_x2.v index f853213..58ae5a3 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o4_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/o4_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `o4_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/oa22_x2.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/oa22_x2.v index 6c84090..2ab0f5b 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/oa22_x2.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/oa22_x2.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `oa22_x2` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1_x4.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1_x4.v index 0097949..35c3232 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1_x4.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1_x4.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `sff1_x4` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1r_x4.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1r_x4.v index 5b67c53..2515407 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1r_x4.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/sff1r_x4.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `sff1r_x4` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/xr2_x1.v b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/xr2_x1.v index f349b32..f8a9741 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/xr2_x1.v +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/verilog/xr2_x1.v @@ -6,7 +6,7 @@ /* argv: */ /* */ /* User: verhaegs */ -/* Generation date Fri Dec 10 15:33:06 2021 */ +/* Generation date Wed Dec 22 09:42:03 2021 */ /* */ /* Verilog data flow description generated from `xr2_x1` */ /* */ diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a2_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a2_x2.vhdl index fc1add9..af6b85d 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a2_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a2_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `a2_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a3_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a3_x2.vhdl index 4dd3c79..aef516e 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a3_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a3_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `a3_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a4_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a4_x2.vhdl index ab9906c..2c0ce44 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a4_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/a4_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `a4_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/ao22_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/ao22_x2.vhdl index aa7fe97..be70277 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/ao22_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/ao22_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `ao22_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x1.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x1.vhdl index 1dc2cf9..f509e44 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x1.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x1.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `buf_x1` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x2.vhdl index 7b18be6..9bccc21 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `buf_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x4.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x4.vhdl index 0e20f1c..bb9530f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x4.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/buf_x4.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `buf_x4` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x0.vhdl index c39a4d9..04e870d 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `inv_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x1.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x1.vhdl index 6f9face..492a849 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x1.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x1.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `inv_x1` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x2.vhdl index 5e5d791..b84cbfd 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `inv_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x4.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x4.vhdl index 2162eb0..f36ecd1 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x4.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/inv_x4.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `inv_x4` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/mx2_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/mx2_x2.vhdl index 504922e..6f4723e 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/mx2_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/mx2_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `mx2_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand2_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand2_x0.vhdl index 97aba19..e1dd3ed 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand2_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand2_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nand2_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand3_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand3_x0.vhdl index 13dd8ff..b591702 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand3_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand3_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nand3_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand4_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand4_x0.vhdl index d76fab7..2aa8640 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand4_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nand4_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nand4_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor2_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor2_x0.vhdl index 0c6cd3a..817531f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor2_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor2_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nor2_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor3_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor3_x0.vhdl index aa8a257..d87f254 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor3_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor3_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nor3_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor4_x0.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor4_x0.vhdl index 63ec28b..57eb0ba 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor4_x0.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nor4_x0.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nor4_x0` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nsnrlatch_x1.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nsnrlatch_x1.vhdl index 135f3f5..802f0e2 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nsnrlatch_x1.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nsnrlatch_x1.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nsnrlatch_x1` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nxr2_x1.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nxr2_x1.vhdl index 6beb010..adcc1cc 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nxr2_x1.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/nxr2_x1.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `nxr2_x1` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o2_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o2_x2.vhdl index 8e585a4..f2def0c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o2_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o2_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `o2_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o3_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o3_x2.vhdl index 1f20be6..dd91fa7 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o3_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o3_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `o3_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o4_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o4_x2.vhdl index 7ae0c4b..201633c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o4_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/o4_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `o4_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/oa22_x2.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/oa22_x2.vhdl index ad495bc..abe7d98 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/oa22_x2.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/oa22_x2.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `oa22_x2` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1_x4.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1_x4.vhdl index ff4dcdc..60b653d 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1_x4.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1_x4.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `sff1_x4` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1r_x4.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1r_x4.vhdl index e3a7681..486637f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1r_x4.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/sff1r_x4.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `sff1r_x4` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/xr2_x1.vhdl b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/xr2_x1.vhdl index 05d0de7..c4f9208 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/xr2_x1.vhdl +++ b/thirdparty/open_pdk/C4M.Sky130/libs.ref/StdCellLib/vhdl/xr2_x1.vhdl @@ -6,7 +6,7 @@ -- argv: -- -- User: verhaegs --- Generation date Fri Dec 10 15:33:06 2021 +-- Generation date Wed Dec 22 09:42:03 2021 -- -- VHDL data flow description generated from `xr2_x1` -- diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/StdCellLib.py b/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/StdCellLib.py index f73904c..0a42e8a 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/StdCellLib.py +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/StdCellLib.py @@ -29,50 +29,50 @@ def _routing(): rg.setSymbolic(False) metal = tech.getLayer('li') via = tech.getLayer('li_mcon_m1') - setEnclosures(via, metal, (u(0.0), u(0.0))) + setEnclosures(via, metal, (u(0.0), u(0.075))) rg.addLayerGauge(CRL.RoutingLayerGauge.create( - metal, CRL.RoutingLayerGauge.Horizontal, CRL.RoutingLayerGauge.PinOnly, 0, 0.0, + metal, CRL.RoutingLayerGauge.Vertical, CRL.RoutingLayerGauge.PinOnly, 0, 0.0, u(0.0), u(0.51), u(0.17), u(0.17), u(0.17), u(0.17), )) metal = tech.getLayer('m1') via = tech.getLayer('li_mcon_m1') - setEnclosures(via, metal, (u(0.03), u(0.06))) + setEnclosures(via, metal, (u(0.03), u(0.075))) via = tech.getLayer('m1_via_m2') - setEnclosures(via, metal, (u(0.055), u(0.085))) + setEnclosures(via, metal, (u(0.11), u(0.085))) rg.addLayerGauge(CRL.RoutingLayerGauge.create( metal, CRL.RoutingLayerGauge.Horizontal, CRL.RoutingLayerGauge.Default, 1, 0.0, u(0.0), u(0.46), u(0.32), u(0.23), u(0.15), u(0.14), )) metal = tech.getLayer('m2') via = tech.getLayer('m1_via_m2') - setEnclosures(via, metal, (u(0.085), u(0.055))) + setEnclosures(via, metal, (u(0.11), u(0.085))) via = tech.getLayer('m2_via2_m3') - setEnclosures(via, metal, (u(0.085), u(0.04))) + setEnclosures(via, metal, (u(0.085), u(0.09))) rg.addLayerGauge(CRL.RoutingLayerGauge.create( metal, CRL.RoutingLayerGauge.Vertical, CRL.RoutingLayerGauge.Default, 2, 0.0, u(0.0), u(0.51), u(0.37), u(0.26), u(0.2), u(0.14), )) metal = tech.getLayer('m3') via = tech.getLayer('m2_via2_m3') - setEnclosures(via, metal, (u(0.065), u(0.065))) + setEnclosures(via, metal, (u(0.085), u(0.09))) via = tech.getLayer('m3_via3_m4') - setEnclosures(via, metal, (u(0.06), u(0.09))) + setEnclosures(via, metal, (u(0.49), u(0.09))) rg.addLayerGauge(CRL.RoutingLayerGauge.create( metal, CRL.RoutingLayerGauge.Horizontal, CRL.RoutingLayerGauge.Default, 3, 0.0, u(0.0), u(0.68), u(0.38), u(0.33), u(0.2), u(0.3), )) metal = tech.getLayer('m4') via = tech.getLayer('m3_via3_m4') - setEnclosures(via, metal, (u(0.065), u(0.065))) + setEnclosures(via, metal, (u(0.49), u(0.09))) via = tech.getLayer('m4_via4_m5') - setEnclosures(via, metal, (u(0.19), u(0.19))) + setEnclosures(via, metal, (u(0.19), u(0.4))) rg.addLayerGauge(CRL.RoutingLayerGauge.create( metal, CRL.RoutingLayerGauge.Vertical, CRL.RoutingLayerGauge.Default, 4, 0.0, u(0.0), u(1.48), u(1.18), u(0.33), u(0.8), u(0.3), )) metal = tech.getLayer('m5') via = tech.getLayer('m4_via4_m5') - setEnclosures(via, metal, (u(0.31), u(0.31))) + setEnclosures(via, metal, (u(0.31), u(0.4))) rg.addLayerGauge(CRL.RoutingLayerGauge.create( metal, CRL.RoutingLayerGauge.Horizontal, CRL.RoutingLayerGauge.Default, 5, 0.0, u(0.0), u(3.2), u(1.6), u(1.6), u(0.8), u(1.6), @@ -230,78 +230,178 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) - net = nets['vss'] + nets['vss'].setGlobal(True) + net = nets['vdd'] createRL( tech, net, 'difftap', - ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), + ((2.075,6.5),(2.075,8.5),(2.325,8.5),(2.325,6.5),(2.075,6.5)), ) createRL( tech, net, 'difftap', - ((2.675,0.6),(2.675,2.5),(2.925,2.5),(2.925,0.6),(2.675,0.6)), + ((2.325,6.5),(2.325,8.5),(2.625,8.5),(2.625,6.5),(2.325,6.5)), ) createRL( tech, net, 'difftap', - ((2.075,0.6),(2.075,2.5),(2.325,2.5),(2.325,0.6),(2.075,0.6)), + ((0.375,6.5),(0.375,9.305),(0.625,9.305),(0.625,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', - ((2.325,0.6),(2.325,2.5),(2.625,2.5),(2.625,0.6),(2.325,0.6)), + ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), ) createRL( tech, net, 'difftap', - ((2.375,0.6),(2.375,2.5),(2.675,2.5),(2.675,0.6),(2.375,0.6)), + ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), ) createRL( tech, net, 'difftap', - ((0.3,0.5),(0.3,0.9),(0.7,0.9),(0.7,0.5),(0.3,0.5)), + ((0.375,8.895),(0.375,9.305),(0.625,9.305),(0.625,8.895),(0.375,8.895)), ) createRL( tech, net, 'difftap', - ((0.925,1.55),(0.925,3.45),(1.075,3.45),(1.075,1.55),(0.925,1.55)), + ((0.675,6.5),(0.675,8.5),(0.925,8.5),(0.925,6.5),(0.675,6.5)), ) createRL( tech, net, 'difftap', - ((0.375,0.55),(0.375,0.85),(0.625,0.85),(0.625,0.55),(0.375,0.55)), + ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', - ((2.375,0.74),(2.375,1.04),(2.625,1.04),(2.625,0.74),(2.375,0.74)), + ((2.675,5.5),(2.675,9.5),(2.925,9.5),(2.925,5.5),(2.675,5.5)), ) createRL( tech, net, 'difftap', - ((1.925,0.6),(1.925,2.5),(2.075,2.5),(2.075,0.6),(1.925,0.6)), + ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), + ) + createRL( + tech, net, 'difftap', + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), + ) + createRL( + tech, net, 'difftap', + ((2.925,5.5),(2.925,9.5),(3.075,9.5),(3.075,5.5),(2.925,5.5)), + ) + createRL( + tech, net, 'difftap', + ((2.375,5.5),(2.375,9.5),(2.675,9.5),(2.675,5.5),(2.375,5.5)), + ) + createRL( + tech, net, 'difftap', + ((2.375,8.925),(2.375,9.335),(2.625,9.335),(2.625,8.925),(2.375,8.925)), + ) + createRL( + tech, net, 'difftap', + ((2.375,6.5),(2.375,9.335),(2.625,9.335),(2.625,6.5),(2.375,6.5)), + ) + createRL( + tech, net, 'nwm', + ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), + ) + createRL( + tech, net, 'nwm', + ((0.195,6.32),(0.195,9.485),(0.805,9.485),(0.805,6.32),(0.195,6.32)), + ) + createRL( + tech, net, 'nwm', + ((1.195,6.43),(1.195,8.57),(1.805,8.57),(1.805,6.43),(1.195,6.43)), + ) + createRL( + tech, net, 'nwm', + ((0.495,6.32),(0.495,8.68),(1.505,8.68),(1.505,6.32),(0.495,6.32)), + ) + createRL( + tech, net, 'nwm', + ((-0.3,4.8),(-0.3,10.8),(4.3,10.8),(4.3,4.8),(-0.3,4.8)), + ) + createRL( + tech, net, 'nwm', + ((0.195,8.715),(0.195,9.485),(0.805,9.485),(0.805,8.715),(0.195,8.715)), + ) + createRL( + tech, net, 'nwm', + ((1.495,6.32),(1.495,8.68),(2.505,8.68),(2.505,6.32),(1.495,6.32)), + ) + createRL( + tech, net, 'nwm', + ((1.145,6.32),(1.145,8.68),(1.805,8.68),(1.805,6.32),(1.145,6.32)), + ) + createRL( + tech, net, 'nwm', + ((0.195,6.32),(0.195,8.68),(0.855,8.68),(0.855,6.32),(0.195,6.32)), + ) + createRL( + tech, net, 'nwm', + ((1.195,6.32),(1.195,8.68),(1.855,8.68),(1.855,6.32),(1.195,6.32)), + ) + createRL( + tech, net, 'nwm', + ((2.195,5.32),(2.195,9.68),(2.855,9.68),(2.855,5.32),(2.195,5.32)), + ) + createRL( + tech, net, 'nwm', + ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), + ) + createRL( + tech, net, 'nwm', + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), + ) + createRL( + tech, net, 'nwm', + ((2.495,5.32),(2.495,9.68),(3.505,9.68),(3.505,5.32),(2.495,5.32)), + ) + createRL( + tech, net, 'nwm', + ((3.195,5.34),(3.195,8.83),(3.805,8.83),(3.805,5.34),(3.195,5.34)), + ) + createRL( + tech, net, 'nwm', + ((2.195,8.745),(2.195,9.515),(2.805,9.515),(2.805,8.745),(2.195,8.745)), + ) + createRL( + tech, net, 'nwm', + ((2.195,6.32),(2.195,9.515),(2.805,9.515),(2.805,6.32),(2.195,6.32)), + ) + createRL( + tech, net, 'nwm', + ((3.145,5.32),(3.145,9.68),(3.805,9.68),(3.805,5.32),(3.145,5.32)), ) createRL( tech, net, 'li', - ((2.415,0.725),(2.415,1.055),(2.585,1.055),(2.585,0.725),(2.415,0.725)), + ((0.415,8.935),(0.415,9.265),(0.585,9.265),(0.585,8.935),(0.415,8.935)), ) createRL( tech, net, 'li', - ((0.415,0.535),(0.415,0.865),(0.585,0.865),(0.585,0.535),(0.415,0.535)), + ((0.0,8.8),(0.0,10.0),(4.0,10.0),(4.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(4.0,1.2),(4.0,0.0),(0.0,0.0)), + ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), + ) + createRL( + tech, net, 'li', + ((2.415,8.965),(2.415,9.295),(2.585,9.295),(2.585,8.965),(2.415,8.965)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.0), u(4.0), u(0.0), u(1.2), + u(2.0), u(4.0), u(8.8), u(10.0), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.0), u(4.0), u(0.0), u(1.2), + u(2.0), u(4.0), u(8.8), u(10.0), ) net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), + ((2.415,9.045),(2.415,9.215),(2.585,9.215),(2.585,9.045),(2.415,9.045)), + ) + createRL( + tech, net, 'licon', + ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), ) createRL( tech, net, 'licon', - ((2.415,0.805),(2.415,0.975),(2.585,0.975),(2.585,0.805),(2.415,0.805)), + ((0.415,9.015),(0.415,9.185),(0.585,9.185),(0.585,9.015),(0.415,9.015)), ) net = nets['q'] createRL( @@ -314,11 +414,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,1.46),(3.375,2.43),(3.625,2.43),(3.625,1.46),(3.375,1.46)), + ((3.375,1.37),(3.375,2.46),(3.625,2.46),(3.625,1.37),(3.375,1.37)), ) createRL( tech, net, 'difftap', - ((3.375,5.55),(3.375,8.56),(3.625,8.56),(3.625,5.55),(3.375,5.55)), + ((3.375,5.52),(3.375,8.65),(3.625,8.65),(3.625,5.52),(3.375,5.52)), ) createRL( tech, net, 'difftap', @@ -330,7 +430,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,5.53),(3.415,8.58),(3.585,8.58),(3.585,5.53),(3.415,5.53)), + ((3.415,5.56),(3.415,8.61),(3.585,8.61),(3.585,5.56),(3.415,5.56)), ) createRL( tech, net, 'li', @@ -338,7 +438,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,1.44),(3.415,2.45),(3.585,2.45),(3.585,1.44),(3.415,1.44)), + ((3.415,1.41),(3.415,2.42),(3.585,2.42),(3.585,1.41),(3.415,1.41)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -352,204 +452,204 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,1.52),(3.415,1.69),(3.585,1.69),(3.585,1.52),(3.415,1.52)), + ((3.415,5.64),(3.415,5.81),(3.585,5.81),(3.585,5.64),(3.415,5.64)), ) createRL( tech, net, 'licon', - ((3.415,1.86),(3.415,2.03),(3.585,2.03),(3.585,1.86),(3.415,1.86)), + ((3.415,5.98),(3.415,6.15),(3.585,6.15),(3.585,5.98),(3.415,5.98)), ) createRL( tech, net, 'licon', - ((3.415,2.2),(3.415,2.37),(3.585,2.37),(3.585,2.2),(3.415,2.2)), + ((3.415,6.32),(3.415,6.49),(3.585,6.49),(3.585,6.32),(3.415,6.32)), ) createRL( tech, net, 'licon', - ((3.415,5.61),(3.415,5.78),(3.585,5.78),(3.585,5.61),(3.415,5.61)), + ((3.415,6.66),(3.415,6.83),(3.585,6.83),(3.585,6.66),(3.415,6.66)), ) createRL( tech, net, 'licon', - ((3.415,5.95),(3.415,6.12),(3.585,6.12),(3.585,5.95),(3.415,5.95)), + ((3.415,7.0),(3.415,7.17),(3.585,7.17),(3.585,7.0),(3.415,7.0)), ) createRL( tech, net, 'licon', - ((3.415,6.29),(3.415,6.46),(3.585,6.46),(3.585,6.29),(3.415,6.29)), + ((3.415,7.34),(3.415,7.51),(3.585,7.51),(3.585,7.34),(3.415,7.34)), ) createRL( tech, net, 'licon', - ((3.415,6.63),(3.415,6.8),(3.585,6.8),(3.585,6.63),(3.415,6.63)), + ((3.415,7.68),(3.415,7.85),(3.585,7.85),(3.585,7.68),(3.415,7.68)), ) createRL( tech, net, 'licon', - ((3.415,6.97),(3.415,7.14),(3.585,7.14),(3.585,6.97),(3.415,6.97)), + ((3.415,8.02),(3.415,8.19),(3.585,8.19),(3.585,8.02),(3.415,8.02)), ) createRL( tech, net, 'licon', - ((3.415,7.31),(3.415,7.48),(3.585,7.48),(3.585,7.31),(3.415,7.31)), + ((3.415,8.36),(3.415,8.53),(3.585,8.53),(3.585,8.36),(3.415,8.36)), ) createRL( tech, net, 'licon', - ((3.415,7.65),(3.415,7.82),(3.585,7.82),(3.585,7.65),(3.415,7.65)), + ((3.415,1.49),(3.415,1.66),(3.585,1.66),(3.585,1.49),(3.415,1.49)), ) createRL( tech, net, 'licon', - ((3.415,7.99),(3.415,8.16),(3.585,8.16),(3.585,7.99),(3.415,7.99)), + ((3.415,1.83),(3.415,2.0),(3.585,2.0),(3.585,1.83),(3.415,1.83)), ) createRL( tech, net, 'licon', - ((3.415,8.33),(3.415,8.5),(3.585,8.5),(3.585,8.33),(3.415,8.33)), + ((3.415,2.17),(3.415,2.34),(3.585,2.34),(3.585,2.17),(3.415,2.17)), ) net = nets['*'] createRL( - tech, net, 'nsdm', - ((1.3,0.475),(1.3,2.625),(1.8,2.625),(1.8,0.475),(1.3,0.475)), + tech, net, 'psdm', + ((2.2,6.375),(2.2,8.625),(2.75,8.625),(2.75,6.375),(2.2,6.375)), ) createRL( - tech, net, 'nsdm', - ((0.25,1.425),(0.25,3.575),(0.8,3.575),(0.8,1.425),(0.25,1.425)), + tech, net, 'psdm', + ((0.25,6.375),(0.25,9.43),(0.75,9.43),(0.75,6.375),(0.25,6.375)), ) createRL( - tech, net, 'nsdm', - ((0.25,1.545),(0.25,3.455),(0.75,3.455),(0.75,1.545),(0.25,1.545)), + tech, net, 'psdm', + ((1.855,6.43),(1.855,8.57),(2.145,8.57),(2.145,6.43),(1.855,6.43)), ) createRL( - tech, net, 'nsdm', - ((0.855,1.48),(0.855,3.52),(1.145,3.52),(1.145,1.48),(0.855,1.48)), + tech, net, 'psdm', + ((1.55,6.375),(1.55,8.625),(2.45,8.625),(2.45,6.375),(1.55,6.375)), ) createRL( - tech, net, 'nsdm', - ((2.55,0.475),(2.55,2.625),(3.45,2.625),(3.45,0.475),(2.55,0.475)), + tech, net, 'psdm', + ((0.25,8.77),(0.25,9.43),(0.75,9.43),(0.75,8.77),(0.25,8.77)), ) createRL( - tech, net, 'nsdm', - ((2.855,0.53),(2.855,2.57),(3.145,2.57),(3.145,0.53),(2.855,0.53)), + tech, net, 'psdm', + ((3.25,5.395),(3.25,8.775),(3.75,8.775),(3.75,5.395),(3.25,5.395)), ) createRL( - tech, net, 'nsdm', - ((1.55,0.475),(1.55,2.625),(2.45,2.625),(2.45,0.475),(1.55,0.475)), + tech, net, 'psdm', + ((2.55,5.375),(2.55,9.625),(3.45,9.625),(3.45,5.375),(2.55,5.375)), ) createRL( - tech, net, 'nsdm', - ((2.2,0.475),(2.2,2.625),(2.75,2.625),(2.75,0.475),(2.2,0.475)), + tech, net, 'psdm', + ((2.855,5.43),(2.855,9.57),(3.145,9.57),(3.145,5.43),(2.855,5.43)), ) createRL( - tech, net, 'nsdm', - ((2.25,0.475),(2.25,2.625),(2.8,2.625),(2.8,0.475),(2.25,0.475)), + tech, net, 'psdm', + ((1.25,6.485),(1.25,8.515),(1.75,8.515),(1.75,6.485),(1.25,6.485)), ) createRL( - tech, net, 'nsdm', - ((3.25,1.335),(3.25,2.555),(3.75,2.555),(3.75,1.335),(3.25,1.335)), + tech, net, 'psdm', + ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), ) createRL( - tech, net, 'nsdm', - ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), + tech, net, 'psdm', + ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), ) createRL( - tech, net, 'nsdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + tech, net, 'psdm', + ((0.25,0.37),(0.25,1.03),(0.75,1.03),(0.75,0.37),(0.25,0.37)), ) createRL( - tech, net, 'nsdm', - ((3.2,0.475),(3.2,2.625),(3.75,2.625),(3.75,0.475),(3.2,0.475)), + tech, net, 'psdm', + ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), ) createRL( - tech, net, 'nsdm', - ((2.25,0.615),(2.25,1.165),(2.75,1.165),(2.75,0.615),(2.25,0.615)), + tech, net, 'psdm', + ((0.175,0.375),(0.175,1.025),(0.825,1.025),(0.825,0.375),(0.175,0.375)), ) createRL( - tech, net, 'nsdm', - ((0.55,1.425),(0.55,3.575),(1.45,3.575),(1.45,1.425),(0.55,1.425)), + tech, net, 'psdm', + ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), ) createRL( - tech, net, 'nsdm', - ((1.3,0.675),(1.3,2.425),(1.7,2.425),(1.7,0.675),(1.3,0.675)), + tech, net, 'psdm', + ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), ) createRL( - tech, net, 'nsdm', - ((1.855,0.53),(1.855,2.57),(2.145,2.57),(2.145,0.53),(1.855,0.53)), + tech, net, 'psdm', + ((2.25,8.8),(2.25,9.46),(2.75,9.46),(2.75,8.8),(2.25,8.8)), ) createRL( - tech, net, 'nsdm', - ((1.2,1.425),(1.2,3.575),(1.7,3.575),(1.7,1.425),(1.2,1.425)), + tech, net, 'psdm', + ((3.2,5.375),(3.2,9.625),(3.75,9.625),(3.75,5.375),(3.2,5.375)), ) createRL( tech, net, 'psdm', - ((2.2,6.375),(2.2,8.625),(2.75,8.625),(2.75,6.375),(2.2,6.375)), + ((2.25,5.375),(2.25,9.625),(2.8,9.625),(2.8,5.375),(2.25,5.375)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,9.375),(0.75,9.375),(0.75,6.375),(0.25,6.375)), + ((2.25,6.375),(2.25,9.46),(2.75,9.46),(2.75,6.375),(2.25,6.375)), ) createRL( - tech, net, 'psdm', - ((1.855,6.43),(1.855,8.57),(2.145,8.57),(2.145,6.43),(1.855,6.43)), + tech, net, 'nsdm', + ((1.3,0.475),(1.3,2.625),(1.8,2.625),(1.8,0.475),(1.3,0.475)), ) createRL( - tech, net, 'psdm', - ((1.55,6.375),(1.55,8.625),(2.45,8.625),(2.45,6.375),(1.55,6.375)), + tech, net, 'nsdm', + ((0.25,1.425),(0.25,3.575),(0.8,3.575),(0.8,1.425),(0.25,1.425)), ) createRL( - tech, net, 'psdm', - ((0.25,8.825),(0.25,9.375),(0.75,9.375),(0.75,8.825),(0.25,8.825)), + tech, net, 'nsdm', + ((0.25,1.485),(0.25,3.515),(0.75,3.515),(0.75,1.485),(0.25,1.485)), ) createRL( - tech, net, 'psdm', - ((3.25,5.425),(3.25,8.685),(3.75,8.685),(3.75,5.425),(3.25,5.425)), + tech, net, 'nsdm', + ((0.855,1.48),(0.855,3.52),(1.145,3.52),(1.145,1.48),(0.855,1.48)), ) createRL( - tech, net, 'psdm', - ((2.55,5.375),(2.55,9.625),(3.45,9.625),(3.45,5.375),(2.55,5.375)), + tech, net, 'nsdm', + ((2.55,0.475),(2.55,2.625),(3.45,2.625),(3.45,0.475),(2.55,0.475)), ) createRL( - tech, net, 'psdm', - ((2.855,5.43),(2.855,9.57),(3.145,9.57),(3.145,5.43),(2.855,5.43)), + tech, net, 'nsdm', + ((2.855,0.53),(2.855,2.57),(3.145,2.57),(3.145,0.53),(2.855,0.53)), ) createRL( - tech, net, 'psdm', - ((1.25,6.375),(1.25,8.625),(1.75,8.625),(1.75,6.375),(1.25,6.375)), + tech, net, 'nsdm', + ((1.55,0.475),(1.55,2.625),(2.45,2.625),(2.45,0.475),(1.55,0.475)), ) createRL( - tech, net, 'psdm', - ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), + tech, net, 'nsdm', + ((2.2,0.475),(2.2,2.625),(2.75,2.625),(2.75,0.475),(2.2,0.475)), ) createRL( - tech, net, 'psdm', - ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), + tech, net, 'nsdm', + ((2.25,0.475),(2.25,2.625),(2.8,2.625),(2.8,0.475),(2.25,0.475)), ) createRL( - tech, net, 'psdm', - ((0.175,0.375),(0.175,1.025),(0.825,1.025),(0.825,0.375),(0.175,0.375)), + tech, net, 'nsdm', + ((3.25,1.245),(3.25,2.585),(3.75,2.585),(3.75,1.245),(3.25,1.245)), ) createRL( - tech, net, 'psdm', - ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), + tech, net, 'nsdm', + ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), ) createRL( - tech, net, 'psdm', - ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), + tech, net, 'nsdm', + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( - tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), + tech, net, 'nsdm', + ((3.2,0.475),(3.2,2.625),(3.75,2.625),(3.75,0.475),(3.2,0.475)), ) createRL( - tech, net, 'psdm', - ((2.25,8.72),(2.25,9.6),(2.75,9.6),(2.75,8.72),(2.25,8.72)), + tech, net, 'nsdm', + ((2.25,0.59),(2.25,1.25),(2.75,1.25),(2.75,0.59),(2.25,0.59)), ) createRL( - tech, net, 'psdm', - ((3.2,5.375),(3.2,9.625),(3.75,9.625),(3.75,5.375),(3.2,5.375)), + tech, net, 'nsdm', + ((0.55,1.425),(0.55,3.575),(1.45,3.575),(1.45,1.425),(0.55,1.425)), ) createRL( - tech, net, 'psdm', - ((2.25,5.375),(2.25,9.625),(2.8,9.625),(2.8,5.375),(2.25,5.375)), + tech, net, 'nsdm', + ((1.3,0.675),(1.3,2.425),(1.7,2.425),(1.7,0.675),(1.3,0.675)), ) createRL( - tech, net, 'psdm', - ((0.25,0.425),(0.25,0.975),(0.75,0.975),(0.75,0.425),(0.25,0.425)), + tech, net, 'nsdm', + ((1.855,0.53),(1.855,2.57),(2.145,2.57),(2.145,0.53),(1.855,0.53)), ) createRL( - tech, net, 'psdm', - ((2.25,6.375),(2.25,9.6),(2.75,9.6),(2.75,6.375),(2.25,6.375)), + tech, net, 'nsdm', + ((1.2,1.425),(1.2,3.575),(1.7,3.575),(1.7,1.425),(1.2,1.425)), ) net = nets['_net0'] createRL( @@ -578,7 +678,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.67),(0.375,3.33),(0.625,3.33),(0.625,1.67),(0.375,1.67)), + ((0.375,1.61),(0.375,3.39),(0.625,3.39),(0.625,1.61),(0.375,1.61)), ) createRL( tech, net, 'difftap', @@ -590,7 +690,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,8.5),(1.625,8.5),(1.625,6.5),(1.375,6.5)), + ((1.375,6.61),(1.375,8.39),(1.625,8.39),(1.625,6.61),(1.375,6.61)), ) createRL( tech, net, 'difftap', @@ -614,7 +714,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,6.48),(1.415,8.52),(1.585,8.52),(1.585,6.48),(1.415,6.48)), + ((1.415,6.655),(1.415,8.345),(1.585,8.345),(1.585,6.655),(1.415,6.655)), ) createRL( tech, net, 'li', @@ -622,7 +722,11 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,1.915),(1.415,6.65),(1.585,6.65),(1.585,1.915),(1.415,1.915)), + ((1.415,1.915),(1.415,6.825),(1.585,6.825),(1.585,1.915),(1.415,1.915)), + ) + createRL( + tech, net, 'licon', + ((1.515,3.915),(1.515,4.085),(1.685,4.085),(1.685,3.915),(1.515,3.915)), ) createRL( tech, net, 'licon', @@ -646,206 +750,94 @@ def _load(): ) createRL( tech, net, 'licon', - ((1.415,6.565),(1.415,6.735),(1.585,6.735),(1.585,6.565),(1.415,6.565)), + ((1.415,6.735),(1.415,6.905),(1.585,6.905),(1.585,6.735),(1.415,6.735)), ) createRL( tech, net, 'licon', - ((1.415,6.905),(1.415,7.075),(1.585,7.075),(1.585,6.905),(1.415,6.905)), + ((1.415,7.075),(1.415,7.245),(1.585,7.245),(1.585,7.075),(1.415,7.075)), ) createRL( tech, net, 'licon', - ((1.415,7.245),(1.415,7.415),(1.585,7.415),(1.585,7.245),(1.415,7.245)), + ((1.415,7.415),(1.415,7.585),(1.585,7.585),(1.585,7.415),(1.415,7.415)), ) createRL( tech, net, 'licon', - ((1.415,7.585),(1.415,7.755),(1.585,7.755),(1.585,7.585),(1.415,7.585)), + ((1.415,7.755),(1.415,7.925),(1.585,7.925),(1.585,7.755),(1.415,7.755)), ) createRL( tech, net, 'licon', - ((1.415,7.925),(1.415,8.095),(1.585,8.095),(1.585,7.925),(1.415,7.925)), + ((1.415,8.095),(1.415,8.265),(1.585,8.265),(1.585,8.095),(1.415,8.095)), ) + net = nets['vss'] createRL( - tech, net, 'licon', - ((1.415,8.265),(1.415,8.435),(1.585,8.435),(1.585,8.265),(1.415,8.265)), - ) - createRL( - tech, net, 'licon', - ((1.515,3.915),(1.515,4.085),(1.685,4.085),(1.685,3.915),(1.515,3.915)), - ) - net = nets['vdd'] - createRL( - tech, net, 'difftap', - ((2.075,6.5),(2.075,8.5),(2.325,8.5),(2.325,6.5),(2.075,6.5)), - ) - createRL( - tech, net, 'difftap', - ((2.325,6.5),(2.325,8.5),(2.625,8.5),(2.625,6.5),(2.325,6.5)), - ) - createRL( - tech, net, 'difftap', - ((0.375,6.5),(0.375,9.25),(0.625,9.25),(0.625,6.5),(0.375,6.5)), - ) - createRL( - tech, net, 'difftap', - ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), - ) - createRL( - tech, net, 'difftap', - ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), - ) - createRL( - tech, net, 'difftap', - ((0.375,8.95),(0.375,9.25),(0.625,9.25),(0.625,8.95),(0.375,8.95)), + tech, net, 'difftap', + ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), ) createRL( tech, net, 'difftap', - ((0.675,6.5),(0.675,8.5),(0.925,8.5),(0.925,6.5),(0.675,6.5)), + ((2.675,0.6),(2.675,2.5),(2.925,2.5),(2.925,0.6),(2.675,0.6)), ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), + ((2.075,0.6),(2.075,2.5),(2.325,2.5),(2.325,0.6),(2.075,0.6)), ) createRL( tech, net, 'difftap', - ((2.675,5.5),(2.675,9.5),(2.925,9.5),(2.925,5.5),(2.675,5.5)), + ((2.375,0.6),(2.375,2.5),(2.675,2.5),(2.675,0.6),(2.375,0.6)), ) createRL( tech, net, 'difftap', - ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), + ((2.325,0.6),(2.325,2.5),(2.625,2.5),(2.625,0.6),(2.325,0.6)), ) createRL( tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), + ((0.925,1.55),(0.925,3.45),(1.075,3.45),(1.075,1.55),(0.925,1.55)), ) createRL( tech, net, 'difftap', - ((2.925,5.5),(2.925,9.5),(3.075,9.5),(3.075,5.5),(2.925,5.5)), + ((0.375,0.495),(0.375,0.905),(0.625,0.905),(0.625,0.495),(0.375,0.495)), ) createRL( tech, net, 'difftap', - ((2.375,5.5),(2.375,9.5),(2.675,9.5),(2.675,5.5),(2.375,5.5)), + ((0.3,0.5),(0.3,0.9),(0.7,0.9),(0.7,0.5),(0.3,0.5)), ) createRL( tech, net, 'difftap', - ((2.375,8.845),(2.375,9.475),(2.625,9.475),(2.625,8.845),(2.375,8.845)), + ((2.375,0.715),(2.375,1.125),(2.625,1.125),(2.625,0.715),(2.375,0.715)), ) createRL( tech, net, 'difftap', - ((2.375,6.5),(2.375,9.475),(2.625,9.475),(2.625,6.5),(2.375,6.5)), - ) - createRL( - tech, net, 'nwm', - ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.195,6.32),(0.195,9.43),(0.805,9.43),(0.805,6.32),(0.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((1.195,6.32),(1.195,8.68),(1.805,8.68),(1.805,6.32),(1.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.495,6.32),(0.495,8.68),(1.505,8.68),(1.505,6.32),(0.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((-0.3,4.8),(-0.3,10.8),(4.3,10.8),(4.3,4.8),(-0.3,4.8)), - ) - createRL( - tech, net, 'nwm', - ((0.195,8.77),(0.195,9.43),(0.805,9.43),(0.805,8.77),(0.195,8.77)), - ) - createRL( - tech, net, 'nwm', - ((1.495,6.32),(1.495,8.68),(2.505,8.68),(2.505,6.32),(1.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((1.145,6.32),(1.145,8.68),(1.805,8.68),(1.805,6.32),(1.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.855,8.68),(0.855,6.32),(0.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((1.195,6.32),(1.195,8.68),(1.855,8.68),(1.855,6.32),(1.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((2.195,5.32),(2.195,9.68),(2.855,9.68),(2.855,5.32),(2.195,5.32)), - ) - createRL( - tech, net, 'nwm', - ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), - ) - createRL( - tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), - ) - createRL( - tech, net, 'nwm', - ((2.495,5.32),(2.495,9.68),(3.505,9.68),(3.505,5.32),(2.495,5.32)), - ) - createRL( - tech, net, 'nwm', - ((3.195,5.37),(3.195,8.74),(3.805,8.74),(3.805,5.37),(3.195,5.37)), - ) - createRL( - tech, net, 'nwm', - ((2.195,8.665),(2.195,9.655),(2.805,9.655),(2.805,8.665),(2.195,8.665)), - ) - createRL( - tech, net, 'nwm', - ((2.195,6.32),(2.195,9.655),(2.805,9.655),(2.805,6.32),(2.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.145,5.32),(3.145,9.68),(3.805,9.68),(3.805,5.32),(3.145,5.32)), - ) - createRL( - tech, net, 'li', - ((0.415,8.935),(0.415,9.265),(0.585,9.265),(0.585,8.935),(0.415,8.935)), + ((1.925,0.6),(1.925,2.5),(2.075,2.5),(2.075,0.6),(1.925,0.6)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(4.0,10.0),(4.0,8.8),(0.0,8.8)), + ((0.0,0.0),(0.0,1.2),(4.0,1.2),(4.0,0.0),(0.0,0.0)), ) createRL( tech, net, 'li', - ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), + ((0.415,0.535),(0.415,0.865),(0.585,0.865),(0.585,0.535),(0.415,0.535)), ) createRL( tech, net, 'li', - ((2.415,8.825),(2.415,9.495),(2.585,9.495),(2.585,8.825),(2.415,8.825)), + ((2.415,0.755),(2.415,1.085),(2.585,1.085),(2.585,0.755),(2.415,0.755)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.0), u(4.0), u(8.8), u(10.0), + u(2.0), u(4.0), u(0.0), u(1.2), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.0), u(4.0), u(8.8), u(10.0), + u(2.0), u(4.0), u(0.0), u(1.2), ) net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), - ) - createRL( - tech, net, 'licon', - ((2.415,8.905),(2.415,9.075),(2.585,9.075),(2.585,8.905),(2.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((2.415,9.245),(2.415,9.415),(2.585,9.415),(2.585,9.245),(2.415,9.245)), + ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), ) createRL( tech, net, 'licon', - ((0.415,9.015),(0.415,9.185),(0.585,9.185),(0.585,9.015),(0.415,9.015)), + ((2.415,0.835),(2.415,1.005),(2.585,1.005),(2.585,0.835),(2.415,0.835)), ) net = nets['_net1'] createRL( @@ -992,302 +984,322 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) - net = nets['vss'] + nets['vss'].setGlobal(True) + net = nets['vdd'] createRL( tech, net, 'difftap', - ((3.925,0.6),(3.925,2.5),(4.075,2.5),(4.075,0.6),(3.925,0.6)), + ((3.675,5.5),(3.675,9.5),(3.925,9.5),(3.925,5.5),(3.675,5.5)), ) createRL( tech, net, 'difftap', - ((2.925,1.5),(2.925,3.5),(3.075,3.5),(3.075,1.5),(2.925,1.5)), + ((2.3,9.0),(2.3,9.4),(2.7,9.4),(2.7,9.0),(2.3,9.0)), ) createRL( tech, net, 'difftap', - ((2.3,0.5),(2.3,0.9),(2.7,0.9),(2.7,0.5),(2.3,0.5)), + ((3.375,6.5),(3.375,9.335),(3.625,9.335),(3.625,6.5),(3.375,6.5)), ) createRL( tech, net, 'difftap', - ((3.375,0.74),(3.375,3.5),(3.625,3.5),(3.625,0.74),(3.375,0.74)), + ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), ) createRL( tech, net, 'difftap', - ((3.675,0.6),(3.675,2.5),(3.925,2.5),(3.925,0.6),(3.675,0.6)), + ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), ) createRL( tech, net, 'difftap', - ((0.925,1.5),(0.925,3.5),(1.075,3.5),(1.075,1.5),(0.925,1.5)), + ((3.375,8.925),(3.375,9.335),(3.625,9.335),(3.625,8.925),(3.375,8.925)), ) createRL( tech, net, 'difftap', - ((1.925,1.5),(1.925,3.5),(2.075,3.5),(2.075,1.5),(1.925,1.5)), + ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), ) createRL( tech, net, 'difftap', - ((3.375,0.6),(3.375,2.5),(3.675,2.5),(3.675,0.6),(3.375,0.6)), + ((1.675,6.5),(1.675,8.5),(1.925,8.5),(1.925,6.5),(1.675,6.5)), ) createRL( tech, net, 'difftap', - ((3.075,1.5),(3.075,3.5),(3.325,3.5),(3.325,1.5),(3.075,1.5)), + ((2.925,6.5),(2.925,8.5),(3.075,8.5),(3.075,6.5),(2.925,6.5)), ) createRL( tech, net, 'difftap', - ((3.375,0.74),(3.375,1.04),(3.625,1.04),(3.625,0.74),(3.375,0.74)), + ((1.325,6.5),(1.325,8.5),(1.625,8.5),(1.625,6.5),(1.325,6.5)), ) createRL( tech, net, 'difftap', - ((3.325,1.5),(3.325,3.5),(3.625,3.5),(3.625,1.5),(3.325,1.5)), + ((1.375,6.5),(1.375,8.5),(1.675,8.5),(1.675,6.5),(1.375,6.5)), ) createRL( tech, net, 'difftap', - ((2.375,0.55),(2.375,0.85),(2.625,0.85),(2.625,0.55),(2.375,0.55)), - ) - createRL( - tech, net, 'li', - ((3.415,0.725),(3.415,1.055),(3.585,1.055),(3.585,0.725),(3.415,0.725)), - ) - createRL( - tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(5.0,1.2),(5.0,0.0),(0.0,0.0)), - ) - createRL( - tech, net, 'li', - ((2.415,0.535),(2.415,0.865),(2.585,0.865),(2.585,0.535),(2.415,0.535)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(2.5), u(5.0), u(0.0), u(1.2), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(2.5), u(5.0), u(0.0), u(1.2), - ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) - createRL( - tech, net, 'licon', - ((3.415,0.805),(3.415,0.975),(3.585,0.975),(3.585,0.805),(3.415,0.805)), - ) - createRL( - tech, net, 'licon', - ((2.415,0.615),(2.415,0.785),(2.585,0.785),(2.585,0.615),(2.415,0.615)), + ((3.075,6.5),(3.075,8.5),(3.325,8.5),(3.325,6.5),(3.075,6.5)), ) - net = nets['q'] createRL( tech, net, 'difftap', - ((4.375,5.55),(4.375,8.56),(4.625,8.56),(4.625,5.55),(4.375,5.55)), + ((3.325,6.5),(3.325,8.5),(3.625,8.5),(3.625,6.5),(3.325,6.5)), ) createRL( tech, net, 'difftap', - ((4.075,5.5),(4.075,9.5),(4.325,9.5),(4.325,5.5),(4.075,5.5)), + ((1.375,8.895),(1.375,9.305),(1.625,9.305),(1.625,8.895),(1.375,8.895)), ) createRL( tech, net, 'difftap', - ((4.075,0.6),(4.075,2.5),(4.325,2.5),(4.325,0.6),(4.075,0.6)), + ((2.375,8.995),(2.375,9.405),(2.625,9.405),(2.625,8.995),(2.375,8.995)), ) createRL( tech, net, 'difftap', - ((4.325,5.5),(4.325,9.5),(4.625,9.5),(4.625,5.5),(4.325,5.5)), + ((3.375,5.5),(3.375,9.5),(3.675,9.5),(3.675,5.5),(3.375,5.5)), ) createRL( tech, net, 'difftap', - ((4.375,1.46),(4.375,2.43),(4.625,2.43),(4.625,1.46),(4.375,1.46)), + ((3.925,5.5),(3.925,9.5),(4.075,9.5),(4.075,5.5),(3.925,5.5)), ) createRL( tech, net, 'difftap', - ((4.325,0.6),(4.325,2.5),(4.625,2.5),(4.625,0.6),(4.325,0.6)), + ((1.375,6.5),(1.375,9.305),(1.625,9.305),(1.625,6.5),(1.375,6.5)), ) createRL( - tech, net, 'li', - ((4.415,5.53),(4.415,8.58),(4.585,8.58),(4.585,5.53),(4.415,5.53)), + tech, net, 'nwm', + ((2.195,7.51),(2.195,8.62),(2.805,8.62),(2.805,7.51),(2.195,7.51)), ) createRL( - tech, net, 'li', - ((4.415,1.44),(4.415,2.45),(4.585,2.45),(4.585,1.44),(4.415,1.44)), + tech, net, 'nwm', + ((1.195,8.715),(1.195,9.485),(1.805,9.485),(1.805,8.715),(1.195,8.715)), ) createRL( - tech, net, 'li', - ((4.415,1.37),(4.415,8.63),(4.585,8.63),(4.585,1.37),(4.415,1.37)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(4.5), u(0.17), u(1.37), u(8.63), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(4.5), u(0.17), u(1.37), u(8.63), + tech, net, 'nwm', + ((3.495,5.32),(3.495,9.68),(4.505,9.68),(4.505,5.32),(3.495,5.32)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( - tech, net, 'licon', - ((4.415,1.52),(4.415,1.69),(4.585,1.69),(4.585,1.52),(4.415,1.52)), + tech, net, 'nwm', + ((1.195,6.32),(1.195,9.485),(1.805,9.485),(1.805,6.32),(1.195,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,1.86),(4.415,2.03),(4.585,2.03),(4.585,1.86),(4.415,1.86)), + tech, net, 'nwm', + ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,2.2),(4.415,2.37),(4.585,2.37),(4.585,2.2),(4.415,2.2)), + tech, net, 'nwm', + ((2.195,6.32),(2.195,8.68),(2.855,8.68),(2.855,6.32),(2.195,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,5.61),(4.415,5.78),(4.585,5.78),(4.585,5.61),(4.415,5.61)), + tech, net, 'nwm', + ((3.195,6.32),(3.195,9.515),(3.805,9.515),(3.805,6.32),(3.195,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,5.95),(4.415,6.12),(4.585,6.12),(4.585,5.95),(4.415,5.95)), + tech, net, 'nwm', + ((1.495,6.32),(1.495,8.68),(2.505,8.68),(2.505,6.32),(1.495,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,6.29),(4.415,6.46),(4.585,6.46),(4.585,6.29),(4.415,6.29)), + tech, net, 'nwm', + ((0.195,7.51),(0.195,8.62),(0.805,8.62),(0.805,7.51),(0.195,7.51)), ) createRL( - tech, net, 'licon', - ((4.415,6.63),(4.415,6.8),(4.585,6.8),(4.585,6.63),(4.415,6.63)), + tech, net, 'nwm', + ((2.495,6.32),(2.495,8.68),(3.505,8.68),(3.505,6.32),(2.495,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,6.97),(4.415,7.14),(4.585,7.14),(4.585,6.97),(4.415,6.97)), + tech, net, 'nwm', + ((1.145,6.32),(1.145,8.68),(1.805,8.68),(1.805,6.32),(1.145,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,7.31),(4.415,7.48),(4.585,7.48),(4.585,7.31),(4.415,7.31)), + tech, net, 'nwm', + ((0.495,6.32),(0.495,8.68),(1.505,8.68),(1.505,6.32),(0.495,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,7.65),(4.415,7.82),(4.585,7.82),(4.585,7.65),(4.415,7.65)), + tech, net, 'nwm', + ((3.195,8.745),(3.195,9.515),(3.805,9.515),(3.805,8.745),(3.195,8.745)), ) createRL( - tech, net, 'licon', - ((4.415,7.99),(4.415,8.16),(4.585,8.16),(4.585,7.99),(4.415,7.99)), + tech, net, 'nwm', + ((1.195,6.32),(1.195,8.68),(1.855,8.68),(1.855,6.32),(1.195,6.32)), ) createRL( - tech, net, 'licon', - ((4.415,8.33),(4.415,8.5),(4.585,8.5),(4.585,8.33),(4.415,8.33)), + tech, net, 'nwm', + ((4.195,5.34),(4.195,8.83),(4.805,8.83),(4.805,5.34),(4.195,5.34)), ) - net = nets['*'] createRL( - tech, net, 'nsdm', - ((3.55,0.475),(3.55,2.625),(4.45,2.625),(4.45,0.475),(3.55,0.475)), + tech, net, 'nwm', + ((0.195,6.32),(0.195,8.68),(0.855,8.68),(0.855,6.32),(0.195,6.32)), ) createRL( - tech, net, 'nsdm', - ((3.855,0.53),(3.855,2.57),(4.145,2.57),(4.145,0.53),(3.855,0.53)), + tech, net, 'nwm', + ((3.145,6.32),(3.145,8.68),(3.805,8.68),(3.805,6.32),(3.145,6.32)), ) createRL( - tech, net, 'nsdm', - ((2.55,1.375),(2.55,3.625),(3.45,3.625),(3.45,1.375),(2.55,1.375)), + tech, net, 'nwm', + ((-0.3,4.8),(-0.3,10.8),(5.3,10.8),(5.3,4.8),(-0.3,4.8)), ) createRL( - tech, net, 'nsdm', - ((2.855,1.43),(2.855,3.57),(3.145,3.57),(3.145,1.43),(2.855,1.43)), + tech, net, 'nwm', + ((2.12,8.82),(2.12,9.58),(2.88,9.58),(2.88,8.82),(2.12,8.82)), ) createRL( - tech, net, 'nsdm', - ((1.855,1.43),(1.855,3.57),(2.145,3.57),(2.145,1.43),(1.855,1.43)), + tech, net, 'nwm', + ((2.195,8.815),(2.195,9.585),(2.805,9.585),(2.805,8.815),(2.195,8.815)), ) createRL( - tech, net, 'nsdm', - ((3.25,0.615),(3.25,3.625),(3.75,3.625),(3.75,0.615),(3.25,0.615)), + tech, net, 'nwm', + ((3.195,5.32),(3.195,9.68),(3.855,9.68),(3.855,5.32),(3.195,5.32)), ) createRL( - tech, net, 'nsdm', - ((0.25,1.375),(0.25,3.625),(0.8,3.625),(0.8,1.375),(0.25,1.375)), + tech, net, 'nwm', + ((4.145,5.32),(4.145,9.68),(4.805,9.68),(4.805,5.32),(4.145,5.32)), ) createRL( - tech, net, 'nsdm', - ((2.3,1.875),(2.3,2.625),(2.7,2.625),(2.7,1.875),(2.3,1.875)), + tech, net, 'li', + ((0.0,8.8),(0.0,10.0),(5.0,10.0),(5.0,8.8),(0.0,8.8)), ) createRL( - tech, net, 'nsdm', - ((3.25,0.475),(3.25,2.625),(3.8,2.625),(3.8,0.475),(3.25,0.475)), + tech, net, 'li', + ((1.415,8.935),(1.415,9.265),(1.585,9.265),(1.585,8.935),(1.415,8.935)), ) createRL( - tech, net, 'nsdm', - ((1.3,1.875),(1.3,2.625),(1.7,2.625),(1.7,1.875),(1.3,1.875)), + tech, net, 'li', + ((2.415,9.035),(2.415,9.365),(2.585,9.365),(2.585,9.035),(2.415,9.035)), ) createRL( - tech, net, 'nsdm', - ((3.25,0.615),(3.25,1.165),(3.75,1.165),(3.75,0.615),(3.25,0.615)), + tech, net, 'li', + ((3.415,8.965),(3.415,9.295),(3.585,9.295),(3.585,8.965),(3.415,8.965)), + ) + Vertical.create( + net, tech.getLayer('li.pin'), + u(2.5), u(5.0), u(8.8), u(10.0), + ) + pin = Vertical.create( + net, tech.getLayer('li'), + u(2.5), u(5.0), u(8.8), u(10.0), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'nsdm', - ((2.2,1.375),(2.2,3.625),(2.7,3.625),(2.7,1.375),(2.2,1.375)), + tech, net, 'licon', + ((1.415,9.015),(1.415,9.185),(1.585,9.185),(1.585,9.015),(1.415,9.015)), ) createRL( - tech, net, 'nsdm', - ((2.3,1.375),(2.3,3.625),(2.8,3.625),(2.8,1.375),(2.3,1.375)), + tech, net, 'licon', + ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), ) createRL( - tech, net, 'nsdm', - ((4.25,1.335),(4.25,2.555),(4.75,2.555),(4.75,1.335),(4.25,1.335)), + tech, net, 'licon', + ((3.415,9.045),(3.415,9.215),(3.585,9.215),(3.585,9.045),(3.415,9.045)), ) + net = nets['q'] createRL( - tech, net, 'nsdm', - ((2.25,8.925),(2.25,9.475),(2.75,9.475),(2.75,8.925),(2.25,8.925)), + tech, net, 'difftap', + ((4.075,5.5),(4.075,9.5),(4.325,9.5),(4.325,5.5),(4.075,5.5)), ) createRL( - tech, net, 'nsdm', - ((2.175,8.875),(2.175,9.525),(2.825,9.525),(2.825,8.875),(2.175,8.875)), + tech, net, 'difftap', + ((4.375,5.52),(4.375,8.65),(4.625,8.65),(4.625,5.52),(4.375,5.52)), ) createRL( - tech, net, 'nsdm', - ((0.55,1.375),(0.55,3.625),(1.45,3.625),(1.45,1.375),(0.55,1.375)), + tech, net, 'difftap', + ((4.075,0.6),(4.075,2.5),(4.325,2.5),(4.325,0.6),(4.075,0.6)), ) createRL( - tech, net, 'nsdm', - ((0.855,1.43),(0.855,3.57),(1.145,3.57),(1.145,1.43),(0.855,1.43)), + tech, net, 'difftap', + ((4.325,5.5),(4.325,9.5),(4.625,9.5),(4.625,5.5),(4.325,5.5)), ) createRL( - tech, net, 'nsdm', - ((1.2,1.375),(1.2,3.625),(1.7,3.625),(1.7,1.375),(1.2,1.375)), + tech, net, 'difftap', + ((4.375,1.37),(4.375,2.46),(4.625,2.46),(4.625,1.37),(4.375,1.37)), ) createRL( - tech, net, 'nsdm', - ((1.3,1.375),(1.3,3.625),(1.8,3.625),(1.8,1.375),(1.3,1.375)), + tech, net, 'difftap', + ((4.325,0.6),(4.325,2.5),(4.625,2.5),(4.625,0.6),(4.325,0.6)), ) createRL( - tech, net, 'nsdm', - ((3.2,1.375),(3.2,3.625),(3.75,3.625),(3.75,1.375),(3.2,1.375)), + tech, net, 'li', + ((4.415,5.56),(4.415,8.61),(4.585,8.61),(4.585,5.56),(4.415,5.56)), ) createRL( - tech, net, 'nsdm', - ((1.55,1.375),(1.55,3.625),(2.45,3.625),(2.45,1.375),(1.55,1.375)), + tech, net, 'li', + ((4.415,1.41),(4.415,2.42),(4.585,2.42),(4.585,1.41),(4.415,1.41)), ) createRL( - tech, net, 'nsdm', - ((4.2,0.475),(4.2,2.625),(4.75,2.625),(4.75,0.475),(4.2,0.475)), + tech, net, 'li', + ((4.415,1.37),(4.415,8.63),(4.585,8.63),(4.585,1.37),(4.415,1.37)), + ) + Vertical.create( + net, tech.getLayer('li.pin'), + u(4.5), u(0.17), u(1.37), u(8.63), + ) + pin = Vertical.create( + net, tech.getLayer('li'), + u(4.5), u(0.17), u(1.37), u(8.63), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'nsdm', - ((0.25,1.465),(0.25,2.345),(0.75,2.345),(0.75,1.465),(0.25,1.465)), + tech, net, 'licon', + ((4.415,1.49),(4.415,1.66),(4.585,1.66),(4.585,1.49),(4.415,1.49)), ) createRL( - tech, net, 'psdm', - ((2.25,7.655),(2.25,8.535),(2.75,8.535),(2.75,7.655),(2.25,7.655)), + tech, net, 'licon', + ((4.415,1.83),(4.415,2.0),(4.585,2.0),(4.585,1.83),(4.415,1.83)), + ) + createRL( + tech, net, 'licon', + ((4.415,2.17),(4.415,2.34),(4.585,2.34),(4.585,2.17),(4.415,2.17)), + ) + createRL( + tech, net, 'licon', + ((4.415,5.64),(4.415,5.81),(4.585,5.81),(4.585,5.64),(4.415,5.64)), + ) + createRL( + tech, net, 'licon', + ((4.415,5.98),(4.415,6.15),(4.585,6.15),(4.585,5.98),(4.415,5.98)), + ) + createRL( + tech, net, 'licon', + ((4.415,6.32),(4.415,6.49),(4.585,6.49),(4.585,6.32),(4.415,6.32)), + ) + createRL( + tech, net, 'licon', + ((4.415,6.66),(4.415,6.83),(4.585,6.83),(4.585,6.66),(4.415,6.66)), + ) + createRL( + tech, net, 'licon', + ((4.415,7.0),(4.415,7.17),(4.585,7.17),(4.585,7.0),(4.415,7.0)), + ) + createRL( + tech, net, 'licon', + ((4.415,7.34),(4.415,7.51),(4.585,7.51),(4.585,7.34),(4.415,7.34)), + ) + createRL( + tech, net, 'licon', + ((4.415,7.68),(4.415,7.85),(4.585,7.85),(4.585,7.68),(4.415,7.68)), + ) + createRL( + tech, net, 'licon', + ((4.415,8.02),(4.415,8.19),(4.585,8.19),(4.585,8.02),(4.415,8.02)), + ) + createRL( + tech, net, 'licon', + ((4.415,8.36),(4.415,8.53),(4.585,8.53),(4.585,8.36),(4.415,8.36)), ) + net = nets['*'] createRL( tech, net, 'psdm', - ((1.25,8.825),(1.25,9.375),(1.75,9.375),(1.75,8.825),(1.25,8.825)), + ((2.25,7.565),(2.25,8.565),(2.75,8.565),(2.75,7.565),(2.25,7.565)), ) createRL( tech, net, 'psdm', - ((3.855,5.43),(3.855,9.57),(4.145,9.57),(4.145,5.43),(3.855,5.43)), + ((1.25,8.77),(1.25,9.43),(1.75,9.43),(1.75,8.77),(1.25,8.77)), ) createRL( tech, net, 'psdm', - ((3.55,5.375),(3.55,9.625),(4.45,9.625),(4.45,5.375),(3.55,5.375)), + ((3.855,5.43),(3.855,9.57),(4.145,9.57),(4.145,5.43),(3.855,5.43)), ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,9.375),(1.75,9.375),(1.75,6.375),(1.25,6.375)), + ((3.55,5.375),(3.55,9.625),(4.45,9.625),(4.45,5.375),(3.55,5.375)), ) createRL( tech, net, 'psdm', - ((2.25,0.425),(2.25,0.975),(2.75,0.975),(2.75,0.425),(2.25,0.425)), + ((1.25,6.375),(1.25,9.43),(1.75,9.43),(1.75,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', @@ -1299,7 +1311,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,6.375),(3.25,9.6),(3.75,9.6),(3.75,6.375),(3.25,6.375)), + ((3.25,6.375),(3.25,9.46),(3.75,9.46),(3.75,6.375),(3.25,6.375)), ) createRL( tech, net, 'psdm', @@ -1311,7 +1323,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,7.655),(0.25,8.535),(0.75,8.535),(0.75,7.655),(0.25,7.655)), + ((0.25,7.565),(0.25,8.565),(0.75,8.565),(0.75,7.565),(0.25,7.565)), ) createRL( tech, net, 'psdm', @@ -1327,23 +1339,23 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), + ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), ) createRL( tech, net, 'psdm', - ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), + ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), ) createRL( tech, net, 'psdm', - ((4.25,5.425),(4.25,8.685),(4.75,8.685),(4.75,5.425),(4.25,5.425)), + ((4.25,5.395),(4.25,8.775),(4.75,8.775),(4.75,5.395),(4.25,5.395)), ) createRL( tech, net, 'psdm', - ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), + ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), ) createRL( tech, net, 'psdm', - ((3.25,8.72),(3.25,9.6),(3.75,9.6),(3.75,8.72),(3.25,8.72)), + ((3.25,8.8),(3.25,9.46),(3.75,9.46),(3.75,8.8),(3.25,8.8)), ) createRL( tech, net, 'psdm', @@ -1361,10 +1373,110 @@ def _load(): tech, net, 'psdm', ((4.2,5.375),(4.2,9.625),(4.75,9.625),(4.75,5.375),(4.2,5.375)), ) + createRL( + tech, net, 'psdm', + ((2.25,0.37),(2.25,1.03),(2.75,1.03),(2.75,0.37),(2.25,0.37)), + ) createRL( tech, net, 'psdm', ((2.175,0.375),(2.175,1.025),(2.825,1.025),(2.825,0.375),(2.175,0.375)), ) + createRL( + tech, net, 'nsdm', + ((3.55,0.475),(3.55,2.625),(4.45,2.625),(4.45,0.475),(3.55,0.475)), + ) + createRL( + tech, net, 'nsdm', + ((3.855,0.53),(3.855,2.57),(4.145,2.57),(4.145,0.53),(3.855,0.53)), + ) + createRL( + tech, net, 'nsdm', + ((2.55,1.375),(2.55,3.625),(3.45,3.625),(3.45,1.375),(2.55,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((2.855,1.43),(2.855,3.57),(3.145,3.57),(3.145,1.43),(2.855,1.43)), + ) + createRL( + tech, net, 'nsdm', + ((1.855,1.43),(1.855,3.57),(2.145,3.57),(2.145,1.43),(1.855,1.43)), + ) + createRL( + tech, net, 'nsdm', + ((3.25,0.59),(3.25,3.625),(3.75,3.625),(3.75,0.59),(3.25,0.59)), + ) + createRL( + tech, net, 'nsdm', + ((0.25,1.375),(0.25,3.625),(0.8,3.625),(0.8,1.375),(0.25,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((2.3,1.875),(2.3,2.625),(2.7,2.625),(2.7,1.875),(2.3,1.875)), + ) + createRL( + tech, net, 'nsdm', + ((3.25,0.475),(3.25,2.625),(3.8,2.625),(3.8,0.475),(3.25,0.475)), + ) + createRL( + tech, net, 'nsdm', + ((1.3,1.875),(1.3,2.625),(1.7,2.625),(1.7,1.875),(1.3,1.875)), + ) + createRL( + tech, net, 'nsdm', + ((3.25,0.59),(3.25,1.25),(3.75,1.25),(3.75,0.59),(3.25,0.59)), + ) + createRL( + tech, net, 'nsdm', + ((2.2,1.375),(2.2,3.625),(2.7,3.625),(2.7,1.375),(2.2,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((2.3,1.375),(2.3,3.625),(2.8,3.625),(2.8,1.375),(2.3,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((4.25,1.245),(4.25,2.585),(4.75,2.585),(4.75,1.245),(4.25,1.245)), + ) + createRL( + tech, net, 'nsdm', + ((2.175,8.875),(2.175,9.525),(2.825,9.525),(2.825,8.875),(2.175,8.875)), + ) + createRL( + tech, net, 'nsdm', + ((2.25,8.87),(2.25,9.53),(2.75,9.53),(2.75,8.87),(2.25,8.87)), + ) + createRL( + tech, net, 'nsdm', + ((0.55,1.375),(0.55,3.625),(1.45,3.625),(1.45,1.375),(0.55,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((0.855,1.43),(0.855,3.57),(1.145,3.57),(1.145,1.43),(0.855,1.43)), + ) + createRL( + tech, net, 'nsdm', + ((1.2,1.375),(1.2,3.625),(1.7,3.625),(1.7,1.375),(1.2,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((1.3,1.375),(1.3,3.625),(1.8,3.625),(1.8,1.375),(1.3,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((3.2,1.375),(3.2,3.625),(3.75,3.625),(3.75,1.375),(3.2,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((1.55,1.375),(1.55,3.625),(2.45,3.625),(2.45,1.375),(1.55,1.375)), + ) + createRL( + tech, net, 'nsdm', + ((4.2,0.475),(4.2,2.625),(4.75,2.625),(4.75,0.475),(4.2,0.475)), + ) + createRL( + tech, net, 'nsdm', + ((0.25,1.435),(0.25,2.435),(0.75,2.435),(0.75,1.435),(0.25,1.435)), + ) net = nets['_net1'] createRL( tech, net, 'poly', @@ -1404,11 +1516,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,7.78),(0.375,8.41),(0.625,8.41),(0.625,7.78),(0.375,7.78)), + ((0.375,7.69),(0.375,8.44),(0.625,8.44),(0.625,7.69),(0.375,7.69)), ) createRL( tech, net, 'difftap', - ((2.375,7.78),(2.375,8.41),(2.625,8.41),(2.625,7.78),(2.375,7.78)), + ((2.375,7.69),(2.375,8.44),(2.625,8.44),(2.625,7.69),(2.375,7.69)), ) createRL( tech, net, 'difftap', @@ -1428,7 +1540,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.59),(0.375,2.22),(0.625,2.22),(0.625,1.59),(0.375,1.59)), + ((0.375,1.56),(0.375,2.31),(0.625,2.31),(0.625,1.56),(0.375,1.56)), ) createRL( tech, net, 'li', @@ -1436,7 +1548,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,7.76),(0.415,8.43),(0.585,8.43),(0.585,7.76),(0.415,7.76)), + ((0.415,7.73),(0.415,8.4),(0.585,8.4),(0.585,7.73),(0.415,7.73)), ) createRL( tech, net, 'li', @@ -1444,7 +1556,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,7.76),(2.415,8.43),(2.585,8.43),(2.585,7.76),(2.415,7.76)), + ((2.415,7.73),(2.415,8.4),(2.585,8.4),(2.585,7.73),(2.415,7.73)), ) createRL( tech, net, 'li', @@ -1456,238 +1568,135 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.57),(0.415,2.24),(0.585,2.24),(0.585,1.57),(0.415,1.57)), + ((0.415,1.6),(0.415,2.27),(0.585,2.27),(0.585,1.6),(0.415,1.6)), ) createRL( tech, net, 'licon', - ((0.415,7.84),(0.415,8.01),(0.585,8.01),(0.585,7.84),(0.415,7.84)), + ((2.415,7.81),(2.415,7.98),(2.585,7.98),(2.585,7.81),(2.415,7.81)), ) createRL( tech, net, 'licon', - ((0.415,8.18),(0.415,8.35),(0.585,8.35),(0.585,8.18),(0.415,8.18)), + ((2.415,8.15),(2.415,8.32),(2.585,8.32),(2.585,8.15),(2.415,8.15)), ) createRL( tech, net, 'licon', - ((0.415,1.65),(0.415,1.82),(0.585,1.82),(0.585,1.65),(0.415,1.65)), + ((0.415,7.81),(0.415,7.98),(0.585,7.98),(0.585,7.81),(0.415,7.81)), ) createRL( tech, net, 'licon', - ((0.415,1.99),(0.415,2.16),(0.585,2.16),(0.585,1.99),(0.415,1.99)), + ((0.415,8.15),(0.415,8.32),(0.585,8.32),(0.585,8.15),(0.415,8.15)), ) createRL( tech, net, 'licon', - ((2.415,7.84),(2.415,8.01),(2.585,8.01),(2.585,7.84),(2.415,7.84)), + ((0.415,1.68),(0.415,1.85),(0.585,1.85),(0.585,1.68),(0.415,1.68)), ) createRL( tech, net, 'licon', - ((2.415,8.18),(2.415,8.35),(2.585,8.35),(2.585,8.18),(2.415,8.18)), + ((0.415,2.02),(0.415,2.19),(0.585,2.19),(0.585,2.02),(0.415,2.02)), ) createRL( tech, net, 'licon', ((3.515,3.915),(3.515,4.085),(3.685,4.085),(3.685,3.915),(3.515,3.915)), ) - net = nets['vdd'] + net = nets['vss'] createRL( tech, net, 'difftap', - ((3.375,5.5),(3.375,9.5),(3.675,9.5),(3.675,5.5),(3.375,5.5)), + ((3.925,0.6),(3.925,2.5),(4.075,2.5),(4.075,0.6),(3.925,0.6)), ) createRL( tech, net, 'difftap', - ((2.375,9.05),(2.375,9.35),(2.625,9.35),(2.625,9.05),(2.375,9.05)), + ((2.925,1.5),(2.925,3.5),(3.075,3.5),(3.075,1.5),(2.925,1.5)), ) createRL( tech, net, 'difftap', - ((2.3,9.0),(2.3,9.4),(2.7,9.4),(2.7,9.0),(2.3,9.0)), + ((2.3,0.5),(2.3,0.9),(2.7,0.9),(2.7,0.5),(2.3,0.5)), ) createRL( tech, net, 'difftap', - ((3.375,6.5),(3.375,9.475),(3.625,9.475),(3.625,6.5),(3.375,6.5)), + ((3.375,0.715),(3.375,3.5),(3.625,3.5),(3.625,0.715),(3.375,0.715)), ) createRL( tech, net, 'difftap', - ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), + ((3.675,0.6),(3.675,2.5),(3.925,2.5),(3.925,0.6),(3.675,0.6)), ) createRL( tech, net, 'difftap', - ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), + ((0.925,1.5),(0.925,3.5),(1.075,3.5),(1.075,1.5),(0.925,1.5)), ) createRL( tech, net, 'difftap', - ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), + ((1.925,1.5),(1.925,3.5),(2.075,3.5),(2.075,1.5),(1.925,1.5)), ) createRL( tech, net, 'difftap', - ((1.675,6.5),(1.675,8.5),(1.925,8.5),(1.925,6.5),(1.675,6.5)), + ((3.375,0.6),(3.375,2.5),(3.675,2.5),(3.675,0.6),(3.375,0.6)), ) createRL( tech, net, 'difftap', - ((1.325,6.5),(1.325,8.5),(1.625,8.5),(1.625,6.5),(1.325,6.5)), + ((3.075,1.5),(3.075,3.5),(3.325,3.5),(3.325,1.5),(3.075,1.5)), ) createRL( tech, net, 'difftap', - ((2.925,6.5),(2.925,8.5),(3.075,8.5),(3.075,6.5),(2.925,6.5)), + ((3.375,0.715),(3.375,1.125),(3.625,1.125),(3.625,0.715),(3.375,0.715)), ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,8.5),(1.675,8.5),(1.675,6.5),(1.375,6.5)), + ((3.325,1.5),(3.325,3.5),(3.625,3.5),(3.625,1.5),(3.325,1.5)), ) createRL( tech, net, 'difftap', - ((3.375,8.845),(3.375,9.475),(3.625,9.475),(3.625,8.845),(3.375,8.845)), + ((2.375,0.495),(2.375,0.905),(2.625,0.905),(2.625,0.495),(2.375,0.495)), ) createRL( - tech, net, 'difftap', - ((3.075,6.5),(3.075,8.5),(3.325,8.5),(3.325,6.5),(3.075,6.5)), + tech, net, 'li', + ((3.415,0.755),(3.415,1.085),(3.585,1.085),(3.585,0.755),(3.415,0.755)), ) createRL( - tech, net, 'difftap', - ((1.375,8.95),(1.375,9.25),(1.625,9.25),(1.625,8.95),(1.375,8.95)), + tech, net, 'li', + ((0.0,0.0),(0.0,1.2),(5.0,1.2),(5.0,0.0),(0.0,0.0)), ) createRL( - tech, net, 'difftap', - ((3.325,6.5),(3.325,8.5),(3.625,8.5),(3.625,6.5),(3.325,6.5)), + tech, net, 'li', + ((2.415,0.535),(2.415,0.865),(2.585,0.865),(2.585,0.535),(2.415,0.535)), ) - createRL( - tech, net, 'difftap', - ((3.675,5.5),(3.675,9.5),(3.925,9.5),(3.925,5.5),(3.675,5.5)), - ) - createRL( - tech, net, 'difftap', - ((3.925,5.5),(3.925,9.5),(4.075,9.5),(4.075,5.5),(3.925,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.375,6.5),(1.375,9.25),(1.625,9.25),(1.625,6.5),(1.375,6.5)), - ) - createRL( - tech, net, 'nwm', - ((2.195,7.6),(2.195,8.59),(2.805,8.59),(2.805,7.6),(2.195,7.6)), - ) - createRL( - tech, net, 'nwm', - ((1.195,8.77),(1.195,9.43),(1.805,9.43),(1.805,8.77),(1.195,8.77)), - ) - createRL( - tech, net, 'nwm', - ((3.495,5.32),(3.495,9.68),(4.505,9.68),(4.505,5.32),(3.495,5.32)), - ) - createRL( - tech, net, 'nwm', - ((1.195,6.32),(1.195,9.43),(1.805,9.43),(1.805,6.32),(1.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((2.195,6.32),(2.195,8.68),(2.855,8.68),(2.855,6.32),(2.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.195,6.32),(3.195,9.655),(3.805,9.655),(3.805,6.32),(3.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((1.495,6.32),(1.495,8.68),(2.505,8.68),(2.505,6.32),(1.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.195,7.6),(0.195,8.59),(0.805,8.59),(0.805,7.6),(0.195,7.6)), - ) - createRL( - tech, net, 'nwm', - ((2.495,6.32),(2.495,8.68),(3.505,8.68),(3.505,6.32),(2.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((1.145,6.32),(1.145,8.68),(1.805,8.68),(1.805,6.32),(1.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.495,6.32),(0.495,8.68),(1.505,8.68),(1.505,6.32),(0.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.195,8.665),(3.195,9.655),(3.805,9.655),(3.805,8.665),(3.195,8.665)), - ) - createRL( - tech, net, 'nwm', - ((1.195,6.32),(1.195,8.68),(1.855,8.68),(1.855,6.32),(1.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((4.195,5.37),(4.195,8.74),(4.805,8.74),(4.805,5.37),(4.195,5.37)), - ) - createRL( - tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.855,8.68),(0.855,6.32),(0.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.145,6.32),(3.145,8.68),(3.805,8.68),(3.805,6.32),(3.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((-0.3,4.8),(-0.3,10.8),(5.3,10.8),(5.3,4.8),(-0.3,4.8)), - ) - createRL( - tech, net, 'nwm', - ((2.195,8.87),(2.195,9.53),(2.805,9.53),(2.805,8.87),(2.195,8.87)), - ) - createRL( - tech, net, 'nwm', - ((2.12,8.82),(2.12,9.58),(2.88,9.58),(2.88,8.82),(2.12,8.82)), - ) - createRL( - tech, net, 'nwm', - ((3.195,5.32),(3.195,9.68),(3.855,9.68),(3.855,5.32),(3.195,5.32)), - ) - createRL( - tech, net, 'nwm', - ((4.145,5.32),(4.145,9.68),(4.805,9.68),(4.805,5.32),(4.145,5.32)), - ) - createRL( - tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(5.0,10.0),(5.0,8.8),(0.0,8.8)), - ) - createRL( - tech, net, 'li', - ((1.415,8.935),(1.415,9.265),(1.585,9.265),(1.585,8.935),(1.415,8.935)), - ) - createRL( - tech, net, 'li', - ((2.415,9.035),(2.415,9.365),(2.585,9.365),(2.585,9.035),(2.415,9.035)), - ) - createRL( - tech, net, 'li', - ((3.415,8.825),(3.415,9.495),(3.585,9.495),(3.585,8.825),(3.415,8.825)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(2.5), u(5.0), u(8.8), u(10.0), + Vertical.create( + net, tech.getLayer('li.pin'), + u(2.5), u(5.0), u(0.0), u(1.2), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.5), u(5.0), u(8.8), u(10.0), + u(2.5), u(5.0), u(0.0), u(1.2), ) net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,8.905),(3.415,9.075),(3.585,9.075),(3.585,8.905),(3.415,8.905)), + ((3.415,0.835),(3.415,1.005),(3.585,1.005),(3.585,0.835),(3.415,0.835)), ) createRL( tech, net, 'licon', - ((3.415,9.245),(3.415,9.415),(3.585,9.415),(3.585,9.245),(3.415,9.245)), + ((2.415,0.615),(2.415,0.785),(2.585,0.785),(2.585,0.615),(2.415,0.615)), ) + net = nets['_net0'] createRL( - tech, net, 'licon', - ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), + tech, net, 'difftap', + ((1.425,2.0),(1.425,2.5),(1.575,2.5),(1.575,2.0),(1.425,2.0)), ) createRL( - tech, net, 'licon', - ((1.415,9.015),(1.415,9.185),(1.585,9.185),(1.585,9.015),(1.415,9.015)), + tech, net, 'difftap', + ((1.325,1.5),(1.325,3.5),(1.575,3.5),(1.575,1.5),(1.325,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.075,1.5),(1.075,3.5),(1.325,3.5),(1.325,1.5),(1.075,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.675,1.5),(1.675,3.5),(1.925,3.5),(1.925,1.5),(1.675,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.425,1.5),(1.425,3.5),(1.675,3.5),(1.675,1.5),(1.425,1.5)), ) net = nets['i0'] createRL( @@ -1696,11 +1705,11 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.925,6.37),(0.925,8.63),(1.075,8.63),(1.075,6.37),(0.925,6.37)), + ((0.465,3.835),(0.465,4.165),(0.735,4.165),(0.735,3.835),(0.465,3.835)), ) createRL( tech, net, 'poly', - ((0.465,3.835),(0.465,4.165),(0.735,4.165),(0.735,3.835),(0.465,3.835)), + ((0.925,6.37),(0.925,8.63),(1.075,8.63),(1.075,6.37),(0.925,6.37)), ) createRL( tech, net, 'poly', @@ -1732,27 +1741,6 @@ def _load(): tech, net, 'licon', ((0.515,3.915),(0.515,4.085),(0.685,4.085),(0.685,3.915),(0.515,3.915)), ) - net = nets['_net0'] - createRL( - tech, net, 'difftap', - ((1.425,2.0),(1.425,2.5),(1.575,2.5),(1.575,2.0),(1.425,2.0)), - ) - createRL( - tech, net, 'difftap', - ((1.325,1.5),(1.325,3.5),(1.575,3.5),(1.575,1.5),(1.325,1.5)), - ) - createRL( - tech, net, 'difftap', - ((1.075,1.5),(1.075,3.5),(1.325,3.5),(1.325,1.5),(1.075,1.5)), - ) - createRL( - tech, net, 'difftap', - ((1.675,1.5),(1.675,3.5),(1.925,3.5),(1.925,1.5),(1.675,1.5)), - ) - createRL( - tech, net, 'difftap', - ((1.425,1.5),(1.425,3.5),(1.675,3.5),(1.675,1.5),(1.425,1.5)), - ) net = nets['_net2'] createRL( tech, net, 'difftap', @@ -1880,386 +1868,338 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) - net = nets['vdd'] + nets['vss'].setGlobal(True) + net = nets['vss'] createRL( tech, net, 'difftap', - ((4.375,6.5),(4.375,9.475),(4.625,9.475),(4.625,6.5),(4.375,6.5)), + ((3.3,0.5),(3.3,0.9),(3.7,0.9),(3.7,0.5),(3.3,0.5)), ) createRL( tech, net, 'difftap', - ((2.675,6.5),(2.675,8.5),(2.925,8.5),(2.925,6.5),(2.675,6.5)), + ((4.375,0.715),(4.375,1.125),(4.625,1.125),(4.625,0.715),(4.375,0.715)), ) createRL( tech, net, 'difftap', - ((2.325,6.5),(2.325,8.5),(2.625,8.5),(2.625,6.5),(2.325,6.5)), + ((3.375,0.495),(3.375,0.905),(3.625,0.905),(3.625,0.495),(3.375,0.495)), ) createRL( tech, net, 'difftap', - ((2.075,6.5),(2.075,8.5),(2.325,8.5),(2.325,6.5),(2.075,6.5)), + ((4.375,0.6),(4.375,2.5),(4.675,2.5),(4.675,0.6),(4.375,0.6)), ) createRL( tech, net, 'difftap', - ((2.375,6.5),(2.375,8.5),(2.675,8.5),(2.675,6.5),(2.375,6.5)), + ((1.375,0.495),(1.375,0.905),(1.625,0.905),(1.625,0.495),(1.375,0.495)), ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,9.25),(0.625,9.25),(0.625,6.5),(0.375,6.5)), + ((1.3,0.5),(1.3,0.9),(1.7,0.9),(1.7,0.5),(1.3,0.5)), ) createRL( tech, net, 'difftap', - ((4.925,5.5),(4.925,9.5),(5.075,9.5),(5.075,5.5),(4.925,5.5)), + ((2.925,1.5),(2.925,3.5),(3.075,3.5),(3.075,1.5),(2.925,1.5)), ) createRL( tech, net, 'difftap', - ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), + ((4.325,1.5),(4.325,3.5),(4.625,3.5),(4.625,1.5),(4.325,1.5)), ) createRL( tech, net, 'difftap', - ((0.375,8.95),(0.375,9.25),(0.625,9.25),(0.625,8.95),(0.375,8.95)), + ((4.375,0.715),(4.375,3.5),(4.625,3.5),(4.625,0.715),(4.375,0.715)), ) createRL( tech, net, 'difftap', - ((2.925,6.5),(2.925,8.5),(3.075,8.5),(3.075,6.5),(2.925,6.5)), + ((0.925,1.5),(0.925,3.5),(1.075,3.5),(1.075,1.5),(0.925,1.5)), ) createRL( tech, net, 'difftap', - ((4.075,6.5),(4.075,8.5),(4.325,8.5),(4.325,6.5),(4.075,6.5)), + ((4.925,0.6),(4.925,2.5),(5.075,2.5),(5.075,0.6),(4.925,0.6)), ) createRL( tech, net, 'difftap', - ((4.325,6.5),(4.325,8.5),(4.625,8.5),(4.625,6.5),(4.325,6.5)), + ((1.925,1.5),(1.925,3.5),(2.075,3.5),(2.075,1.5),(1.925,1.5)), ) createRL( tech, net, 'difftap', - ((4.375,8.845),(4.375,9.475),(4.625,9.475),(4.625,8.845),(4.375,8.845)), + ((4.675,0.6),(4.675,2.5),(4.925,2.5),(4.925,0.6),(4.675,0.6)), ) createRL( tech, net, 'difftap', - ((3.375,9.05),(3.375,9.35),(3.625,9.35),(3.625,9.05),(3.375,9.05)), + ((3.925,1.5),(3.925,3.5),(4.075,3.5),(4.075,1.5),(3.925,1.5)), ) createRL( tech, net, 'difftap', - ((3.3,9.0),(3.3,9.4),(3.7,9.4),(3.7,9.0),(3.3,9.0)), + ((4.075,1.5),(4.075,3.5),(4.325,3.5),(4.325,1.5),(4.075,1.5)), ) createRL( - tech, net, 'difftap', - ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), + tech, net, 'li', + ((1.415,0.535),(1.415,0.865),(1.585,0.865),(1.585,0.535),(1.415,0.535)), ) createRL( - tech, net, 'difftap', - ((0.675,6.5),(0.675,8.5),(0.925,8.5),(0.925,6.5),(0.675,6.5)), + tech, net, 'li', + ((4.415,0.755),(4.415,1.085),(4.585,1.085),(4.585,0.755),(4.415,0.755)), ) createRL( - tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), + tech, net, 'li', + ((0.0,0.0),(0.0,1.2),(6.0,1.2),(6.0,0.0),(0.0,0.0)), ) createRL( - tech, net, 'difftap', - ((3.925,6.5),(3.925,8.5),(4.075,8.5),(4.075,6.5),(3.925,6.5)), + tech, net, 'li', + ((3.415,0.535),(3.415,0.865),(3.585,0.865),(3.585,0.535),(3.415,0.535)), + ) + Vertical.create( + net, tech.getLayer('li.pin'), + u(3.0), u(6.0), u(0.0), u(1.2), + ) + pin = Vertical.create( + net, tech.getLayer('li'), + u(3.0), u(6.0), u(0.0), u(1.2), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'difftap', - ((2.375,8.95),(2.375,9.25),(2.625,9.25),(2.625,8.95),(2.375,8.95)), + tech, net, 'licon', + ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), ) createRL( - tech, net, 'difftap', - ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), + tech, net, 'licon', + ((4.415,0.835),(4.415,1.005),(4.585,1.005),(4.585,0.835),(4.415,0.835)), ) createRL( - tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), + tech, net, 'licon', + ((3.415,0.615),(3.415,0.785),(3.585,0.785),(3.585,0.615),(3.415,0.615)), ) + net = nets['q'] createRL( tech, net, 'difftap', - ((4.675,5.5),(4.675,9.5),(4.925,9.5),(4.925,5.5),(4.675,5.5)), + ((5.075,5.5),(5.075,9.5),(5.325,9.5),(5.325,5.5),(5.075,5.5)), ) createRL( tech, net, 'difftap', - ((4.375,5.5),(4.375,9.5),(4.675,9.5),(4.675,5.5),(4.375,5.5)), + ((5.375,1.37),(5.375,2.46),(5.625,2.46),(5.625,1.37),(5.375,1.37)), ) createRL( tech, net, 'difftap', - ((2.375,6.5),(2.375,9.25),(2.625,9.25),(2.625,6.5),(2.375,6.5)), + ((5.375,5.52),(5.375,8.65),(5.625,8.65),(5.625,5.52),(5.375,5.52)), ) createRL( - tech, net, 'nwm', - ((4.195,6.32),(4.195,9.655),(4.805,9.655),(4.805,6.32),(4.195,6.32)), + tech, net, 'difftap', + ((5.325,0.6),(5.325,2.5),(5.625,2.5),(5.625,0.6),(5.325,0.6)), ) createRL( - tech, net, 'nwm', - ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), + tech, net, 'difftap', + ((5.325,5.5),(5.325,9.5),(5.625,9.5),(5.625,5.5),(5.325,5.5)), ) createRL( - tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), + tech, net, 'difftap', + ((5.075,0.6),(5.075,2.5),(5.325,2.5),(5.325,0.6),(5.075,0.6)), ) createRL( - tech, net, 'nwm', - ((5.145,5.32),(5.145,9.68),(5.805,9.68),(5.805,5.32),(5.145,5.32)), + tech, net, 'li', + ((5.415,5.56),(5.415,8.61),(5.585,8.61),(5.585,5.56),(5.415,5.56)), ) createRL( - tech, net, 'nwm', - ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), + tech, net, 'li', + ((5.415,1.37),(5.415,8.63),(5.585,8.63),(5.585,1.37),(5.415,1.37)), ) createRL( - tech, net, 'nwm', - ((2.195,6.32),(2.195,8.68),(2.855,8.68),(2.855,6.32),(2.195,6.32)), + tech, net, 'li', + ((5.415,1.41),(5.415,2.42),(5.585,2.42),(5.585,1.41),(5.415,1.41)), + ) + Vertical.create( + net, tech.getLayer('li.pin'), + u(5.5), u(0.17), u(1.37), u(8.63), ) + pin = Vertical.create( + net, tech.getLayer('li'), + u(5.5), u(0.17), u(1.37), u(8.63), + ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'nwm', - ((0.195,6.32),(0.195,9.43),(0.805,9.43),(0.805,6.32),(0.195,6.32)), + tech, net, 'licon', + ((5.415,1.49),(5.415,1.66),(5.585,1.66),(5.585,1.49),(5.415,1.49)), ) createRL( - tech, net, 'nwm', - ((4.495,5.32),(4.495,9.68),(5.505,9.68),(5.505,5.32),(4.495,5.32)), + tech, net, 'licon', + ((5.415,1.83),(5.415,2.0),(5.585,2.0),(5.585,1.83),(5.415,1.83)), ) createRL( - tech, net, 'nwm', - ((1.495,6.32),(1.495,8.68),(2.505,8.68),(2.505,6.32),(1.495,6.32)), + tech, net, 'licon', + ((5.415,2.17),(5.415,2.34),(5.585,2.34),(5.585,2.17),(5.415,2.17)), ) createRL( - tech, net, 'nwm', - ((0.195,8.77),(0.195,9.43),(0.805,9.43),(0.805,8.77),(0.195,8.77)), + tech, net, 'licon', + ((5.415,5.64),(5.415,5.81),(5.585,5.81),(5.585,5.64),(5.415,5.64)), ) createRL( - tech, net, 'nwm', - ((2.495,6.32),(2.495,8.68),(3.505,8.68),(3.505,6.32),(2.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((4.145,6.32),(4.145,8.68),(4.805,8.68),(4.805,6.32),(4.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((4.195,8.665),(4.195,9.655),(4.805,9.655),(4.805,8.665),(4.195,8.665)), - ) - createRL( - tech, net, 'nwm', - ((1.145,6.32),(1.145,8.68),(1.805,8.68),(1.805,6.32),(1.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.495,6.32),(0.495,8.68),(1.505,8.68),(1.505,6.32),(0.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.12,8.82),(3.12,9.58),(3.88,9.58),(3.88,8.82),(3.12,8.82)), - ) - createRL( - tech, net, 'nwm', - ((3.195,8.87),(3.195,9.53),(3.805,9.53),(3.805,8.87),(3.195,8.87)), - ) - createRL( - tech, net, 'nwm', - ((1.195,6.32),(1.195,8.68),(1.855,8.68),(1.855,6.32),(1.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.855,8.68),(0.855,6.32),(0.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.145,6.32),(3.145,8.68),(3.805,8.68),(3.805,6.32),(3.145,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.195,6.32),(3.195,8.68),(3.855,8.68),(3.855,6.32),(3.195,6.32)), - ) - createRL( - tech, net, 'nwm', - ((3.495,6.32),(3.495,8.68),(4.505,8.68),(4.505,6.32),(3.495,6.32)), - ) - createRL( - tech, net, 'nwm', - ((2.195,8.77),(2.195,9.43),(2.805,9.43),(2.805,8.77),(2.195,8.77)), + tech, net, 'licon', + ((5.415,5.98),(5.415,6.15),(5.585,6.15),(5.585,5.98),(5.415,5.98)), ) createRL( - tech, net, 'nwm', - ((1.195,7.6),(1.195,8.59),(1.805,8.59),(1.805,7.6),(1.195,7.6)), + tech, net, 'licon', + ((5.415,6.32),(5.415,6.49),(5.585,6.49),(5.585,6.32),(5.415,6.32)), ) createRL( - tech, net, 'nwm', - ((3.195,7.6),(3.195,8.59),(3.805,8.59),(3.805,7.6),(3.195,7.6)), + tech, net, 'licon', + ((5.415,6.66),(5.415,6.83),(5.585,6.83),(5.585,6.66),(5.415,6.66)), ) createRL( - tech, net, 'nwm', - ((5.195,5.37),(5.195,8.74),(5.805,8.74),(5.805,5.37),(5.195,5.37)), + tech, net, 'licon', + ((5.415,7.0),(5.415,7.17),(5.585,7.17),(5.585,7.0),(5.415,7.0)), ) createRL( - tech, net, 'nwm', - ((-0.3,4.8),(-0.3,10.8),(6.3,10.8),(6.3,4.8),(-0.3,4.8)), + tech, net, 'licon', + ((5.415,7.34),(5.415,7.51),(5.585,7.51),(5.585,7.34),(5.415,7.34)), ) createRL( - tech, net, 'nwm', - ((4.195,5.32),(4.195,9.68),(4.855,9.68),(4.855,5.32),(4.195,5.32)), + tech, net, 'licon', + ((5.415,7.68),(5.415,7.85),(5.585,7.85),(5.585,7.68),(5.415,7.68)), ) createRL( - tech, net, 'nwm', - ((2.195,6.32),(2.195,9.43),(2.805,9.43),(2.805,6.32),(2.195,6.32)), + tech, net, 'licon', + ((5.415,8.02),(5.415,8.19),(5.585,8.19),(5.585,8.02),(5.415,8.02)), ) createRL( - tech, net, 'li', - ((4.415,8.825),(4.415,9.495),(4.585,9.495),(4.585,8.825),(4.415,8.825)), + tech, net, 'licon', + ((5.415,8.36),(5.415,8.53),(5.585,8.53),(5.585,8.36),(5.415,8.36)), ) + net = nets['*'] createRL( - tech, net, 'li', - ((3.415,9.035),(3.415,9.365),(3.585,9.365),(3.585,9.035),(3.415,9.035)), + tech, net, 'nsdm', + ((2.55,1.375),(2.55,3.625),(3.45,3.625),(3.45,1.375),(2.55,1.375)), ) createRL( - tech, net, 'li', - ((0.415,8.935),(0.415,9.265),(0.585,9.265),(0.585,8.935),(0.415,8.935)), + tech, net, 'nsdm', + ((2.855,1.43),(2.855,3.57),(3.145,3.57),(3.145,1.43),(2.855,1.43)), ) createRL( - tech, net, 'li', - ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), + tech, net, 'nsdm', + ((1.855,1.43),(1.855,3.57),(2.145,3.57),(2.145,1.43),(1.855,1.43)), ) createRL( - tech, net, 'li', - ((2.415,8.935),(2.415,9.265),(2.585,9.265),(2.585,8.935),(2.415,8.935)), + tech, net, 'nsdm', + ((5.25,1.245),(5.25,2.585),(5.75,2.585),(5.75,1.245),(5.25,1.245)), ) createRL( - tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(6.0,10.0),(6.0,8.8),(0.0,8.8)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(3.0), u(6.0), u(8.8), u(10.0), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(3.0), u(6.0), u(8.8), u(10.0), + tech, net, 'nsdm', + ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( - tech, net, 'licon', - ((2.415,9.015),(2.415,9.185),(2.585,9.185),(2.585,9.015),(2.415,9.015)), + tech, net, 'nsdm', + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( - tech, net, 'licon', - ((3.415,9.115),(3.415,9.285),(3.585,9.285),(3.585,9.115),(3.415,9.115)), + tech, net, 'nsdm', + ((3.3,1.575),(3.3,3.425),(3.7,3.425),(3.7,1.575),(3.3,1.575)), ) createRL( - tech, net, 'licon', - ((0.415,9.015),(0.415,9.185),(0.585,9.185),(0.585,9.015),(0.415,9.015)), + tech, net, 'nsdm', + ((4.25,0.59),(4.25,1.25),(4.75,1.25),(4.75,0.59),(4.25,0.59)), ) createRL( - tech, net, 'licon', - ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), + tech, net, 'nsdm', + ((0.25,1.375),(0.25,3.625),(0.8,3.625),(0.8,1.375),(0.25,1.375)), ) createRL( - tech, net, 'licon', - ((4.415,8.905),(4.415,9.075),(4.585,9.075),(4.585,8.905),(4.415,8.905)), + tech, net, 'nsdm', + ((3.855,1.43),(3.855,3.57),(4.145,3.57),(4.145,1.43),(3.855,1.43)), ) createRL( - tech, net, 'licon', - ((4.415,9.245),(4.415,9.415),(4.585,9.415),(4.585,9.245),(4.415,9.245)), + tech, net, 'nsdm', + ((3.25,8.87),(3.25,9.53),(3.75,9.53),(3.75,8.87),(3.25,8.87)), ) - net = nets['q'] createRL( - tech, net, 'difftap', - ((5.075,5.5),(5.075,9.5),(5.325,9.5),(5.325,5.5),(5.075,5.5)), + tech, net, 'nsdm', + ((3.175,8.875),(3.175,9.525),(3.825,9.525),(3.825,8.875),(3.175,8.875)), ) createRL( - tech, net, 'difftap', - ((5.375,1.46),(5.375,2.43),(5.625,2.43),(5.625,1.46),(5.375,1.46)), + tech, net, 'nsdm', + ((4.25,0.59),(4.25,3.625),(4.75,3.625),(4.75,0.59),(4.25,0.59)), ) createRL( - tech, net, 'difftap', - ((5.375,5.55),(5.375,8.56),(5.625,8.56),(5.625,5.55),(5.375,5.55)), + tech, net, 'nsdm', + ((2.3,1.575),(2.3,3.425),(2.7,3.425),(2.7,1.575),(2.3,1.575)), ) createRL( - tech, net, 'difftap', - ((5.325,0.6),(5.325,2.5),(5.625,2.5),(5.625,0.6),(5.325,0.6)), + tech, net, 'nsdm', + ((2.2,1.375),(2.2,3.625),(2.7,3.625),(2.7,1.375),(2.2,1.375)), ) createRL( - tech, net, 'difftap', - ((5.325,5.5),(5.325,9.5),(5.625,9.5),(5.625,5.5),(5.325,5.5)), + tech, net, 'nsdm', + ((2.3,1.375),(2.3,3.625),(2.8,3.625),(2.8,1.375),(2.3,1.375)), ) createRL( - tech, net, 'difftap', - ((5.075,0.6),(5.075,2.5),(5.325,2.5),(5.325,0.6),(5.075,0.6)), + tech, net, 'nsdm', + ((0.55,1.375),(0.55,3.625),(1.45,3.625),(1.45,1.375),(0.55,1.375)), ) createRL( - tech, net, 'li', - ((5.415,5.53),(5.415,8.58),(5.585,8.58),(5.585,5.53),(5.415,5.53)), + tech, net, 'nsdm', + ((0.855,1.43),(0.855,3.57),(1.145,3.57),(1.145,1.43),(0.855,1.43)), ) createRL( - tech, net, 'li', - ((5.415,1.37),(5.415,8.63),(5.585,8.63),(5.585,1.37),(5.415,1.37)), + tech, net, 'nsdm', + ((3.2,1.375),(3.2,3.625),(3.7,3.625),(3.7,1.375),(3.2,1.375)), ) createRL( - tech, net, 'li', - ((5.415,1.44),(5.415,2.45),(5.585,2.45),(5.585,1.44),(5.415,1.44)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(5.5), u(0.17), u(1.37), u(8.63), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(5.5), u(0.17), u(1.37), u(8.63), + tech, net, 'nsdm', + ((3.55,1.375),(3.55,3.625),(4.45,3.625),(4.45,1.375),(3.55,1.375)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( - tech, net, 'licon', - ((5.415,5.61),(5.415,5.78),(5.585,5.78),(5.585,5.61),(5.415,5.61)), + tech, net, 'nsdm', + ((1.2,1.375),(1.2,3.625),(1.7,3.625),(1.7,1.375),(1.2,1.375)), ) createRL( - tech, net, 'licon', - ((5.415,5.95),(5.415,6.12),(5.585,6.12),(5.585,5.95),(5.415,5.95)), + tech, net, 'nsdm', + ((1.3,1.575),(1.3,3.425),(1.7,3.425),(1.7,1.575),(1.3,1.575)), ) createRL( - tech, net, 'licon', - ((5.415,6.29),(5.415,6.46),(5.585,6.46),(5.585,6.29),(5.415,6.29)), + tech, net, 'nsdm', + ((1.3,1.375),(1.3,3.625),(1.8,3.625),(1.8,1.375),(1.3,1.375)), ) createRL( - tech, net, 'licon', - ((5.415,6.63),(5.415,6.8),(5.585,6.8),(5.585,6.63),(5.415,6.63)), + tech, net, 'nsdm', + ((5.2,0.475),(5.2,2.625),(5.75,2.625),(5.75,0.475),(5.2,0.475)), ) createRL( - tech, net, 'licon', - ((5.415,6.97),(5.415,7.14),(5.585,7.14),(5.585,6.97),(5.415,6.97)), + tech, net, 'nsdm', + ((4.55,0.475),(4.55,2.625),(5.45,2.625),(5.45,0.475),(4.55,0.475)), ) createRL( - tech, net, 'licon', - ((5.415,7.31),(5.415,7.48),(5.585,7.48),(5.585,7.31),(5.415,7.31)), + tech, net, 'nsdm', + ((4.855,0.53),(4.855,2.57),(5.145,2.57),(5.145,0.53),(4.855,0.53)), ) createRL( - tech, net, 'licon', - ((5.415,7.65),(5.415,7.82),(5.585,7.82),(5.585,7.65),(5.415,7.65)), + tech, net, 'nsdm', + ((3.3,1.375),(3.3,3.625),(3.8,3.625),(3.8,1.375),(3.3,1.375)), ) createRL( - tech, net, 'licon', - ((5.415,7.99),(5.415,8.16),(5.585,8.16),(5.585,7.99),(5.415,7.99)), + tech, net, 'nsdm', + ((1.55,1.375),(1.55,3.625),(2.45,3.625),(2.45,1.375),(1.55,1.375)), ) createRL( - tech, net, 'licon', - ((5.415,8.33),(5.415,8.5),(5.585,8.5),(5.585,8.33),(5.415,8.33)), + tech, net, 'nsdm', + ((4.25,0.475),(4.25,2.625),(4.8,2.625),(4.8,0.475),(4.25,0.475)), ) createRL( - tech, net, 'licon', - ((5.415,1.52),(5.415,1.69),(5.585,1.69),(5.585,1.52),(5.415,1.52)), + tech, net, 'nsdm', + ((0.25,1.435),(0.25,2.435),(0.75,2.435),(0.75,1.435),(0.25,1.435)), ) createRL( - tech, net, 'licon', - ((5.415,1.86),(5.415,2.03),(5.585,2.03),(5.585,1.86),(5.415,1.86)), + tech, net, 'nsdm', + ((4.2,1.375),(4.2,3.625),(4.75,3.625),(4.75,1.375),(4.2,1.375)), ) createRL( - tech, net, 'licon', - ((5.415,2.2),(5.415,2.37),(5.585,2.37),(5.585,2.2),(5.415,2.2)), + tech, net, 'psdm', + ((4.25,6.375),(4.25,9.46),(4.75,9.46),(4.75,6.375),(4.25,6.375)), ) - net = nets['*'] createRL( tech, net, 'psdm', - ((4.25,6.375),(4.25,9.6),(4.75,9.6),(4.75,6.375),(4.25,6.375)), + ((5.2,5.375),(5.2,9.625),(5.75,9.625),(5.75,5.375),(5.2,5.375)), ) createRL( tech, net, 'psdm', - ((5.2,5.375),(5.2,9.625),(5.75,9.625),(5.75,5.375),(5.2,5.375)), + ((1.25,0.37),(1.25,1.03),(1.75,1.03),(1.75,0.37),(1.25,0.37)), ) createRL( tech, net, 'psdm', @@ -2275,15 +2215,15 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,9.375),(0.75,9.375),(0.75,6.375),(0.25,6.375)), + ((0.25,6.375),(0.25,9.43),(0.75,9.43),(0.75,6.375),(0.25,6.375)), ) createRL( tech, net, 'psdm', - ((4.55,5.375),(4.55,9.625),(5.45,9.625),(5.45,5.375),(4.55,5.375)), + ((4.855,5.43),(4.855,9.57),(5.145,9.57),(5.145,5.43),(4.855,5.43)), ) createRL( tech, net, 'psdm', - ((4.855,5.43),(4.855,9.57),(5.145,9.57),(5.145,5.43),(4.855,5.43)), + ((4.55,5.375),(4.55,9.625),(5.45,9.625),(5.45,5.375),(4.55,5.375)), ) createRL( tech, net, 'psdm', @@ -2295,7 +2235,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,8.825),(0.25,9.375),(0.75,9.375),(0.75,8.825),(0.25,8.825)), + ((0.25,8.77),(0.25,9.43),(0.75,9.43),(0.75,8.77),(0.25,8.77)), ) createRL( tech, net, 'psdm', @@ -2311,19 +2251,19 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.175,0.375),(3.175,1.025),(3.825,1.025),(3.825,0.375),(3.175,0.375)), + ((3.25,0.37),(3.25,1.03),(3.75,1.03),(3.75,0.37),(3.25,0.37)), ) createRL( tech, net, 'psdm', - ((4.25,8.72),(4.25,9.6),(4.75,9.6),(4.75,8.72),(4.25,8.72)), + ((3.175,0.375),(3.175,1.025),(3.825,1.025),(3.825,0.375),(3.175,0.375)), ) createRL( tech, net, 'psdm', - ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), + ((4.25,8.8),(4.25,9.46),(4.75,9.46),(4.75,8.8),(4.25,8.8)), ) createRL( tech, net, 'psdm', - ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), + ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), ) createRL( tech, net, 'psdm', @@ -2331,7 +2271,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,0.425),(1.25,0.975),(1.75,0.975),(1.75,0.425),(1.25,0.425)), + ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), ) createRL( tech, net, 'psdm', @@ -2359,404 +2299,427 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,8.825),(2.25,9.375),(2.75,9.375),(2.75,8.825),(2.25,8.825)), + ((2.25,8.77),(2.25,9.43),(2.75,9.43),(2.75,8.77),(2.25,8.77)), ) createRL( tech, net, 'psdm', - ((3.25,0.425),(3.25,0.975),(3.75,0.975),(3.75,0.425),(3.25,0.425)), + ((1.25,7.565),(1.25,8.565),(1.75,8.565),(1.75,7.565),(1.25,7.565)), ) createRL( tech, net, 'psdm', - ((1.25,7.655),(1.25,8.535),(1.75,8.535),(1.75,7.655),(1.25,7.655)), + ((3.25,7.565),(3.25,8.565),(3.75,8.565),(3.75,7.565),(3.25,7.565)), ) createRL( tech, net, 'psdm', - ((3.25,7.655),(3.25,8.535),(3.75,8.535),(3.75,7.655),(3.25,7.655)), + ((5.25,5.395),(5.25,8.775),(5.75,8.775),(5.75,5.395),(5.25,5.395)), ) createRL( tech, net, 'psdm', - ((5.25,5.425),(5.25,8.685),(5.75,8.685),(5.75,5.425),(5.25,5.425)), + ((4.25,5.375),(4.25,9.625),(4.8,9.625),(4.8,5.375),(4.25,5.375)), ) createRL( tech, net, 'psdm', - ((4.25,5.375),(4.25,9.625),(4.8,9.625),(4.8,5.375),(4.25,5.375)), + ((2.25,6.375),(2.25,9.43),(2.75,9.43),(2.75,6.375),(2.25,6.375)), ) + net = nets['_net1'] createRL( - tech, net, 'psdm', - ((2.25,6.375),(2.25,9.375),(2.75,9.375),(2.75,6.375),(2.25,6.375)), + tech, net, 'poly', + ((4.925,5.37),(4.925,9.63),(5.075,9.63),(5.075,5.37),(4.925,5.37)), ) createRL( - tech, net, 'nsdm', - ((2.55,1.375),(2.55,3.625),(3.45,3.625),(3.45,1.375),(2.55,1.375)), + tech, net, 'poly', + ((4.925,2.48),(4.925,5.52),(5.075,5.52),(5.075,2.48),(4.925,2.48)), ) createRL( - tech, net, 'nsdm', - ((2.855,1.43),(2.855,3.57),(3.145,3.57),(3.145,1.43),(2.855,1.43)), + tech, net, 'poly', + ((4.465,4.335),(4.465,4.665),(5.075,4.665),(5.075,4.335),(4.465,4.335)), ) createRL( - tech, net, 'nsdm', - ((1.855,1.43),(1.855,3.57),(2.145,3.57),(2.145,1.43),(1.855,1.43)), + tech, net, 'poly', + ((4.925,0.47),(4.925,2.63),(5.075,2.63),(5.075,0.47),(4.925,0.47)), ) createRL( - tech, net, 'nsdm', - ((0.25,1.465),(0.25,2.345),(0.75,2.345),(0.75,1.465),(0.25,1.465)), + tech, net, 'poly', + ((4.465,4.335),(4.465,4.665),(4.735,4.665),(4.735,4.335),(4.465,4.335)), ) createRL( - tech, net, 'nsdm', - ((5.25,1.335),(5.25,2.555),(5.75,2.555),(5.75,1.335),(5.25,1.335)), + tech, net, 'difftap', + ((3.075,6.5),(3.075,8.5),(3.325,8.5),(3.325,6.5),(3.075,6.5)), ) createRL( - tech, net, 'nsdm', - ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), + tech, net, 'difftap', + ((1.375,7.69),(1.375,8.44),(1.625,8.44),(1.625,7.69),(1.375,7.69)), ) createRL( - tech, net, 'nsdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + tech, net, 'difftap', + ((0.375,1.5),(0.375,3.5),(0.675,3.5),(0.675,1.5),(0.375,1.5)), ) createRL( - tech, net, 'nsdm', - ((3.3,1.575),(3.3,3.425),(3.7,3.425),(3.7,1.575),(3.3,1.575)), + tech, net, 'difftap', + ((1.325,6.5),(1.325,8.5),(1.625,8.5),(1.625,6.5),(1.325,6.5)), ) createRL( - tech, net, 'nsdm', - ((4.25,0.615),(4.25,1.165),(4.75,1.165),(4.75,0.615),(4.25,0.615)), + tech, net, 'difftap', + ((3.675,6.5),(3.675,8.5),(3.925,8.5),(3.925,6.5),(3.675,6.5)), ) createRL( - tech, net, 'nsdm', - ((0.25,1.375),(0.25,3.625),(0.8,3.625),(0.8,1.375),(0.25,1.375)), + tech, net, 'difftap', + ((1.375,6.5),(1.375,8.5),(1.675,8.5),(1.675,6.5),(1.375,6.5)), ) createRL( - tech, net, 'nsdm', - ((3.175,8.875),(3.175,9.525),(3.825,9.525),(3.825,8.875),(3.175,8.875)), + tech, net, 'difftap', + ((3.375,7.69),(3.375,8.44),(3.625,8.44),(3.625,7.69),(3.375,7.69)), ) createRL( - tech, net, 'nsdm', - ((3.25,8.925),(3.25,9.475),(3.75,9.475),(3.75,8.925),(3.25,8.925)), + tech, net, 'difftap', + ((1.675,6.5),(1.675,8.5),(1.925,8.5),(1.925,6.5),(1.675,6.5)), ) createRL( - tech, net, 'nsdm', - ((4.25,0.615),(4.25,3.625),(4.75,3.625),(4.75,0.615),(4.25,0.615)), + tech, net, 'difftap', + ((0.675,1.5),(0.675,3.5),(0.925,3.5),(0.925,1.5),(0.675,1.5)), ) createRL( - tech, net, 'nsdm', - ((2.3,1.575),(2.3,3.425),(2.7,3.425),(2.7,1.575),(2.3,1.575)), + tech, net, 'difftap', + ((3.325,6.5),(3.325,8.5),(3.625,8.5),(3.625,6.5),(3.325,6.5)), ) createRL( - tech, net, 'nsdm', - ((2.2,1.375),(2.2,3.625),(2.7,3.625),(2.7,1.375),(2.2,1.375)), + tech, net, 'difftap', + ((3.375,6.5),(3.375,8.5),(3.675,8.5),(3.675,6.5),(3.375,6.5)), ) createRL( - tech, net, 'nsdm', - ((2.3,1.375),(2.3,3.625),(2.8,3.625),(2.8,1.375),(2.3,1.375)), + tech, net, 'difftap', + ((0.375,1.56),(0.375,2.31),(0.625,2.31),(0.625,1.56),(0.375,1.56)), ) createRL( - tech, net, 'nsdm', - ((0.855,1.43),(0.855,3.57),(1.145,3.57),(1.145,1.43),(0.855,1.43)), + tech, net, 'difftap', + ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), ) createRL( - tech, net, 'nsdm', - ((0.55,1.375),(0.55,3.625),(1.45,3.625),(1.45,1.375),(0.55,1.375)), + tech, net, 'li', + ((1.415,7.73),(1.415,8.4),(1.585,8.4),(1.585,7.73),(1.415,7.73)), ) createRL( - tech, net, 'nsdm', - ((3.2,1.375),(3.2,3.625),(3.7,3.625),(3.7,1.375),(3.2,1.375)), + tech, net, 'li', + ((0.5,1.915),(0.5,2.085),(4.5,2.085),(4.5,1.915),(0.5,1.915)), ) createRL( - tech, net, 'nsdm', - ((3.55,1.375),(3.55,3.625),(4.45,3.625),(4.45,1.375),(3.55,1.375)), + tech, net, 'li', + ((3.415,7.73),(3.415,8.4),(3.585,8.4),(3.585,7.73),(3.415,7.73)), ) createRL( - tech, net, 'nsdm', - ((1.2,1.375),(1.2,3.625),(1.7,3.625),(1.7,1.375),(1.2,1.375)), + tech, net, 'li', + ((4.415,1.915),(4.415,8.085),(4.585,8.085),(4.585,1.915),(4.415,1.915)), ) createRL( - tech, net, 'nsdm', - ((1.3,1.575),(1.3,3.425),(1.7,3.425),(1.7,1.575),(1.3,1.575)), + tech, net, 'li', + ((1.5,7.915),(1.5,8.085),(4.5,8.085),(4.5,7.915),(1.5,7.915)), ) createRL( - tech, net, 'nsdm', - ((1.3,1.375),(1.3,3.625),(1.8,3.625),(1.8,1.375),(1.3,1.375)), + tech, net, 'li', + ((4.515,4.335),(4.515,4.665),(4.685,4.665),(4.685,4.335),(4.515,4.335)), ) createRL( - tech, net, 'nsdm', - ((5.2,0.475),(5.2,2.625),(5.75,2.625),(5.75,0.475),(5.2,0.475)), + tech, net, 'li', + ((0.415,1.6),(0.415,2.27),(0.585,2.27),(0.585,1.6),(0.415,1.6)), ) createRL( - tech, net, 'nsdm', - ((4.55,0.475),(4.55,2.625),(5.45,2.625),(5.45,0.475),(4.55,0.475)), + tech, net, 'licon', + ((4.515,4.415),(4.515,4.585),(4.685,4.585),(4.685,4.415),(4.515,4.415)), ) createRL( - tech, net, 'nsdm', - ((4.855,0.53),(4.855,2.57),(5.145,2.57),(5.145,0.53),(4.855,0.53)), + tech, net, 'licon', + ((0.415,1.68),(0.415,1.85),(0.585,1.85),(0.585,1.68),(0.415,1.68)), ) createRL( - tech, net, 'nsdm', - ((3.3,1.375),(3.3,3.625),(3.8,3.625),(3.8,1.375),(3.3,1.375)), + tech, net, 'licon', + ((0.415,2.02),(0.415,2.19),(0.585,2.19),(0.585,2.02),(0.415,2.02)), ) createRL( - tech, net, 'nsdm', - ((1.55,1.375),(1.55,3.625),(2.45,3.625),(2.45,1.375),(1.55,1.375)), + tech, net, 'licon', + ((3.415,7.81),(3.415,7.98),(3.585,7.98),(3.585,7.81),(3.415,7.81)), ) createRL( - tech, net, 'nsdm', - ((4.25,0.475),(4.25,2.625),(4.8,2.625),(4.8,0.475),(4.25,0.475)), + tech, net, 'licon', + ((3.415,8.15),(3.415,8.32),(3.585,8.32),(3.585,8.15),(3.415,8.15)), ) createRL( - tech, net, 'nsdm', - ((3.855,1.43),(3.855,3.57),(4.145,3.57),(4.145,1.43),(3.855,1.43)), + tech, net, 'licon', + ((1.415,7.81),(1.415,7.98),(1.585,7.98),(1.585,7.81),(1.415,7.81)), ) createRL( - tech, net, 'nsdm', - ((4.2,1.375),(4.2,3.625),(4.75,3.625),(4.75,1.375),(4.2,1.375)), + tech, net, 'licon', + ((1.415,8.15),(1.415,8.32),(1.585,8.32),(1.585,8.15),(1.415,8.15)), ) - net = nets['_net1'] + net = nets['vdd'] createRL( - tech, net, 'poly', - ((4.925,5.37),(4.925,9.63),(5.075,9.63),(5.075,5.37),(4.925,5.37)), + tech, net, 'difftap', + ((4.375,6.5),(4.375,9.335),(4.625,9.335),(4.625,6.5),(4.375,6.5)), ) createRL( - tech, net, 'poly', - ((4.925,2.48),(4.925,5.52),(5.075,5.52),(5.075,2.48),(4.925,2.48)), + tech, net, 'difftap', + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), ) createRL( - tech, net, 'poly', - ((4.465,4.335),(4.465,4.665),(5.075,4.665),(5.075,4.335),(4.465,4.335)), + tech, net, 'difftap', + ((2.075,6.5),(2.075,8.5),(2.325,8.5),(2.325,6.5),(2.075,6.5)), ) createRL( - tech, net, 'poly', - ((4.925,0.47),(4.925,2.63),(5.075,2.63),(5.075,0.47),(4.925,0.47)), + tech, net, 'difftap', + ((2.325,6.5),(2.325,8.5),(2.625,8.5),(2.625,6.5),(2.325,6.5)), ) createRL( - tech, net, 'poly', - ((4.465,4.335),(4.465,4.665),(4.735,4.665),(4.735,4.335),(4.465,4.335)), + tech, net, 'difftap', + ((2.675,6.5),(2.675,8.5),(2.925,8.5),(2.925,6.5),(2.675,6.5)), ) createRL( tech, net, 'difftap', - ((3.075,6.5),(3.075,8.5),(3.325,8.5),(3.325,6.5),(3.075,6.5)), + ((0.375,6.5),(0.375,9.305),(0.625,9.305),(0.625,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', - ((1.375,7.78),(1.375,8.41),(1.625,8.41),(1.625,7.78),(1.375,7.78)), + ((2.375,6.5),(2.375,8.5),(2.675,8.5),(2.675,6.5),(2.375,6.5)), ) createRL( tech, net, 'difftap', - ((0.375,1.5),(0.375,3.5),(0.675,3.5),(0.675,1.5),(0.375,1.5)), + ((4.925,5.5),(4.925,9.5),(5.075,9.5),(5.075,5.5),(4.925,5.5)), ) createRL( tech, net, 'difftap', - ((1.325,6.5),(1.325,8.5),(1.625,8.5),(1.625,6.5),(1.325,6.5)), + ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), ) createRL( tech, net, 'difftap', - ((3.675,6.5),(3.675,8.5),(3.925,8.5),(3.925,6.5),(3.675,6.5)), + ((0.375,8.895),(0.375,9.305),(0.625,9.305),(0.625,8.895),(0.375,8.895)), ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,8.5),(1.675,8.5),(1.675,6.5),(1.375,6.5)), + ((2.925,6.5),(2.925,8.5),(3.075,8.5),(3.075,6.5),(2.925,6.5)), ) createRL( tech, net, 'difftap', - ((3.375,7.78),(3.375,8.41),(3.625,8.41),(3.625,7.78),(3.375,7.78)), + ((4.075,6.5),(4.075,8.5),(4.325,8.5),(4.325,6.5),(4.075,6.5)), ) createRL( tech, net, 'difftap', - ((0.375,1.59),(0.375,2.22),(0.625,2.22),(0.625,1.59),(0.375,1.59)), + ((4.325,6.5),(4.325,8.5),(4.625,8.5),(4.625,6.5),(4.325,6.5)), ) createRL( tech, net, 'difftap', - ((1.675,6.5),(1.675,8.5),(1.925,8.5),(1.925,6.5),(1.675,6.5)), + ((4.375,8.925),(4.375,9.335),(4.625,9.335),(4.625,8.925),(4.375,8.925)), ) createRL( tech, net, 'difftap', - ((0.675,1.5),(0.675,3.5),(0.925,3.5),(0.925,1.5),(0.675,1.5)), + ((3.3,9.0),(3.3,9.4),(3.7,9.4),(3.7,9.0),(3.3,9.0)), ) createRL( tech, net, 'difftap', - ((3.325,6.5),(3.325,8.5),(3.625,8.5),(3.625,6.5),(3.325,6.5)), + ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), ) createRL( tech, net, 'difftap', - ((3.375,6.5),(3.375,8.5),(3.675,8.5),(3.675,6.5),(3.375,6.5)), + ((3.375,8.995),(3.375,9.405),(3.625,9.405),(3.625,8.995),(3.375,8.995)), ) createRL( tech, net, 'difftap', - ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), + ((0.675,6.5),(0.675,8.5),(0.925,8.5),(0.925,6.5),(0.675,6.5)), ) createRL( - tech, net, 'li', - ((1.415,7.76),(1.415,8.43),(1.585,8.43),(1.585,7.76),(1.415,7.76)), + tech, net, 'difftap', + ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), ) createRL( - tech, net, 'li', - ((0.5,1.915),(0.5,2.085),(4.5,2.085),(4.5,1.915),(0.5,1.915)), + tech, net, 'difftap', + ((3.925,6.5),(3.925,8.5),(4.075,8.5),(4.075,6.5),(3.925,6.5)), ) createRL( - tech, net, 'li', - ((3.415,7.76),(3.415,8.43),(3.585,8.43),(3.585,7.76),(3.415,7.76)), + tech, net, 'difftap', + ((2.375,8.895),(2.375,9.305),(2.625,9.305),(2.625,8.895),(2.375,8.895)), ) createRL( - tech, net, 'li', - ((4.415,1.915),(4.415,8.085),(4.585,8.085),(4.585,1.915),(4.415,1.915)), + tech, net, 'difftap', + ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), ) createRL( - tech, net, 'li', - ((4.515,4.335),(4.515,4.665),(4.685,4.665),(4.685,4.335),(4.515,4.335)), + tech, net, 'difftap', + ((4.675,5.5),(4.675,9.5),(4.925,9.5),(4.925,5.5),(4.675,5.5)), ) createRL( - tech, net, 'li', - ((1.5,7.915),(1.5,8.085),(4.5,8.085),(4.5,7.915),(1.5,7.915)), + tech, net, 'difftap', + ((4.375,5.5),(4.375,9.5),(4.675,9.5),(4.675,5.5),(4.375,5.5)), ) createRL( - tech, net, 'li', - ((0.415,1.57),(0.415,2.24),(0.585,2.24),(0.585,1.57),(0.415,1.57)), + tech, net, 'difftap', + ((2.375,6.5),(2.375,9.305),(2.625,9.305),(2.625,6.5),(2.375,6.5)), ) createRL( - tech, net, 'licon', - ((4.515,4.415),(4.515,4.585),(4.685,4.585),(4.685,4.415),(4.515,4.415)), + tech, net, 'nwm', + ((4.195,6.32),(4.195,9.515),(4.805,9.515),(4.805,6.32),(4.195,6.32)), ) createRL( - tech, net, 'licon', - ((0.415,1.65),(0.415,1.82),(0.585,1.82),(0.585,1.65),(0.415,1.65)), + tech, net, 'nwm', + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), ) createRL( - tech, net, 'licon', - ((0.415,1.99),(0.415,2.16),(0.585,2.16),(0.585,1.99),(0.415,1.99)), + tech, net, 'nwm', + ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), ) createRL( - tech, net, 'licon', - ((1.415,7.84),(1.415,8.01),(1.585,8.01),(1.585,7.84),(1.415,7.84)), + tech, net, 'nwm', + ((5.145,5.32),(5.145,9.68),(5.805,9.68),(5.805,5.32),(5.145,5.32)), ) createRL( - tech, net, 'licon', - ((1.415,8.18),(1.415,8.35),(1.585,8.35),(1.585,8.18),(1.415,8.18)), + tech, net, 'nwm', + ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), ) createRL( - tech, net, 'licon', - ((3.415,7.84),(3.415,8.01),(3.585,8.01),(3.585,7.84),(3.415,7.84)), + tech, net, 'nwm', + ((2.195,6.32),(2.195,8.68),(2.855,8.68),(2.855,6.32),(2.195,6.32)), ) createRL( - tech, net, 'licon', - ((3.415,8.18),(3.415,8.35),(3.585,8.35),(3.585,8.18),(3.415,8.18)), + tech, net, 'nwm', + ((0.195,6.32),(0.195,9.485),(0.805,9.485),(0.805,6.32),(0.195,6.32)), ) - net = nets['vss'] createRL( - tech, net, 'difftap', - ((3.3,0.5),(3.3,0.9),(3.7,0.9),(3.7,0.5),(3.3,0.5)), + tech, net, 'nwm', + ((4.495,5.32),(4.495,9.68),(5.505,9.68),(5.505,5.32),(4.495,5.32)), + ) + createRL( + tech, net, 'nwm', + ((1.495,6.32),(1.495,8.68),(2.505,8.68),(2.505,6.32),(1.495,6.32)), + ) + createRL( + tech, net, 'nwm', + ((0.195,8.715),(0.195,9.485),(0.805,9.485),(0.805,8.715),(0.195,8.715)), + ) + createRL( + tech, net, 'nwm', + ((2.495,6.32),(2.495,8.68),(3.505,8.68),(3.505,6.32),(2.495,6.32)), + ) + createRL( + tech, net, 'nwm', + ((4.145,6.32),(4.145,8.68),(4.805,8.68),(4.805,6.32),(4.145,6.32)), + ) + createRL( + tech, net, 'nwm', + ((4.195,8.745),(4.195,9.515),(4.805,9.515),(4.805,8.745),(4.195,8.745)), + ) + createRL( + tech, net, 'nwm', + ((1.145,6.32),(1.145,8.68),(1.805,8.68),(1.805,6.32),(1.145,6.32)), + ) + createRL( + tech, net, 'nwm', + ((0.495,6.32),(0.495,8.68),(1.505,8.68),(1.505,6.32),(0.495,6.32)), + ) + createRL( + tech, net, 'nwm', + ((3.12,8.82),(3.12,9.58),(3.88,9.58),(3.88,8.82),(3.12,8.82)), + ) + createRL( + tech, net, 'nwm', + ((3.195,8.815),(3.195,9.585),(3.805,9.585),(3.805,8.815),(3.195,8.815)), ) createRL( - tech, net, 'difftap', - ((4.375,0.74),(4.375,1.04),(4.625,1.04),(4.625,0.74),(4.375,0.74)), + tech, net, 'nwm', + ((1.195,6.32),(1.195,8.68),(1.855,8.68),(1.855,6.32),(1.195,6.32)), ) createRL( - tech, net, 'difftap', - ((3.375,0.55),(3.375,0.85),(3.625,0.85),(3.625,0.55),(3.375,0.55)), + tech, net, 'nwm', + ((0.195,6.32),(0.195,8.68),(0.855,8.68),(0.855,6.32),(0.195,6.32)), ) createRL( - tech, net, 'difftap', - ((4.375,0.6),(4.375,2.5),(4.675,2.5),(4.675,0.6),(4.375,0.6)), + tech, net, 'nwm', + ((3.145,6.32),(3.145,8.68),(3.805,8.68),(3.805,6.32),(3.145,6.32)), ) createRL( - tech, net, 'difftap', - ((1.375,0.55),(1.375,0.85),(1.625,0.85),(1.625,0.55),(1.375,0.55)), + tech, net, 'nwm', + ((3.195,6.32),(3.195,8.68),(3.855,8.68),(3.855,6.32),(3.195,6.32)), ) createRL( - tech, net, 'difftap', - ((1.3,0.5),(1.3,0.9),(1.7,0.9),(1.7,0.5),(1.3,0.5)), + tech, net, 'nwm', + ((3.495,6.32),(3.495,8.68),(4.505,8.68),(4.505,6.32),(3.495,6.32)), ) createRL( - tech, net, 'difftap', - ((2.925,1.5),(2.925,3.5),(3.075,3.5),(3.075,1.5),(2.925,1.5)), + tech, net, 'nwm', + ((2.195,8.715),(2.195,9.485),(2.805,9.485),(2.805,8.715),(2.195,8.715)), ) createRL( - tech, net, 'difftap', - ((4.325,1.5),(4.325,3.5),(4.625,3.5),(4.625,1.5),(4.325,1.5)), + tech, net, 'nwm', + ((1.195,7.51),(1.195,8.62),(1.805,8.62),(1.805,7.51),(1.195,7.51)), ) createRL( - tech, net, 'difftap', - ((4.375,0.74),(4.375,3.5),(4.625,3.5),(4.625,0.74),(4.375,0.74)), + tech, net, 'nwm', + ((3.195,7.51),(3.195,8.62),(3.805,8.62),(3.805,7.51),(3.195,7.51)), ) createRL( - tech, net, 'difftap', - ((0.925,1.5),(0.925,3.5),(1.075,3.5),(1.075,1.5),(0.925,1.5)), + tech, net, 'nwm', + ((5.195,5.34),(5.195,8.83),(5.805,8.83),(5.805,5.34),(5.195,5.34)), ) createRL( - tech, net, 'difftap', - ((4.925,0.6),(4.925,2.5),(5.075,2.5),(5.075,0.6),(4.925,0.6)), + tech, net, 'nwm', + ((-0.3,4.8),(-0.3,10.8),(6.3,10.8),(6.3,4.8),(-0.3,4.8)), ) createRL( - tech, net, 'difftap', - ((1.925,1.5),(1.925,3.5),(2.075,3.5),(2.075,1.5),(1.925,1.5)), + tech, net, 'nwm', + ((4.195,5.32),(4.195,9.68),(4.855,9.68),(4.855,5.32),(4.195,5.32)), ) createRL( - tech, net, 'difftap', - ((4.675,0.6),(4.675,2.5),(4.925,2.5),(4.925,0.6),(4.675,0.6)), + tech, net, 'nwm', + ((2.195,6.32),(2.195,9.485),(2.805,9.485),(2.805,6.32),(2.195,6.32)), ) createRL( - tech, net, 'difftap', - ((3.925,1.5),(3.925,3.5),(4.075,3.5),(4.075,1.5),(3.925,1.5)), + tech, net, 'li', + ((4.415,8.965),(4.415,9.295),(4.585,9.295),(4.585,8.965),(4.415,8.965)), ) createRL( - tech, net, 'difftap', - ((4.075,1.5),(4.075,3.5),(4.325,3.5),(4.325,1.5),(4.075,1.5)), + tech, net, 'li', + ((3.415,9.035),(3.415,9.365),(3.585,9.365),(3.585,9.035),(3.415,9.035)), ) createRL( tech, net, 'li', - ((1.415,0.535),(1.415,0.865),(1.585,0.865),(1.585,0.535),(1.415,0.535)), + ((0.415,8.935),(0.415,9.265),(0.585,9.265),(0.585,8.935),(0.415,8.935)), ) createRL( tech, net, 'li', - ((4.415,0.725),(4.415,1.055),(4.585,1.055),(4.585,0.725),(4.415,0.725)), + ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), ) createRL( tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(6.0,1.2),(6.0,0.0),(0.0,0.0)), + ((2.415,8.935),(2.415,9.265),(2.585,9.265),(2.585,8.935),(2.415,8.935)), ) createRL( tech, net, 'li', - ((3.415,0.535),(3.415,0.865),(3.585,0.865),(3.585,0.535),(3.415,0.535)), + ((0.0,8.8),(0.0,10.0),(6.0,10.0),(6.0,8.8),(0.0,8.8)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(3.0), u(6.0), u(0.0), u(1.2), + u(3.0), u(6.0), u(8.8), u(10.0), ) pin = Vertical.create( net, tech.getLayer('li'), - u(3.0), u(6.0), u(0.0), u(1.2), + u(3.0), u(6.0), u(8.8), u(10.0), ) net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), + ((2.415,9.015),(2.415,9.185),(2.585,9.185),(2.585,9.015),(2.415,9.015)), ) createRL( tech, net, 'licon', - ((4.415,0.805),(4.415,0.975),(4.585,0.975),(4.585,0.805),(4.415,0.805)), + ((3.415,9.115),(3.415,9.285),(3.585,9.285),(3.585,9.115),(3.415,9.115)), ) createRL( tech, net, 'licon', - ((3.415,0.615),(3.415,0.785),(3.585,0.785),(3.585,0.615),(3.415,0.615)), - ) - net = nets['_net3'] - createRL( - tech, net, 'difftap', - ((1.425,1.5),(1.425,3.5),(1.675,3.5),(1.675,1.5),(1.425,1.5)), - ) - createRL( - tech, net, 'difftap', - ((1.325,1.5),(1.325,3.5),(1.575,3.5),(1.575,1.5),(1.325,1.5)), - ) - createRL( - tech, net, 'difftap', - ((1.075,1.5),(1.075,3.5),(1.325,3.5),(1.325,1.5),(1.075,1.5)), + ((0.415,9.015),(0.415,9.185),(0.585,9.185),(0.585,9.015),(0.415,9.015)), ) createRL( - tech, net, 'difftap', - ((1.675,1.5),(1.675,3.5),(1.925,3.5),(1.925,1.5),(1.675,1.5)), + tech, net, 'licon', + ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), ) createRL( - tech, net, 'difftap', - ((1.425,1.7),(1.425,3.3),(1.575,3.3),(1.575,1.7),(1.425,1.7)), + tech, net, 'licon', + ((4.415,9.045),(4.415,9.215),(4.585,9.215),(4.585,9.045),(4.415,9.045)), ) net = nets['i0'] createRL( @@ -2801,6 +2764,48 @@ def _load(): tech, net, 'licon', ((0.515,4.915),(0.515,5.085),(0.685,5.085),(0.685,4.915),(0.515,4.915)), ) + net = nets['_net3'] + createRL( + tech, net, 'difftap', + ((1.425,1.5),(1.425,3.5),(1.675,3.5),(1.675,1.5),(1.425,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.325,1.5),(1.325,3.5),(1.575,3.5),(1.575,1.5),(1.325,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.075,1.5),(1.075,3.5),(1.325,3.5),(1.325,1.5),(1.075,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.675,1.5),(1.675,3.5),(1.925,3.5),(1.925,1.5),(1.675,1.5)), + ) + createRL( + tech, net, 'difftap', + ((1.425,1.7),(1.425,3.3),(1.575,3.3),(1.575,1.7),(1.425,1.7)), + ) + net = nets['_net0'] + createRL( + tech, net, 'difftap', + ((2.425,1.7),(2.425,3.3),(2.575,3.3),(2.575,1.7),(2.425,1.7)), + ) + createRL( + tech, net, 'difftap', + ((2.075,1.5),(2.075,3.5),(2.325,3.5),(2.325,1.5),(2.075,1.5)), + ) + createRL( + tech, net, 'difftap', + ((2.325,1.5),(2.325,3.5),(2.575,3.5),(2.575,1.5),(2.325,1.5)), + ) + createRL( + tech, net, 'difftap', + ((2.425,1.5),(2.425,3.5),(2.675,3.5),(2.675,1.5),(2.425,1.5)), + ) + createRL( + tech, net, 'difftap', + ((2.675,1.5),(2.675,3.5),(2.925,3.5),(2.925,1.5),(2.675,1.5)), + ) net = nets['i1'] createRL( tech, net, 'poly', @@ -2844,27 +2849,6 @@ def _load(): tech, net, 'licon', ((1.515,5.915),(1.515,6.085),(1.685,6.085),(1.685,5.915),(1.515,5.915)), ) - net = nets['_net0'] - createRL( - tech, net, 'difftap', - ((2.425,1.7),(2.425,3.3),(2.575,3.3),(2.575,1.7),(2.425,1.7)), - ) - createRL( - tech, net, 'difftap', - ((2.075,1.5),(2.075,3.5),(2.325,3.5),(2.325,1.5),(2.075,1.5)), - ) - createRL( - tech, net, 'difftap', - ((2.325,1.5),(2.325,3.5),(2.575,3.5),(2.575,1.5),(2.325,1.5)), - ) - createRL( - tech, net, 'difftap', - ((2.425,1.5),(2.425,3.5),(2.675,3.5),(2.675,1.5),(2.425,1.5)), - ) - createRL( - tech, net, 'difftap', - ((2.675,1.5),(2.675,3.5),(2.925,3.5),(2.925,1.5),(2.675,1.5)), - ) net = nets['i2'] createRL( tech, net, 'poly', @@ -2990,28 +2974,24 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'difftap', ((3.675,5.5),(3.675,9.5),(3.925,9.5),(3.925,5.5),(3.675,5.5)), ) - createRL( - tech, net, 'difftap', - ((2.375,9.05),(2.375,9.35),(2.625,9.35),(2.625,9.05),(2.375,9.05)), - ) createRL( tech, net, 'difftap', ((2.25,9.0),(2.25,9.4),(2.75,9.4),(2.75,9.0),(2.25,9.0)), ) createRL( tech, net, 'difftap', - ((0.375,6.3),(0.375,9.25),(0.625,9.25),(0.625,6.3),(0.375,6.3)), + ((0.375,6.3),(0.375,9.305),(0.625,9.305),(0.625,6.3),(0.375,6.3)), ) createRL( tech, net, 'difftap', - ((3.375,6.3),(3.375,9.475),(3.625,9.475),(3.625,6.3),(3.375,6.3)), + ((3.375,6.3),(3.375,9.335),(3.625,9.335),(3.625,6.3),(3.375,6.3)), ) createRL( tech, net, 'difftap', @@ -3019,11 +2999,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,8.845),(3.375,9.475),(3.625,9.475),(3.625,8.845),(3.375,8.845)), + ((3.375,8.925),(3.375,9.335),(3.625,9.335),(3.625,8.925),(3.375,8.925)), ) createRL( tech, net, 'difftap', - ((0.375,8.95),(0.375,9.25),(0.625,9.25),(0.625,8.95),(0.375,8.95)), + ((0.375,8.895),(0.375,9.305),(0.625,9.305),(0.625,8.895),(0.375,8.895)), ) createRL( tech, net, 'difftap', @@ -3049,6 +3029,10 @@ def _load(): tech, net, 'difftap', ((1.925,6.3),(1.925,8.3),(2.075,8.3),(2.075,6.3),(1.925,6.3)), ) + createRL( + tech, net, 'difftap', + ((2.375,8.995),(2.375,9.405),(2.625,9.405),(2.625,8.995),(2.375,8.995)), + ) createRL( tech, net, 'difftap', ((3.375,5.5),(3.375,9.5),(3.675,9.5),(3.675,5.5),(3.375,5.5)), @@ -3063,7 +3047,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,6.12),(2.195,8.48),(2.805,8.48),(2.805,6.12),(2.195,6.12)), + ((2.195,6.23),(2.195,8.37),(2.805,8.37),(2.805,6.23),(2.195,6.23)), ) createRL( tech, net, 'nwm', @@ -3075,11 +3059,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,6.12),(0.195,9.43),(0.805,9.43),(0.805,6.12),(0.195,6.12)), + ((0.195,6.12),(0.195,9.485),(0.805,9.485),(0.805,6.12),(0.195,6.12)), ) createRL( tech, net, 'nwm', - ((3.195,6.12),(3.195,9.655),(3.805,9.655),(3.805,6.12),(3.195,6.12)), + ((3.195,6.12),(3.195,9.515),(3.805,9.515),(3.805,6.12),(3.195,6.12)), ) createRL( tech, net, 'nwm', @@ -3087,7 +3071,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.77),(0.195,9.43),(0.805,9.43),(0.805,8.77),(0.195,8.77)), + ((0.195,8.715),(0.195,9.485),(0.805,9.485),(0.805,8.715),(0.195,8.715)), ) createRL( tech, net, 'nwm', @@ -3103,7 +3087,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,8.665),(3.195,9.655),(3.805,9.655),(3.805,8.665),(3.195,8.665)), + ((3.195,8.745),(3.195,9.515),(3.805,9.515),(3.805,8.745),(3.195,8.745)), ) createRL( tech, net, 'nwm', @@ -3115,7 +3099,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,5.37),(4.195,8.74),(4.805,8.74),(4.805,5.37),(4.195,5.37)), + ((4.195,5.34),(4.195,8.83),(4.805,8.83),(4.805,5.34),(4.195,5.34)), ) createRL( tech, net, 'nwm', @@ -3135,7 +3119,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,8.87),(2.195,9.53),(2.805,9.53),(2.805,8.87),(2.195,8.87)), + ((2.195,8.815),(2.195,9.585),(2.805,9.585),(2.805,8.815),(2.195,8.815)), ) createRL( tech, net, 'nwm', @@ -3159,7 +3143,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,8.825),(3.415,9.495),(3.585,9.495),(3.585,8.825),(3.415,8.825)), + ((3.415,8.965),(3.415,9.295),(3.585,9.295),(3.585,8.965),(3.415,8.965)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -3173,15 +3157,11 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,8.905),(3.415,9.075),(3.585,9.075),(3.585,8.905),(3.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((3.415,9.245),(3.415,9.415),(3.585,9.415),(3.585,9.245),(3.415,9.245)), + ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), ) createRL( tech, net, 'licon', - ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), + ((3.415,9.045),(3.415,9.215),(3.585,9.215),(3.585,9.045),(3.415,9.045)), ) createRL( tech, net, 'licon', @@ -3194,7 +3174,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,5.55),(4.375,8.56),(4.625,8.56),(4.625,5.55),(4.375,5.55)), + ((4.375,5.52),(4.375,8.65),(4.625,8.65),(4.625,5.52),(4.375,5.52)), ) createRL( tech, net, 'difftap', @@ -3206,7 +3186,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,1.46),(4.375,2.43),(4.625,2.43),(4.625,1.46),(4.375,1.46)), + ((4.375,1.37),(4.375,2.46),(4.625,2.46),(4.625,1.37),(4.375,1.37)), ) createRL( tech, net, 'difftap', @@ -3214,11 +3194,11 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,5.53),(4.415,8.58),(4.585,8.58),(4.585,5.53),(4.415,5.53)), + ((4.415,5.56),(4.415,8.61),(4.585,8.61),(4.585,5.56),(4.415,5.56)), ) createRL( tech, net, 'li', - ((4.415,1.44),(4.415,2.45),(4.585,2.45),(4.585,1.44),(4.415,1.44)), + ((4.415,1.41),(4.415,2.42),(4.585,2.42),(4.585,1.41),(4.415,1.41)), ) createRL( tech, net, 'li', @@ -3236,51 +3216,51 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((4.415,1.52),(4.415,1.69),(4.585,1.69),(4.585,1.52),(4.415,1.52)), + ((4.415,1.49),(4.415,1.66),(4.585,1.66),(4.585,1.49),(4.415,1.49)), ) createRL( tech, net, 'licon', - ((4.415,1.86),(4.415,2.03),(4.585,2.03),(4.585,1.86),(4.415,1.86)), + ((4.415,1.83),(4.415,2.0),(4.585,2.0),(4.585,1.83),(4.415,1.83)), ) createRL( tech, net, 'licon', - ((4.415,2.2),(4.415,2.37),(4.585,2.37),(4.585,2.2),(4.415,2.2)), + ((4.415,2.17),(4.415,2.34),(4.585,2.34),(4.585,2.17),(4.415,2.17)), ) createRL( tech, net, 'licon', - ((4.415,5.61),(4.415,5.78),(4.585,5.78),(4.585,5.61),(4.415,5.61)), + ((4.415,5.64),(4.415,5.81),(4.585,5.81),(4.585,5.64),(4.415,5.64)), ) createRL( tech, net, 'licon', - ((4.415,5.95),(4.415,6.12),(4.585,6.12),(4.585,5.95),(4.415,5.95)), + ((4.415,5.98),(4.415,6.15),(4.585,6.15),(4.585,5.98),(4.415,5.98)), ) createRL( tech, net, 'licon', - ((4.415,6.29),(4.415,6.46),(4.585,6.46),(4.585,6.29),(4.415,6.29)), + ((4.415,6.32),(4.415,6.49),(4.585,6.49),(4.585,6.32),(4.415,6.32)), ) createRL( tech, net, 'licon', - ((4.415,6.63),(4.415,6.8),(4.585,6.8),(4.585,6.63),(4.415,6.63)), + ((4.415,6.66),(4.415,6.83),(4.585,6.83),(4.585,6.66),(4.415,6.66)), ) createRL( tech, net, 'licon', - ((4.415,6.97),(4.415,7.14),(4.585,7.14),(4.585,6.97),(4.415,6.97)), + ((4.415,7.0),(4.415,7.17),(4.585,7.17),(4.585,7.0),(4.415,7.0)), ) createRL( tech, net, 'licon', - ((4.415,7.31),(4.415,7.48),(4.585,7.48),(4.585,7.31),(4.415,7.31)), + ((4.415,7.34),(4.415,7.51),(4.585,7.51),(4.585,7.34),(4.415,7.34)), ) createRL( tech, net, 'licon', - ((4.415,7.65),(4.415,7.82),(4.585,7.82),(4.585,7.65),(4.415,7.65)), + ((4.415,7.68),(4.415,7.85),(4.585,7.85),(4.585,7.68),(4.415,7.68)), ) createRL( tech, net, 'licon', - ((4.415,7.99),(4.415,8.16),(4.585,8.16),(4.585,7.99),(4.415,7.99)), + ((4.415,8.02),(4.415,8.19),(4.585,8.19),(4.585,8.02),(4.415,8.02)), ) createRL( tech, net, 'licon', - ((4.415,8.33),(4.415,8.5),(4.585,8.5),(4.585,8.33),(4.415,8.33)), + ((4.415,8.36),(4.415,8.53),(4.585,8.53),(4.585,8.36),(4.415,8.36)), ) net = nets['*'] createRL( @@ -3293,11 +3273,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,0.425),(2.25,0.975),(2.75,0.975),(2.75,0.425),(2.25,0.425)), - ) - createRL( - tech, net, 'psdm', - ((2.25,6.175),(2.25,8.425),(2.75,8.425),(2.75,6.175),(2.25,6.175)), + ((2.25,6.175),(2.25,8.425),(2.8,8.425),(2.8,6.175),(2.25,6.175)), ) createRL( tech, net, 'psdm', @@ -3305,15 +3281,15 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,6.175),(2.25,8.425),(2.8,8.425),(2.8,6.175),(2.25,6.175)), + ((2.25,6.285),(2.25,8.315),(2.75,8.315),(2.75,6.285),(2.25,6.285)), ) createRL( tech, net, 'psdm', - ((0.25,6.175),(0.25,9.375),(0.75,9.375),(0.75,6.175),(0.25,6.175)), + ((0.25,6.175),(0.25,9.43),(0.75,9.43),(0.75,6.175),(0.25,6.175)), ) createRL( tech, net, 'psdm', - ((3.25,6.175),(3.25,9.6),(3.75,9.6),(3.75,6.175),(3.25,6.175)), + ((3.25,6.175),(3.25,9.46),(3.75,9.46),(3.75,6.175),(3.25,6.175)), ) createRL( tech, net, 'psdm', @@ -3325,7 +3301,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,8.825),(0.25,9.375),(0.75,9.375),(0.75,8.825),(0.25,8.825)), + ((0.25,8.77),(0.25,9.43),(0.75,9.43),(0.75,8.77),(0.25,8.77)), ) createRL( tech, net, 'psdm', @@ -3353,7 +3329,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,8.72),(3.25,9.6),(3.75,9.6),(3.75,8.72),(3.25,8.72)), + ((3.25,8.8),(3.25,9.46),(3.75,9.46),(3.75,8.8),(3.25,8.8)), ) createRL( tech, net, 'psdm', @@ -3365,7 +3341,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((4.25,5.425),(4.25,8.685),(4.75,8.685),(4.75,5.425),(4.25,5.425)), + ((4.25,5.395),(4.25,8.775),(4.75,8.775),(4.75,5.395),(4.25,5.395)), ) createRL( tech, net, 'psdm', @@ -3379,6 +3355,10 @@ def _load(): tech, net, 'psdm', ((4.2,5.375),(4.2,9.625),(4.75,9.625),(4.75,5.375),(4.2,5.375)), ) + createRL( + tech, net, 'psdm', + ((2.25,0.37),(2.25,1.03),(2.75,1.03),(2.75,0.37),(2.25,0.37)), + ) createRL( tech, net, 'psdm', ((2.125,0.375),(2.125,1.025),(2.875,1.025),(2.875,0.375),(2.125,0.375)), @@ -3401,7 +3381,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,2.725),(1.25,3.275),(1.75,3.275),(1.75,2.725),(1.25,2.725)), + ((1.25,2.67),(1.25,3.33),(1.75,3.33),(1.75,2.67),(1.25,2.67)), ) createRL( tech, net, 'nsdm', @@ -3413,7 +3393,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,1.39),(2.25,2.61),(2.75,2.61),(2.75,1.39),(2.25,1.39)), + ((2.25,1.5),(2.25,2.5),(2.75,2.5),(2.75,1.5),(2.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -3433,7 +3413,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,0.615),(3.25,2.625),(3.75,2.625),(3.75,0.615),(3.25,0.615)), + ((3.25,0.59),(3.25,2.625),(3.75,2.625),(3.75,0.59),(3.25,0.59)), ) createRL( tech, net, 'nsdm', @@ -3449,7 +3429,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,0.615),(3.25,1.165),(3.75,1.165),(3.75,0.615),(3.25,0.615)), + ((3.25,0.59),(3.25,1.25),(3.75,1.25),(3.75,0.59),(3.25,0.59)), ) createRL( tech, net, 'nsdm', @@ -3461,7 +3441,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,1.335),(4.25,2.555),(4.75,2.555),(4.75,1.335),(4.25,1.335)), + ((4.25,1.245),(4.25,2.585),(4.75,2.585),(4.75,1.245),(4.25,1.245)), ) createRL( tech, net, 'nsdm', @@ -3469,11 +3449,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,8.925),(2.25,9.475),(2.75,9.475),(2.75,8.925),(2.25,8.925)), + ((2.25,8.87),(2.25,9.53),(2.75,9.53),(2.75,8.87),(2.25,8.87)), ) createRL( tech, net, 'nsdm', - ((1.25,1.375),(1.25,3.275),(1.75,3.275),(1.75,1.375),(1.25,1.375)), + ((1.25,1.375),(1.25,3.33),(1.75,3.33),(1.75,1.375),(1.25,1.375)), ) createRL( tech, net, 'nsdm', @@ -3481,7 +3461,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,1.39),(0.25,2.61),(0.75,2.61),(0.75,1.39),(0.25,1.39)), + ((0.25,1.5),(0.25,2.5),(0.75,2.5),(0.75,1.5),(0.25,1.5)), ) net = nets['_net0'] createRL( @@ -3506,7 +3486,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,6.3),(2.375,8.3),(2.625,8.3),(2.625,6.3),(2.375,6.3)), + ((2.375,6.41),(2.375,8.19),(2.625,8.19),(2.625,6.41),(2.375,6.41)), ) createRL( tech, net, 'difftap', @@ -3534,7 +3514,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,2.85),(1.375,3.15),(1.625,3.15),(1.625,2.85),(1.375,2.85)), + ((1.375,2.795),(1.375,3.205),(1.625,3.205),(1.625,2.795),(1.375,2.795)), ) createRL( tech, net, 'difftap', @@ -3546,7 +3526,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,1.5),(1.375,3.15),(1.625,3.15),(1.625,1.5),(1.375,1.5)), + ((1.375,1.5),(1.375,3.205),(1.625,3.205),(1.625,1.5),(1.375,1.5)), ) createRL( tech, net, 'licon', @@ -3554,35 +3534,31 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.515,3.915),(2.515,4.085),(2.685,4.085),(2.685,3.915),(2.515,3.915)), - ) - createRL( - tech, net, 'licon', - ((2.415,6.365),(2.415,6.535),(2.585,6.535),(2.585,6.365),(2.415,6.365)), + ((2.415,6.535),(2.415,6.705),(2.585,6.705),(2.585,6.535),(2.415,6.535)), ) createRL( tech, net, 'licon', - ((2.415,6.705),(2.415,6.875),(2.585,6.875),(2.585,6.705),(2.415,6.705)), + ((2.415,6.875),(2.415,7.045),(2.585,7.045),(2.585,6.875),(2.415,6.875)), ) createRL( tech, net, 'licon', - ((2.415,7.045),(2.415,7.215),(2.585,7.215),(2.585,7.045),(2.415,7.045)), + ((2.415,7.215),(2.415,7.385),(2.585,7.385),(2.585,7.215),(2.415,7.215)), ) createRL( tech, net, 'licon', - ((2.415,7.385),(2.415,7.555),(2.585,7.555),(2.585,7.385),(2.415,7.385)), + ((2.415,7.555),(2.415,7.725),(2.585,7.725),(2.585,7.555),(2.415,7.555)), ) createRL( tech, net, 'licon', - ((2.415,7.725),(2.415,7.895),(2.585,7.895),(2.585,7.725),(2.415,7.725)), + ((2.415,7.895),(2.415,8.065),(2.585,8.065),(2.585,7.895),(2.415,7.895)), ) createRL( tech, net, 'licon', - ((2.415,8.065),(2.415,8.235),(2.585,8.235),(2.585,8.065),(2.415,8.065)), + ((2.515,3.915),(2.515,4.085),(2.685,4.085),(2.685,3.915),(2.515,3.915)), ) createRL( tech, net, 'li', - ((2.415,6.28),(2.415,8.32),(2.585,8.32),(2.585,6.28),(2.415,6.28)), + ((2.415,6.455),(2.415,8.145),(2.585,8.145),(2.585,6.455),(2.415,6.455)), ) createRL( tech, net, 'li', @@ -3590,7 +3566,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,2.915),(2.415,6.45),(2.585,6.45),(2.585,2.915),(2.415,2.915)), + ((2.415,2.915),(2.415,6.625),(2.585,6.625),(2.585,2.915),(2.415,2.915)), ) createRL( tech, net, 'li', @@ -3619,11 +3595,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.325,1.5),(3.325,2.5),(3.625,2.5),(3.625,1.5),(3.325,1.5)), + ((3.075,1.5),(3.075,2.5),(3.325,2.5),(3.325,1.5),(3.075,1.5)), ) createRL( tech, net, 'difftap', - ((3.075,1.5),(3.075,2.5),(3.325,2.5),(3.325,1.5),(3.075,1.5)), + ((3.325,1.5),(3.325,2.5),(3.625,2.5),(3.625,1.5),(3.325,1.5)), ) createRL( tech, net, 'difftap', @@ -3631,7 +3607,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,0.74),(3.375,2.5),(3.625,2.5),(3.625,0.74),(3.375,0.74)), + ((3.375,0.715),(3.375,2.5),(3.625,2.5),(3.625,0.715),(3.375,0.715)), ) createRL( tech, net, 'difftap', @@ -3639,7 +3615,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,0.74),(3.375,1.04),(3.625,1.04),(3.625,0.74),(3.375,0.74)), + ((3.375,0.715),(3.375,1.125),(3.625,1.125),(3.625,0.715),(3.375,0.715)), ) createRL( tech, net, 'difftap', @@ -3651,11 +3627,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,0.55),(2.375,0.85),(2.625,0.85),(2.625,0.55),(2.375,0.55)), + ((2.375,0.495),(2.375,0.905),(2.625,0.905),(2.625,0.495),(2.375,0.495)), ) createRL( tech, net, 'li', - ((3.415,0.725),(3.415,1.055),(3.585,1.055),(3.585,0.725),(3.415,0.725)), + ((3.415,0.755),(3.415,1.085),(3.585,1.085),(3.585,0.755),(3.415,0.755)), ) createRL( tech, net, 'li', @@ -3677,7 +3653,7 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,0.805),(3.415,0.975),(3.585,0.975),(3.585,0.805),(3.415,0.805)), + ((3.415,0.835),(3.415,1.005),(3.585,1.005),(3.585,0.835),(3.415,0.835)), ) createRL( tech, net, 'licon', @@ -3731,15 +3707,15 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,2.675),(0.415,8.63),(0.585,8.63),(0.585,2.675),(0.415,2.675)), + ((0.415,2.505),(0.415,8.63),(0.585,8.63),(0.585,2.505),(0.415,2.505)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.5), u(0.17), u(2.675), u(8.63), + u(0.5), u(0.17), u(2.505), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.5), u(0.17), u(2.675), u(8.63), + u(0.5), u(0.17), u(2.505), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -3758,7 +3734,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,1.515),(2.375,2.485),(2.625,2.485),(2.625,1.515),(2.375,1.515)), + ((2.375,1.625),(2.375,2.375),(2.625,2.375),(2.625,1.625),(2.375,1.625)), ) createRL( tech, net, 'difftap', @@ -3778,15 +3754,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.515),(0.375,2.485),(0.625,2.485),(0.625,1.515),(0.375,1.515)), + ((0.375,1.625),(0.375,2.375),(0.625,2.375),(0.625,1.625),(0.375,1.625)), ) createRL( tech, net, 'li', - ((2.415,1.495),(2.415,2.505),(2.585,2.505),(2.585,1.495),(2.415,1.495)), + ((2.415,1.665),(2.415,2.335),(2.585,2.335),(2.585,1.665),(2.415,1.665)), ) createRL( tech, net, 'li', - ((0.415,1.495),(0.415,2.505),(0.585,2.505),(0.585,1.495),(0.415,1.495)), + ((0.415,1.665),(0.415,2.335),(0.585,2.335),(0.585,1.665),(0.415,1.665)), ) createRL( tech, net, 'li', @@ -3794,27 +3770,19 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.415,1.575),(2.415,1.745),(2.585,1.745),(2.585,1.575),(2.415,1.575)), + ((0.415,1.745),(0.415,1.915),(0.585,1.915),(0.585,1.745),(0.415,1.745)), ) createRL( tech, net, 'licon', - ((2.415,1.915),(2.415,2.085),(2.585,2.085),(2.585,1.915),(2.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((2.415,2.255),(2.415,2.425),(2.585,2.425),(2.585,2.255),(2.415,2.255)), + ((0.415,2.085),(0.415,2.255),(0.585,2.255),(0.585,2.085),(0.415,2.085)), ) createRL( tech, net, 'licon', - ((0.415,1.575),(0.415,1.745),(0.585,1.745),(0.585,1.575),(0.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), + ((2.415,1.745),(2.415,1.915),(2.585,1.915),(2.585,1.745),(2.415,1.745)), ) createRL( tech, net, 'licon', - ((0.415,2.255),(0.415,2.425),(0.585,2.425),(0.585,2.255),(0.415,2.255)), + ((2.415,2.085),(2.415,2.255),(2.585,2.255),(2.585,2.085),(2.415,2.085)), ) net = nets['i1'] createRL( @@ -3894,15 +3862,15 @@ def _load(): ) createRL( tech, net, 'li', - ((3.315,4.835),(3.315,5.165),(3.485,5.165),(3.485,4.835),(3.315,4.835)), + ((3.315,2.835),(3.315,3.165),(3.485,3.165),(3.485,2.835),(3.315,2.835)), ) createRL( tech, net, 'li', - ((3.415,1.37),(3.415,8.63),(3.585,8.63),(3.585,1.37),(3.415,1.37)), + ((3.315,4.835),(3.315,5.165),(3.485,5.165),(3.485,4.835),(3.315,4.835)), ) createRL( tech, net, 'li', - ((3.315,2.835),(3.315,3.165),(3.485,3.165),(3.485,2.835),(3.315,2.835)), + ((3.415,1.37),(3.415,8.63),(3.585,8.63),(3.585,1.37),(3.415,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -3916,11 +3884,11 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.315,4.915),(3.315,5.085),(3.485,5.085),(3.485,4.915),(3.315,4.915)), + ((3.315,2.915),(3.315,3.085),(3.485,3.085),(3.485,2.915),(3.315,2.915)), ) createRL( tech, net, 'licon', - ((3.315,2.915),(3.315,3.085),(3.485,3.085),(3.485,2.915),(3.315,2.915)), + ((3.315,4.915),(3.315,5.085),(3.485,5.085),(3.485,4.915),(3.315,4.915)), ) cell = new_cells['mx2_x2'] @@ -3943,12 +3911,12 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'difftap', - ((5.375,8.845),(5.375,9.475),(5.625,9.475),(5.625,8.845),(5.375,8.845)), + ((5.375,8.925),(5.375,9.335),(5.625,9.335),(5.625,8.925),(5.375,8.925)), ) createRL( tech, net, 'difftap', @@ -3964,7 +3932,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,8.95),(1.375,9.25),(1.625,9.25),(1.625,8.95),(1.375,8.95)), + ((1.375,8.895),(1.375,9.305),(1.625,9.305),(1.625,8.895),(1.375,8.895)), ) createRL( tech, net, 'difftap', @@ -3980,7 +3948,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,9.25),(1.625,9.25),(1.625,6.5),(1.375,6.5)), + ((1.375,6.5),(1.375,9.305),(1.625,9.305),(1.625,6.5),(1.375,6.5)), ) createRL( tech, net, 'difftap', @@ -3990,6 +3958,10 @@ def _load(): tech, net, 'difftap', ((4.925,6.5),(4.925,8.5),(5.075,8.5),(5.075,6.5),(4.925,6.5)), ) + createRL( + tech, net, 'difftap', + ((4.375,8.995),(4.375,9.405),(4.625,9.405),(4.625,8.995),(4.375,8.995)), + ) createRL( tech, net, 'difftap', ((5.925,5.5),(5.925,9.5),(6.075,9.5),(6.075,5.5),(5.925,5.5)), @@ -4000,7 +3972,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.675,6.5),(1.675,8.5),(1.925,8.5),(1.925,6.5),(1.675,6.5)), + ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), ) createRL( tech, net, 'difftap', @@ -4008,27 +3980,23 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), + ((1.675,6.5),(1.675,8.5),(1.925,8.5),(1.925,6.5),(1.675,6.5)), ) createRL( tech, net, 'difftap', ((1.325,6.5),(1.325,8.5),(1.625,8.5),(1.625,6.5),(1.325,6.5)), ) - createRL( - tech, net, 'difftap', - ((4.375,9.05),(4.375,9.35),(4.625,9.35),(4.625,9.05),(4.375,9.05)), - ) createRL( tech, net, 'difftap', ((4.3,9.0),(4.3,9.4),(4.7,9.4),(4.7,9.0),(4.3,9.0)), ) createRL( tech, net, 'difftap', - ((5.375,6.5),(5.375,9.475),(5.625,9.475),(5.625,6.5),(5.375,6.5)), + ((5.375,6.5),(5.375,9.335),(5.625,9.335),(5.625,6.5),(5.375,6.5)), ) createRL( tech, net, 'nwm', - ((5.195,8.665),(5.195,9.655),(5.805,9.655),(5.805,8.665),(5.195,8.665)), + ((5.195,8.745),(5.195,9.515),(5.805,9.515),(5.805,8.745),(5.195,8.745)), ) createRL( tech, net, 'nwm', @@ -4036,7 +4004,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.77),(1.195,9.43),(1.805,9.43),(1.805,8.77),(1.195,8.77)), + ((1.195,8.715),(1.195,9.485),(1.805,9.485),(1.805,8.715),(1.195,8.715)), ) createRL( tech, net, 'nwm', @@ -4044,7 +4012,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,6.32),(1.195,9.43),(1.805,9.43),(1.805,6.32),(1.195,6.32)), + ((1.195,6.32),(1.195,9.485),(1.805,9.485),(1.805,6.32),(1.195,6.32)), ) createRL( tech, net, 'nwm', @@ -4092,7 +4060,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,8.87),(4.195,9.53),(4.805,9.53),(4.805,8.87),(4.195,8.87)), + ((4.195,8.815),(4.195,9.585),(4.805,9.585),(4.805,8.815),(4.195,8.815)), ) createRL( tech, net, 'nwm', @@ -4112,7 +4080,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.805,8.68),(0.805,6.32),(0.195,6.32)), + ((0.195,6.43),(0.195,8.57),(0.805,8.57),(0.805,6.43),(0.195,6.43)), ) createRL( tech, net, 'nwm', @@ -4120,7 +4088,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,6.32),(3.195,8.68),(3.805,8.68),(3.805,6.32),(3.195,6.32)), + ((3.195,6.43),(3.195,8.57),(3.805,8.57),(3.805,6.43),(3.195,6.43)), ) createRL( tech, net, 'nwm', @@ -4136,11 +4104,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((5.195,6.32),(5.195,9.655),(5.805,9.655),(5.805,6.32),(5.195,6.32)), + ((5.195,6.32),(5.195,9.515),(5.805,9.515),(5.805,6.32),(5.195,6.32)), ) createRL( tech, net, 'nwm', - ((6.195,5.37),(6.195,8.74),(6.805,8.74),(6.805,5.37),(6.195,5.37)), + ((6.195,5.34),(6.195,8.83),(6.805,8.83),(6.805,5.34),(6.195,5.34)), ) createRL( tech, net, 'nwm', @@ -4156,7 +4124,7 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,8.825),(5.415,9.495),(5.585,9.495),(5.585,8.825),(5.415,8.825)), + ((5.415,8.965),(5.415,9.295),(5.585,9.295),(5.585,8.965),(5.415,8.965)), ) createRL( tech, net, 'li', @@ -4178,11 +4146,7 @@ def _load(): ) createRL( tech, net, 'licon', - ((5.415,8.905),(5.415,9.075),(5.585,9.075),(5.585,8.905),(5.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((5.415,9.245),(5.415,9.415),(5.585,9.415),(5.585,9.245),(5.415,9.245)), + ((5.415,9.045),(5.415,9.215),(5.585,9.215),(5.585,9.045),(5.415,9.045)), ) createRL( tech, net, 'licon', @@ -4199,11 +4163,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,5.55),(6.375,8.56),(6.625,8.56),(6.625,5.55),(6.375,5.55)), + ((6.375,5.52),(6.375,8.65),(6.625,8.65),(6.625,5.52),(6.375,5.52)), ) createRL( tech, net, 'difftap', - ((6.375,1.46),(6.375,2.43),(6.625,2.43),(6.625,1.46),(6.375,1.46)), + ((6.375,1.37),(6.375,2.46),(6.625,2.46),(6.625,1.37),(6.375,1.37)), ) createRL( tech, net, 'difftap', @@ -4215,7 +4179,7 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,1.44),(6.415,2.45),(6.585,2.45),(6.585,1.44),(6.415,1.44)), + ((6.415,1.41),(6.415,2.42),(6.585,2.42),(6.585,1.41),(6.415,1.41)), ) createRL( tech, net, 'li', @@ -4223,7 +4187,7 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,5.53),(6.415,8.58),(6.585,8.58),(6.585,5.53),(6.415,5.53)), + ((6.415,5.56),(6.415,8.61),(6.585,8.61),(6.585,5.56),(6.415,5.56)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -4237,56 +4201,56 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((6.415,1.52),(6.415,1.69),(6.585,1.69),(6.585,1.52),(6.415,1.52)), + ((6.415,1.49),(6.415,1.66),(6.585,1.66),(6.585,1.49),(6.415,1.49)), ) createRL( tech, net, 'licon', - ((6.415,1.86),(6.415,2.03),(6.585,2.03),(6.585,1.86),(6.415,1.86)), + ((6.415,1.83),(6.415,2.0),(6.585,2.0),(6.585,1.83),(6.415,1.83)), ) createRL( tech, net, 'licon', - ((6.415,2.2),(6.415,2.37),(6.585,2.37),(6.585,2.2),(6.415,2.2)), + ((6.415,2.17),(6.415,2.34),(6.585,2.34),(6.585,2.17),(6.415,2.17)), ) createRL( tech, net, 'licon', - ((6.415,5.61),(6.415,5.78),(6.585,5.78),(6.585,5.61),(6.415,5.61)), + ((6.415,5.64),(6.415,5.81),(6.585,5.81),(6.585,5.64),(6.415,5.64)), ) createRL( tech, net, 'licon', - ((6.415,5.95),(6.415,6.12),(6.585,6.12),(6.585,5.95),(6.415,5.95)), + ((6.415,5.98),(6.415,6.15),(6.585,6.15),(6.585,5.98),(6.415,5.98)), ) createRL( tech, net, 'licon', - ((6.415,6.29),(6.415,6.46),(6.585,6.46),(6.585,6.29),(6.415,6.29)), + ((6.415,6.32),(6.415,6.49),(6.585,6.49),(6.585,6.32),(6.415,6.32)), ) createRL( tech, net, 'licon', - ((6.415,6.63),(6.415,6.8),(6.585,6.8),(6.585,6.63),(6.415,6.63)), + ((6.415,6.66),(6.415,6.83),(6.585,6.83),(6.585,6.66),(6.415,6.66)), ) createRL( tech, net, 'licon', - ((6.415,6.97),(6.415,7.14),(6.585,7.14),(6.585,6.97),(6.415,6.97)), + ((6.415,7.0),(6.415,7.17),(6.585,7.17),(6.585,7.0),(6.415,7.0)), ) createRL( tech, net, 'licon', - ((6.415,7.31),(6.415,7.48),(6.585,7.48),(6.585,7.31),(6.415,7.31)), + ((6.415,7.34),(6.415,7.51),(6.585,7.51),(6.585,7.34),(6.415,7.34)), ) createRL( tech, net, 'licon', - ((6.415,7.65),(6.415,7.82),(6.585,7.82),(6.585,7.65),(6.415,7.65)), + ((6.415,7.68),(6.415,7.85),(6.585,7.85),(6.585,7.68),(6.415,7.68)), ) createRL( tech, net, 'licon', - ((6.415,7.99),(6.415,8.16),(6.585,8.16),(6.585,7.99),(6.415,7.99)), + ((6.415,8.02),(6.415,8.19),(6.585,8.19),(6.585,8.02),(6.415,8.02)), ) createRL( tech, net, 'licon', - ((6.415,8.33),(6.415,8.5),(6.585,8.5),(6.585,8.33),(6.415,8.33)), + ((6.415,8.36),(6.415,8.53),(6.585,8.53),(6.585,8.36),(6.415,8.36)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((5.25,8.72),(5.25,9.6),(5.75,9.6),(5.75,8.72),(5.25,8.72)), + ((5.25,8.8),(5.25,9.46),(5.75,9.46),(5.75,8.8),(5.25,8.8)), ) createRL( tech, net, 'psdm', @@ -4294,7 +4258,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,8.825),(1.25,9.375),(1.75,9.375),(1.75,8.825),(1.25,8.825)), + ((1.25,8.77),(1.25,9.43),(1.75,9.43),(1.75,8.77),(1.25,8.77)), ) createRL( tech, net, 'psdm', @@ -4302,7 +4266,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,9.375),(1.75,9.375),(1.75,6.375),(1.25,6.375)), + ((1.25,6.375),(1.25,9.43),(1.75,9.43),(1.75,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', @@ -4316,6 +4280,10 @@ def _load(): tech, net, 'psdm', ((4.175,0.375),(4.175,1.025),(4.825,1.025),(4.825,0.375),(4.175,0.375)), ) + createRL( + tech, net, 'psdm', + ((4.25,0.37),(4.25,1.03),(4.75,1.03),(4.75,0.37),(4.25,0.37)), + ) createRL( tech, net, 'psdm', ((2.2,6.375),(2.2,8.625),(2.7,8.625),(2.7,6.375),(2.2,6.375)), @@ -4366,31 +4334,27 @@ def _load(): ) createRL( tech, net, 'psdm', - ((5.55,5.375),(5.55,9.625),(6.45,9.625),(6.45,5.375),(5.55,5.375)), + ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', - ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), + ((5.55,5.375),(5.55,9.625),(6.45,9.625),(6.45,5.375),(5.55,5.375)), ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), + ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), ) createRL( tech, net, 'psdm', ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), ) - createRL( - tech, net, 'psdm', - ((4.25,0.425),(4.25,0.975),(4.75,0.975),(4.75,0.425),(4.25,0.425)), - ) createRL( tech, net, 'psdm', ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.75,8.625),(0.75,6.375),(0.25,6.375)), + ((0.25,6.485),(0.25,8.515),(0.75,8.515),(0.75,6.485),(0.25,6.485)), ) createRL( tech, net, 'psdm', @@ -4398,7 +4362,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,6.375),(3.25,8.625),(3.75,8.625),(3.75,6.375),(3.25,6.375)), + ((3.25,6.485),(3.25,8.515),(3.75,8.515),(3.75,6.485),(3.25,6.485)), ) createRL( tech, net, 'psdm', @@ -4418,15 +4382,15 @@ def _load(): ) createRL( tech, net, 'psdm', - ((5.25,6.375),(5.25,9.6),(5.75,9.6),(5.75,6.375),(5.25,6.375)), + ((5.25,6.375),(5.25,9.46),(5.75,9.46),(5.75,6.375),(5.25,6.375)), ) createRL( tech, net, 'psdm', - ((6.25,5.425),(6.25,8.685),(6.75,8.685),(6.75,5.425),(6.25,5.425)), + ((6.25,5.395),(6.25,8.775),(6.75,8.775),(6.75,5.395),(6.25,5.395)), ) createRL( tech, net, 'nsdm', - ((3.25,0.475),(3.25,3.275),(3.75,3.275),(3.75,0.475),(3.25,0.475)), + ((3.25,0.475),(3.25,3.33),(3.75,3.33),(3.75,0.475),(3.25,0.475)), ) createRL( tech, net, 'nsdm', @@ -4440,17 +4404,13 @@ def _load(): tech, net, 'nsdm', ((0.55,0.475),(0.55,1.625),(1.45,1.625),(1.45,0.475),(0.55,0.475)), ) - createRL( - tech, net, 'nsdm', - ((3.25,1.475),(3.25,3.275),(3.75,3.275),(3.75,1.475),(3.25,1.475)), - ) createRL( tech, net, 'nsdm', ((1.2,0.475),(1.2,1.625),(1.75,1.625),(1.75,0.475),(1.2,0.475)), ) createRL( tech, net, 'nsdm', - ((1.25,0.615),(1.25,1.165),(1.75,1.165),(1.75,0.615),(1.25,0.615)), + ((1.25,0.59),(1.25,1.25),(1.75,1.25),(1.75,0.59),(1.25,0.59)), ) createRL( tech, net, 'nsdm', @@ -4458,7 +4418,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,0.475),(0.25,2.275),(0.75,2.275),(0.75,0.475),(0.25,0.475)), + ((0.25,0.475),(0.25,2.33),(0.75,2.33),(0.75,0.475),(0.25,0.475)), ) createRL( tech, net, 'nsdm', @@ -4470,7 +4430,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,2.725),(3.25,3.275),(3.75,3.275),(3.75,2.725),(3.25,2.725)), + ((3.25,2.67),(3.25,3.33),(3.75,3.33),(3.75,2.67),(3.25,2.67)), ) createRL( tech, net, 'nsdm', @@ -4494,7 +4454,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,8.925),(4.25,9.475),(4.75,9.475),(4.75,8.925),(4.25,8.925)), + ((4.25,8.87),(4.25,9.53),(4.75,9.53),(4.75,8.87),(4.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -4534,11 +4494,15 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((6.25,1.335),(6.25,2.555),(6.75,2.555),(6.75,1.335),(6.25,1.335)), + ((3.25,1.475),(3.25,3.33),(3.75,3.33),(3.75,1.475),(3.25,1.475)), ) createRL( tech, net, 'nsdm', - ((5.25,0.615),(5.25,2.625),(5.75,2.625),(5.75,0.615),(5.25,0.615)), + ((6.25,1.245),(6.25,2.585),(6.75,2.585),(6.75,1.245),(6.25,1.245)), + ) + createRL( + tech, net, 'nsdm', + ((5.25,0.59),(5.25,2.625),(5.75,2.625),(5.75,0.59),(5.25,0.59)), ) createRL( tech, net, 'nsdm', @@ -4554,7 +4518,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((5.25,0.615),(5.25,1.165),(5.75,1.165),(5.75,0.615),(5.25,0.615)), + ((5.25,0.59),(5.25,1.25),(5.75,1.25),(5.75,0.59),(5.25,0.59)), ) createRL( tech, net, 'nsdm', @@ -4566,7 +4530,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,1.725),(0.25,2.275),(0.75,2.275),(0.75,1.725),(0.25,1.725)), + ((0.25,1.67),(0.25,2.33),(0.75,2.33),(0.75,1.67),(0.25,1.67)), ) createRL( tech, net, 'nsdm', @@ -4607,7 +4571,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,0.6),(3.375,3.15),(3.625,3.15),(3.625,0.6),(3.375,0.6)), + ((3.375,0.6),(3.375,3.205),(3.625,3.205),(3.625,0.6),(3.375,0.6)), ) createRL( tech, net, 'difftap', @@ -4615,7 +4579,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,6.5),(3.375,8.5),(3.625,8.5),(3.625,6.5),(3.375,6.5)), + ((3.375,6.61),(3.375,8.39),(3.625,8.39),(3.625,6.61),(3.375,6.61)), ) createRL( tech, net, 'difftap', @@ -4631,11 +4595,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,2.85),(3.375,3.15),(3.625,3.15),(3.625,2.85),(3.375,2.85)), + ((3.375,2.795),(3.375,3.205),(3.625,3.205),(3.625,2.795),(3.375,2.795)), ) createRL( tech, net, 'difftap', - ((3.375,1.6),(3.375,3.15),(3.625,3.15),(3.625,1.6),(3.375,1.6)), + ((3.375,1.6),(3.375,3.205),(3.625,3.205),(3.625,1.6),(3.375,1.6)), ) createRL( tech, net, 'difftap', @@ -4647,31 +4611,27 @@ def _load(): ) createRL( tech, net, 'licon', - ((3.415,6.565),(3.415,6.735),(3.585,6.735),(3.585,6.565),(3.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((3.415,6.905),(3.415,7.075),(3.585,7.075),(3.585,6.905),(3.415,6.905)), + ((3.515,4.915),(3.515,5.085),(3.685,5.085),(3.685,4.915),(3.515,4.915)), ) createRL( tech, net, 'licon', - ((3.415,7.245),(3.415,7.415),(3.585,7.415),(3.585,7.245),(3.415,7.245)), + ((3.415,6.735),(3.415,6.905),(3.585,6.905),(3.585,6.735),(3.415,6.735)), ) createRL( tech, net, 'licon', - ((3.415,7.585),(3.415,7.755),(3.585,7.755),(3.585,7.585),(3.415,7.585)), + ((3.415,7.075),(3.415,7.245),(3.585,7.245),(3.585,7.075),(3.415,7.075)), ) createRL( tech, net, 'licon', - ((3.415,7.925),(3.415,8.095),(3.585,8.095),(3.585,7.925),(3.415,7.925)), + ((3.415,7.415),(3.415,7.585),(3.585,7.585),(3.585,7.415),(3.415,7.415)), ) createRL( tech, net, 'licon', - ((3.415,8.265),(3.415,8.435),(3.585,8.435),(3.585,8.265),(3.415,8.265)), + ((3.415,7.755),(3.415,7.925),(3.585,7.925),(3.585,7.755),(3.415,7.755)), ) createRL( tech, net, 'licon', - ((3.515,4.915),(3.515,5.085),(3.685,5.085),(3.685,4.915),(3.515,4.915)), + ((3.415,8.095),(3.415,8.265),(3.585,8.265),(3.585,8.095),(3.415,8.095)), ) createRL( tech, net, 'li', @@ -4683,11 +4643,11 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,2.995),(3.415,6.65),(3.585,6.65),(3.585,2.995),(3.415,2.995)), + ((3.415,2.995),(3.415,6.825),(3.585,6.825),(3.585,2.995),(3.415,2.995)), ) createRL( tech, net, 'li', - ((3.415,6.48),(3.415,8.52),(3.585,8.52),(3.585,6.48),(3.415,6.48)), + ((3.415,6.655),(3.415,8.345),(3.585,8.345),(3.585,6.655),(3.415,6.655)), ) net = nets['vss'] createRL( @@ -4712,11 +4672,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,0.6),(1.375,1.5),(1.675,1.5),(1.675,0.6),(1.375,0.6)), + ((1.375,0.715),(1.375,1.125),(1.625,1.125),(1.625,0.715),(1.375,0.715)), ) createRL( tech, net, 'difftap', - ((1.375,0.74),(1.375,1.04),(1.625,1.04),(1.625,0.74),(1.375,0.74)), + ((1.375,0.6),(1.375,1.5),(1.675,1.5),(1.675,0.6),(1.375,0.6)), ) createRL( tech, net, 'difftap', @@ -4728,11 +4688,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,0.55),(4.375,0.85),(4.625,0.85),(4.625,0.55),(4.375,0.55)), + ((4.3,0.5),(4.3,0.9),(4.7,0.9),(4.7,0.5),(4.3,0.5)), ) createRL( tech, net, 'difftap', - ((4.3,0.5),(4.3,0.9),(4.7,0.9),(4.7,0.5),(4.3,0.5)), + ((4.375,0.495),(4.375,0.905),(4.625,0.905),(4.625,0.495),(4.375,0.495)), ) createRL( tech, net, 'difftap', @@ -4752,7 +4712,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.375,0.74),(5.375,2.5),(5.625,2.5),(5.625,0.74),(5.375,0.74)), + ((5.375,0.715),(5.375,2.5),(5.625,2.5),(5.625,0.715),(5.375,0.715)), ) createRL( tech, net, 'difftap', @@ -4764,11 +4724,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.375,0.74),(5.375,1.04),(5.625,1.04),(5.625,0.74),(5.375,0.74)), + ((5.375,0.715),(5.375,1.125),(5.625,1.125),(5.625,0.715),(5.375,0.715)), ) createRL( tech, net, 'li', - ((1.415,0.725),(1.415,1.055),(1.585,1.055),(1.585,0.725),(1.415,0.725)), + ((5.415,0.755),(5.415,1.085),(5.585,1.085),(5.585,0.755),(5.415,0.755)), ) createRL( tech, net, 'li', @@ -4776,11 +4736,11 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,0.725),(5.415,1.055),(5.585,1.055),(5.585,0.725),(5.415,0.725)), + ((4.415,0.535),(4.415,0.865),(4.585,0.865),(4.585,0.535),(4.415,0.535)), ) createRL( tech, net, 'li', - ((4.415,0.535),(4.415,0.865),(4.585,0.865),(4.585,0.535),(4.415,0.535)), + ((1.415,0.755),(1.415,1.085),(1.585,1.085),(1.585,0.755),(1.415,0.755)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -4794,15 +4754,15 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.805),(1.415,0.975),(1.585,0.975),(1.585,0.805),(1.415,0.805)), + ((5.415,0.835),(5.415,1.005),(5.585,1.005),(5.585,0.835),(5.415,0.835)), ) createRL( tech, net, 'licon', - ((5.415,0.805),(5.415,0.975),(5.585,0.975),(5.585,0.805),(5.415,0.805)), + ((4.415,0.615),(4.415,0.785),(4.585,0.785),(4.585,0.615),(4.415,0.615)), ) createRL( tech, net, 'licon', - ((4.415,0.615),(4.415,0.785),(4.585,0.785),(4.585,0.615),(4.415,0.615)), + ((1.415,0.835),(1.415,1.005),(1.585,1.005),(1.585,0.835),(1.415,0.835)), ) net = nets['_net4'] createRL( @@ -4860,7 +4820,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,0.6),(0.375,2.15),(0.625,2.15),(0.625,0.6),(0.375,0.6)), + ((0.375,0.6),(0.375,2.205),(0.625,2.205),(0.625,0.6),(0.375,0.6)), ) createRL( tech, net, 'difftap', @@ -4868,11 +4828,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.625,8.5),(0.625,6.5),(0.375,6.5)), + ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), + ((0.375,6.61),(0.375,8.39),(0.625,8.39),(0.625,6.61),(0.375,6.61)), ) createRL( tech, net, 'difftap', @@ -4884,7 +4844,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.85),(0.375,2.15),(0.625,2.15),(0.625,1.85),(0.375,1.85)), + ((0.375,1.795),(0.375,2.205),(0.625,2.205),(0.625,1.795),(0.375,1.795)), ) createRL( tech, net, 'li', @@ -4904,7 +4864,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,6.48),(0.415,8.52),(0.585,8.52),(0.585,6.48),(0.415,6.48)), + ((0.415,6.655),(0.415,8.345),(0.585,8.345),(0.585,6.655),(0.415,6.655)), ) createRL( tech, net, 'li', @@ -4928,35 +4888,31 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.415,6.565),(0.415,6.735),(0.585,6.735),(0.585,6.565),(0.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((0.415,6.905),(0.415,7.075),(0.585,7.075),(0.585,6.905),(0.415,6.905)), + ((4.065,5.915),(4.065,6.085),(4.235,6.085),(4.235,5.915),(4.065,5.915)), ) createRL( tech, net, 'licon', - ((0.415,7.245),(0.415,7.415),(0.585,7.415),(0.585,7.245),(0.415,7.245)), + ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), ) createRL( tech, net, 'licon', - ((0.415,7.585),(0.415,7.755),(0.585,7.755),(0.585,7.585),(0.415,7.585)), + ((0.415,6.735),(0.415,6.905),(0.585,6.905),(0.585,6.735),(0.415,6.735)), ) createRL( tech, net, 'licon', - ((0.415,7.925),(0.415,8.095),(0.585,8.095),(0.585,7.925),(0.415,7.925)), + ((0.415,7.075),(0.415,7.245),(0.585,7.245),(0.585,7.075),(0.415,7.075)), ) createRL( tech, net, 'licon', - ((0.415,8.265),(0.415,8.435),(0.585,8.435),(0.585,8.265),(0.415,8.265)), + ((0.415,7.415),(0.415,7.585),(0.585,7.585),(0.585,7.415),(0.415,7.415)), ) createRL( tech, net, 'licon', - ((4.065,5.915),(4.065,6.085),(4.235,6.085),(4.235,5.915),(4.065,5.915)), + ((0.415,7.755),(0.415,7.925),(0.585,7.925),(0.585,7.755),(0.415,7.755)), ) createRL( tech, net, 'licon', - ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), + ((0.415,8.095),(0.415,8.265),(0.585,8.265),(0.585,8.095),(0.415,8.095)), ) net = nets['_net2'] createRL( @@ -5042,47 +4998,47 @@ def _load(): tech, net, 'licon', ((2.415,3.915),(2.415,4.085),(2.585,4.085),(2.585,3.915),(2.415,3.915)), ) - net = nets['_net0'] + net = nets['_net3'] createRL( tech, net, 'difftap', - ((4.675,1.6),(4.675,2.5),(4.925,2.5),(4.925,1.6),(4.675,1.6)), + ((2.425,6.7),(2.425,8.3),(2.575,8.3),(2.575,6.7),(2.425,6.7)), ) createRL( tech, net, 'difftap', - ((4.325,1.6),(4.325,2.5),(4.575,2.5),(4.575,1.6),(4.325,1.6)), + ((2.425,6.5),(2.425,8.5),(2.675,8.5),(2.675,6.5),(2.425,6.5)), ) createRL( tech, net, 'difftap', - ((4.425,1.6),(4.425,2.5),(4.675,2.5),(4.675,1.6),(4.425,1.6)), + ((2.325,6.5),(2.325,8.5),(2.575,8.5),(2.575,6.5),(2.325,6.5)), ) createRL( tech, net, 'difftap', - ((4.425,1.75),(4.425,2.25),(4.575,2.25),(4.575,1.75),(4.425,1.75)), + ((2.675,6.5),(2.675,8.5),(2.925,8.5),(2.925,6.5),(2.675,6.5)), ) createRL( tech, net, 'difftap', - ((4.075,1.6),(4.075,2.5),(4.325,2.5),(4.325,1.6),(4.075,1.6)), + ((2.075,6.5),(2.075,8.5),(2.325,8.5),(2.325,6.5),(2.075,6.5)), ) - net = nets['_net3'] + net = nets['_net0'] createRL( tech, net, 'difftap', - ((2.425,6.7),(2.425,8.3),(2.575,8.3),(2.575,6.7),(2.425,6.7)), + ((4.675,1.6),(4.675,2.5),(4.925,2.5),(4.925,1.6),(4.675,1.6)), ) createRL( tech, net, 'difftap', - ((2.425,6.5),(2.425,8.5),(2.675,8.5),(2.675,6.5),(2.425,6.5)), + ((4.325,1.6),(4.325,2.5),(4.575,2.5),(4.575,1.6),(4.325,1.6)), ) createRL( tech, net, 'difftap', - ((2.325,6.5),(2.325,8.5),(2.575,8.5),(2.575,6.5),(2.325,6.5)), + ((4.425,1.6),(4.425,2.5),(4.675,2.5),(4.675,1.6),(4.425,1.6)), ) createRL( tech, net, 'difftap', - ((2.675,6.5),(2.675,8.5),(2.925,8.5),(2.925,6.5),(2.675,6.5)), + ((4.425,1.75),(4.425,2.25),(4.575,2.25),(4.575,1.75),(4.425,1.75)), ) createRL( tech, net, 'difftap', - ((2.075,6.5),(2.075,8.5),(2.325,8.5),(2.325,6.5),(2.075,6.5)), + ((4.075,1.6),(4.075,2.5),(4.325,2.5),(4.325,1.6),(4.075,1.6)), ) net = nets['i0'] createRL( @@ -5091,15 +5047,15 @@ def _load(): ) createRL( tech, net, 'poly', - ((1.465,2.835),(1.465,3.165),(1.735,3.165),(1.735,2.835),(1.465,2.835)), + ((1.465,5.835),(1.465,6.165),(2.075,6.165),(2.075,5.835),(1.465,5.835)), ) createRL( tech, net, 'poly', - ((1.465,5.835),(1.465,6.165),(2.075,6.165),(2.075,5.835),(1.465,5.835)), + ((1.925,5.835),(1.925,6.37),(2.075,6.37),(2.075,5.835),(1.925,5.835)), ) createRL( tech, net, 'poly', - ((1.925,5.835),(1.925,6.37),(2.075,6.37),(2.075,5.835),(1.925,5.835)), + ((1.925,1.63),(1.925,3.165),(2.075,3.165),(2.075,1.63),(1.925,1.63)), ) createRL( tech, net, 'poly', @@ -5107,7 +5063,7 @@ def _load(): ) createRL( tech, net, 'poly', - ((1.925,1.63),(1.925,3.165),(2.075,3.165),(2.075,1.63),(1.925,1.63)), + ((1.465,2.835),(1.465,3.165),(1.735,3.165),(1.735,2.835),(1.465,2.835)), ) createRL( tech, net, 'poly', @@ -5235,8 +5191,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['q'] createRL( tech, net, 'difftap', @@ -5244,7 +5200,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.5),(0.375,3.5),(0.625,3.5),(0.625,1.5),(0.375,1.5)), + ((0.375,1.61),(0.375,3.39),(0.625,3.39),(0.625,1.61),(0.375,1.61)), ) createRL( tech, net, 'difftap', @@ -5252,7 +5208,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,8.5),(1.625,8.5),(1.625,6.5),(1.375,6.5)), + ((1.375,6.61),(1.375,8.39),(1.625,8.39),(1.625,6.61),(1.375,6.61)), ) createRL( tech, net, 'difftap', @@ -5300,11 +5256,11 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.48),(0.415,3.52),(0.585,3.52),(0.585,1.48),(0.415,1.48)), + ((0.415,1.655),(0.415,3.345),(0.585,3.345),(0.585,1.655),(0.415,1.655)), ) createRL( tech, net, 'li', - ((1.415,6.48),(1.415,8.52),(1.585,8.52),(1.585,6.48),(1.415,6.48)), + ((1.415,6.655),(1.415,8.345),(1.585,8.345),(1.585,6.655),(1.415,6.655)), ) createRL( tech, net, 'li', @@ -5334,60 +5290,56 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((0.415,1.565),(0.415,1.735),(0.585,1.735),(0.585,1.565),(0.415,1.565)), - ) - createRL( - tech, net, 'licon', - ((0.415,1.905),(0.415,2.075),(0.585,2.075),(0.585,1.905),(0.415,1.905)), + ((2.815,5.415),(2.815,5.585),(2.985,5.585),(2.985,5.415),(2.815,5.415)), ) createRL( tech, net, 'licon', - ((0.415,2.245),(0.415,2.415),(0.585,2.415),(0.585,2.245),(0.415,2.245)), + ((0.415,1.735),(0.415,1.905),(0.585,1.905),(0.585,1.735),(0.415,1.735)), ) createRL( tech, net, 'licon', - ((0.415,2.585),(0.415,2.755),(0.585,2.755),(0.585,2.585),(0.415,2.585)), + ((0.415,2.075),(0.415,2.245),(0.585,2.245),(0.585,2.075),(0.415,2.075)), ) createRL( tech, net, 'licon', - ((0.415,2.925),(0.415,3.095),(0.585,3.095),(0.585,2.925),(0.415,2.925)), + ((0.415,2.415),(0.415,2.585),(0.585,2.585),(0.585,2.415),(0.415,2.415)), ) createRL( tech, net, 'licon', - ((0.415,3.265),(0.415,3.435),(0.585,3.435),(0.585,3.265),(0.415,3.265)), + ((0.415,2.755),(0.415,2.925),(0.585,2.925),(0.585,2.755),(0.415,2.755)), ) createRL( tech, net, 'licon', - ((2.815,5.415),(2.815,5.585),(2.985,5.585),(2.985,5.415),(2.815,5.415)), + ((0.415,3.095),(0.415,3.265),(0.585,3.265),(0.585,3.095),(0.415,3.095)), ) createRL( tech, net, 'licon', - ((1.415,6.565),(1.415,6.735),(1.585,6.735),(1.585,6.565),(1.415,6.565)), + ((1.415,6.735),(1.415,6.905),(1.585,6.905),(1.585,6.735),(1.415,6.735)), ) createRL( tech, net, 'licon', - ((1.415,6.905),(1.415,7.075),(1.585,7.075),(1.585,6.905),(1.415,6.905)), + ((1.415,7.075),(1.415,7.245),(1.585,7.245),(1.585,7.075),(1.415,7.075)), ) createRL( tech, net, 'licon', - ((1.415,7.245),(1.415,7.415),(1.585,7.415),(1.585,7.245),(1.415,7.245)), + ((1.415,7.415),(1.415,7.585),(1.585,7.585),(1.585,7.415),(1.415,7.415)), ) createRL( tech, net, 'licon', - ((1.415,7.585),(1.415,7.755),(1.585,7.755),(1.585,7.585),(1.415,7.585)), + ((1.415,7.755),(1.415,7.925),(1.585,7.925),(1.585,7.755),(1.415,7.755)), ) createRL( tech, net, 'licon', - ((1.415,7.925),(1.415,8.095),(1.585,8.095),(1.585,7.925),(1.415,7.925)), + ((1.415,8.095),(1.415,8.265),(1.585,8.265),(1.585,8.095),(1.415,8.095)), ) + net = nets['vdd'] createRL( - tech, net, 'licon', - ((1.415,8.265),(1.415,8.435),(1.585,8.435),(1.585,8.265),(1.415,8.265)), + tech, net, 'difftap', + ((4.375,6.5),(4.375,9.305),(4.625,9.305),(4.625,6.5),(4.375,6.5)), ) - net = nets['vdd'] createRL( tech, net, 'difftap', - ((4.375,6.5),(4.375,9.25),(4.625,9.25),(4.625,6.5),(4.375,6.5)), + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), ) createRL( tech, net, 'difftap', @@ -5395,15 +5347,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,6.5),(2.375,8.5),(2.625,8.5),(2.625,6.5),(2.375,6.5)), + ((2.675,6.5),(2.675,8.5),(2.925,8.5),(2.925,6.5),(2.675,6.5)), ) createRL( tech, net, 'difftap', - ((2.675,6.5),(2.675,8.5),(2.925,8.5),(2.925,6.5),(2.675,6.5)), + ((2.375,6.61),(2.375,8.39),(2.625,8.39),(2.625,6.61),(2.375,6.61)), ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,9.25),(0.625,9.25),(0.625,6.5),(0.375,6.5)), + ((0.375,6.5),(0.375,9.305),(0.625,9.305),(0.625,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', @@ -5419,7 +5371,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,8.95),(0.375,9.25),(0.625,9.25),(0.625,8.95),(0.375,8.95)), + ((0.375,8.895),(0.375,9.305),(0.625,9.305),(0.625,8.895),(0.375,8.895)), ) createRL( tech, net, 'difftap', @@ -5435,19 +5387,19 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,8.95),(4.375,9.25),(4.625,9.25),(4.625,8.95),(4.375,8.95)), + ((4.375,8.895),(4.375,9.305),(4.625,9.305),(4.625,8.895),(4.375,8.895)), ) createRL( tech, net, 'difftap', - ((3.375,9.05),(3.375,9.35),(3.625,9.35),(3.625,9.05),(3.375,9.05)), + ((3.25,9.0),(3.25,9.4),(3.75,9.4),(3.75,9.0),(3.25,9.0)), ) createRL( tech, net, 'difftap', - ((3.25,9.0),(3.25,9.4),(3.75,9.4),(3.75,9.0),(3.25,9.0)), + ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), ) createRL( tech, net, 'difftap', - ((0.925,6.5),(0.925,8.5),(1.075,8.5),(1.075,6.5),(0.925,6.5)), + ((3.375,8.995),(3.375,9.405),(3.625,9.405),(3.625,8.995),(3.375,8.995)), ) createRL( tech, net, 'difftap', @@ -5461,21 +5413,17 @@ def _load(): tech, net, 'difftap', ((3.925,6.5),(3.925,8.5),(4.075,8.5),(4.075,6.5),(3.925,6.5)), ) - createRL( - tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), - ) createRL( tech, net, 'difftap', ((1.25,9.0),(1.25,9.4),(1.75,9.4),(1.75,9.0),(1.25,9.0)), ) createRL( tech, net, 'nwm', - ((4.195,6.32),(4.195,9.43),(4.805,9.43),(4.805,6.32),(4.195,6.32)), + ((4.195,6.32),(4.195,9.485),(4.805,9.485),(4.805,6.32),(4.195,6.32)), ) createRL( tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), ) createRL( tech, net, 'nwm', @@ -5483,19 +5431,19 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), + ((2.195,6.32),(2.195,8.68),(2.855,8.68),(2.855,6.32),(2.195,6.32)), ) createRL( tech, net, 'nwm', - ((2.195,6.32),(2.195,8.68),(2.805,8.68),(2.805,6.32),(2.195,6.32)), + ((2.195,6.43),(2.195,8.57),(2.805,8.57),(2.805,6.43),(2.195,6.43)), ) createRL( tech, net, 'nwm', - ((2.195,6.32),(2.195,8.68),(2.855,8.68),(2.855,6.32),(2.195,6.32)), + ((2.145,6.32),(2.145,8.68),(2.805,8.68),(2.805,6.32),(2.145,6.32)), ) createRL( tech, net, 'nwm', - ((0.195,6.32),(0.195,9.43),(0.805,9.43),(0.805,6.32),(0.195,6.32)), + ((0.195,6.32),(0.195,9.485),(0.805,9.485),(0.805,6.32),(0.195,6.32)), ) createRL( tech, net, 'nwm', @@ -5503,7 +5451,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.77),(0.195,9.43),(0.805,9.43),(0.805,8.77),(0.195,8.77)), + ((0.195,8.715),(0.195,9.485),(0.805,9.485),(0.805,8.715),(0.195,8.715)), ) createRL( tech, net, 'nwm', @@ -5515,11 +5463,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,8.77),(4.195,9.43),(4.805,9.43),(4.805,8.77),(4.195,8.77)), + ((4.195,8.715),(4.195,9.485),(4.805,9.485),(4.805,8.715),(4.195,8.715)), ) createRL( tech, net, 'nwm', - ((1.195,6.32),(1.195,8.68),(1.805,8.68),(1.805,6.32),(1.195,6.32)), + ((1.195,6.43),(1.195,8.57),(1.805,8.57),(1.805,6.43),(1.195,6.43)), ) createRL( tech, net, 'nwm', @@ -5527,11 +5475,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,8.87),(3.195,9.53),(3.805,9.53),(3.805,8.87),(3.195,8.87)), + ((3.07,8.82),(3.07,9.58),(3.93,9.58),(3.93,8.82),(3.07,8.82)), ) createRL( tech, net, 'nwm', - ((3.07,8.82),(3.07,9.58),(3.93,9.58),(3.93,8.82),(3.07,8.82)), + ((3.195,8.815),(3.195,9.585),(3.805,9.585),(3.805,8.815),(3.195,8.815)), ) createRL( tech, net, 'nwm', @@ -5547,7 +5495,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,6.32),(3.195,8.68),(3.805,8.68),(3.805,6.32),(3.195,6.32)), + ((3.195,6.43),(3.195,8.57),(3.805,8.57),(3.805,6.43),(3.195,6.43)), ) createRL( tech, net, 'nwm', @@ -5567,7 +5515,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,6.48),(2.415,8.52),(2.585,8.52),(2.585,6.48),(2.415,6.48)), + ((2.415,6.655),(2.415,8.345),(2.585,8.345),(2.585,6.655),(2.415,6.655)), ) createRL( tech, net, 'li', @@ -5591,7 +5539,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,8.35),(2.415,8.97),(2.585,8.97),(2.585,8.35),(2.415,8.35)), + ((2.415,8.175),(2.415,8.97),(2.585,8.97),(2.585,8.175),(2.415,8.175)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -5617,27 +5565,23 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.415,6.565),(2.415,6.735),(2.585,6.735),(2.585,6.565),(2.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((2.415,6.905),(2.415,7.075),(2.585,7.075),(2.585,6.905),(2.415,6.905)), + ((2.415,6.735),(2.415,6.905),(2.585,6.905),(2.585,6.735),(2.415,6.735)), ) createRL( tech, net, 'licon', - ((2.415,7.245),(2.415,7.415),(2.585,7.415),(2.585,7.245),(2.415,7.245)), + ((2.415,7.075),(2.415,7.245),(2.585,7.245),(2.585,7.075),(2.415,7.075)), ) createRL( tech, net, 'licon', - ((2.415,7.585),(2.415,7.755),(2.585,7.755),(2.585,7.585),(2.415,7.585)), + ((2.415,7.415),(2.415,7.585),(2.585,7.585),(2.585,7.415),(2.415,7.415)), ) createRL( tech, net, 'licon', - ((2.415,7.925),(2.415,8.095),(2.585,8.095),(2.585,7.925),(2.415,7.925)), + ((2.415,7.755),(2.415,7.925),(2.585,7.925),(2.585,7.755),(2.415,7.755)), ) createRL( tech, net, 'licon', - ((2.415,8.265),(2.415,8.435),(2.585,8.435),(2.585,8.265),(2.415,8.265)), + ((2.415,8.095),(2.415,8.265),(2.585,8.265),(2.585,8.095),(2.415,8.095)), ) createRL( tech, net, 'licon', @@ -5646,15 +5590,19 @@ def _load(): net = nets['*'] createRL( tech, net, 'psdm', - ((4.25,6.375),(4.25,9.375),(4.75,9.375),(4.75,6.375),(4.25,6.375)), + ((4.25,6.375),(4.25,9.43),(4.75,9.43),(4.75,6.375),(4.25,6.375)), ) createRL( tech, net, 'psdm', - ((1.125,0.375),(1.125,1.025),(1.875,1.025),(1.875,0.375),(1.125,0.375)), + ((1.25,0.37),(1.25,1.03),(1.75,1.03),(1.75,0.37),(1.25,0.37)), + ) + createRL( + tech, net, 'psdm', + ((2.25,6.485),(2.25,8.515),(2.75,8.515),(2.75,6.485),(2.25,6.485)), ) createRL( tech, net, 'psdm', - ((2.25,6.375),(2.25,8.625),(2.75,8.625),(2.75,6.375),(2.25,6.375)), + ((1.125,0.375),(1.125,1.025),(1.875,1.025),(1.875,0.375),(1.125,0.375)), ) createRL( tech, net, 'psdm', @@ -5662,11 +5610,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,6.375),(2.25,8.625),(2.8,8.625),(2.8,6.375),(2.25,6.375)), + ((0.25,6.375),(0.25,9.43),(0.75,9.43),(0.75,6.375),(0.25,6.375)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,9.375),(0.75,9.375),(0.75,6.375),(0.25,6.375)), + ((2.25,6.375),(2.25,8.625),(2.8,8.625),(2.8,6.375),(2.25,6.375)), ) createRL( tech, net, 'psdm', @@ -5678,7 +5626,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,8.825),(0.25,9.375),(0.75,9.375),(0.75,8.825),(0.25,8.825)), + ((0.25,8.77),(0.25,9.43),(0.75,9.43),(0.75,8.77),(0.25,8.77)), ) createRL( tech, net, 'psdm', @@ -5694,27 +5642,27 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.125,0.375),(3.125,1.025),(3.875,1.025),(3.875,0.375),(3.125,0.375)), + ((3.25,0.37),(3.25,1.03),(3.75,1.03),(3.75,0.37),(3.25,0.37)), ) createRL( tech, net, 'psdm', - ((4.25,8.825),(4.25,9.375),(4.75,9.375),(4.75,8.825),(4.25,8.825)), + ((3.125,0.375),(3.125,1.025),(3.875,1.025),(3.875,0.375),(3.125,0.375)), ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,8.625),(1.75,8.625),(1.75,6.375),(1.25,6.375)), + ((4.25,8.77),(4.25,9.43),(4.75,9.43),(4.75,8.77),(4.25,8.77)), ) createRL( tech, net, 'psdm', - ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), + ((1.25,6.485),(1.25,8.515),(1.75,8.515),(1.75,6.485),(1.25,6.485)), ) createRL( tech, net, 'psdm', - ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), + ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), ) createRL( tech, net, 'psdm', - ((1.25,0.425),(1.25,0.975),(1.75,0.975),(1.75,0.425),(1.25,0.425)), + ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), ) createRL( tech, net, 'psdm', @@ -5730,7 +5678,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,6.375),(3.25,8.625),(3.75,8.625),(3.75,6.375),(3.25,6.375)), + ((3.25,6.485),(3.25,8.515),(3.75,8.515),(3.75,6.485),(3.25,6.485)), ) createRL( tech, net, 'psdm', @@ -5748,10 +5696,6 @@ def _load(): tech, net, 'psdm', ((3.55,6.375),(3.55,8.625),(4.45,8.625),(4.45,6.375),(3.55,6.375)), ) - createRL( - tech, net, 'psdm', - ((3.25,0.425),(3.25,0.975),(3.75,0.975),(3.75,0.425),(3.25,0.425)), - ) createRL( tech, net, 'nsdm', ((2.855,1.43),(2.855,3.57),(3.145,3.57),(3.145,1.43),(2.855,1.43)), @@ -5770,7 +5714,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -5778,7 +5722,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,1.375),(0.25,3.625),(0.75,3.625),(0.75,1.375),(0.25,1.375)), + ((0.25,1.485),(0.25,3.515),(0.75,3.515),(0.75,1.485),(0.25,1.485)), ) createRL( tech, net, 'nsdm', @@ -5786,7 +5730,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,8.925),(3.25,9.475),(3.75,9.475),(3.75,8.925),(3.25,8.925)), + ((3.25,8.87),(3.25,9.53),(3.75,9.53),(3.75,8.87),(3.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -5794,7 +5738,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,1.375),(2.25,3.625),(2.75,3.625),(2.75,1.375),(2.25,1.375)), + ((2.25,1.485),(2.25,3.515),(2.75,3.515),(2.75,1.485),(2.25,1.485)), ) createRL( tech, net, 'nsdm', @@ -5850,7 +5794,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,1.375),(4.25,3.625),(4.75,3.625),(4.75,1.375),(4.25,1.375)), + ((4.25,1.485),(4.25,3.515),(4.75,3.515),(4.75,1.485),(4.25,1.485)), ) net = nets['nq'] createRL( @@ -5887,7 +5831,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,6.5),(3.375,8.5),(3.625,8.5),(3.625,6.5),(3.375,6.5)), + ((3.375,6.61),(3.375,8.39),(3.625,8.39),(3.625,6.61),(3.375,6.61)), ) createRL( tech, net, 'difftap', @@ -5899,7 +5843,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,1.5),(4.375,3.5),(4.625,3.5),(4.625,1.5),(4.375,1.5)), + ((4.375,1.61),(4.375,3.39),(4.625,3.39),(4.625,1.61),(4.375,1.61)), ) createRL( tech, net, 'li', @@ -5907,19 +5851,19 @@ def _load(): ) createRL( tech, net, 'li', - ((2.015,4.335),(2.015,4.665),(2.185,4.665),(2.185,4.335),(2.015,4.335)), + ((3.415,6.655),(3.415,8.345),(3.585,8.345),(3.585,6.655),(3.415,6.655)), ) createRL( tech, net, 'li', - ((3.415,6.48),(3.415,8.52),(3.585,8.52),(3.585,6.48),(3.415,6.48)), + ((2.015,4.335),(2.015,4.665),(2.185,4.665),(2.185,4.335),(2.015,4.335)), ) createRL( tech, net, 'li', - ((2.015,4.415),(2.015,4.585),(3.0,4.585),(3.0,4.415),(2.015,4.415)), + ((2.5,4.415),(2.5,4.585),(3.0,4.585),(3.0,4.415),(2.5,4.415)), ) createRL( tech, net, 'li', - ((2.5,4.415),(2.5,4.585),(3.0,4.585),(3.0,4.415),(2.5,4.415)), + ((2.015,4.415),(2.015,4.585),(3.0,4.585),(3.0,4.415),(2.015,4.415)), ) createRL( tech, net, 'li', @@ -5931,7 +5875,7 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,1.48),(4.415,3.52),(4.585,3.52),(4.585,1.48),(4.415,1.48)), + ((4.415,1.655),(4.415,3.345),(4.585,3.345),(4.585,1.655),(4.415,1.655)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -5945,55 +5889,47 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,6.565),(3.415,6.735),(3.585,6.735),(3.585,6.565),(3.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((3.415,6.905),(3.415,7.075),(3.585,7.075),(3.585,6.905),(3.415,6.905)), - ) - createRL( - tech, net, 'licon', - ((3.415,7.245),(3.415,7.415),(3.585,7.415),(3.585,7.245),(3.415,7.245)), + ((2.015,4.415),(2.015,4.585),(2.185,4.585),(2.185,4.415),(2.015,4.415)), ) createRL( tech, net, 'licon', - ((3.415,7.585),(3.415,7.755),(3.585,7.755),(3.585,7.585),(3.415,7.585)), + ((4.415,1.735),(4.415,1.905),(4.585,1.905),(4.585,1.735),(4.415,1.735)), ) createRL( tech, net, 'licon', - ((3.415,7.925),(3.415,8.095),(3.585,8.095),(3.585,7.925),(3.415,7.925)), + ((4.415,2.075),(4.415,2.245),(4.585,2.245),(4.585,2.075),(4.415,2.075)), ) createRL( tech, net, 'licon', - ((3.415,8.265),(3.415,8.435),(3.585,8.435),(3.585,8.265),(3.415,8.265)), + ((4.415,2.415),(4.415,2.585),(4.585,2.585),(4.585,2.415),(4.415,2.415)), ) createRL( tech, net, 'licon', - ((4.415,1.565),(4.415,1.735),(4.585,1.735),(4.585,1.565),(4.415,1.565)), + ((4.415,2.755),(4.415,2.925),(4.585,2.925),(4.585,2.755),(4.415,2.755)), ) createRL( tech, net, 'licon', - ((4.415,1.905),(4.415,2.075),(4.585,2.075),(4.585,1.905),(4.415,1.905)), + ((4.415,3.095),(4.415,3.265),(4.585,3.265),(4.585,3.095),(4.415,3.095)), ) createRL( tech, net, 'licon', - ((4.415,2.245),(4.415,2.415),(4.585,2.415),(4.585,2.245),(4.415,2.245)), + ((3.415,6.735),(3.415,6.905),(3.585,6.905),(3.585,6.735),(3.415,6.735)), ) createRL( tech, net, 'licon', - ((4.415,2.585),(4.415,2.755),(4.585,2.755),(4.585,2.585),(4.415,2.585)), + ((3.415,7.075),(3.415,7.245),(3.585,7.245),(3.585,7.075),(3.415,7.075)), ) createRL( tech, net, 'licon', - ((4.415,2.925),(4.415,3.095),(4.585,3.095),(4.585,2.925),(4.415,2.925)), + ((3.415,7.415),(3.415,7.585),(3.585,7.585),(3.585,7.415),(3.415,7.415)), ) createRL( tech, net, 'licon', - ((4.415,3.265),(4.415,3.435),(4.585,3.435),(4.585,3.265),(4.415,3.265)), + ((3.415,7.755),(3.415,7.925),(3.585,7.925),(3.585,7.755),(3.415,7.755)), ) createRL( tech, net, 'licon', - ((2.015,4.415),(2.015,4.585),(2.185,4.585),(2.185,4.415),(2.015,4.415)), + ((3.415,8.095),(3.415,8.265),(3.585,8.265),(3.585,8.095),(3.415,8.095)), ) net = nets['_net1'] createRL( @@ -6023,7 +5959,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,0.55),(3.375,0.85),(3.625,0.85),(3.625,0.55),(3.375,0.55)), + ((3.375,0.495),(3.375,0.905),(3.625,0.905),(3.625,0.495),(3.375,0.495)), ) createRL( tech, net, 'difftap', @@ -6031,7 +5967,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,0.55),(1.375,0.85),(1.625,0.85),(1.625,0.55),(1.375,0.55)), + ((1.375,0.495),(1.375,0.905),(1.625,0.905),(1.625,0.495),(1.375,0.495)), ) createRL( tech, net, 'difftap', @@ -6055,7 +5991,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,1.5),(2.375,3.5),(2.625,3.5),(2.625,1.5),(2.375,1.5)), + ((2.375,1.61),(2.375,3.39),(2.625,3.39),(2.625,1.61),(2.375,1.61)), ) createRL( tech, net, 'difftap', @@ -6075,7 +6011,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,1.03),(2.415,1.65),(2.585,1.65),(2.585,1.03),(2.415,1.03)), + ((2.415,1.03),(2.415,1.825),(2.585,1.825),(2.585,1.03),(2.415,1.03)), ) createRL( tech, net, 'li', @@ -6087,7 +6023,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,1.48),(2.415,3.52),(2.585,3.52),(2.585,1.48),(2.415,1.48)), + ((2.415,1.655),(2.415,3.345),(2.585,3.345),(2.585,1.655),(2.415,1.655)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -6109,27 +6045,23 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.415,1.565),(2.415,1.735),(2.585,1.735),(2.585,1.565),(2.415,1.565)), - ) - createRL( - tech, net, 'licon', - ((2.415,1.905),(2.415,2.075),(2.585,2.075),(2.585,1.905),(2.415,1.905)), + ((2.415,1.735),(2.415,1.905),(2.585,1.905),(2.585,1.735),(2.415,1.735)), ) createRL( tech, net, 'licon', - ((2.415,2.245),(2.415,2.415),(2.585,2.415),(2.585,2.245),(2.415,2.245)), + ((2.415,2.075),(2.415,2.245),(2.585,2.245),(2.585,2.075),(2.415,2.075)), ) createRL( tech, net, 'licon', - ((2.415,2.585),(2.415,2.755),(2.585,2.755),(2.585,2.585),(2.415,2.585)), + ((2.415,2.415),(2.415,2.585),(2.585,2.585),(2.585,2.415),(2.415,2.415)), ) createRL( tech, net, 'licon', - ((2.415,2.925),(2.415,3.095),(2.585,3.095),(2.585,2.925),(2.415,2.925)), + ((2.415,2.755),(2.415,2.925),(2.585,2.925),(2.585,2.755),(2.415,2.755)), ) createRL( tech, net, 'licon', - ((2.415,3.265),(2.415,3.435),(2.585,3.435),(2.585,3.265),(2.415,3.265)), + ((2.415,3.095),(2.415,3.265),(2.585,3.265),(2.585,3.095),(2.415,3.095)), ) net = nets['nrst'] createRL( @@ -6257,8 +6189,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['nq'] createRL( tech, net, 'difftap', @@ -6274,7 +6206,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,1.46),(3.375,2.43),(3.625,2.43),(3.625,1.46),(3.375,1.46)), + ((3.375,1.37),(3.375,2.46),(3.625,2.46),(3.625,1.37),(3.375,1.37)), ) createRL( tech, net, 'difftap', @@ -6298,7 +6230,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,5.61),(3.375,7.61),(3.625,7.61),(3.625,5.61),(3.375,5.61)), + ((3.375,5.58),(3.375,7.7),(3.625,7.7),(3.625,5.58),(3.375,5.58)), ) createRL( tech, net, 'li', @@ -6314,7 +6246,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,1.44),(3.415,2.45),(3.585,2.45),(3.585,1.44),(3.415,1.44)), + ((3.415,1.41),(3.415,2.42),(3.585,2.42),(3.585,1.41),(3.415,1.41)), ) createRL( tech, net, 'li', @@ -6326,7 +6258,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,5.59),(3.415,7.63),(3.585,7.63),(3.585,5.59),(3.415,5.59)), + ((3.415,5.62),(3.415,7.66),(3.585,7.66),(3.585,5.62),(3.415,5.62)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -6340,52 +6272,52 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,1.52),(3.415,1.69),(3.585,1.69),(3.585,1.52),(3.415,1.52)), + ((3.415,5.705),(3.415,5.875),(3.585,5.875),(3.585,5.705),(3.415,5.705)), ) createRL( tech, net, 'licon', - ((3.415,1.86),(3.415,2.03),(3.585,2.03),(3.585,1.86),(3.415,1.86)), + ((3.415,6.045),(3.415,6.215),(3.585,6.215),(3.585,6.045),(3.415,6.045)), ) createRL( tech, net, 'licon', - ((3.415,2.2),(3.415,2.37),(3.585,2.37),(3.585,2.2),(3.415,2.2)), + ((3.415,6.385),(3.415,6.555),(3.585,6.555),(3.585,6.385),(3.415,6.385)), ) createRL( tech, net, 'licon', - ((3.415,5.675),(3.415,5.845),(3.585,5.845),(3.585,5.675),(3.415,5.675)), + ((3.415,6.725),(3.415,6.895),(3.585,6.895),(3.585,6.725),(3.415,6.725)), ) createRL( tech, net, 'licon', - ((3.415,6.015),(3.415,6.185),(3.585,6.185),(3.585,6.015),(3.415,6.015)), + ((3.415,7.065),(3.415,7.235),(3.585,7.235),(3.585,7.065),(3.415,7.065)), ) createRL( tech, net, 'licon', - ((3.415,6.355),(3.415,6.525),(3.585,6.525),(3.585,6.355),(3.415,6.355)), + ((3.415,7.405),(3.415,7.575),(3.585,7.575),(3.585,7.405),(3.415,7.405)), ) createRL( tech, net, 'licon', - ((3.415,6.695),(3.415,6.865),(3.585,6.865),(3.585,6.695),(3.415,6.695)), + ((3.415,1.49),(3.415,1.66),(3.585,1.66),(3.585,1.49),(3.415,1.49)), ) createRL( tech, net, 'licon', - ((3.415,7.035),(3.415,7.205),(3.585,7.205),(3.585,7.035),(3.415,7.035)), + ((3.415,1.83),(3.415,2.0),(3.585,2.0),(3.585,1.83),(3.415,1.83)), ) createRL( tech, net, 'licon', - ((3.415,7.375),(3.415,7.545),(3.585,7.545),(3.585,7.375),(3.415,7.375)), + ((3.415,2.17),(3.415,2.34),(3.585,2.34),(3.585,2.17),(3.415,2.17)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((5.375,8.845),(5.375,9.475),(5.625,9.475),(5.625,8.845),(5.375,8.845)), + ((6.375,8.995),(6.375,9.405),(6.625,9.405),(6.625,8.995),(6.375,8.995)), ) createRL( tech, net, 'difftap', - ((5.375,6.5),(5.375,8.5),(5.575,8.5),(5.575,6.5),(5.375,6.5)), + ((5.375,8.925),(5.375,9.335),(5.625,9.335),(5.625,8.925),(5.375,8.925)), ) createRL( tech, net, 'difftap', - ((1.375,8.845),(1.375,9.475),(1.625,9.475),(1.625,8.845),(1.375,8.845)), + ((5.375,6.5),(5.375,8.5),(5.575,8.5),(5.575,6.5),(5.375,6.5)), ) createRL( tech, net, 'difftap', @@ -6395,6 +6327,10 @@ def _load(): tech, net, 'difftap', ((5.575,6.5),(5.575,8.5),(5.825,8.5),(5.825,6.5),(5.575,6.5)), ) + createRL( + tech, net, 'difftap', + ((1.375,8.925),(1.375,9.335),(1.625,9.335),(1.625,8.925),(1.375,8.925)), + ) createRL( tech, net, 'difftap', ((5.075,5.5),(5.075,9.5),(5.325,9.5),(5.325,5.5),(5.075,5.5)), @@ -6405,7 +6341,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,9.475),(1.625,9.475),(1.625,6.5),(1.375,6.5)), + ((1.375,6.5),(1.375,9.335),(1.625,9.335),(1.625,6.5),(1.375,6.5)), ) createRL( tech, net, 'difftap', @@ -6413,15 +6349,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.675,5.5),(1.675,9.5),(1.925,9.5),(1.925,5.5),(1.675,5.5)), + ((0.375,8.995),(0.375,9.405),(0.625,9.405),(0.625,8.995),(0.375,8.995)), ) createRL( tech, net, 'difftap', - ((1.375,5.5),(1.375,9.5),(1.675,9.5),(1.675,5.5),(1.375,5.5)), + ((1.675,5.5),(1.675,9.5),(1.925,9.5),(1.925,5.5),(1.675,5.5)), ) createRL( tech, net, 'difftap', - ((6.375,9.05),(6.375,9.35),(6.625,9.35),(6.625,9.05),(6.375,9.05)), + ((1.375,5.5),(1.375,9.5),(1.675,9.5),(1.675,5.5),(1.375,5.5)), ) createRL( tech, net, 'difftap', @@ -6433,7 +6369,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), + ((3.925,5.5),(3.925,9.5),(4.075,9.5),(4.075,5.5),(3.925,5.5)), ) createRL( tech, net, 'difftap', @@ -6441,7 +6377,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.925,5.5),(3.925,9.5),(4.075,9.5),(4.075,5.5),(3.925,5.5)), + ((1.075,6.5),(1.075,8.5),(1.325,8.5),(1.325,6.5),(1.075,6.5)), ) createRL( tech, net, 'difftap', @@ -6449,23 +6385,19 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.375,6.5),(5.375,9.475),(5.625,9.475),(5.625,6.5),(5.375,6.5)), + ((5.375,6.5),(5.375,9.335),(5.625,9.335),(5.625,6.5),(5.375,6.5)), ) createRL( tech, net, 'difftap', ((0.35,9.0),(0.35,9.5),(0.65,9.5),(0.65,9.0),(0.35,9.0)), ) - createRL( - tech, net, 'difftap', - ((0.375,9.05),(0.375,9.35),(0.625,9.35),(0.625,9.05),(0.375,9.05)), - ) createRL( tech, net, 'difftap', ((1.925,5.5),(1.925,9.5),(2.075,9.5),(2.075,5.5),(1.925,5.5)), ) createRL( tech, net, 'nwm', - ((6.195,8.87),(6.195,9.53),(6.805,9.53),(6.805,8.87),(6.195,8.87)), + ((6.195,8.815),(6.195,9.585),(6.805,9.585),(6.805,8.815),(6.195,8.815)), ) createRL( tech, net, 'nwm', @@ -6473,7 +6405,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((5.195,8.665),(5.195,9.655),(5.805,9.655),(5.805,8.665),(5.195,8.665)), + ((5.195,8.745),(5.195,9.515),(5.805,9.515),(5.805,8.745),(5.195,8.745)), ) createRL( tech, net, 'nwm', @@ -6481,7 +6413,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,7.655),(2.195,8.645),(2.805,8.645),(2.805,7.655),(2.195,7.655)), + ((2.195,7.595),(2.195,8.705),(2.805,8.705),(2.805,7.595),(2.195,7.595)), ) createRL( tech, net, 'nwm', @@ -6493,7 +6425,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.665),(1.195,9.655),(1.805,9.655),(1.805,8.665),(1.195,8.665)), + ((1.195,8.745),(1.195,9.515),(1.805,9.515),(1.805,8.745),(1.195,8.745)), ) createRL( tech, net, 'nwm', @@ -6505,7 +6437,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,6.32),(1.195,9.655),(1.805,9.655),(1.805,6.32),(1.195,6.32)), + ((1.195,6.32),(1.195,9.515),(1.805,9.515),(1.805,6.32),(1.195,6.32)), ) createRL( tech, net, 'nwm', @@ -6513,11 +6445,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.17,8.82),(0.17,9.68),(0.83,9.68),(0.83,8.82),(0.17,8.82)), + ((0.195,8.815),(0.195,9.585),(0.805,9.585),(0.805,8.815),(0.195,8.815)), ) createRL( tech, net, 'nwm', - ((0.195,8.87),(0.195,9.53),(0.805,9.53),(0.805,8.87),(0.195,8.87)), + ((0.17,8.82),(0.17,9.68),(0.83,9.68),(0.83,8.82),(0.17,8.82)), ) createRL( tech, net, 'nwm', @@ -6529,7 +6461,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,5.43),(3.195,7.79),(3.805,7.79),(3.805,5.43),(3.195,5.43)), + ((3.195,5.4),(3.195,7.88),(3.805,7.88),(3.805,5.4),(3.195,5.4)), ) createRL( tech, net, 'nwm', @@ -6541,11 +6473,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,5.37),(4.195,8.74),(4.805,8.74),(4.805,5.37),(4.195,5.37)), + ((4.195,5.34),(4.195,8.83),(4.805,8.83),(4.805,5.34),(4.195,5.34)), ) createRL( tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.805,8.68),(0.805,6.32),(0.195,6.32)), + ((0.195,6.43),(0.195,8.57),(0.805,8.57),(0.805,6.43),(0.195,6.43)), ) createRL( tech, net, 'nwm', @@ -6553,7 +6485,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,6.32),(6.195,8.68),(6.805,8.68),(6.805,6.32),(6.195,6.32)), + ((6.195,6.43),(6.195,8.57),(6.805,8.57),(6.805,6.43),(6.195,6.43)), ) createRL( tech, net, 'nwm', @@ -6569,7 +6501,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((5.195,6.32),(5.195,9.655),(5.805,9.655),(5.805,6.32),(5.195,6.32)), + ((5.195,6.32),(5.195,9.515),(5.805,9.515),(5.805,6.32),(5.195,6.32)), ) createRL( tech, net, 'nwm', @@ -6597,11 +6529,11 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,8.825),(5.415,9.495),(5.585,9.495),(5.585,8.825),(5.415,8.825)), + ((5.415,8.965),(5.415,9.295),(5.585,9.295),(5.585,8.965),(5.415,8.965)), ) createRL( tech, net, 'li', - ((1.415,8.825),(1.415,9.495),(1.585,9.495),(1.585,8.825),(1.415,8.825)), + ((1.415,8.965),(1.415,9.295),(1.585,9.295),(1.585,8.965),(1.415,8.965)), ) createRL( tech, net, 'li', @@ -6623,11 +6555,7 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,8.905),(1.415,9.075),(1.585,9.075),(1.585,8.905),(1.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((1.415,9.245),(1.415,9.415),(1.585,9.415),(1.585,9.245),(1.415,9.245)), + ((1.415,9.045),(1.415,9.215),(1.585,9.215),(1.585,9.045),(1.415,9.045)), ) createRL( tech, net, 'licon', @@ -6635,11 +6563,7 @@ def _load(): ) createRL( tech, net, 'licon', - ((5.415,8.905),(5.415,9.075),(5.585,9.075),(5.585,8.905),(5.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((5.415,9.245),(5.415,9.415),(5.585,9.415),(5.585,9.245),(5.415,9.245)), + ((5.415,9.045),(5.415,9.215),(5.585,9.215),(5.585,9.045),(5.415,9.045)), ) createRL( tech, net, 'licon', @@ -6656,15 +6580,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,5.55),(4.375,8.56),(4.625,8.56),(4.625,5.55),(4.375,5.55)), + ((4.075,5.5),(4.075,9.5),(4.325,9.5),(4.325,5.5),(4.075,5.5)), ) createRL( tech, net, 'difftap', - ((2.375,7.835),(2.375,8.465),(2.625,8.465),(2.625,7.835),(2.375,7.835)), + ((2.375,7.775),(2.375,8.525),(2.625,8.525),(2.625,7.775),(2.375,7.775)), ) createRL( tech, net, 'difftap', - ((4.075,5.5),(4.075,9.5),(4.325,9.5),(4.325,5.5),(4.075,5.5)), + ((4.375,5.52),(4.375,8.65),(4.625,8.65),(4.625,5.52),(4.375,5.52)), ) createRL( tech, net, 'difftap', @@ -6696,39 +6620,39 @@ def _load(): ) createRL( tech, net, 'licon', - ((4.415,5.61),(4.415,5.78),(4.585,5.78),(4.585,5.61),(4.415,5.61)), + ((4.415,5.64),(4.415,5.81),(4.585,5.81),(4.585,5.64),(4.415,5.64)), ) createRL( tech, net, 'licon', - ((4.415,5.95),(4.415,6.12),(4.585,6.12),(4.585,5.95),(4.415,5.95)), + ((4.415,5.98),(4.415,6.15),(4.585,6.15),(4.585,5.98),(4.415,5.98)), ) createRL( tech, net, 'licon', - ((4.415,6.29),(4.415,6.46),(4.585,6.46),(4.585,6.29),(4.415,6.29)), + ((4.415,6.32),(4.415,6.49),(4.585,6.49),(4.585,6.32),(4.415,6.32)), ) createRL( tech, net, 'licon', - ((4.415,6.63),(4.415,6.8),(4.585,6.8),(4.585,6.63),(4.415,6.63)), + ((4.415,6.66),(4.415,6.83),(4.585,6.83),(4.585,6.66),(4.415,6.66)), ) createRL( tech, net, 'licon', - ((4.415,6.97),(4.415,7.14),(4.585,7.14),(4.585,6.97),(4.415,6.97)), + ((4.415,7.0),(4.415,7.17),(4.585,7.17),(4.585,7.0),(4.415,7.0)), ) createRL( tech, net, 'licon', - ((4.415,7.31),(4.415,7.48),(4.585,7.48),(4.585,7.31),(4.415,7.31)), + ((4.415,7.34),(4.415,7.51),(4.585,7.51),(4.585,7.34),(4.415,7.34)), ) createRL( tech, net, 'licon', - ((4.415,7.65),(4.415,7.82),(4.585,7.82),(4.585,7.65),(4.415,7.65)), + ((4.415,7.68),(4.415,7.85),(4.585,7.85),(4.585,7.68),(4.415,7.68)), ) createRL( tech, net, 'licon', - ((4.415,7.99),(4.415,8.16),(4.585,8.16),(4.585,7.99),(4.415,7.99)), + ((4.415,8.02),(4.415,8.19),(4.585,8.19),(4.585,8.02),(4.415,8.02)), ) createRL( tech, net, 'licon', - ((4.415,8.33),(4.415,8.5),(4.585,8.5),(4.585,8.33),(4.415,8.33)), + ((4.415,8.36),(4.415,8.53),(4.585,8.53),(4.585,8.36),(4.415,8.36)), ) createRL( tech, net, 'li', @@ -6744,7 +6668,7 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,5.53),(4.415,8.58),(4.585,8.58),(4.585,5.53),(4.415,5.53)), + ((4.415,5.56),(4.415,8.61),(4.585,8.61),(4.585,5.56),(4.415,5.56)), ) createRL( tech, net, 'li', @@ -6753,11 +6677,11 @@ def _load(): net = nets['*'] createRL( tech, net, 'psdm', - ((5.25,8.72),(5.25,9.6),(5.75,9.6),(5.75,8.72),(5.25,8.72)), + ((5.25,8.8),(5.25,9.46),(5.75,9.46),(5.75,8.8),(5.25,8.8)), ) createRL( tech, net, 'psdm', - ((2.25,7.71),(2.25,8.59),(2.75,8.59),(2.75,7.71),(2.25,7.71)), + ((2.25,7.65),(2.25,8.65),(2.75,8.65),(2.75,7.65),(2.25,7.65)), ) createRL( tech, net, 'psdm', @@ -6765,7 +6689,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,8.72),(1.25,9.6),(1.75,9.6),(1.75,8.72),(1.25,8.72)), + ((1.25,8.8),(1.25,9.46),(1.75,9.46),(1.75,8.8),(1.25,8.8)), ) createRL( tech, net, 'psdm', @@ -6789,19 +6713,27 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,9.6),(1.75,9.6),(1.75,6.375),(1.25,6.375)), + ((1.25,6.375),(1.25,9.46),(1.75,9.46),(1.75,6.375),(1.25,6.375)), + ) + createRL( + tech, net, 'psdm', + ((1.855,5.43),(1.855,9.57),(2.145,9.57),(2.145,5.43),(1.855,5.43)), ) createRL( tech, net, 'psdm', ((4.55,5.375),(4.55,9.625),(5.45,9.625),(5.45,5.375),(4.55,5.375)), ) + createRL( + tech, net, 'psdm', + ((6.225,0.275),(6.225,1.025),(6.775,1.025),(6.775,0.275),(6.225,0.275)), + ) createRL( tech, net, 'psdm', ((4.855,5.43),(4.855,9.57),(5.145,9.57),(5.145,5.43),(4.855,5.43)), ) createRL( tech, net, 'psdm', - ((6.225,0.275),(6.225,1.025),(6.775,1.025),(6.775,0.275),(6.225,0.275)), + ((6.25,0.37),(6.25,1.03),(6.75,1.03),(6.75,0.37),(6.25,0.37)), ) createRL( tech, net, 'psdm', @@ -6817,7 +6749,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,5.485),(3.25,7.735),(3.75,7.735),(3.75,5.485),(3.25,5.485)), + ((3.25,5.455),(3.25,7.825),(3.75,7.825),(3.75,5.455),(3.25,5.455)), ) createRL( tech, net, 'psdm', @@ -6833,36 +6765,32 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.225,0.275),(0.225,1.025),(0.775,1.025),(0.775,0.275),(0.225,0.275)), + ((0.25,0.37),(0.25,1.03),(0.75,1.03),(0.75,0.37),(0.25,0.37)), ) createRL( tech, net, 'psdm', - ((4.25,5.425),(4.25,8.685),(4.75,8.685),(4.75,5.425),(4.25,5.425)), + ((0.225,0.275),(0.225,1.025),(0.775,1.025),(0.775,0.275),(0.225,0.275)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.75,8.625),(0.75,6.375),(0.25,6.375)), + ((4.25,5.395),(4.25,8.775),(4.75,8.775),(4.75,5.395),(4.25,5.395)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), + ((0.25,6.485),(0.25,8.515),(0.75,8.515),(0.75,6.485),(0.25,6.485)), ) createRL( tech, net, 'psdm', - ((6.25,0.425),(6.25,0.975),(6.75,0.975),(6.75,0.425),(6.25,0.425)), + ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), ) createRL( tech, net, 'psdm', - ((6.25,6.375),(6.25,8.625),(6.75,8.625),(6.75,6.375),(6.25,6.375)), + ((6.25,6.485),(6.25,8.515),(6.75,8.515),(6.75,6.485),(6.25,6.485)), ) createRL( tech, net, 'psdm', ((6.1,6.375),(6.1,8.625),(6.75,8.625),(6.75,6.375),(6.1,6.375)), ) - createRL( - tech, net, 'psdm', - ((1.55,5.375),(1.55,9.625),(2.45,9.625),(2.45,5.375),(1.55,5.375)), - ) createRL( tech, net, 'psdm', ((3.2,5.375),(3.2,9.625),(3.75,9.625),(3.75,5.375),(3.2,5.375)), @@ -6873,7 +6801,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((5.25,6.375),(5.25,9.6),(5.75,9.6),(5.75,6.375),(5.25,6.375)), + ((5.25,6.375),(5.25,9.46),(5.75,9.46),(5.75,6.375),(5.25,6.375)), ) createRL( tech, net, 'psdm', @@ -6883,10 +6811,6 @@ def _load(): tech, net, 'psdm', ((2.25,5.375),(2.25,9.625),(2.8,9.625),(2.8,5.375),(2.25,5.375)), ) - createRL( - tech, net, 'psdm', - ((0.25,0.425),(0.25,0.975),(0.75,0.975),(0.75,0.425),(0.25,0.425)), - ) createRL( tech, net, 'psdm', ((4.2,5.375),(4.2,9.625),(4.75,9.625),(4.75,5.375),(4.2,5.375)), @@ -6897,7 +6821,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.855,5.43),(1.855,9.57),(2.145,9.57),(2.145,5.43),(1.855,5.43)), + ((1.55,5.375),(1.55,9.625),(2.45,9.625),(2.45,5.375),(1.55,5.375)), ) createRL( tech, net, 'nsdm', @@ -6917,11 +6841,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((6.25,8.925),(6.25,9.475),(6.75,9.475),(6.75,8.925),(6.25,8.925)), + ((6.225,8.875),(6.225,9.625),(6.775,9.625),(6.775,8.875),(6.225,8.875)), ) createRL( tech, net, 'nsdm', - ((6.225,8.875),(6.225,9.625),(6.775,9.625),(6.775,8.875),(6.225,8.875)), + ((6.25,8.87),(6.25,9.53),(6.75,9.53),(6.75,8.87),(6.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -6933,28 +6857,24 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,0.475),(1.25,2.625),(1.8,2.625),(1.8,0.475),(1.25,0.475)), + ((1.25,0.59),(1.25,2.625),(1.75,2.625),(1.75,0.59),(1.25,0.59)), ) createRL( tech, net, 'nsdm', - ((1.25,0.615),(1.25,2.625),(1.75,2.625),(1.75,0.615),(1.25,0.615)), + ((1.25,0.475),(1.25,2.625),(1.8,2.625),(1.8,0.475),(1.25,0.475)), ) createRL( tech, net, 'nsdm', - ((1.25,0.615),(1.25,1.165),(1.75,1.165),(1.75,0.615),(1.25,0.615)), + ((1.25,0.59),(1.25,1.25),(1.75,1.25),(1.75,0.59),(1.25,0.59)), ) createRL( tech, net, 'nsdm', - ((0.25,1.39),(0.25,2.61),(0.75,2.61),(0.75,1.39),(0.25,1.39)), + ((0.25,8.87),(0.25,9.53),(0.75,9.53),(0.75,8.87),(0.25,8.87)), ) createRL( tech, net, 'nsdm', ((0.225,8.875),(0.225,9.625),(0.775,9.625),(0.775,8.875),(0.225,8.875)), ) - createRL( - tech, net, 'nsdm', - ((0.25,8.925),(0.25,9.475),(0.75,9.475),(0.75,8.925),(0.25,8.925)), - ) createRL( tech, net, 'nsdm', ((3.2,0.475),(3.2,2.625),(3.75,2.625),(3.75,0.475),(3.2,0.475)), @@ -6969,7 +6889,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.2,0.475),(4.2,2.625),(4.7,2.625),(4.7,0.475),(4.2,0.475)), + ((0.25,1.5),(0.25,2.5),(0.75,2.5),(0.75,1.5),(0.25,1.5)), + ) + createRL( + tech, net, 'nsdm', + ((4.3,0.475),(4.3,2.625),(4.8,2.625),(4.8,0.475),(4.3,0.475)), ) createRL( tech, net, 'nsdm', @@ -7001,11 +6925,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,1.335),(3.25,2.555),(3.75,2.555),(3.75,1.335),(3.25,1.335)), + ((3.25,1.245),(3.25,2.585),(3.75,2.585),(3.75,1.245),(3.25,1.245)), ) createRL( tech, net, 'nsdm', - ((6.25,1.39),(6.25,2.61),(6.75,2.61),(6.75,1.39),(6.25,1.39)), + ((6.25,1.5),(6.25,2.5),(6.75,2.5),(6.75,1.5),(6.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -7033,15 +6957,15 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((5.25,0.615),(5.25,2.625),(5.75,2.625),(5.75,0.615),(5.25,0.615)), + ((5.25,0.59),(5.25,2.625),(5.75,2.625),(5.75,0.59),(5.25,0.59)), ) createRL( tech, net, 'nsdm', - ((5.25,0.615),(5.25,1.165),(5.75,1.165),(5.75,0.615),(5.25,0.615)), + ((5.25,0.59),(5.25,1.25),(5.75,1.25),(5.75,0.59),(5.25,0.59)), ) createRL( tech, net, 'nsdm', - ((4.3,0.475),(4.3,2.625),(4.8,2.625),(4.8,0.475),(4.3,0.475)), + ((4.2,0.475),(4.2,2.625),(4.7,2.625),(4.7,0.475),(4.2,0.475)), ) createRL( tech, net, 'nsdm', @@ -7074,7 +6998,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.625,8.5),(0.625,6.5),(0.375,6.5)), + ((0.375,6.61),(0.375,8.39),(0.625,8.39),(0.625,6.61),(0.375,6.61)), ) createRL( tech, net, 'difftap', @@ -7090,7 +7014,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.515),(0.375,2.485),(0.625,2.485),(0.625,1.515),(0.375,1.515)), + ((0.375,1.625),(0.375,2.375),(0.625,2.375),(0.625,1.625),(0.375,1.625)), ) createRL( tech, net, 'licon', @@ -7098,39 +7022,31 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.415,6.565),(0.415,6.735),(0.585,6.735),(0.585,6.565),(0.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((0.415,6.905),(0.415,7.075),(0.585,7.075),(0.585,6.905),(0.415,6.905)), + ((0.415,1.745),(0.415,1.915),(0.585,1.915),(0.585,1.745),(0.415,1.745)), ) createRL( tech, net, 'licon', - ((0.415,7.245),(0.415,7.415),(0.585,7.415),(0.585,7.245),(0.415,7.245)), + ((0.415,2.085),(0.415,2.255),(0.585,2.255),(0.585,2.085),(0.415,2.085)), ) createRL( tech, net, 'licon', - ((0.415,7.585),(0.415,7.755),(0.585,7.755),(0.585,7.585),(0.415,7.585)), + ((0.415,6.735),(0.415,6.905),(0.585,6.905),(0.585,6.735),(0.415,6.735)), ) createRL( tech, net, 'licon', - ((0.415,7.925),(0.415,8.095),(0.585,8.095),(0.585,7.925),(0.415,7.925)), + ((0.415,7.075),(0.415,7.245),(0.585,7.245),(0.585,7.075),(0.415,7.075)), ) createRL( tech, net, 'licon', - ((0.415,8.265),(0.415,8.435),(0.585,8.435),(0.585,8.265),(0.415,8.265)), + ((0.415,7.415),(0.415,7.585),(0.585,7.585),(0.585,7.415),(0.415,7.415)), ) createRL( tech, net, 'licon', - ((0.415,1.575),(0.415,1.745),(0.585,1.745),(0.585,1.575),(0.415,1.575)), + ((0.415,7.755),(0.415,7.925),(0.585,7.925),(0.585,7.755),(0.415,7.755)), ) createRL( tech, net, 'licon', - ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((0.415,2.255),(0.415,2.425),(0.585,2.425),(0.585,2.255),(0.415,2.255)), + ((0.415,8.095),(0.415,8.265),(0.585,8.265),(0.585,8.095),(0.415,8.095)), ) createRL( tech, net, 'li', @@ -7138,15 +7054,15 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.495),(0.415,2.505),(0.585,2.505),(0.585,1.495),(0.415,1.495)), + ((0.415,1.665),(0.415,2.335),(0.585,2.335),(0.585,1.665),(0.415,1.665)), ) createRL( tech, net, 'li', - ((0.415,6.48),(0.415,8.52),(0.585,8.52),(0.585,6.48),(0.415,6.48)), + ((0.415,6.655),(0.415,8.345),(0.585,8.345),(0.585,6.655),(0.415,6.655)), ) createRL( tech, net, 'li', - ((0.415,2.335),(0.415,6.65),(0.585,6.65),(0.585,2.335),(0.415,2.335)), + ((0.415,2.165),(0.415,6.825),(0.585,6.825),(0.585,2.165),(0.415,2.165)), ) net = nets['vss'] createRL( @@ -7155,27 +7071,27 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.375,1.5),(5.375,2.5),(5.675,2.5),(5.675,1.5),(5.375,1.5)), + ((5.675,1.5),(5.675,2.5),(5.925,2.5),(5.925,1.5),(5.675,1.5)), ) createRL( tech, net, 'difftap', - ((5.675,1.5),(5.675,2.5),(5.925,2.5),(5.925,1.5),(5.675,1.5)), + ((5.375,1.5),(5.375,2.5),(5.675,2.5),(5.675,1.5),(5.375,1.5)), ) createRL( tech, net, 'difftap', - ((1.675,0.6),(1.675,2.5),(1.925,2.5),(1.925,0.6),(1.675,0.6)), + ((1.375,0.715),(1.375,2.5),(1.625,2.5),(1.625,0.715),(1.375,0.715)), ) createRL( tech, net, 'difftap', - ((1.375,0.74),(1.375,2.5),(1.625,2.5),(1.625,0.74),(1.375,0.74)), + ((1.375,0.6),(1.375,2.5),(1.675,2.5),(1.675,0.6),(1.375,0.6)), ) createRL( tech, net, 'difftap', - ((1.375,0.6),(1.375,2.5),(1.675,2.5),(1.675,0.6),(1.375,0.6)), + ((1.675,0.6),(1.675,2.5),(1.925,2.5),(1.925,0.6),(1.675,0.6)), ) createRL( tech, net, 'difftap', - ((1.375,0.74),(1.375,1.04),(1.625,1.04),(1.625,0.74),(1.375,0.74)), + ((1.375,0.715),(1.375,1.125),(1.625,1.125),(1.625,0.715),(1.375,0.715)), ) createRL( tech, net, 'difftap', @@ -7191,35 +7107,35 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,0.55),(6.375,0.85),(6.625,0.85),(6.625,0.55),(6.375,0.55)), + ((6.35,0.4),(6.35,0.9),(6.65,0.9),(6.65,0.4),(6.35,0.4)), ) createRL( tech, net, 'difftap', - ((6.35,0.4),(6.35,0.9),(6.65,0.9),(6.65,0.4),(6.35,0.4)), + ((6.375,0.495),(6.375,0.905),(6.625,0.905),(6.625,0.495),(6.375,0.495)), ) createRL( tech, net, 'difftap', - ((5.375,0.74),(5.375,2.5),(5.625,2.5),(5.625,0.74),(5.375,0.74)), + ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), ) createRL( tech, net, 'difftap', - ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), + ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), ) createRL( tech, net, 'difftap', - ((0.375,0.55),(0.375,0.85),(0.625,0.85),(0.625,0.55),(0.375,0.55)), + ((4.925,0.6),(4.925,2.5),(5.075,2.5),(5.075,0.6),(4.925,0.6)), ) createRL( tech, net, 'difftap', - ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), + ((5.075,0.6),(5.075,2.5),(5.325,2.5),(5.325,0.6),(5.075,0.6)), ) createRL( tech, net, 'difftap', - ((4.925,0.6),(4.925,2.5),(5.075,2.5),(5.075,0.6),(4.925,0.6)), + ((0.375,0.495),(0.375,0.905),(0.625,0.905),(0.625,0.495),(0.375,0.495)), ) createRL( tech, net, 'difftap', - ((5.375,0.74),(5.375,1.04),(5.625,1.04),(5.625,0.74),(5.375,0.74)), + ((5.375,0.715),(5.375,1.125),(5.625,1.125),(5.625,0.715),(5.375,0.715)), ) createRL( tech, net, 'difftap', @@ -7227,11 +7143,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.075,0.6),(5.075,2.5),(5.325,2.5),(5.325,0.6),(5.075,0.6)), + ((5.325,0.6),(5.325,2.5),(5.625,2.5),(5.625,0.6),(5.325,0.6)), ) createRL( tech, net, 'difftap', - ((5.325,0.6),(5.325,2.5),(5.625,2.5),(5.625,0.6),(5.325,0.6)), + ((5.375,0.715),(5.375,2.5),(5.625,2.5),(5.625,0.715),(5.375,0.715)), ) createRL( tech, net, 'difftap', @@ -7239,7 +7155,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,0.725),(1.415,1.055),(1.585,1.055),(1.585,0.725),(1.415,0.725)), + ((1.415,0.755),(1.415,1.085),(1.585,1.085),(1.585,0.755),(1.415,0.755)), ) createRL( tech, net, 'li', @@ -7251,7 +7167,7 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,0.725),(5.415,1.055),(5.585,1.055),(5.585,0.725),(5.415,0.725)), + ((5.415,0.755),(5.415,1.085),(5.585,1.085),(5.585,0.755),(5.415,0.755)), ) createRL( tech, net, 'li', @@ -7269,15 +7185,15 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.805),(1.415,0.975),(1.585,0.975),(1.585,0.805),(1.415,0.805)), + ((1.415,0.835),(1.415,1.005),(1.585,1.005),(1.585,0.835),(1.415,0.835)), ) createRL( tech, net, 'licon', - ((5.415,0.805),(5.415,0.975),(5.585,0.975),(5.585,0.805),(5.415,0.805)), + ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), ) createRL( tech, net, 'licon', - ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), + ((5.415,0.835),(5.415,1.005),(5.585,1.005),(5.585,0.835),(5.415,0.835)), ) createRL( tech, net, 'licon', @@ -7368,11 +7284,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,1.515),(6.375,2.485),(6.625,2.485),(6.625,1.515),(6.375,1.515)), + ((5.975,6.5),(5.975,8.5),(6.225,8.5),(6.225,6.5),(5.975,6.5)), ) createRL( tech, net, 'difftap', - ((5.975,6.5),(5.975,8.5),(6.225,8.5),(6.225,6.5),(5.975,6.5)), + ((6.325,1.5),(6.325,2.5),(6.625,2.5),(6.625,1.5),(6.325,1.5)), ) createRL( tech, net, 'difftap', @@ -7380,7 +7296,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,6.5),(6.375,8.5),(6.625,8.5),(6.625,6.5),(6.375,6.5)), + ((6.375,6.61),(6.375,8.39),(6.625,8.39),(6.625,6.61),(6.375,6.61)), ) createRL( tech, net, 'difftap', @@ -7388,7 +7304,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.325,1.5),(6.325,2.5),(6.625,2.5),(6.625,1.5),(6.325,1.5)), + ((6.375,1.625),(6.375,2.375),(6.625,2.375),(6.625,1.625),(6.375,1.625)), ) createRL( tech, net, 'licon', @@ -7396,43 +7312,35 @@ def _load(): ) createRL( tech, net, 'licon', - ((6.415,1.575),(6.415,1.745),(6.585,1.745),(6.585,1.575),(6.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((6.415,1.915),(6.415,2.085),(6.585,2.085),(6.585,1.915),(6.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((6.415,2.255),(6.415,2.425),(6.585,2.425),(6.585,2.255),(6.415,2.255)), + ((6.415,6.735),(6.415,6.905),(6.585,6.905),(6.585,6.735),(6.415,6.735)), ) createRL( tech, net, 'licon', - ((6.415,6.565),(6.415,6.735),(6.585,6.735),(6.585,6.565),(6.415,6.565)), + ((6.415,7.075),(6.415,7.245),(6.585,7.245),(6.585,7.075),(6.415,7.075)), ) createRL( tech, net, 'licon', - ((6.415,6.905),(6.415,7.075),(6.585,7.075),(6.585,6.905),(6.415,6.905)), + ((6.415,7.415),(6.415,7.585),(6.585,7.585),(6.585,7.415),(6.415,7.415)), ) createRL( tech, net, 'licon', - ((6.415,7.245),(6.415,7.415),(6.585,7.415),(6.585,7.245),(6.415,7.245)), + ((6.415,7.755),(6.415,7.925),(6.585,7.925),(6.585,7.755),(6.415,7.755)), ) createRL( tech, net, 'licon', - ((6.415,7.585),(6.415,7.755),(6.585,7.755),(6.585,7.585),(6.415,7.585)), + ((6.415,8.095),(6.415,8.265),(6.585,8.265),(6.585,8.095),(6.415,8.095)), ) createRL( tech, net, 'licon', - ((6.415,7.925),(6.415,8.095),(6.585,8.095),(6.585,7.925),(6.415,7.925)), + ((3.015,2.915),(3.015,3.085),(3.185,3.085),(3.185,2.915),(3.015,2.915)), ) createRL( tech, net, 'licon', - ((6.415,8.265),(6.415,8.435),(6.585,8.435),(6.585,8.265),(6.415,8.265)), + ((6.415,1.745),(6.415,1.915),(6.585,1.915),(6.585,1.745),(6.415,1.745)), ) createRL( tech, net, 'licon', - ((3.015,2.915),(3.015,3.085),(3.185,3.085),(3.185,2.915),(3.015,2.915)), + ((6.415,2.085),(6.415,2.255),(6.585,2.255),(6.585,2.085),(6.415,2.085)), ) createRL( tech, net, 'licon', @@ -7464,15 +7372,15 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,6.48),(6.415,8.52),(6.585,8.52),(6.585,6.48),(6.415,6.48)), + ((6.415,6.655),(6.415,8.345),(6.585,8.345),(6.585,6.655),(6.415,6.655)), ) createRL( tech, net, 'li', - ((6.415,1.495),(6.415,2.505),(6.585,2.505),(6.585,1.495),(6.415,1.495)), + ((6.415,1.665),(6.415,2.335),(6.585,2.335),(6.585,1.665),(6.415,1.665)), ) createRL( tech, net, 'li', - ((6.415,2.335),(6.415,6.65),(6.585,6.65),(6.585,2.335),(6.415,2.335)), + ((6.415,2.165),(6.415,6.825),(6.585,6.825),(6.585,2.165),(6.415,2.165)), ) createRL( tech, net, 'li', @@ -7485,11 +7393,11 @@ def _load(): ) createRL( tech, net, 'poly', - ((1.365,4.835),(1.365,5.165),(2.075,5.165),(2.075,4.835),(1.365,4.835)), + ((1.925,4.835),(1.925,5.37),(2.075,5.37),(2.075,4.835),(1.925,4.835)), ) createRL( tech, net, 'poly', - ((1.925,4.835),(1.925,5.37),(2.075,5.37),(2.075,4.835),(1.925,4.835)), + ((1.365,4.835),(1.365,5.165),(2.075,5.165),(2.075,4.835),(1.365,4.835)), ) createRL( tech, net, 'poly', @@ -7509,11 +7417,11 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.925,2.63),(0.925,3.165),(1.075,3.165),(1.075,2.63),(0.925,2.63)), + ((0.925,2.835),(0.925,3.165),(1.635,3.165),(1.635,2.835),(0.925,2.835)), ) createRL( tech, net, 'poly', - ((0.925,2.835),(0.925,3.165),(1.635,3.165),(1.635,2.835),(0.925,2.835)), + ((0.925,2.63),(0.925,3.165),(1.075,3.165),(1.075,2.63),(0.925,2.63)), ) createRL( tech, net, 'poly', @@ -7537,7 +7445,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,2.835),(1.415,3.165),(1.585,3.165),(1.585,2.835),(1.415,2.835)), + ((1.415,4.835),(1.415,5.165),(1.585,5.165),(1.585,4.835),(1.415,4.835)), ) createRL( tech, net, 'li', @@ -7545,7 +7453,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,4.835),(1.415,5.165),(1.585,5.165),(1.585,4.835),(1.415,4.835)), + ((1.415,2.835),(1.415,3.165),(1.585,3.165),(1.585,2.835),(1.415,2.835)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -7559,11 +7467,11 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,2.915),(1.415,3.085),(1.585,3.085),(1.585,2.915),(1.415,2.915)), + ((1.415,4.915),(1.415,5.085),(1.585,5.085),(1.585,4.915),(1.415,4.915)), ) createRL( tech, net, 'licon', - ((1.415,4.915),(1.415,5.085),(1.585,5.085),(1.585,4.915),(1.415,4.915)), + ((1.415,2.915),(1.415,3.085),(1.585,3.085),(1.585,2.915),(1.415,2.915)), ) net = nets['i1'] createRL( @@ -7692,106 +7600,150 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) - net = nets['vss'] + nets['vss'].setGlobal(True) + net = nets['vdd'] + createRL( + tech, net, 'difftap', + ((2.075,5.5),(2.075,8.5),(2.325,8.5),(2.325,5.5),(2.075,5.5)), + ) + createRL( + tech, net, 'difftap', + ((2.325,5.5),(2.325,8.5),(2.625,8.5),(2.625,5.5),(2.325,5.5)), + ) + createRL( + tech, net, 'difftap', + ((1.925,5.5),(1.925,8.5),(2.075,8.5),(2.075,5.5),(1.925,5.5)), + ) + createRL( + tech, net, 'difftap', + ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), + ) + createRL( + tech, net, 'difftap', + ((0.925,5.5),(0.925,8.5),(1.075,8.5),(1.075,5.5),(0.925,5.5)), + ) + createRL( + tech, net, 'difftap', + ((2.675,5.5),(2.675,9.5),(2.925,9.5),(2.925,5.5),(2.675,5.5)), + ) + createRL( + tech, net, 'difftap', + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), + ) + createRL( + tech, net, 'difftap', + ((2.375,5.5),(2.375,9.335),(2.625,9.335),(2.625,5.5),(2.375,5.5)), + ) + createRL( + tech, net, 'difftap', + ((2.925,5.5),(2.925,9.5),(3.075,9.5),(3.075,5.5),(2.925,5.5)), + ) + createRL( + tech, net, 'difftap', + ((2.375,5.5),(2.375,9.5),(2.675,9.5),(2.675,5.5),(2.375,5.5)), + ) createRL( tech, net, 'difftap', - ((1.925,1.5),(1.925,2.5),(2.075,2.5),(2.075,1.5),(1.925,1.5)), + ((2.375,8.925),(2.375,9.335),(2.625,9.335),(2.625,8.925),(2.375,8.925)), ) createRL( - tech, net, 'difftap', - ((0.925,1.5),(0.925,2.5),(1.075,2.5),(1.075,1.5),(0.925,1.5)), + tech, net, 'nwm', + ((0.195,5.32),(0.195,8.68),(0.855,8.68),(0.855,5.32),(0.195,5.32)), ) createRL( - tech, net, 'difftap', - ((0.375,0.75),(0.375,2.5),(0.625,2.5),(0.625,0.75),(0.375,0.75)), + tech, net, 'nwm', + ((2.145,5.32),(2.145,8.68),(2.805,8.68),(2.805,5.32),(2.145,5.32)), ) createRL( - tech, net, 'difftap', - ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), + tech, net, 'nwm', + ((0.495,5.32),(0.495,8.68),(1.505,8.68),(1.505,5.32),(0.495,5.32)), ) createRL( - tech, net, 'difftap', - ((2.075,1.5),(2.075,2.5),(2.325,2.5),(2.325,1.5),(2.075,1.5)), + tech, net, 'nwm', + ((1.495,5.32),(1.495,8.68),(2.505,8.68),(2.505,5.32),(1.495,5.32)), ) createRL( - tech, net, 'difftap', - ((0.375,0.75),(0.375,1.05),(0.625,1.05),(0.625,0.75),(0.375,0.75)), + tech, net, 'nwm', + ((-0.3,4.8),(-0.3,10.8),(4.3,10.8),(4.3,4.8),(-0.3,4.8)), ) createRL( - tech, net, 'difftap', - ((2.325,1.5),(2.325,2.5),(2.625,2.5),(2.625,1.5),(2.325,1.5)), + tech, net, 'nwm', + ((1.245,6.82),(1.245,8.18),(1.755,8.18),(1.755,6.82),(1.245,6.82)), ) createRL( - tech, net, 'difftap', - ((1.3,0.5),(1.3,0.9),(1.7,0.9),(1.7,0.5),(1.3,0.5)), + tech, net, 'nwm', + ((1.145,5.32),(1.145,8.68),(1.755,8.68),(1.755,5.32),(1.145,5.32)), ) createRL( - tech, net, 'difftap', - ((2.675,0.6),(2.675,2.5),(2.925,2.5),(2.925,0.6),(2.675,0.6)), + tech, net, 'nwm', + ((1.245,5.32),(1.245,8.68),(1.855,8.68),(1.855,5.32),(1.245,5.32)), ) createRL( - tech, net, 'difftap', - ((2.375,0.74),(2.375,2.5),(2.625,2.5),(2.625,0.74),(2.375,0.74)), + tech, net, 'nwm', + ((0.195,7.51),(0.195,8.62),(0.805,8.62),(0.805,7.51),(0.195,7.51)), ) createRL( - tech, net, 'difftap', - ((2.375,0.6),(2.375,2.5),(2.675,2.5),(2.675,0.6),(2.375,0.6)), + tech, net, 'nwm', + ((2.195,5.32),(2.195,9.515),(2.805,9.515),(2.805,5.32),(2.195,5.32)), ) createRL( - tech, net, 'difftap', - ((1.375,0.55),(1.375,0.85),(1.625,0.85),(1.625,0.55),(1.375,0.55)), + tech, net, 'nwm', + ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), ) createRL( - tech, net, 'difftap', - ((2.375,0.74),(2.375,1.04),(2.625,1.04),(2.625,0.74),(2.375,0.74)), + tech, net, 'nwm', + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), ) createRL( - tech, net, 'difftap', - ((0.675,1.5),(0.675,2.5),(0.925,2.5),(0.925,1.5),(0.675,1.5)), + tech, net, 'nwm', + ((2.495,5.32),(2.495,9.68),(3.505,9.68),(3.505,5.32),(2.495,5.32)), ) createRL( - tech, net, 'difftap', - ((0.375,1.5),(0.375,2.5),(0.675,2.5),(0.675,1.5),(0.375,1.5)), + tech, net, 'nwm', + ((2.195,5.32),(2.195,9.68),(2.855,9.68),(2.855,5.32),(2.195,5.32)), ) createRL( - tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(4.0,1.2),(4.0,0.0),(0.0,0.0)), + tech, net, 'nwm', + ((3.195,5.34),(3.195,8.83),(3.805,8.83),(3.805,5.34),(3.195,5.34)), + ) + createRL( + tech, net, 'nwm', + ((2.195,8.745),(2.195,9.515),(2.805,9.515),(2.805,8.745),(2.195,8.745)), + ) + createRL( + tech, net, 'nwm', + ((3.145,5.32),(3.145,9.68),(3.805,9.68),(3.805,5.32),(3.145,5.32)), ) createRL( tech, net, 'li', - ((1.415,0.535),(1.415,0.865),(1.585,0.865),(1.585,0.535),(1.415,0.535)), + ((0.0,8.8),(0.0,10.0),(4.0,10.0),(4.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'li', - ((0.415,0.735),(0.415,1.065),(0.585,1.065),(0.585,0.735),(0.415,0.735)), + ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), ) createRL( tech, net, 'li', - ((2.415,0.725),(2.415,1.055),(2.585,1.055),(2.585,0.725),(2.415,0.725)), + ((2.415,8.965),(2.415,9.295),(2.585,9.295),(2.585,8.965),(2.415,8.965)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.0), u(4.0), u(0.0), u(1.2), + u(2.0), u(4.0), u(8.8), u(10.0), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.0), u(4.0), u(0.0), u(1.2), + u(2.0), u(4.0), u(8.8), u(10.0), ) net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), - ) - createRL( - tech, net, 'licon', - ((0.415,0.815),(0.415,0.985),(0.585,0.985),(0.585,0.815),(0.415,0.815)), + ((2.415,9.045),(2.415,9.215),(2.585,9.215),(2.585,9.045),(2.415,9.045)), ) createRL( tech, net, 'licon', - ((2.415,0.805),(2.415,0.975),(2.585,0.975),(2.585,0.805),(2.415,0.805)), + ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), ) net = nets['q'] createRL( @@ -7804,11 +7756,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,1.46),(3.375,2.43),(3.625,2.43),(3.625,1.46),(3.375,1.46)), + ((3.375,1.37),(3.375,2.46),(3.625,2.46),(3.625,1.37),(3.375,1.37)), ) createRL( tech, net, 'difftap', - ((3.375,5.55),(3.375,8.56),(3.625,8.56),(3.625,5.55),(3.375,5.55)), + ((3.375,5.52),(3.375,8.65),(3.625,8.65),(3.625,5.52),(3.375,5.52)), ) createRL( tech, net, 'difftap', @@ -7820,7 +7772,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,5.53),(3.415,8.58),(3.585,8.58),(3.585,5.53),(3.415,5.53)), + ((3.415,5.56),(3.415,8.61),(3.585,8.61),(3.585,5.56),(3.415,5.56)), ) createRL( tech, net, 'li', @@ -7828,7 +7780,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,1.44),(3.415,2.45),(3.585,2.45),(3.585,1.44),(3.415,1.44)), + ((3.415,1.41),(3.415,2.42),(3.585,2.42),(3.585,1.41),(3.415,1.41)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -7842,208 +7794,208 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,1.52),(3.415,1.69),(3.585,1.69),(3.585,1.52),(3.415,1.52)), + ((3.415,5.64),(3.415,5.81),(3.585,5.81),(3.585,5.64),(3.415,5.64)), ) createRL( tech, net, 'licon', - ((3.415,1.86),(3.415,2.03),(3.585,2.03),(3.585,1.86),(3.415,1.86)), + ((3.415,5.98),(3.415,6.15),(3.585,6.15),(3.585,5.98),(3.415,5.98)), ) createRL( tech, net, 'licon', - ((3.415,2.2),(3.415,2.37),(3.585,2.37),(3.585,2.2),(3.415,2.2)), + ((3.415,6.32),(3.415,6.49),(3.585,6.49),(3.585,6.32),(3.415,6.32)), ) createRL( tech, net, 'licon', - ((3.415,5.61),(3.415,5.78),(3.585,5.78),(3.585,5.61),(3.415,5.61)), + ((3.415,6.66),(3.415,6.83),(3.585,6.83),(3.585,6.66),(3.415,6.66)), ) createRL( tech, net, 'licon', - ((3.415,5.95),(3.415,6.12),(3.585,6.12),(3.585,5.95),(3.415,5.95)), + ((3.415,7.0),(3.415,7.17),(3.585,7.17),(3.585,7.0),(3.415,7.0)), ) createRL( tech, net, 'licon', - ((3.415,6.29),(3.415,6.46),(3.585,6.46),(3.585,6.29),(3.415,6.29)), + ((3.415,7.34),(3.415,7.51),(3.585,7.51),(3.585,7.34),(3.415,7.34)), ) createRL( tech, net, 'licon', - ((3.415,6.63),(3.415,6.8),(3.585,6.8),(3.585,6.63),(3.415,6.63)), + ((3.415,7.68),(3.415,7.85),(3.585,7.85),(3.585,7.68),(3.415,7.68)), ) createRL( tech, net, 'licon', - ((3.415,6.97),(3.415,7.14),(3.585,7.14),(3.585,6.97),(3.415,6.97)), + ((3.415,8.02),(3.415,8.19),(3.585,8.19),(3.585,8.02),(3.415,8.02)), ) createRL( tech, net, 'licon', - ((3.415,7.31),(3.415,7.48),(3.585,7.48),(3.585,7.31),(3.415,7.31)), + ((3.415,8.36),(3.415,8.53),(3.585,8.53),(3.585,8.36),(3.415,8.36)), ) createRL( tech, net, 'licon', - ((3.415,7.65),(3.415,7.82),(3.585,7.82),(3.585,7.65),(3.415,7.65)), + ((3.415,1.49),(3.415,1.66),(3.585,1.66),(3.585,1.49),(3.415,1.49)), ) createRL( tech, net, 'licon', - ((3.415,7.99),(3.415,8.16),(3.585,8.16),(3.585,7.99),(3.415,7.99)), + ((3.415,1.83),(3.415,2.0),(3.585,2.0),(3.585,1.83),(3.415,1.83)), ) createRL( tech, net, 'licon', - ((3.415,8.33),(3.415,8.5),(3.585,8.5),(3.585,8.33),(3.415,8.33)), + ((3.415,2.17),(3.415,2.34),(3.585,2.34),(3.585,2.17),(3.415,2.17)), ) net = nets['*'] createRL( - tech, net, 'nsdm', - ((0.55,1.375),(0.55,2.625),(1.45,2.625),(1.45,1.375),(0.55,1.375)), + tech, net, 'psdm', + ((0.25,5.375),(0.25,8.625),(0.8,8.625),(0.8,5.375),(0.25,5.375)), ) createRL( - tech, net, 'nsdm', - ((0.855,1.43),(0.855,2.57),(1.145,2.57),(1.145,1.43),(0.855,1.43)), + tech, net, 'psdm', + ((0.855,5.43),(0.855,8.57),(1.145,8.57),(1.145,5.43),(0.855,5.43)), ) createRL( - tech, net, 'nsdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + tech, net, 'psdm', + ((0.55,5.375),(0.55,8.625),(1.45,8.625),(1.45,5.375),(0.55,5.375)), ) createRL( - tech, net, 'nsdm', - ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), + tech, net, 'psdm', + ((1.2,5.375),(1.2,8.625),(1.7,8.625),(1.7,5.375),(1.2,5.375)), ) createRL( - tech, net, 'nsdm', - ((1.55,1.375),(1.55,2.625),(2.45,2.625),(2.45,1.375),(1.55,1.375)), + tech, net, 'psdm', + ((1.3,5.375),(1.3,8.625),(1.8,8.625),(1.8,5.375),(1.3,5.375)), ) createRL( - tech, net, 'nsdm', - ((0.25,0.625),(0.25,2.625),(0.75,2.625),(0.75,0.625),(0.25,0.625)), + tech, net, 'psdm', + ((1.175,0.375),(1.175,1.025),(1.825,1.025),(1.825,0.375),(1.175,0.375)), ) createRL( - tech, net, 'nsdm', - ((1.855,1.43),(1.855,2.57),(2.145,2.57),(2.145,1.43),(1.855,1.43)), + tech, net, 'psdm', + ((1.25,0.37),(1.25,1.03),(1.75,1.03),(1.75,0.37),(1.25,0.37)), ) createRL( - tech, net, 'nsdm', - ((2.2,1.375),(2.2,2.625),(2.75,2.625),(2.75,1.375),(2.2,1.375)), + tech, net, 'psdm', + ((1.55,5.375),(1.55,8.625),(2.45,8.625),(2.45,5.375),(1.55,5.375)), ) createRL( - tech, net, 'nsdm', - ((3.2,0.475),(3.2,2.625),(3.75,2.625),(3.75,0.475),(3.2,0.475)), + tech, net, 'psdm', + ((1.855,5.43),(1.855,8.57),(2.145,8.57),(2.145,5.43),(1.855,5.43)), ) createRL( - tech, net, 'nsdm', - ((1.25,1.39),(1.25,2.61),(1.75,2.61),(1.75,1.39),(1.25,1.39)), + tech, net, 'psdm', + ((0.25,7.565),(0.25,8.565),(0.75,8.565),(0.75,7.565),(0.25,7.565)), ) createRL( - tech, net, 'nsdm', - ((1.2,1.375),(1.2,2.625),(1.75,2.625),(1.75,1.375),(1.2,1.375)), + tech, net, 'psdm', + ((3.25,5.395),(3.25,8.775),(3.75,8.775),(3.75,5.395),(3.25,5.395)), ) createRL( - tech, net, 'nsdm', - ((1.25,1.375),(1.25,2.625),(1.8,2.625),(1.8,1.375),(1.25,1.375)), + tech, net, 'psdm', + ((2.55,5.375),(2.55,9.625),(3.45,9.625),(3.45,5.375),(2.55,5.375)), ) createRL( - tech, net, 'nsdm', - ((2.55,0.475),(2.55,2.625),(3.45,2.625),(3.45,0.475),(2.55,0.475)), + tech, net, 'psdm', + ((2.855,5.43),(2.855,9.57),(3.145,9.57),(3.145,5.43),(2.855,5.43)), ) createRL( - tech, net, 'nsdm', - ((2.855,0.53),(2.855,2.57),(3.145,2.57),(3.145,0.53),(2.855,0.53)), + tech, net, 'psdm', + ((2.2,5.375),(2.2,8.625),(2.75,8.625),(2.75,5.375),(2.2,5.375)), ) createRL( - tech, net, 'nsdm', - ((0.25,0.625),(0.25,1.175),(0.75,1.175),(0.75,0.625),(0.25,0.625)), + tech, net, 'psdm', + ((1.3,6.875),(1.3,8.125),(1.7,8.125),(1.7,6.875),(1.3,6.875)), ) createRL( - tech, net, 'nsdm', - ((2.25,0.615),(2.25,2.625),(2.75,2.625),(2.75,0.615),(2.25,0.615)), + tech, net, 'psdm', + ((2.25,8.8),(2.25,9.46),(2.75,9.46),(2.75,8.8),(2.25,8.8)), ) createRL( - tech, net, 'nsdm', - ((2.25,0.475),(2.25,2.625),(2.8,2.625),(2.8,0.475),(2.25,0.475)), + tech, net, 'psdm', + ((3.2,5.375),(3.2,9.625),(3.75,9.625),(3.75,5.375),(3.2,5.375)), ) createRL( - tech, net, 'nsdm', - ((3.25,1.335),(3.25,2.555),(3.75,2.555),(3.75,1.335),(3.25,1.335)), + tech, net, 'psdm', + ((2.25,5.375),(2.25,9.46),(2.75,9.46),(2.75,5.375),(2.25,5.375)), ) createRL( - tech, net, 'nsdm', - ((2.25,0.615),(2.25,1.165),(2.75,1.165),(2.75,0.615),(2.25,0.615)), + tech, net, 'psdm', + ((2.25,5.375),(2.25,9.625),(2.8,9.625),(2.8,5.375),(2.25,5.375)), ) createRL( tech, net, 'nsdm', - ((0.25,1.375),(0.25,2.625),(0.8,2.625),(0.8,1.375),(0.25,1.375)), + ((0.55,1.375),(0.55,2.625),(1.45,2.625),(1.45,1.375),(0.55,1.375)), ) createRL( - tech, net, 'psdm', - ((0.25,5.375),(0.25,8.625),(0.8,8.625),(0.8,5.375),(0.25,5.375)), + tech, net, 'nsdm', + ((0.855,1.43),(0.855,2.57),(1.145,2.57),(1.145,1.43),(0.855,1.43)), ) createRL( - tech, net, 'psdm', - ((0.855,5.43),(0.855,8.57),(1.145,8.57),(1.145,5.43),(0.855,5.43)), + tech, net, 'nsdm', + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( - tech, net, 'psdm', - ((0.55,5.375),(0.55,8.625),(1.45,8.625),(1.45,5.375),(0.55,5.375)), + tech, net, 'nsdm', + ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), ) createRL( - tech, net, 'psdm', - ((1.2,5.375),(1.2,8.625),(1.7,8.625),(1.7,5.375),(1.2,5.375)), + tech, net, 'nsdm', + ((1.55,1.375),(1.55,2.625),(2.45,2.625),(2.45,1.375),(1.55,1.375)), ) createRL( - tech, net, 'psdm', - ((1.3,5.375),(1.3,8.625),(1.8,8.625),(1.8,5.375),(1.3,5.375)), + tech, net, 'nsdm', + ((0.25,0.57),(0.25,2.625),(0.75,2.625),(0.75,0.57),(0.25,0.57)), ) createRL( - tech, net, 'psdm', - ((1.175,0.375),(1.175,1.025),(1.825,1.025),(1.825,0.375),(1.175,0.375)), + tech, net, 'nsdm', + ((1.855,1.43),(1.855,2.57),(2.145,2.57),(2.145,1.43),(1.855,1.43)), ) createRL( - tech, net, 'psdm', - ((1.55,5.375),(1.55,8.625),(2.45,8.625),(2.45,5.375),(1.55,5.375)), + tech, net, 'nsdm', + ((2.2,1.375),(2.2,2.625),(2.75,2.625),(2.75,1.375),(2.2,1.375)), ) createRL( - tech, net, 'psdm', - ((1.855,5.43),(1.855,8.57),(2.145,8.57),(2.145,5.43),(1.855,5.43)), + tech, net, 'nsdm', + ((3.2,0.475),(3.2,2.625),(3.75,2.625),(3.75,0.475),(3.2,0.475)), ) createRL( - tech, net, 'psdm', - ((0.25,7.655),(0.25,8.535),(0.75,8.535),(0.75,7.655),(0.25,7.655)), + tech, net, 'nsdm', + ((1.25,1.5),(1.25,2.5),(1.75,2.5),(1.75,1.5),(1.25,1.5)), ) createRL( - tech, net, 'psdm', - ((3.25,5.425),(3.25,8.685),(3.75,8.685),(3.75,5.425),(3.25,5.425)), + tech, net, 'nsdm', + ((1.2,1.375),(1.2,2.625),(1.75,2.625),(1.75,1.375),(1.2,1.375)), ) createRL( - tech, net, 'psdm', - ((2.55,5.375),(2.55,9.625),(3.45,9.625),(3.45,5.375),(2.55,5.375)), + tech, net, 'nsdm', + ((1.25,1.375),(1.25,2.625),(1.8,2.625),(1.8,1.375),(1.25,1.375)), ) createRL( - tech, net, 'psdm', - ((2.855,5.43),(2.855,9.57),(3.145,9.57),(3.145,5.43),(2.855,5.43)), + tech, net, 'nsdm', + ((2.55,0.475),(2.55,2.625),(3.45,2.625),(3.45,0.475),(2.55,0.475)), ) createRL( - tech, net, 'psdm', - ((2.2,5.375),(2.2,8.625),(2.75,8.625),(2.75,5.375),(2.2,5.375)), + tech, net, 'nsdm', + ((2.855,0.53),(2.855,2.57),(3.145,2.57),(3.145,0.53),(2.855,0.53)), ) createRL( - tech, net, 'psdm', - ((1.3,6.875),(1.3,8.125),(1.7,8.125),(1.7,6.875),(1.3,6.875)), + tech, net, 'nsdm', + ((0.25,0.57),(0.25,1.23),(0.75,1.23),(0.75,0.57),(0.25,0.57)), ) createRL( - tech, net, 'psdm', - ((1.25,0.425),(1.25,0.975),(1.75,0.975),(1.75,0.425),(1.25,0.425)), + tech, net, 'nsdm', + ((2.25,0.59),(2.25,2.625),(2.75,2.625),(2.75,0.59),(2.25,0.59)), ) createRL( - tech, net, 'psdm', - ((2.25,8.72),(2.25,9.6),(2.75,9.6),(2.75,8.72),(2.25,8.72)), + tech, net, 'nsdm', + ((2.25,0.475),(2.25,2.625),(2.8,2.625),(2.8,0.475),(2.25,0.475)), ) createRL( - tech, net, 'psdm', - ((3.2,5.375),(3.2,9.625),(3.75,9.625),(3.75,5.375),(3.2,5.375)), + tech, net, 'nsdm', + ((3.25,1.245),(3.25,2.585),(3.75,2.585),(3.75,1.245),(3.25,1.245)), ) createRL( - tech, net, 'psdm', - ((2.25,5.375),(2.25,9.6),(2.75,9.6),(2.75,5.375),(2.25,5.375)), + tech, net, 'nsdm', + ((2.25,0.59),(2.25,1.25),(2.75,1.25),(2.75,0.59),(2.25,0.59)), ) createRL( - tech, net, 'psdm', - ((2.25,5.375),(2.25,9.625),(2.8,9.625),(2.8,5.375),(2.25,5.375)), + tech, net, 'nsdm', + ((0.25,1.375),(0.25,2.625),(0.8,2.625),(0.8,1.375),(0.25,1.375)), ) net = nets['_net1'] createRL( @@ -8076,15 +8028,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,7.78),(0.375,8.41),(0.625,8.41),(0.625,7.78),(0.375,7.78)), + ((0.375,7.69),(0.375,8.44),(0.625,8.44),(0.625,7.69),(0.375,7.69)), ) createRL( tech, net, 'difftap', - ((1.375,1.515),(1.375,2.485),(1.625,2.485),(1.625,1.515),(1.375,1.515)), + ((1.325,1.5),(1.325,2.5),(1.625,2.5),(1.625,1.5),(1.325,1.5)), ) createRL( tech, net, 'difftap', - ((1.325,1.5),(1.325,2.5),(1.625,2.5),(1.625,1.5),(1.325,1.5)), + ((1.375,1.625),(1.375,2.375),(1.625,2.375),(1.625,1.625),(1.375,1.625)), ) createRL( tech, net, 'difftap', @@ -8100,7 +8052,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,7.76),(0.415,8.43),(0.585,8.43),(0.585,7.76),(0.415,7.76)), + ((0.415,7.73),(0.415,8.4),(0.585,8.4),(0.585,7.73),(0.415,7.73)), ) createRL( tech, net, 'li', @@ -8112,182 +8064,130 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,1.495),(1.415,2.505),(1.585,2.505),(1.585,1.495),(1.415,1.495)), + ((1.415,1.665),(1.415,2.335),(1.585,2.335),(1.585,1.665),(1.415,1.665)), ) createRL( tech, net, 'li', - ((1.415,2.335),(1.415,8.085),(1.585,8.085),(1.585,2.335),(1.415,2.335)), - ) - createRL( - tech, net, 'licon', - ((1.415,1.575),(1.415,1.745),(1.585,1.745),(1.585,1.575),(1.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((1.415,1.915),(1.415,2.085),(1.585,2.085),(1.585,1.915),(1.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((1.415,2.255),(1.415,2.425),(1.585,2.425),(1.585,2.255),(1.415,2.255)), + ((1.415,2.165),(1.415,8.085),(1.585,8.085),(1.585,2.165),(1.415,2.165)), ) createRL( tech, net, 'licon', - ((1.515,3.915),(1.515,4.085),(1.685,4.085),(1.685,3.915),(1.515,3.915)), + ((0.415,7.81),(0.415,7.98),(0.585,7.98),(0.585,7.81),(0.415,7.81)), ) createRL( tech, net, 'licon', - ((0.415,7.84),(0.415,8.01),(0.585,8.01),(0.585,7.84),(0.415,7.84)), + ((0.415,8.15),(0.415,8.32),(0.585,8.32),(0.585,8.15),(0.415,8.15)), ) createRL( tech, net, 'licon', - ((0.415,8.18),(0.415,8.35),(0.585,8.35),(0.585,8.18),(0.415,8.18)), - ) - net = nets['vdd'] - createRL( - tech, net, 'difftap', - ((2.075,5.5),(2.075,8.5),(2.325,8.5),(2.325,5.5),(2.075,5.5)), - ) - createRL( - tech, net, 'difftap', - ((2.325,5.5),(2.325,8.5),(2.625,8.5),(2.625,5.5),(2.325,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.925,5.5),(1.925,8.5),(2.075,8.5),(2.075,5.5),(1.925,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), - ) - createRL( - tech, net, 'difftap', - ((0.925,5.5),(0.925,8.5),(1.075,8.5),(1.075,5.5),(0.925,5.5)), - ) - createRL( - tech, net, 'difftap', - ((2.675,5.5),(2.675,9.5),(2.925,9.5),(2.925,5.5),(2.675,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), - ) - createRL( - tech, net, 'difftap', - ((2.375,5.5),(2.375,9.475),(2.625,9.475),(2.625,5.5),(2.375,5.5)), - ) - createRL( - tech, net, 'difftap', - ((2.925,5.5),(2.925,9.5),(3.075,9.5),(3.075,5.5),(2.925,5.5)), - ) - createRL( - tech, net, 'difftap', - ((2.375,5.5),(2.375,9.5),(2.675,9.5),(2.675,5.5),(2.375,5.5)), + ((1.515,3.915),(1.515,4.085),(1.685,4.085),(1.685,3.915),(1.515,3.915)), ) createRL( - tech, net, 'difftap', - ((2.375,8.845),(2.375,9.475),(2.625,9.475),(2.625,8.845),(2.375,8.845)), + tech, net, 'licon', + ((1.415,1.745),(1.415,1.915),(1.585,1.915),(1.585,1.745),(1.415,1.745)), ) createRL( - tech, net, 'nwm', - ((0.195,5.32),(0.195,8.68),(0.855,8.68),(0.855,5.32),(0.195,5.32)), + tech, net, 'licon', + ((1.415,2.085),(1.415,2.255),(1.585,2.255),(1.585,2.085),(1.415,2.085)), ) + net = nets['vss'] createRL( - tech, net, 'nwm', - ((2.145,5.32),(2.145,8.68),(2.805,8.68),(2.805,5.32),(2.145,5.32)), + tech, net, 'difftap', + ((1.925,1.5),(1.925,2.5),(2.075,2.5),(2.075,1.5),(1.925,1.5)), ) createRL( - tech, net, 'nwm', - ((0.495,5.32),(0.495,8.68),(1.505,8.68),(1.505,5.32),(0.495,5.32)), + tech, net, 'difftap', + ((0.925,1.5),(0.925,2.5),(1.075,2.5),(1.075,1.5),(0.925,1.5)), ) createRL( - tech, net, 'nwm', - ((1.495,5.32),(1.495,8.68),(2.505,8.68),(2.505,5.32),(1.495,5.32)), + tech, net, 'difftap', + ((0.375,0.695),(0.375,2.5),(0.625,2.5),(0.625,0.695),(0.375,0.695)), ) createRL( - tech, net, 'nwm', - ((-0.3,4.8),(-0.3,10.8),(4.3,10.8),(4.3,4.8),(-0.3,4.8)), + tech, net, 'difftap', + ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), ) createRL( - tech, net, 'nwm', - ((1.245,6.82),(1.245,8.18),(1.755,8.18),(1.755,6.82),(1.245,6.82)), + tech, net, 'difftap', + ((1.3,0.5),(1.3,0.9),(1.7,0.9),(1.7,0.5),(1.3,0.5)), ) createRL( - tech, net, 'nwm', - ((1.145,5.32),(1.145,8.68),(1.755,8.68),(1.755,5.32),(1.145,5.32)), + tech, net, 'difftap', + ((2.075,1.5),(2.075,2.5),(2.325,2.5),(2.325,1.5),(2.075,1.5)), ) createRL( - tech, net, 'nwm', - ((1.245,5.32),(1.245,8.68),(1.855,8.68),(1.855,5.32),(1.245,5.32)), + tech, net, 'difftap', + ((1.375,0.495),(1.375,0.905),(1.625,0.905),(1.625,0.495),(1.375,0.495)), ) createRL( - tech, net, 'nwm', - ((0.195,7.6),(0.195,8.59),(0.805,8.59),(0.805,7.6),(0.195,7.6)), + tech, net, 'difftap', + ((2.325,1.5),(2.325,2.5),(2.625,2.5),(2.625,1.5),(2.325,1.5)), ) createRL( - tech, net, 'nwm', - ((2.195,5.32),(2.195,9.655),(2.805,9.655),(2.805,5.32),(2.195,5.32)), + tech, net, 'difftap', + ((2.675,0.6),(2.675,2.5),(2.925,2.5),(2.925,0.6),(2.675,0.6)), ) createRL( - tech, net, 'nwm', - ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), + tech, net, 'difftap', + ((2.375,0.715),(2.375,2.5),(2.625,2.5),(2.625,0.715),(2.375,0.715)), ) createRL( - tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), + tech, net, 'difftap', + ((2.375,0.6),(2.375,2.5),(2.675,2.5),(2.675,0.6),(2.375,0.6)), ) createRL( - tech, net, 'nwm', - ((2.495,5.32),(2.495,9.68),(3.505,9.68),(3.505,5.32),(2.495,5.32)), + tech, net, 'difftap', + ((0.375,0.695),(0.375,1.105),(0.625,1.105),(0.625,0.695),(0.375,0.695)), ) createRL( - tech, net, 'nwm', - ((2.195,5.32),(2.195,9.68),(2.855,9.68),(2.855,5.32),(2.195,5.32)), + tech, net, 'difftap', + ((2.375,0.715),(2.375,1.125),(2.625,1.125),(2.625,0.715),(2.375,0.715)), ) createRL( - tech, net, 'nwm', - ((3.195,5.37),(3.195,8.74),(3.805,8.74),(3.805,5.37),(3.195,5.37)), + tech, net, 'difftap', + ((0.675,1.5),(0.675,2.5),(0.925,2.5),(0.925,1.5),(0.675,1.5)), ) createRL( - tech, net, 'nwm', - ((2.195,8.665),(2.195,9.655),(2.805,9.655),(2.805,8.665),(2.195,8.665)), + tech, net, 'difftap', + ((0.375,1.5),(0.375,2.5),(0.675,2.5),(0.675,1.5),(0.375,1.5)), ) createRL( - tech, net, 'nwm', - ((3.145,5.32),(3.145,9.68),(3.805,9.68),(3.805,5.32),(3.145,5.32)), + tech, net, 'li', + ((0.0,0.0),(0.0,1.2),(4.0,1.2),(4.0,0.0),(0.0,0.0)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(4.0,10.0),(4.0,8.8),(0.0,8.8)), + ((1.415,0.535),(1.415,0.865),(1.585,0.865),(1.585,0.535),(1.415,0.535)), ) createRL( tech, net, 'li', - ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), + ((0.415,0.735),(0.415,1.065),(0.585,1.065),(0.585,0.735),(0.415,0.735)), ) createRL( tech, net, 'li', - ((2.415,8.825),(2.415,9.495),(2.585,9.495),(2.585,8.825),(2.415,8.825)), + ((2.415,0.755),(2.415,1.085),(2.585,1.085),(2.585,0.755),(2.415,0.755)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.0), u(4.0), u(8.8), u(10.0), + u(2.0), u(4.0), u(0.0), u(1.2), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.0), u(4.0), u(8.8), u(10.0), + u(2.0), u(4.0), u(0.0), u(1.2), ) net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), + ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), ) createRL( tech, net, 'licon', - ((2.415,8.905),(2.415,9.075),(2.585,9.075),(2.585,8.905),(2.415,8.905)), + ((0.415,0.815),(0.415,0.985),(0.585,0.985),(0.585,0.815),(0.415,0.815)), ) createRL( tech, net, 'licon', - ((2.415,9.245),(2.415,9.415),(2.585,9.415),(2.585,9.245),(2.415,9.245)), + ((2.415,0.835),(2.415,1.005),(2.585,1.005),(2.585,0.835),(2.415,0.835)), ) net = nets['_net0'] createRL( @@ -8434,8 +8334,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', @@ -8447,15 +8347,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,0.75),(1.375,2.5),(1.625,2.5),(1.625,0.75),(1.375,0.75)), + ((1.375,0.695),(1.375,2.5),(1.625,2.5),(1.625,0.695),(1.375,0.695)), ) createRL( tech, net, 'difftap', - ((2.375,0.55),(2.375,0.85),(2.625,0.85),(2.625,0.55),(2.375,0.55)), + ((2.3,0.5),(2.3,0.9),(2.7,0.9),(2.7,0.5),(2.3,0.5)), ) createRL( tech, net, 'difftap', - ((1.375,0.75),(1.375,1.05),(1.625,1.05),(1.625,0.75),(1.375,0.75)), + ((1.375,0.695),(1.375,1.105),(1.625,1.105),(1.625,0.695),(1.375,0.695)), ) createRL( tech, net, 'difftap', @@ -8463,7 +8363,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.3,0.5),(2.3,0.9),(2.7,0.9),(2.7,0.5),(2.3,0.5)), + ((2.375,0.495),(2.375,0.905),(2.625,0.905),(2.625,0.495),(2.375,0.495)), ) createRL( tech, net, 'difftap', @@ -8487,7 +8387,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,0.675),(3.375,1.645),(3.625,1.645),(3.625,0.675),(3.375,0.675)), + ((3.375,0.645),(3.375,1.735),(3.625,1.735),(3.625,0.645),(3.375,0.645)), ) createRL( tech, net, 'difftap', @@ -8507,11 +8407,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), + ((0.375,0.495),(0.375,0.905),(0.625,0.905),(0.625,0.495),(0.375,0.495)), ) createRL( tech, net, 'difftap', - ((0.375,0.55),(0.375,0.85),(0.625,0.85),(0.625,0.55),(0.375,0.55)), + ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), ) createRL( tech, net, 'li', @@ -8527,7 +8427,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,0.655),(3.415,1.665),(3.585,1.665),(3.585,0.655),(3.415,0.655)), + ((3.415,0.685),(3.415,1.695),(3.585,1.695),(3.585,0.685),(3.415,0.685)), ) createRL( tech, net, 'li', @@ -8545,32 +8445,32 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.815),(1.415,0.985),(1.585,0.985),(1.585,0.815),(1.415,0.815)), + ((2.415,0.615),(2.415,0.785),(2.585,0.785),(2.585,0.615),(2.415,0.615)), ) createRL( tech, net, 'licon', - ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), + ((1.415,0.815),(1.415,0.985),(1.585,0.985),(1.585,0.815),(1.415,0.815)), ) createRL( tech, net, 'licon', - ((3.415,0.735),(3.415,0.905),(3.585,0.905),(3.585,0.735),(3.415,0.735)), + ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), ) createRL( tech, net, 'licon', - ((3.415,1.075),(3.415,1.245),(3.585,1.245),(3.585,1.075),(3.415,1.075)), + ((3.415,0.765),(3.415,0.935),(3.585,0.935),(3.585,0.765),(3.415,0.765)), ) createRL( tech, net, 'licon', - ((3.415,1.415),(3.415,1.585),(3.585,1.585),(3.585,1.415),(3.415,1.415)), + ((3.415,1.105),(3.415,1.275),(3.585,1.275),(3.585,1.105),(3.415,1.105)), ) createRL( tech, net, 'licon', - ((2.415,0.615),(2.415,0.785),(2.585,0.785),(2.585,0.615),(2.415,0.615)), + ((3.415,1.445),(3.415,1.615),(3.585,1.615),(3.585,1.445),(3.415,1.445)), ) net = nets['q'] createRL( tech, net, 'difftap', - ((4.375,5.55),(4.375,8.56),(4.625,8.56),(4.625,5.55),(4.375,5.55)), + ((4.375,5.52),(4.375,8.65),(4.625,8.65),(4.625,5.52),(4.375,5.52)), ) createRL( tech, net, 'difftap', @@ -8586,7 +8486,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,1.46),(4.375,2.43),(4.625,2.43),(4.625,1.46),(4.375,1.46)), + ((4.375,1.37),(4.375,2.46),(4.625,2.46),(4.625,1.37),(4.375,1.37)), ) createRL( tech, net, 'difftap', @@ -8594,11 +8494,11 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,5.53),(4.415,8.58),(4.585,8.58),(4.585,5.53),(4.415,5.53)), + ((4.415,5.56),(4.415,8.61),(4.585,8.61),(4.585,5.56),(4.415,5.56)), ) createRL( tech, net, 'li', - ((4.415,1.44),(4.415,2.45),(4.585,2.45),(4.585,1.44),(4.415,1.44)), + ((4.415,1.41),(4.415,2.42),(4.585,2.42),(4.585,1.41),(4.415,1.41)), ) createRL( tech, net, 'li', @@ -8616,51 +8516,51 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((4.415,1.52),(4.415,1.69),(4.585,1.69),(4.585,1.52),(4.415,1.52)), + ((4.415,1.49),(4.415,1.66),(4.585,1.66),(4.585,1.49),(4.415,1.49)), ) createRL( tech, net, 'licon', - ((4.415,1.86),(4.415,2.03),(4.585,2.03),(4.585,1.86),(4.415,1.86)), + ((4.415,1.83),(4.415,2.0),(4.585,2.0),(4.585,1.83),(4.415,1.83)), ) createRL( tech, net, 'licon', - ((4.415,2.2),(4.415,2.37),(4.585,2.37),(4.585,2.2),(4.415,2.2)), + ((4.415,2.17),(4.415,2.34),(4.585,2.34),(4.585,2.17),(4.415,2.17)), ) createRL( tech, net, 'licon', - ((4.415,5.61),(4.415,5.78),(4.585,5.78),(4.585,5.61),(4.415,5.61)), + ((4.415,5.64),(4.415,5.81),(4.585,5.81),(4.585,5.64),(4.415,5.64)), ) createRL( tech, net, 'licon', - ((4.415,5.95),(4.415,6.12),(4.585,6.12),(4.585,5.95),(4.415,5.95)), + ((4.415,5.98),(4.415,6.15),(4.585,6.15),(4.585,5.98),(4.415,5.98)), ) createRL( tech, net, 'licon', - ((4.415,6.29),(4.415,6.46),(4.585,6.46),(4.585,6.29),(4.415,6.29)), + ((4.415,6.32),(4.415,6.49),(4.585,6.49),(4.585,6.32),(4.415,6.32)), ) createRL( tech, net, 'licon', - ((4.415,6.63),(4.415,6.8),(4.585,6.8),(4.585,6.63),(4.415,6.63)), + ((4.415,6.66),(4.415,6.83),(4.585,6.83),(4.585,6.66),(4.415,6.66)), ) createRL( tech, net, 'licon', - ((4.415,6.97),(4.415,7.14),(4.585,7.14),(4.585,6.97),(4.415,6.97)), + ((4.415,7.0),(4.415,7.17),(4.585,7.17),(4.585,7.0),(4.415,7.0)), ) createRL( tech, net, 'licon', - ((4.415,7.31),(4.415,7.48),(4.585,7.48),(4.585,7.31),(4.415,7.31)), + ((4.415,7.34),(4.415,7.51),(4.585,7.51),(4.585,7.34),(4.415,7.34)), ) createRL( tech, net, 'licon', - ((4.415,7.65),(4.415,7.82),(4.585,7.82),(4.585,7.65),(4.415,7.65)), + ((4.415,7.68),(4.415,7.85),(4.585,7.85),(4.585,7.68),(4.415,7.68)), ) createRL( tech, net, 'licon', - ((4.415,7.99),(4.415,8.16),(4.585,8.16),(4.585,7.99),(4.415,7.99)), + ((4.415,8.02),(4.415,8.19),(4.585,8.19),(4.585,8.02),(4.415,8.02)), ) createRL( tech, net, 'licon', - ((4.415,8.33),(4.415,8.5),(4.585,8.5),(4.585,8.33),(4.415,8.33)), + ((4.415,8.36),(4.415,8.53),(4.585,8.53),(4.585,8.36),(4.415,8.36)), ) net = nets['*'] createRL( @@ -8681,11 +8581,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,0.625),(1.25,2.625),(1.75,2.625),(1.75,0.625),(1.25,0.625)), + ((1.25,0.57),(1.25,2.625),(1.75,2.625),(1.75,0.57),(1.25,0.57)), ) createRL( tech, net, 'nsdm', - ((1.25,0.625),(1.25,1.175),(1.75,1.175),(1.75,0.625),(1.25,0.625)), + ((1.25,0.57),(1.25,1.23),(1.75,1.23),(1.75,0.57),(1.25,0.57)), ) createRL( tech, net, 'nsdm', @@ -8697,7 +8597,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,1.465),(2.25,2.345),(2.75,2.345),(2.75,1.465),(2.25,1.465)), + ((2.25,1.435),(2.25,2.435),(2.75,2.435),(2.75,1.435),(2.25,1.435)), ) createRL( tech, net, 'nsdm', @@ -8705,7 +8605,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,8.925),(0.25,9.475),(0.75,9.475),(0.75,8.925),(0.25,8.925)), + ((0.25,8.87),(0.25,9.53),(0.75,9.53),(0.75,8.87),(0.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -8737,11 +8637,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,0.55),(3.25,1.77),(3.75,1.77),(3.75,0.55),(3.25,0.55)), + ((3.25,0.52),(3.25,1.86),(3.75,1.86),(3.75,0.52),(3.25,0.52)), ) createRL( tech, net, 'nsdm', - ((0.25,1.375),(0.25,2.625),(0.8,2.625),(0.8,1.375),(0.25,1.375)), + ((0.25,1.435),(0.25,2.435),(0.75,2.435),(0.75,1.435),(0.25,1.435)), ) createRL( tech, net, 'nsdm', @@ -8749,15 +8649,15 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,1.335),(4.25,2.555),(4.75,2.555),(4.75,1.335),(4.25,1.335)), + ((4.25,1.245),(4.25,2.585),(4.75,2.585),(4.75,1.245),(4.25,1.245)), ) createRL( tech, net, 'nsdm', - ((2.175,8.875),(2.175,9.525),(2.825,9.525),(2.825,8.875),(2.175,8.875)), + ((2.25,8.87),(2.25,9.53),(2.75,9.53),(2.75,8.87),(2.25,8.87)), ) createRL( tech, net, 'nsdm', - ((2.25,8.925),(2.25,9.475),(2.75,9.475),(2.75,8.925),(2.25,8.925)), + ((2.175,8.875),(2.175,9.525),(2.825,9.525),(2.825,8.875),(2.175,8.875)), ) createRL( tech, net, 'nsdm', @@ -8765,7 +8665,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,1.465),(0.25,2.345),(0.75,2.345),(0.75,1.465),(0.25,1.465)), + ((0.25,1.375),(0.25,2.625),(0.8,2.625),(0.8,1.375),(0.25,1.375)), ) createRL( tech, net, 'psdm', @@ -8795,10 +8695,6 @@ def _load(): tech, net, 'psdm', ((3.855,5.43),(3.855,9.57),(4.145,9.57),(4.145,5.43),(3.855,5.43)), ) - createRL( - tech, net, 'psdm', - ((2.25,0.425),(2.25,0.975),(2.75,0.975),(2.75,0.425),(2.25,0.425)), - ) createRL( tech, net, 'psdm', ((2.3,6.875),(2.3,8.125),(2.7,8.125),(2.7,6.875),(2.3,6.875)), @@ -8813,7 +8709,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,7.655),(0.25,8.535),(0.75,8.535),(0.75,7.655),(0.25,7.655)), + ((0.25,7.565),(0.25,8.565),(0.75,8.565),(0.75,7.565),(0.25,7.565)), ) createRL( tech, net, 'psdm', @@ -8829,19 +8725,23 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,8.275),(3.25,9.495),(3.75,9.495),(3.75,8.275),(3.25,8.275)), + ((3.25,8.19),(3.25,9.53),(3.75,9.53),(3.75,8.19),(3.25,8.19)), ) createRL( tech, net, 'psdm', ((1.3,6.875),(1.3,8.125),(1.7,8.125),(1.7,6.875),(1.3,6.875)), ) + createRL( + tech, net, 'psdm', + ((0.25,0.37),(0.25,1.03),(0.75,1.03),(0.75,0.37),(0.25,0.37)), + ) createRL( tech, net, 'psdm', ((0.225,0.275),(0.225,1.025),(0.775,1.025),(0.775,0.275),(0.225,0.275)), ) createRL( tech, net, 'psdm', - ((4.25,5.425),(4.25,8.685),(4.75,8.685),(4.75,5.425),(4.25,5.425)), + ((4.25,5.395),(4.25,8.775),(4.75,8.775),(4.75,5.395),(4.25,5.395)), ) createRL( tech, net, 'psdm', @@ -8857,11 +8757,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,0.425),(0.25,0.975),(0.75,0.975),(0.75,0.425),(0.25,0.425)), + ((4.2,5.375),(4.2,9.625),(4.75,9.625),(4.75,5.375),(4.2,5.375)), ) createRL( tech, net, 'psdm', - ((4.2,5.375),(4.2,9.625),(4.75,9.625),(4.75,5.375),(4.2,5.375)), + ((2.25,0.37),(2.25,1.03),(2.75,1.03),(2.75,0.37),(2.25,0.37)), ) createRL( tech, net, 'psdm', @@ -8902,35 +8802,35 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.075,1.5),(2.075,2.5),(2.325,2.5),(2.325,1.5),(2.075,1.5)), + ((0.375,7.69),(0.375,8.44),(0.625,8.44),(0.625,7.69),(0.375,7.69)), ) createRL( tech, net, 'difftap', - ((2.375,1.59),(2.375,2.22),(2.625,2.22),(2.625,1.59),(2.375,1.59)), + ((2.075,1.5),(2.075,2.5),(2.325,2.5),(2.325,1.5),(2.075,1.5)), ) createRL( tech, net, 'difftap', - ((2.325,1.5),(2.325,2.5),(2.625,2.5),(2.625,1.5),(2.325,1.5)), + ((2.375,1.56),(2.375,2.31),(2.625,2.31),(2.625,1.56),(2.375,1.56)), ) createRL( tech, net, 'difftap', - ((2.375,1.5),(2.375,2.5),(2.675,2.5),(2.675,1.5),(2.375,1.5)), + ((2.325,1.5),(2.325,2.5),(2.625,2.5),(2.625,1.5),(2.325,1.5)), ) createRL( tech, net, 'difftap', - ((0.375,7.78),(0.375,8.41),(0.625,8.41),(0.625,7.78),(0.375,7.78)), + ((2.375,1.5),(2.375,2.5),(2.675,2.5),(2.675,1.5),(2.375,1.5)), ) createRL( tech, net, 'difftap', - ((0.375,1.5),(0.375,2.5),(0.675,2.5),(0.675,1.5),(0.375,1.5)), + ((0.675,1.5),(0.675,2.5),(0.925,2.5),(0.925,1.5),(0.675,1.5)), ) createRL( tech, net, 'difftap', - ((0.675,1.5),(0.675,2.5),(0.925,2.5),(0.925,1.5),(0.675,1.5)), + ((0.375,1.56),(0.375,2.31),(0.625,2.31),(0.625,1.56),(0.375,1.56)), ) createRL( tech, net, 'difftap', - ((0.375,1.59),(0.375,2.22),(0.625,2.22),(0.625,1.59),(0.375,1.59)), + ((0.375,1.5),(0.375,2.5),(0.675,2.5),(0.675,1.5),(0.375,1.5)), ) createRL( tech, net, 'li', @@ -8938,11 +8838,11 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,1.57),(2.415,2.24),(2.585,2.24),(2.585,1.57),(2.415,1.57)), + ((0.415,7.73),(0.415,8.4),(0.585,8.4),(0.585,7.73),(0.415,7.73)), ) createRL( tech, net, 'li', - ((0.415,7.76),(0.415,8.43),(0.585,8.43),(0.585,7.76),(0.415,7.76)), + ((2.415,1.6),(2.415,2.27),(2.585,2.27),(2.585,1.6),(2.415,1.6)), ) createRL( tech, net, 'li', @@ -8958,45 +8858,41 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.57),(0.415,2.24),(0.585,2.24),(0.585,1.57),(0.415,1.57)), + ((0.415,1.6),(0.415,2.27),(0.585,2.27),(0.585,1.6),(0.415,1.6)), ) createRL( tech, net, 'licon', - ((0.415,7.84),(0.415,8.01),(0.585,8.01),(0.585,7.84),(0.415,7.84)), + ((0.415,7.81),(0.415,7.98),(0.585,7.98),(0.585,7.81),(0.415,7.81)), ) createRL( tech, net, 'licon', - ((0.415,8.18),(0.415,8.35),(0.585,8.35),(0.585,8.18),(0.415,8.18)), + ((0.415,8.15),(0.415,8.32),(0.585,8.32),(0.585,8.15),(0.415,8.15)), ) createRL( tech, net, 'licon', - ((3.515,3.915),(3.515,4.085),(3.685,4.085),(3.685,3.915),(3.515,3.915)), + ((0.415,1.68),(0.415,1.85),(0.585,1.85),(0.585,1.68),(0.415,1.68)), ) createRL( tech, net, 'licon', - ((0.415,1.65),(0.415,1.82),(0.585,1.82),(0.585,1.65),(0.415,1.65)), + ((0.415,2.02),(0.415,2.19),(0.585,2.19),(0.585,2.02),(0.415,2.02)), ) createRL( tech, net, 'licon', - ((0.415,1.99),(0.415,2.16),(0.585,2.16),(0.585,1.99),(0.415,1.99)), + ((3.515,3.915),(3.515,4.085),(3.685,4.085),(3.685,3.915),(3.515,3.915)), ) createRL( tech, net, 'licon', - ((2.415,1.65),(2.415,1.82),(2.585,1.82),(2.585,1.65),(2.415,1.65)), + ((2.415,1.68),(2.415,1.85),(2.585,1.85),(2.585,1.68),(2.415,1.68)), ) createRL( tech, net, 'licon', - ((2.415,1.99),(2.415,2.16),(2.585,2.16),(2.585,1.99),(2.415,1.99)), + ((2.415,2.02),(2.415,2.19),(2.585,2.19),(2.585,2.02),(2.415,2.02)), ) net = nets['vdd'] createRL( tech, net, 'difftap', ((3.375,5.5),(3.375,9.5),(3.675,9.5),(3.675,5.5),(3.375,5.5)), ) - createRL( - tech, net, 'difftap', - ((2.375,9.05),(2.375,9.35),(2.625,9.35),(2.625,9.05),(2.375,9.05)), - ) createRL( tech, net, 'difftap', ((2.3,9.0),(2.3,9.4),(2.7,9.4),(2.7,9.0),(2.3,9.0)), @@ -9007,11 +8903,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,8.4),(3.375,9.37),(3.625,9.37),(3.625,8.4),(3.375,8.4)), + ((3.375,8.315),(3.375,9.405),(3.625,9.405),(3.625,8.315),(3.375,8.315)), ) createRL( tech, net, 'difftap', - ((0.375,9.05),(0.375,9.35),(0.625,9.35),(0.625,9.05),(0.375,9.05)), + ((0.375,8.995),(0.375,9.405),(0.625,9.405),(0.625,8.995),(0.375,8.995)), ) createRL( tech, net, 'difftap', @@ -9029,6 +8925,10 @@ def _load(): tech, net, 'difftap', ((3.325,5.5),(3.325,8.5),(3.625,8.5),(3.625,5.5),(3.325,5.5)), ) + createRL( + tech, net, 'difftap', + ((2.375,8.995),(2.375,9.405),(2.625,9.405),(2.625,8.995),(2.375,8.995)), + ) createRL( tech, net, 'difftap', ((3.675,5.5),(3.675,9.5),(3.925,9.5),(3.925,5.5),(3.675,5.5)), @@ -9071,11 +8971,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,7.6),(0.195,8.59),(0.805,8.59),(0.805,7.6),(0.195,7.6)), + ((0.195,7.51),(0.195,8.62),(0.805,8.62),(0.805,7.51),(0.195,7.51)), ) createRL( tech, net, 'nwm', - ((0.195,8.87),(0.195,9.53),(0.805,9.53),(0.805,8.87),(0.195,8.87)), + ((0.195,8.815),(0.195,9.585),(0.805,9.585),(0.805,8.815),(0.195,8.815)), ) createRL( tech, net, 'nwm', @@ -9099,11 +8999,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,8.22),(3.195,9.55),(3.805,9.55),(3.805,8.22),(3.195,8.22)), + ((3.195,8.135),(3.195,9.585),(3.805,9.585),(3.805,8.135),(3.195,8.135)), ) createRL( tech, net, 'nwm', - ((4.195,5.37),(4.195,8.74),(4.805,8.74),(4.805,5.37),(4.195,5.37)), + ((4.195,5.34),(4.195,8.83),(4.805,8.83),(4.805,5.34),(4.195,5.34)), ) createRL( tech, net, 'nwm', @@ -9115,7 +9015,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,8.87),(2.195,9.53),(2.805,9.53),(2.805,8.87),(2.195,8.87)), + ((2.195,8.815),(2.195,9.585),(2.805,9.585),(2.805,8.815),(2.195,8.815)), ) createRL( tech, net, 'nwm', @@ -9139,7 +9039,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,8.38),(3.415,9.39),(3.585,9.39),(3.585,8.38),(3.415,8.38)), + ((3.415,8.355),(3.415,9.365),(3.585,9.365),(3.585,8.355),(3.415,8.355)), ) createRL( tech, net, 'li', @@ -9157,19 +9057,19 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,8.46),(3.415,8.63),(3.585,8.63),(3.585,8.46),(3.415,8.46)), + ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), ) createRL( tech, net, 'licon', - ((3.415,8.8),(3.415,8.97),(3.585,8.97),(3.585,8.8),(3.415,8.8)), + ((3.415,8.435),(3.415,8.605),(3.585,8.605),(3.585,8.435),(3.415,8.435)), ) createRL( tech, net, 'licon', - ((3.415,9.14),(3.415,9.31),(3.585,9.31),(3.585,9.14),(3.415,9.14)), + ((3.415,8.775),(3.415,8.945),(3.585,8.945),(3.585,8.775),(3.415,8.775)), ) createRL( tech, net, 'licon', - ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), + ((3.415,9.115),(3.415,9.285),(3.585,9.285),(3.585,9.115),(3.415,9.115)), ) createRL( tech, net, 'licon', @@ -9239,27 +9139,6 @@ def _load(): tech, net, 'difftap', ((2.675,5.5),(2.675,8.5),(2.925,8.5),(2.925,5.5),(2.675,5.5)), ) - net = nets['_net0'] - createRL( - tech, net, 'difftap', - ((1.425,7.0),(1.425,8.0),(1.575,8.0),(1.575,7.0),(1.425,7.0)), - ) - createRL( - tech, net, 'difftap', - ((1.325,5.5),(1.325,8.5),(1.575,8.5),(1.575,5.5),(1.325,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.425,5.5),(1.425,8.5),(1.675,8.5),(1.675,5.5),(1.425,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.675,5.5),(1.675,8.5),(1.925,8.5),(1.925,5.5),(1.675,5.5)), - ) - createRL( - tech, net, 'difftap', - ((1.075,5.5),(1.075,8.5),(1.325,8.5),(1.325,5.5),(1.075,5.5)), - ) net = nets['i1'] createRL( tech, net, 'poly', @@ -9303,6 +9182,27 @@ def _load(): tech, net, 'licon', ((1.415,2.915),(1.415,3.085),(1.585,3.085),(1.585,2.915),(1.415,2.915)), ) + net = nets['_net0'] + createRL( + tech, net, 'difftap', + ((1.425,7.0),(1.425,8.0),(1.575,8.0),(1.575,7.0),(1.425,7.0)), + ) + createRL( + tech, net, 'difftap', + ((1.325,5.5),(1.325,8.5),(1.575,8.5),(1.575,5.5),(1.325,5.5)), + ) + createRL( + tech, net, 'difftap', + ((1.425,5.5),(1.425,8.5),(1.675,8.5),(1.675,5.5),(1.425,5.5)), + ) + createRL( + tech, net, 'difftap', + ((1.675,5.5),(1.675,8.5),(1.925,8.5),(1.925,5.5),(1.675,5.5)), + ) + createRL( + tech, net, 'difftap', + ((1.075,5.5),(1.075,8.5),(1.325,8.5),(1.325,5.5),(1.075,5.5)), + ) net = nets['i2'] createRL( tech, net, 'poly', @@ -9366,8 +9266,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', @@ -9375,11 +9275,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,0.75),(0.375,2.5),(0.625,2.5),(0.625,0.75),(0.375,0.75)), + ((0.375,0.695),(0.375,2.5),(0.625,2.5),(0.625,0.695),(0.375,0.695)), ) createRL( tech, net, 'difftap', - ((4.375,0.675),(4.375,1.645),(4.625,1.645),(4.625,0.675),(4.375,0.675)), + ((4.375,0.645),(4.375,1.735),(4.625,1.735),(4.625,0.645),(4.375,0.645)), ) createRL( tech, net, 'difftap', @@ -9419,15 +9319,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,0.55),(1.375,0.85),(1.625,0.85),(1.625,0.55),(1.375,0.55)), + ((1.375,0.495),(1.375,0.905),(1.625,0.905),(1.625,0.495),(1.375,0.495)), ) createRL( tech, net, 'difftap', - ((0.375,0.75),(0.375,1.05),(0.625,1.05),(0.625,0.75),(0.375,0.75)), + ((0.375,0.695),(0.375,1.105),(0.625,1.105),(0.625,0.695),(0.375,0.695)), ) createRL( tech, net, 'difftap', - ((2.375,0.75),(2.375,2.5),(2.625,2.5),(2.625,0.75),(2.375,0.75)), + ((2.375,0.695),(2.375,2.5),(2.625,2.5),(2.625,0.695),(2.375,0.695)), ) createRL( tech, net, 'difftap', @@ -9447,7 +9347,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,0.55),(3.375,0.85),(3.625,0.85),(3.625,0.55),(3.375,0.55)), + ((3.375,0.495),(3.375,0.905),(3.625,0.905),(3.625,0.495),(3.375,0.495)), ) createRL( tech, net, 'difftap', @@ -9455,7 +9355,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,0.75),(2.375,1.05),(2.625,1.05),(2.625,0.75),(2.375,0.75)), + ((2.375,0.695),(2.375,1.105),(2.625,1.105),(2.625,0.695),(2.375,0.695)), ) createRL( tech, net, 'difftap', @@ -9471,7 +9371,7 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,0.655),(4.415,1.665),(4.585,1.665),(4.585,0.655),(4.415,0.655)), + ((4.415,0.685),(4.415,1.695),(4.585,1.695),(4.585,0.685),(4.415,0.685)), ) createRL( tech, net, 'li', @@ -9505,23 +9405,23 @@ def _load(): ) createRL( tech, net, 'licon', - ((4.415,0.735),(4.415,0.905),(4.585,0.905),(4.585,0.735),(4.415,0.735)), + ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), ) createRL( tech, net, 'licon', - ((4.415,1.075),(4.415,1.245),(4.585,1.245),(4.585,1.075),(4.415,1.075)), + ((0.415,0.815),(0.415,0.985),(0.585,0.985),(0.585,0.815),(0.415,0.815)), ) createRL( tech, net, 'licon', - ((4.415,1.415),(4.415,1.585),(4.585,1.585),(4.585,1.415),(4.415,1.415)), + ((4.415,0.765),(4.415,0.935),(4.585,0.935),(4.585,0.765),(4.415,0.765)), ) createRL( tech, net, 'licon', - ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), + ((4.415,1.105),(4.415,1.275),(4.585,1.275),(4.585,1.105),(4.415,1.105)), ) createRL( tech, net, 'licon', - ((0.415,0.815),(0.415,0.985),(0.585,0.985),(0.585,0.815),(0.415,0.815)), + ((4.415,1.445),(4.415,1.615),(4.585,1.615),(4.585,1.445),(4.415,1.445)), ) createRL( tech, net, 'licon', @@ -9534,11 +9434,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.375,1.46),(5.375,2.43),(5.625,2.43),(5.625,1.46),(5.375,1.46)), + ((5.375,1.37),(5.375,2.46),(5.625,2.46),(5.625,1.37),(5.375,1.37)), ) createRL( tech, net, 'difftap', - ((5.375,5.55),(5.375,8.56),(5.625,8.56),(5.625,5.55),(5.375,5.55)), + ((5.375,5.52),(5.375,8.65),(5.625,8.65),(5.625,5.52),(5.375,5.52)), ) createRL( tech, net, 'difftap', @@ -9554,7 +9454,7 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,5.53),(5.415,8.58),(5.585,8.58),(5.585,5.53),(5.415,5.53)), + ((5.415,5.56),(5.415,8.61),(5.585,8.61),(5.585,5.56),(5.415,5.56)), ) createRL( tech, net, 'li', @@ -9562,7 +9462,7 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,1.44),(5.415,2.45),(5.585,2.45),(5.585,1.44),(5.415,1.44)), + ((5.415,1.41),(5.415,2.42),(5.585,2.42),(5.585,1.41),(5.415,1.41)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -9576,51 +9476,51 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((5.415,5.61),(5.415,5.78),(5.585,5.78),(5.585,5.61),(5.415,5.61)), + ((5.415,1.49),(5.415,1.66),(5.585,1.66),(5.585,1.49),(5.415,1.49)), ) createRL( tech, net, 'licon', - ((5.415,5.95),(5.415,6.12),(5.585,6.12),(5.585,5.95),(5.415,5.95)), + ((5.415,1.83),(5.415,2.0),(5.585,2.0),(5.585,1.83),(5.415,1.83)), ) createRL( tech, net, 'licon', - ((5.415,6.29),(5.415,6.46),(5.585,6.46),(5.585,6.29),(5.415,6.29)), + ((5.415,2.17),(5.415,2.34),(5.585,2.34),(5.585,2.17),(5.415,2.17)), ) createRL( tech, net, 'licon', - ((5.415,6.63),(5.415,6.8),(5.585,6.8),(5.585,6.63),(5.415,6.63)), + ((5.415,5.64),(5.415,5.81),(5.585,5.81),(5.585,5.64),(5.415,5.64)), ) createRL( tech, net, 'licon', - ((5.415,6.97),(5.415,7.14),(5.585,7.14),(5.585,6.97),(5.415,6.97)), + ((5.415,5.98),(5.415,6.15),(5.585,6.15),(5.585,5.98),(5.415,5.98)), ) createRL( tech, net, 'licon', - ((5.415,7.31),(5.415,7.48),(5.585,7.48),(5.585,7.31),(5.415,7.31)), + ((5.415,6.32),(5.415,6.49),(5.585,6.49),(5.585,6.32),(5.415,6.32)), ) createRL( tech, net, 'licon', - ((5.415,7.65),(5.415,7.82),(5.585,7.82),(5.585,7.65),(5.415,7.65)), + ((5.415,6.66),(5.415,6.83),(5.585,6.83),(5.585,6.66),(5.415,6.66)), ) createRL( tech, net, 'licon', - ((5.415,7.99),(5.415,8.16),(5.585,8.16),(5.585,7.99),(5.415,7.99)), + ((5.415,7.0),(5.415,7.17),(5.585,7.17),(5.585,7.0),(5.415,7.0)), ) createRL( tech, net, 'licon', - ((5.415,8.33),(5.415,8.5),(5.585,8.5),(5.585,8.33),(5.415,8.33)), + ((5.415,7.34),(5.415,7.51),(5.585,7.51),(5.585,7.34),(5.415,7.34)), ) createRL( tech, net, 'licon', - ((5.415,1.52),(5.415,1.69),(5.585,1.69),(5.585,1.52),(5.415,1.52)), + ((5.415,7.68),(5.415,7.85),(5.585,7.85),(5.585,7.68),(5.415,7.68)), ) createRL( tech, net, 'licon', - ((5.415,1.86),(5.415,2.03),(5.585,2.03),(5.585,1.86),(5.415,1.86)), + ((5.415,8.02),(5.415,8.19),(5.585,8.19),(5.585,8.02),(5.415,8.02)), ) createRL( tech, net, 'licon', - ((5.415,2.2),(5.415,2.37),(5.585,2.37),(5.585,2.2),(5.415,2.2)), + ((5.415,8.36),(5.415,8.53),(5.585,8.53),(5.585,8.36),(5.415,8.36)), ) net = nets['*'] createRL( @@ -9633,19 +9533,19 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((5.25,1.335),(5.25,2.555),(5.75,2.555),(5.75,1.335),(5.25,1.335)), + ((5.25,1.245),(5.25,2.585),(5.75,2.585),(5.75,1.245),(5.25,1.245)), ) createRL( tech, net, 'nsdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), ) createRL( tech, net, 'nsdm', - ((1.175,8.875),(1.175,9.525),(1.825,9.525),(1.825,8.875),(1.175,8.875)), + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( tech, net, 'nsdm', - ((0.25,0.625),(0.25,2.625),(0.75,2.625),(0.75,0.625),(0.25,0.625)), + ((1.55,1.375),(1.55,2.625),(2.45,2.625),(2.45,1.375),(1.55,1.375)), ) createRL( tech, net, 'nsdm', @@ -9653,11 +9553,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.55,1.375),(1.55,2.625),(2.45,2.625),(2.45,1.375),(1.55,1.375)), + ((0.25,0.57),(0.25,2.625),(0.75,2.625),(0.75,0.57),(0.25,0.57)), ) createRL( tech, net, 'nsdm', - ((4.25,0.55),(4.25,1.77),(4.75,1.77),(4.75,0.55),(4.25,0.55)), + ((4.25,0.52),(4.25,1.86),(4.75,1.86),(4.75,0.52),(4.25,0.52)), ) createRL( tech, net, 'nsdm', @@ -9685,7 +9585,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,1.465),(1.25,2.345),(1.75,2.345),(1.75,1.465),(1.25,1.465)), + ((1.25,1.435),(1.25,2.435),(1.75,2.435),(1.75,1.435),(1.25,1.435)), ) createRL( tech, net, 'nsdm', @@ -9697,7 +9597,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,8.925),(3.25,9.475),(3.75,9.475),(3.75,8.925),(3.25,8.925)), + ((3.25,8.87),(3.25,9.53),(3.75,9.53),(3.75,8.87),(3.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -9705,15 +9605,15 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,0.625),(0.25,1.175),(0.75,1.175),(0.75,0.625),(0.25,0.625)), + ((0.25,0.57),(0.25,1.23),(0.75,1.23),(0.75,0.57),(0.25,0.57)), ) createRL( tech, net, 'nsdm', - ((2.25,0.625),(2.25,2.625),(2.75,2.625),(2.75,0.625),(2.25,0.625)), + ((2.25,0.57),(2.25,2.625),(2.75,2.625),(2.75,0.57),(2.25,0.57)), ) createRL( tech, net, 'nsdm', - ((3.25,1.465),(3.25,2.345),(3.75,2.345),(3.75,1.465),(3.25,1.465)), + ((3.25,1.435),(3.25,2.435),(3.75,2.435),(3.75,1.435),(3.25,1.435)), ) createRL( tech, net, 'nsdm', @@ -9741,7 +9641,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,0.625),(2.25,1.175),(2.75,1.175),(2.75,0.625),(2.25,0.625)), + ((2.25,0.57),(2.25,1.23),(2.75,1.23),(2.75,0.57),(2.25,0.57)), ) createRL( tech, net, 'nsdm', @@ -9779,6 +9679,10 @@ def _load(): tech, net, 'psdm', ((1.175,0.375),(1.175,1.025),(1.825,1.025),(1.825,0.375),(1.175,0.375)), ) + createRL( + tech, net, 'psdm', + ((1.25,0.37),(1.25,1.03),(1.75,1.03),(1.75,0.37),(1.25,0.37)), + ) createRL( tech, net, 'psdm', ((2.3,6.875),(2.3,8.125),(2.7,8.125),(2.7,6.875),(2.3,6.875)), @@ -9801,7 +9705,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.25,7.655),(0.25,8.535),(0.75,8.535),(0.75,7.655),(0.25,7.655)), + ((0.25,7.565),(0.25,8.565),(0.75,8.565),(0.75,7.565),(0.25,7.565)), ) createRL( tech, net, 'psdm', @@ -9813,15 +9717,15 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.175,0.375),(3.175,1.025),(3.825,1.025),(3.825,0.375),(3.175,0.375)), + ((3.25,0.37),(3.25,1.03),(3.75,1.03),(3.75,0.37),(3.25,0.37)), ) createRL( tech, net, 'psdm', - ((4.25,8.275),(4.25,9.495),(4.75,9.495),(4.75,8.275),(4.25,8.275)), + ((3.175,0.375),(3.175,1.025),(3.825,1.025),(3.825,0.375),(3.175,0.375)), ) createRL( tech, net, 'psdm', - ((3.855,5.43),(3.855,8.57),(4.145,8.57),(4.145,5.43),(3.855,5.43)), + ((4.25,8.19),(4.25,9.53),(4.75,9.53),(4.75,8.19),(4.25,8.19)), ) createRL( tech, net, 'psdm', @@ -9829,7 +9733,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.3,5.375),(2.3,8.625),(2.8,8.625),(2.8,5.375),(2.3,5.375)), + ((3.855,5.43),(3.855,8.57),(4.145,8.57),(4.145,5.43),(3.855,5.43)), ) createRL( tech, net, 'psdm', @@ -9841,7 +9745,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,0.425),(1.25,0.975),(1.75,0.975),(1.75,0.425),(1.25,0.425)), + ((2.3,5.375),(2.3,8.625),(2.8,8.625),(2.8,5.375),(2.3,5.375)), ) createRL( tech, net, 'psdm', @@ -9851,21 +9755,17 @@ def _load(): tech, net, 'psdm', ((3.3,6.875),(3.3,8.125),(3.7,8.125),(3.7,6.875),(3.3,6.875)), ) - createRL( - tech, net, 'psdm', - ((2.855,5.43),(2.855,8.57),(3.145,8.57),(3.145,5.43),(2.855,5.43)), - ) createRL( tech, net, 'psdm', ((2.55,5.375),(2.55,8.625),(3.45,8.625),(3.45,5.375),(2.55,5.375)), ) createRL( tech, net, 'psdm', - ((3.25,0.425),(3.25,0.975),(3.75,0.975),(3.75,0.425),(3.25,0.425)), + ((2.855,5.43),(2.855,8.57),(3.145,8.57),(3.145,5.43),(2.855,5.43)), ) createRL( tech, net, 'psdm', - ((5.25,5.425),(5.25,8.685),(5.75,8.685),(5.75,5.425),(5.25,5.425)), + ((5.25,5.395),(5.25,8.775),(5.75,8.775),(5.75,5.395),(5.25,5.395)), ) createRL( tech, net, 'psdm', @@ -9906,11 +9806,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,7.78),(0.375,8.41),(0.625,8.41),(0.625,7.78),(0.375,7.78)), + ((0.375,7.69),(0.375,8.44),(0.625,8.44),(0.625,7.69),(0.375,7.69)), ) createRL( tech, net, 'difftap', - ((3.375,1.59),(3.375,2.22),(3.625,2.22),(3.625,1.59),(3.375,1.59)), + ((3.375,1.56),(3.375,2.31),(3.625,2.31),(3.625,1.56),(3.375,1.56)), ) createRL( tech, net, 'difftap', @@ -9930,7 +9830,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,1.59),(1.375,2.22),(1.625,2.22),(1.625,1.59),(1.375,1.59)), + ((1.375,1.56),(1.375,2.31),(1.625,2.31),(1.625,1.56),(1.375,1.56)), ) createRL( tech, net, 'difftap', @@ -9954,7 +9854,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,7.76),(0.415,8.43),(0.585,8.43),(0.585,7.76),(0.415,7.76)), + ((0.415,7.73),(0.415,8.4),(0.585,8.4),(0.585,7.73),(0.415,7.73)), ) createRL( tech, net, 'li', @@ -9962,48 +9862,48 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,1.915),(4.415,8.085),(4.585,8.085),(4.585,1.915),(4.415,1.915)), + ((3.415,1.6),(3.415,2.27),(3.585,2.27),(3.585,1.6),(3.415,1.6)), ) createRL( tech, net, 'li', - ((3.415,1.57),(3.415,2.24),(3.585,2.24),(3.585,1.57),(3.415,1.57)), + ((4.415,1.915),(4.415,8.085),(4.585,8.085),(4.585,1.915),(4.415,1.915)), ) createRL( tech, net, 'li', - ((1.415,1.57),(1.415,2.24),(1.585,2.24),(1.585,1.57),(1.415,1.57)), + ((1.415,1.6),(1.415,2.27),(1.585,2.27),(1.585,1.6),(1.415,1.6)), ) createRL( tech, net, 'licon', - ((1.415,1.65),(1.415,1.82),(1.585,1.82),(1.585,1.65),(1.415,1.65)), + ((4.515,3.915),(4.515,4.085),(4.685,4.085),(4.685,3.915),(4.515,3.915)), ) createRL( tech, net, 'licon', - ((1.415,1.99),(1.415,2.16),(1.585,2.16),(1.585,1.99),(1.415,1.99)), + ((1.415,1.68),(1.415,1.85),(1.585,1.85),(1.585,1.68),(1.415,1.68)), ) createRL( tech, net, 'licon', - ((0.415,7.84),(0.415,8.01),(0.585,8.01),(0.585,7.84),(0.415,7.84)), + ((1.415,2.02),(1.415,2.19),(1.585,2.19),(1.585,2.02),(1.415,2.02)), ) createRL( tech, net, 'licon', - ((0.415,8.18),(0.415,8.35),(0.585,8.35),(0.585,8.18),(0.415,8.18)), + ((0.415,7.81),(0.415,7.98),(0.585,7.98),(0.585,7.81),(0.415,7.81)), ) createRL( tech, net, 'licon', - ((3.415,1.65),(3.415,1.82),(3.585,1.82),(3.585,1.65),(3.415,1.65)), + ((0.415,8.15),(0.415,8.32),(0.585,8.32),(0.585,8.15),(0.415,8.15)), ) createRL( tech, net, 'licon', - ((3.415,1.99),(3.415,2.16),(3.585,2.16),(3.585,1.99),(3.415,1.99)), + ((3.415,1.68),(3.415,1.85),(3.585,1.85),(3.585,1.68),(3.415,1.68)), ) createRL( tech, net, 'licon', - ((4.515,3.915),(4.515,4.085),(4.685,4.085),(4.685,3.915),(4.515,3.915)), + ((3.415,2.02),(3.415,2.19),(3.585,2.19),(3.585,2.02),(3.415,2.02)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((4.375,8.4),(4.375,9.37),(4.625,9.37),(4.625,8.4),(4.375,8.4)), + ((4.375,8.315),(4.375,9.405),(4.625,9.405),(4.625,8.315),(4.375,8.315)), ) createRL( tech, net, 'difftap', @@ -10019,11 +9919,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,9.05),(3.375,9.35),(3.625,9.35),(3.625,9.05),(3.375,9.05)), + ((4.925,5.5),(4.925,9.5),(5.075,9.5),(5.075,5.5),(4.925,5.5)), ) createRL( tech, net, 'difftap', - ((4.925,5.5),(4.925,9.5),(5.075,9.5),(5.075,5.5),(4.925,5.5)), + ((3.375,8.995),(3.375,9.405),(3.625,9.405),(3.625,8.995),(3.375,8.995)), ) createRL( tech, net, 'difftap', @@ -10043,11 +9943,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), + ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), ) createRL( tech, net, 'difftap', - ((1.3,9.0),(1.3,9.4),(1.7,9.4),(1.7,9.0),(1.3,9.0)), + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), ) createRL( tech, net, 'difftap', @@ -10075,11 +9975,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), + ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), ) createRL( tech, net, 'nwm', - ((1.12,8.82),(1.12,9.58),(1.88,9.58),(1.88,8.82),(1.12,8.82)), + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), ) createRL( tech, net, 'nwm', @@ -10099,7 +9999,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,7.6),(0.195,8.59),(0.805,8.59),(0.805,7.6),(0.195,7.6)), + ((0.195,7.51),(0.195,8.62),(0.805,8.62),(0.805,7.51),(0.195,7.51)), ) createRL( tech, net, 'nwm', @@ -10111,7 +10011,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,8.22),(4.195,9.55),(4.805,9.55),(4.805,8.22),(4.195,8.22)), + ((4.195,8.135),(4.195,9.585),(4.805,9.585),(4.805,8.135),(4.195,8.135)), ) createRL( tech, net, 'nwm', @@ -10131,7 +10031,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,8.87),(3.195,9.53),(3.805,9.53),(3.805,8.87),(3.195,8.87)), + ((3.195,8.815),(3.195,9.585),(3.805,9.585),(3.805,8.815),(3.195,8.815)), ) createRL( tech, net, 'nwm', @@ -10151,7 +10051,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((5.195,5.37),(5.195,8.74),(5.805,8.74),(5.805,5.37),(5.195,5.37)), + ((5.195,5.34),(5.195,8.83),(5.805,8.83),(5.805,5.34),(5.195,5.34)), ) createRL( tech, net, 'nwm', @@ -10163,15 +10063,15 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,9.035),(3.415,9.365),(3.585,9.365),(3.585,9.035),(3.415,9.035)), + ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), ) createRL( tech, net, 'li', - ((4.415,8.38),(4.415,9.39),(4.585,9.39),(4.585,8.38),(4.415,8.38)), + ((4.415,8.355),(4.415,9.365),(4.585,9.365),(4.585,8.355),(4.415,8.355)), ) createRL( tech, net, 'li', - ((1.415,9.035),(1.415,9.365),(1.585,9.365),(1.585,9.035),(1.415,9.035)), + ((3.415,9.035),(3.415,9.365),(3.585,9.365),(3.585,9.035),(3.415,9.035)), ) createRL( tech, net, 'li', @@ -10189,23 +10089,23 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,9.115),(3.415,9.285),(3.585,9.285),(3.585,9.115),(3.415,9.115)), + ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), ) createRL( tech, net, 'licon', - ((4.415,8.46),(4.415,8.63),(4.585,8.63),(4.585,8.46),(4.415,8.46)), + ((4.415,8.435),(4.415,8.605),(4.585,8.605),(4.585,8.435),(4.415,8.435)), ) createRL( tech, net, 'licon', - ((4.415,8.8),(4.415,8.97),(4.585,8.97),(4.585,8.8),(4.415,8.8)), + ((4.415,8.775),(4.415,8.945),(4.585,8.945),(4.585,8.775),(4.415,8.775)), ) createRL( tech, net, 'licon', - ((4.415,9.14),(4.415,9.31),(4.585,9.31),(4.585,9.14),(4.415,9.14)), + ((4.415,9.115),(4.415,9.285),(4.585,9.285),(4.585,9.115),(4.415,9.115)), ) createRL( tech, net, 'licon', - ((1.415,9.115),(1.415,9.285),(1.585,9.285),(1.585,9.115),(1.415,9.115)), + ((3.415,9.115),(3.415,9.285),(3.585,9.285),(3.585,9.115),(3.415,9.115)), ) net = nets['i0'] createRL( @@ -10460,8 +10360,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'difftap', @@ -10469,11 +10369,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,6.5),(3.375,9.475),(3.625,9.475),(3.625,6.5),(3.375,6.5)), + ((3.375,6.5),(3.375,9.335),(3.625,9.335),(3.625,6.5),(3.375,6.5)), ) createRL( tech, net, 'difftap', - ((3.375,8.845),(3.375,9.475),(3.625,9.475),(3.625,8.845),(3.375,8.845)), + ((3.375,8.925),(3.375,9.335),(3.625,9.335),(3.625,8.925),(3.375,8.925)), ) createRL( tech, net, 'difftap', @@ -10485,11 +10385,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), + ((3.075,6.5),(3.075,8.5),(3.325,8.5),(3.325,6.5),(3.075,6.5)), ) createRL( tech, net, 'difftap', - ((3.075,6.5),(3.075,8.5),(3.325,8.5),(3.325,6.5),(3.075,6.5)), + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), ) createRL( tech, net, 'difftap', @@ -10513,7 +10413,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,7.22),(2.195,8.55),(2.805,8.55),(2.805,7.22),(2.195,7.22)), + ((2.195,7.135),(2.195,8.585),(2.805,8.585),(2.805,7.135),(2.195,7.135)), ) createRL( tech, net, 'nwm', @@ -10521,7 +10421,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), ) createRL( tech, net, 'nwm', @@ -10537,7 +10437,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,6.32),(3.195,9.655),(3.805,9.655),(3.805,6.32),(3.195,6.32)), + ((3.195,6.32),(3.195,9.515),(3.805,9.515),(3.805,6.32),(3.195,6.32)), ) createRL( tech, net, 'nwm', @@ -10545,11 +10445,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,6.445),(1.195,7.775),(1.805,7.775),(1.805,6.445),(1.195,6.445)), + ((1.195,6.415),(1.195,7.865),(1.805,7.865),(1.805,6.415),(1.195,6.415)), ) createRL( tech, net, 'nwm', - ((0.195,7.6),(0.195,8.59),(0.805,8.59),(0.805,7.6),(0.195,7.6)), + ((0.195,7.51),(0.195,8.62),(0.805,8.62),(0.805,7.51),(0.195,7.51)), ) createRL( tech, net, 'nwm', @@ -10565,11 +10465,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,8.665),(3.195,9.655),(3.805,9.655),(3.805,8.665),(3.195,8.665)), + ((3.195,8.745),(3.195,9.515),(3.805,9.515),(3.805,8.745),(3.195,8.745)), ) createRL( tech, net, 'nwm', - ((4.195,5.37),(4.195,8.74),(4.805,8.74),(4.805,5.37),(4.195,5.37)), + ((4.195,5.34),(4.195,8.83),(4.805,8.83),(4.805,5.34),(4.195,5.34)), ) createRL( tech, net, 'nwm', @@ -10605,7 +10505,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,8.825),(3.415,9.495),(3.585,9.495),(3.585,8.825),(3.415,8.825)), + ((3.415,8.965),(3.415,9.295),(3.585,9.295),(3.585,8.965),(3.415,8.965)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -10619,11 +10519,7 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,8.905),(3.415,9.075),(3.585,9.075),(3.585,8.905),(3.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((3.415,9.245),(3.415,9.415),(3.585,9.415),(3.585,9.245),(3.415,9.245)), + ((3.415,9.045),(3.415,9.215),(3.585,9.215),(3.585,9.045),(3.415,9.045)), ) createRL( tech, net, 'licon', @@ -10636,7 +10532,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,5.55),(4.375,8.56),(4.625,8.56),(4.625,5.55),(4.375,5.55)), + ((4.375,5.52),(4.375,8.65),(4.625,8.65),(4.625,5.52),(4.375,5.52)), ) createRL( tech, net, 'difftap', @@ -10648,7 +10544,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,1.46),(4.375,2.43),(4.625,2.43),(4.625,1.46),(4.375,1.46)), + ((4.375,1.37),(4.375,2.46),(4.625,2.46),(4.625,1.37),(4.375,1.37)), ) createRL( tech, net, 'difftap', @@ -10656,11 +10552,11 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,5.53),(4.415,8.58),(4.585,8.58),(4.585,5.53),(4.415,5.53)), + ((4.415,5.56),(4.415,8.61),(4.585,8.61),(4.585,5.56),(4.415,5.56)), ) createRL( tech, net, 'li', - ((4.415,1.44),(4.415,2.45),(4.585,2.45),(4.585,1.44),(4.415,1.44)), + ((4.415,1.41),(4.415,2.42),(4.585,2.42),(4.585,1.41),(4.415,1.41)), ) createRL( tech, net, 'li', @@ -10678,56 +10574,56 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((4.415,1.52),(4.415,1.69),(4.585,1.69),(4.585,1.52),(4.415,1.52)), + ((4.415,1.49),(4.415,1.66),(4.585,1.66),(4.585,1.49),(4.415,1.49)), ) createRL( tech, net, 'licon', - ((4.415,1.86),(4.415,2.03),(4.585,2.03),(4.585,1.86),(4.415,1.86)), + ((4.415,1.83),(4.415,2.0),(4.585,2.0),(4.585,1.83),(4.415,1.83)), ) createRL( tech, net, 'licon', - ((4.415,2.2),(4.415,2.37),(4.585,2.37),(4.585,2.2),(4.415,2.2)), + ((4.415,2.17),(4.415,2.34),(4.585,2.34),(4.585,2.17),(4.415,2.17)), ) createRL( tech, net, 'licon', - ((4.415,5.61),(4.415,5.78),(4.585,5.78),(4.585,5.61),(4.415,5.61)), + ((4.415,5.64),(4.415,5.81),(4.585,5.81),(4.585,5.64),(4.415,5.64)), ) createRL( tech, net, 'licon', - ((4.415,5.95),(4.415,6.12),(4.585,6.12),(4.585,5.95),(4.415,5.95)), + ((4.415,5.98),(4.415,6.15),(4.585,6.15),(4.585,5.98),(4.415,5.98)), ) createRL( tech, net, 'licon', - ((4.415,6.29),(4.415,6.46),(4.585,6.46),(4.585,6.29),(4.415,6.29)), + ((4.415,6.32),(4.415,6.49),(4.585,6.49),(4.585,6.32),(4.415,6.32)), ) createRL( tech, net, 'licon', - ((4.415,6.63),(4.415,6.8),(4.585,6.8),(4.585,6.63),(4.415,6.63)), + ((4.415,6.66),(4.415,6.83),(4.585,6.83),(4.585,6.66),(4.415,6.66)), ) createRL( tech, net, 'licon', - ((4.415,6.97),(4.415,7.14),(4.585,7.14),(4.585,6.97),(4.415,6.97)), + ((4.415,7.0),(4.415,7.17),(4.585,7.17),(4.585,7.0),(4.415,7.0)), ) createRL( tech, net, 'licon', - ((4.415,7.31),(4.415,7.48),(4.585,7.48),(4.585,7.31),(4.415,7.31)), + ((4.415,7.34),(4.415,7.51),(4.585,7.51),(4.585,7.34),(4.415,7.34)), ) createRL( tech, net, 'licon', - ((4.415,7.65),(4.415,7.82),(4.585,7.82),(4.585,7.65),(4.415,7.65)), + ((4.415,7.68),(4.415,7.85),(4.585,7.85),(4.585,7.68),(4.415,7.68)), ) createRL( tech, net, 'licon', - ((4.415,7.99),(4.415,8.16),(4.585,8.16),(4.585,7.99),(4.415,7.99)), + ((4.415,8.02),(4.415,8.19),(4.585,8.19),(4.585,8.02),(4.415,8.02)), ) createRL( tech, net, 'licon', - ((4.415,8.33),(4.415,8.5),(4.585,8.5),(4.585,8.33),(4.415,8.33)), + ((4.415,8.36),(4.415,8.53),(4.585,8.53),(4.585,8.36),(4.415,8.36)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((2.25,7.275),(2.25,8.495),(2.75,8.495),(2.75,7.275),(2.25,7.275)), + ((2.25,7.19),(2.25,8.53),(2.75,8.53),(2.75,7.19),(2.25,7.19)), ) createRL( tech, net, 'psdm', @@ -10741,6 +10637,10 @@ def _load(): tech, net, 'psdm', ((1.175,0.375),(1.175,1.025),(1.825,1.025),(1.825,0.375),(1.175,0.375)), ) + createRL( + tech, net, 'psdm', + ((1.25,0.37),(1.25,1.03),(1.75,1.03),(1.75,0.37),(1.25,0.37)), + ) createRL( tech, net, 'psdm', ((2.2,6.375),(2.2,8.625),(2.75,8.625),(2.75,6.375),(2.2,6.375)), @@ -10751,7 +10651,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,6.375),(3.25,9.6),(3.75,9.6),(3.75,6.375),(3.25,6.375)), + ((3.25,6.375),(3.25,9.46),(3.75,9.46),(3.75,6.375),(3.25,6.375)), ) createRL( tech, net, 'psdm', @@ -10763,11 +10663,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,6.5),(1.25,7.72),(1.75,7.72),(1.75,6.5),(1.25,6.5)), + ((1.25,6.47),(1.25,7.81),(1.75,7.81),(1.75,6.47),(1.25,6.47)), ) createRL( tech, net, 'psdm', - ((0.25,7.655),(0.25,8.535),(0.75,8.535),(0.75,7.655),(0.25,7.655)), + ((0.25,7.565),(0.25,8.565),(0.75,8.565),(0.75,7.565),(0.25,7.565)), ) createRL( tech, net, 'psdm', @@ -10791,24 +10691,20 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,0.425),(1.25,0.975),(1.75,0.975),(1.75,0.425),(1.25,0.425)), + ((4.25,5.395),(4.25,8.775),(4.75,8.775),(4.75,5.395),(4.25,5.395)), ) createRL( tech, net, 'psdm', - ((4.25,5.425),(4.25,8.685),(4.75,8.685),(4.75,5.425),(4.25,5.425)), + ((3.25,8.8),(3.25,9.46),(3.75,9.46),(3.75,8.8),(3.25,8.8)), ) createRL( tech, net, 'psdm', - ((3.25,8.72),(3.25,9.6),(3.75,9.6),(3.75,8.72),(3.25,8.72)), + ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), ) - createRL( - tech, net, 'psdm', - ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), - ) createRL( tech, net, 'psdm', ((3.2,6.375),(3.2,8.625),(3.75,8.625),(3.75,6.375),(3.2,6.375)), @@ -10835,7 +10731,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -10855,31 +10751,31 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,0.615),(3.25,1.165),(3.75,1.165),(3.75,0.615),(3.25,0.615)), + ((1.855,1.53),(1.855,3.57),(2.145,3.57),(2.145,1.53),(1.855,1.53)), ) createRL( tech, net, 'nsdm', - ((2.55,0.475),(2.55,2.625),(3.45,2.625),(3.45,0.475),(2.55,0.475)), + ((3.25,0.59),(3.25,1.25),(3.75,1.25),(3.75,0.59),(3.25,0.59)), ) createRL( tech, net, 'nsdm', - ((2.855,0.53),(2.855,2.57),(3.145,2.57),(3.145,0.53),(2.855,0.53)), + ((2.55,0.475),(2.55,2.625),(3.45,2.625),(3.45,0.475),(2.55,0.475)), ) createRL( tech, net, 'nsdm', - ((0.25,0.625),(0.25,1.175),(0.75,1.175),(0.75,0.625),(0.25,0.625)), + ((2.855,0.53),(2.855,2.57),(3.145,2.57),(3.145,0.53),(2.855,0.53)), ) createRL( tech, net, 'nsdm', - ((2.25,0.475),(2.25,2.625),(2.8,2.625),(2.8,0.475),(2.25,0.475)), + ((0.25,0.57),(0.25,1.23),(0.75,1.23),(0.75,0.57),(0.25,0.57)), ) createRL( tech, net, 'nsdm', - ((0.25,0.625),(0.25,3.625),(0.75,3.625),(0.75,0.625),(0.25,0.625)), + ((2.25,0.475),(2.25,2.625),(2.8,2.625),(2.8,0.475),(2.25,0.475)), ) createRL( tech, net, 'nsdm', - ((2.25,1.32),(2.25,3.57),(2.75,3.57),(2.75,1.32),(2.25,1.32)), + ((2.25,1.23),(2.25,3.6),(2.75,3.6),(2.75,1.23),(2.25,1.23)), ) createRL( tech, net, 'nsdm', @@ -10887,7 +10783,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,1.335),(4.25,2.555),(4.75,2.555),(4.75,1.335),(4.25,1.335)), + ((4.25,1.245),(4.25,2.585),(4.75,2.585),(4.75,1.245),(4.25,1.245)), ) createRL( tech, net, 'nsdm', @@ -10911,7 +10807,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.855,1.53),(1.855,3.57),(2.145,3.57),(2.145,1.53),(1.855,1.53)), + ((0.25,0.57),(0.25,3.625),(0.75,3.625),(0.75,0.57),(0.25,0.57)), ) createRL( tech, net, 'nsdm', @@ -10948,7 +10844,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.625),(1.375,7.595),(1.625,7.595),(1.625,6.625),(1.375,6.625)), + ((1.375,6.595),(1.375,7.685),(1.625,7.685),(1.625,6.595),(1.375,6.595)), ) createRL( tech, net, 'difftap', @@ -10960,7 +10856,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,1.445),(2.375,3.445),(2.625,3.445),(2.625,1.445),(2.375,1.445)), + ((2.375,1.355),(2.375,3.475),(2.625,3.475),(2.625,1.355),(2.375,1.355)), ) createRL( tech, net, 'difftap', @@ -10980,27 +10876,27 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.415,1.51),(2.415,1.68),(2.585,1.68),(2.585,1.51),(2.415,1.51)), + ((2.415,1.48),(2.415,1.65),(2.585,1.65),(2.585,1.48),(2.415,1.48)), ) createRL( tech, net, 'licon', - ((2.415,1.85),(2.415,2.02),(2.585,2.02),(2.585,1.85),(2.415,1.85)), + ((2.415,1.82),(2.415,1.99),(2.585,1.99),(2.585,1.82),(2.415,1.82)), ) createRL( tech, net, 'licon', - ((2.415,2.19),(2.415,2.36),(2.585,2.36),(2.585,2.19),(2.415,2.19)), + ((2.415,2.16),(2.415,2.33),(2.585,2.33),(2.585,2.16),(2.415,2.16)), ) createRL( tech, net, 'licon', - ((2.415,2.53),(2.415,2.7),(2.585,2.7),(2.585,2.53),(2.415,2.53)), + ((2.415,2.5),(2.415,2.67),(2.585,2.67),(2.585,2.5),(2.415,2.5)), ) createRL( tech, net, 'licon', - ((2.415,2.87),(2.415,3.04),(2.585,3.04),(2.585,2.87),(2.415,2.87)), + ((2.415,2.84),(2.415,3.01),(2.585,3.01),(2.585,2.84),(2.415,2.84)), ) createRL( tech, net, 'licon', - ((2.415,3.21),(2.415,3.38),(2.585,3.38),(2.585,3.21),(2.415,3.21)), + ((2.415,3.18),(2.415,3.35),(2.585,3.35),(2.585,3.18),(2.415,3.18)), ) createRL( tech, net, 'licon', @@ -11008,15 +10904,15 @@ def _load(): ) createRL( tech, net, 'licon', - ((1.415,6.685),(1.415,6.855),(1.585,6.855),(1.585,6.685),(1.415,6.685)), + ((1.415,6.715),(1.415,6.885),(1.585,6.885),(1.585,6.715),(1.415,6.715)), ) createRL( tech, net, 'licon', - ((1.415,7.025),(1.415,7.195),(1.585,7.195),(1.585,7.025),(1.415,7.025)), + ((1.415,7.055),(1.415,7.225),(1.585,7.225),(1.585,7.055),(1.415,7.055)), ) createRL( tech, net, 'licon', - ((1.415,7.365),(1.415,7.535),(1.585,7.535),(1.585,7.365),(1.415,7.365)), + ((1.415,7.395),(1.415,7.565),(1.585,7.565),(1.585,7.395),(1.415,7.395)), ) createRL( tech, net, 'li', @@ -11024,7 +10920,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,6.605),(1.415,7.615),(1.585,7.615),(1.585,6.605),(1.415,6.605)), + ((1.415,6.635),(1.415,7.645),(1.585,7.645),(1.585,6.635),(1.415,6.635)), ) createRL( tech, net, 'li', @@ -11032,7 +10928,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,3.295),(2.415,7.085),(2.585,7.085),(2.585,3.295),(2.415,3.295)), + ((2.415,3.265),(2.415,7.085),(2.585,7.085),(2.585,3.265),(2.415,3.265)), ) createRL( tech, net, 'li', @@ -11040,7 +10936,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,1.425),(2.415,3.465),(2.585,3.465),(2.585,1.425),(2.415,1.425)), + ((2.415,1.395),(2.415,3.435),(2.585,3.435),(2.585,1.395),(2.415,1.395)), ) net = nets['vss'] createRL( @@ -11049,31 +10945,31 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.6),(0.375,3.5),(0.675,3.5),(0.675,1.6),(0.375,1.6)), + ((0.675,1.6),(0.675,3.5),(0.925,3.5),(0.925,1.6),(0.675,1.6)), ) createRL( tech, net, 'difftap', - ((0.675,1.6),(0.675,3.5),(0.925,3.5),(0.925,1.6),(0.675,1.6)), + ((0.375,1.6),(0.375,3.5),(0.675,3.5),(0.675,1.6),(0.375,1.6)), ) createRL( tech, net, 'difftap', - ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), + ((0.925,1.6),(0.925,3.5),(1.075,3.5),(1.075,1.6),(0.925,1.6)), ) createRL( tech, net, 'difftap', - ((1.375,0.55),(1.375,0.85),(1.625,0.85),(1.625,0.55),(1.375,0.55)), + ((2.925,0.6),(2.925,2.5),(3.075,2.5),(3.075,0.6),(2.925,0.6)), ) createRL( tech, net, 'difftap', - ((0.375,0.75),(0.375,1.05),(0.625,1.05),(0.625,0.75),(0.375,0.75)), + ((1.3,0.5),(1.3,0.9),(1.7,0.9),(1.7,0.5),(1.3,0.5)), ) createRL( tech, net, 'difftap', - ((1.3,0.5),(1.3,0.9),(1.7,0.9),(1.7,0.5),(1.3,0.5)), + ((0.375,0.695),(0.375,1.105),(0.625,1.105),(0.625,0.695),(0.375,0.695)), ) createRL( tech, net, 'difftap', - ((0.375,0.75),(0.375,3.5),(0.625,3.5),(0.625,0.75),(0.375,0.75)), + ((1.375,0.495),(1.375,0.905),(1.625,0.905),(1.625,0.495),(1.375,0.495)), ) createRL( tech, net, 'difftap', @@ -11097,15 +10993,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.925,1.6),(0.925,3.5),(1.075,3.5),(1.075,1.6),(0.925,1.6)), + ((0.375,0.695),(0.375,3.5),(0.625,3.5),(0.625,0.695),(0.375,0.695)), ) createRL( tech, net, 'difftap', - ((3.375,0.74),(3.375,1.04),(3.625,1.04),(3.625,0.74),(3.375,0.74)), + ((3.375,0.715),(3.375,1.125),(3.625,1.125),(3.625,0.715),(3.375,0.715)), ) createRL( tech, net, 'li', - ((3.415,0.725),(3.415,1.055),(3.585,1.055),(3.585,0.725),(3.415,0.725)), + ((3.415,0.755),(3.415,1.085),(3.585,1.085),(3.585,0.755),(3.415,0.755)), ) createRL( tech, net, 'li', @@ -11131,11 +11027,11 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), + ((3.415,0.835),(3.415,1.005),(3.585,1.005),(3.585,0.835),(3.415,0.835)), ) createRL( tech, net, 'licon', - ((3.415,0.805),(3.415,0.975),(3.585,0.975),(3.585,0.805),(3.415,0.805)), + ((1.415,0.615),(1.415,0.785),(1.585,0.785),(1.585,0.615),(1.415,0.615)), ) createRL( tech, net, 'licon', @@ -11220,11 +11116,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,7.78),(0.375,8.41),(0.625,8.41),(0.625,7.78),(0.375,7.78)), + ((0.375,7.69),(0.375,8.44),(0.625,8.44),(0.625,7.69),(0.375,7.69)), ) createRL( tech, net, 'difftap', - ((2.375,7.4),(2.375,8.37),(2.625,8.37),(2.625,7.4),(2.375,7.4)), + ((2.375,7.315),(2.375,8.405),(2.625,8.405),(2.625,7.315),(2.375,7.315)), ) createRL( tech, net, 'difftap', @@ -11240,7 +11136,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,7.76),(0.415,8.43),(0.585,8.43),(0.585,7.76),(0.415,7.76)), + ((0.415,7.73),(0.415,8.4),(0.585,8.4),(0.585,7.73),(0.415,7.73)), ) createRL( tech, net, 'li', @@ -11248,27 +11144,27 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,7.38),(2.415,8.39),(2.585,8.39),(2.585,7.38),(2.415,7.38)), + ((2.415,7.355),(2.415,8.365),(2.585,8.365),(2.585,7.355),(2.415,7.355)), ) createRL( tech, net, 'licon', - ((0.415,7.84),(0.415,8.01),(0.585,8.01),(0.585,7.84),(0.415,7.84)), + ((0.415,7.81),(0.415,7.98),(0.585,7.98),(0.585,7.81),(0.415,7.81)), ) createRL( tech, net, 'licon', - ((0.415,8.18),(0.415,8.35),(0.585,8.35),(0.585,8.18),(0.415,8.18)), + ((0.415,8.15),(0.415,8.32),(0.585,8.32),(0.585,8.15),(0.415,8.15)), ) createRL( tech, net, 'licon', - ((2.415,7.46),(2.415,7.63),(2.585,7.63),(2.585,7.46),(2.415,7.46)), + ((2.415,7.435),(2.415,7.605),(2.585,7.605),(2.585,7.435),(2.415,7.435)), ) createRL( tech, net, 'licon', - ((2.415,7.8),(2.415,7.97),(2.585,7.97),(2.585,7.8),(2.415,7.8)), + ((2.415,7.775),(2.415,7.945),(2.585,7.945),(2.585,7.775),(2.415,7.775)), ) createRL( tech, net, 'licon', - ((2.415,8.14),(2.415,8.31),(2.585,8.31),(2.585,8.14),(2.415,8.14)), + ((2.415,8.115),(2.415,8.285),(2.585,8.285),(2.585,8.115),(2.415,8.115)), ) net = nets['i1'] createRL( @@ -11297,15 +11193,15 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,1.37),(1.415,6.435),(1.585,6.435),(1.585,1.37),(1.415,1.37)), + ((1.415,1.37),(1.415,6.465),(1.585,6.465),(1.585,1.37),(1.415,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.5), u(0.17), u(1.37), u(6.435), + u(1.5), u(0.17), u(1.37), u(6.465), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.5), u(0.17), u(1.37), u(6.435), + u(1.5), u(0.17), u(1.37), u(6.465), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -11387,8 +11283,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'li', @@ -11400,7 +11296,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.03),(0.415,2.005),(0.585,2.005),(0.585,1.03),(0.415,1.03)), + ((0.415,1.835),(0.415,2.165),(0.585,2.165),(0.585,1.835),(0.415,1.835)), ) createRL( tech, net, 'li', @@ -11448,11 +11344,11 @@ def _load(): ) createRL( tech, net, 'li', - ((4.665,0.415),(4.665,0.585),(4.835,0.585),(4.835,0.415),(4.665,0.415)), + ((4.165,0.415),(4.165,0.585),(4.335,0.585),(4.335,0.415),(4.165,0.415)), ) createRL( tech, net, 'li', - ((4.165,0.415),(4.165,0.585),(4.335,0.585),(4.335,0.415),(4.165,0.415)), + ((4.665,0.415),(4.665,0.585),(4.835,0.585),(4.835,0.415),(4.665,0.415)), ) createRL( tech, net, 'li', @@ -11492,7 +11388,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.835),(0.415,2.165),(0.585,2.165),(0.585,1.835),(0.415,1.835)), + ((0.415,1.03),(0.415,2.005),(0.585,2.005),(0.585,1.03),(0.415,1.03)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -11510,35 +11406,35 @@ def _load(): ) createRL( tech, net, 'm1', - ((5.62,0.34),(5.62,0.66),(5.88,0.66),(5.88,0.34),(5.62,0.34)), + ((5.635,0.355),(5.635,0.645),(5.865,0.645),(5.865,0.355),(5.635,0.355)), ) createRL( tech, net, 'm1', - ((5.135,0.355),(5.135,0.645),(5.365,0.645),(5.365,0.355),(5.135,0.355)), + ((5.12,0.34),(5.12,0.66),(5.38,0.66),(5.38,0.34),(5.12,0.34)), ) createRL( tech, net, 'm1', - ((5.635,0.355),(5.635,0.645),(5.865,0.645),(5.865,0.355),(5.635,0.355)), + ((5.62,0.34),(5.62,0.66),(5.88,0.66),(5.88,0.34),(5.62,0.34)), ) createRL( tech, net, 'm1', - ((5.12,0.34),(5.12,0.66),(5.38,0.66),(5.38,0.34),(5.12,0.34)), + ((5.135,0.355),(5.135,0.645),(5.365,0.645),(5.365,0.355),(5.135,0.355)), ) createRL( tech, net, 'm1', - ((4.12,0.34),(4.12,0.66),(4.38,0.66),(4.38,0.34),(4.12,0.34)), + ((4.635,0.355),(4.635,0.645),(4.865,0.645),(4.865,0.355),(4.635,0.355)), ) createRL( tech, net, 'm1', - ((4.635,0.355),(4.635,0.645),(4.865,0.645),(4.865,0.355),(4.635,0.355)), + ((4.135,0.355),(4.135,0.645),(4.365,0.645),(4.365,0.355),(4.135,0.355)), ) createRL( tech, net, 'm1', - ((4.62,0.34),(4.62,0.66),(4.88,0.66),(4.88,0.34),(4.62,0.34)), + ((4.12,0.34),(4.12,0.66),(4.38,0.66),(4.38,0.34),(4.12,0.34)), ) createRL( tech, net, 'm1', - ((4.135,0.355),(4.135,0.645),(4.365,0.645),(4.365,0.355),(4.135,0.355)), + ((4.62,0.34),(4.62,0.66),(4.88,0.66),(4.88,0.34),(4.62,0.34)), ) Vertical.create( net, tech.getLayer('m1.pin'), @@ -11596,11 +11492,11 @@ def _load(): ) createRL( tech, net, 'm2', - ((4.12,0.34),(4.12,0.66),(4.38,0.66),(4.38,0.34),(4.12,0.34)), + ((4.62,0.34),(4.62,0.66),(4.88,0.66),(4.88,0.34),(4.62,0.34)), ) createRL( tech, net, 'm2', - ((4.62,0.34),(4.62,0.66),(4.88,0.66),(4.88,0.34),(4.62,0.34)), + ((4.12,0.34),(4.12,0.66),(4.38,0.66),(4.38,0.34),(4.12,0.34)), ) Vertical.create( net, tech.getLayer('m2.pin'), @@ -11613,44 +11509,44 @@ def _load(): net.setExternal(True) NetExternalComponents.setExternal(pin) createRL( - tech, net, 'poly', - ((2.365,1.835),(2.365,2.165),(2.635,2.165),(2.635,1.835),(2.365,1.835)), + tech, net, 'difftap', + ((1.375,0.695),(1.375,1.105),(1.625,1.105),(1.625,0.695),(1.375,0.695)), ) createRL( - tech, net, 'poly', - ((0.25,1.5),(0.25,8.5),(6.75,8.5),(6.75,1.5),(0.25,1.5)), + tech, net, 'difftap', + ((4.375,0.695),(4.375,1.105),(4.625,1.105),(4.625,0.695),(4.375,0.695)), ) createRL( - tech, net, 'poly', - ((3.365,1.835),(3.365,2.165),(3.635,2.165),(3.635,1.835),(3.365,1.835)), + tech, net, 'difftap', + ((6.375,0.695),(6.375,1.105),(6.625,1.105),(6.625,0.695),(6.375,0.695)), ) createRL( - tech, net, 'poly', - ((5.365,1.835),(5.365,2.165),(5.635,2.165),(5.635,1.835),(5.365,1.835)), + tech, net, 'difftap', + ((0.375,0.695),(0.375,1.105),(0.625,1.105),(0.625,0.695),(0.375,0.695)), ) createRL( - tech, net, 'poly', - ((4.365,1.835),(4.365,2.165),(4.635,2.165),(4.635,1.835),(4.365,1.835)), + tech, net, 'difftap', + ((0.5,0.75),(0.5,1.05),(6.5,1.05),(6.5,0.75),(0.5,0.75)), ) createRL( - tech, net, 'poly', - ((1.365,1.835),(1.365,2.165),(1.635,2.165),(1.635,1.835),(1.365,1.835)), + tech, net, 'difftap', + ((2.375,0.695),(2.375,1.105),(2.625,1.105),(2.625,0.695),(2.375,0.695)), ) createRL( - tech, net, 'poly', - ((6.365,1.835),(6.365,2.165),(6.635,2.165),(6.635,1.835),(6.365,1.835)), + tech, net, 'difftap', + ((5.375,0.695),(5.375,1.105),(5.625,1.105),(5.625,0.695),(5.375,0.695)), ) createRL( - tech, net, 'poly', - ((0.365,1.835),(0.365,2.165),(0.635,2.165),(0.635,1.835),(0.365,1.835)), + tech, net, 'difftap', + ((3.375,0.695),(3.375,1.105),(3.625,1.105),(3.625,0.695),(3.375,0.695)), ) createRL( tech, net, 'licon', - ((5.415,0.815),(5.415,0.985),(5.585,0.985),(5.585,0.815),(5.415,0.815)), + ((3.415,0.815),(3.415,0.985),(3.585,0.985),(3.585,0.815),(3.415,0.815)), ) createRL( tech, net, 'licon', - ((3.415,0.815),(3.415,0.985),(3.585,0.985),(3.585,0.815),(3.415,0.815)), + ((5.415,0.815),(5.415,0.985),(5.585,0.985),(5.585,0.815),(5.415,0.815)), ) createRL( tech, net, 'licon', @@ -11666,15 +11562,15 @@ def _load(): ) createRL( tech, net, 'licon', - ((5.415,1.915),(5.415,2.085),(5.585,2.085),(5.585,1.915),(5.415,1.915)), + ((3.415,1.915),(3.415,2.085),(3.585,2.085),(3.585,1.915),(3.415,1.915)), ) createRL( tech, net, 'licon', - ((6.415,0.815),(6.415,0.985),(6.585,0.985),(6.585,0.815),(6.415,0.815)), + ((5.415,1.915),(5.415,2.085),(5.585,2.085),(5.585,1.915),(5.415,1.915)), ) createRL( tech, net, 'licon', - ((3.415,1.915),(3.415,2.085),(3.585,2.085),(3.585,1.915),(3.415,1.915)), + ((6.415,0.815),(6.415,0.985),(6.585,0.985),(6.585,0.815),(6.415,0.815)), ) createRL( tech, net, 'licon', @@ -11701,36 +11597,36 @@ def _load(): ((2.415,0.815),(2.415,0.985),(2.585,0.985),(2.585,0.815),(2.415,0.815)), ) createRL( - tech, net, 'difftap', - ((1.375,0.75),(1.375,1.05),(1.625,1.05),(1.625,0.75),(1.375,0.75)), + tech, net, 'poly', + ((2.365,1.835),(2.365,2.165),(2.635,2.165),(2.635,1.835),(2.365,1.835)), ) createRL( - tech, net, 'difftap', - ((4.375,0.75),(4.375,1.05),(4.625,1.05),(4.625,0.75),(4.375,0.75)), + tech, net, 'poly', + ((0.25,1.5),(0.25,8.5),(6.75,8.5),(6.75,1.5),(0.25,1.5)), ) createRL( - tech, net, 'difftap', - ((6.375,0.75),(6.375,1.05),(6.625,1.05),(6.625,0.75),(6.375,0.75)), + tech, net, 'poly', + ((3.365,1.835),(3.365,2.165),(3.635,2.165),(3.635,1.835),(3.365,1.835)), ) createRL( - tech, net, 'difftap', - ((0.375,0.75),(0.375,1.05),(0.625,1.05),(0.625,0.75),(0.375,0.75)), + tech, net, 'poly', + ((5.365,1.835),(5.365,2.165),(5.635,2.165),(5.635,1.835),(5.365,1.835)), ) createRL( - tech, net, 'difftap', - ((0.5,0.75),(0.5,1.05),(6.5,1.05),(6.5,0.75),(0.5,0.75)), + tech, net, 'poly', + ((4.365,1.835),(4.365,2.165),(4.635,2.165),(4.635,1.835),(4.365,1.835)), ) createRL( - tech, net, 'difftap', - ((2.375,0.75),(2.375,1.05),(2.625,1.05),(2.625,0.75),(2.375,0.75)), + tech, net, 'poly', + ((1.365,1.835),(1.365,2.165),(1.635,2.165),(1.635,1.835),(1.365,1.835)), ) createRL( - tech, net, 'difftap', - ((5.375,0.75),(5.375,1.05),(5.625,1.05),(5.625,0.75),(5.375,0.75)), + tech, net, 'poly', + ((6.365,1.835),(6.365,2.165),(6.635,2.165),(6.635,1.835),(6.365,1.835)), ) createRL( - tech, net, 'difftap', - ((3.375,0.75),(3.375,1.05),(3.625,1.05),(3.625,0.75),(3.375,0.75)), + tech, net, 'poly', + ((0.365,1.835),(0.365,2.165),(0.635,2.165),(0.635,1.835),(0.365,1.835)), ) net = nets['vdd'] createRL( @@ -11793,31 +11689,31 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'nwm', - ((4.195,8.77),(4.195,9.43),(4.805,9.43),(4.805,8.77),(4.195,8.77)), + ((4.195,8.715),(4.195,9.485),(4.805,9.485),(4.805,8.715),(4.195,8.715)), ) createRL( tech, net, 'nwm', - ((6.195,8.77),(6.195,9.43),(6.805,9.43),(6.805,8.77),(6.195,8.77)), + ((6.195,8.715),(6.195,9.485),(6.805,9.485),(6.805,8.715),(6.195,8.715)), ) createRL( tech, net, 'nwm', - ((3.195,8.77),(3.195,9.43),(3.805,9.43),(3.805,8.77),(3.195,8.77)), + ((5.195,8.715),(5.195,9.485),(5.805,9.485),(5.805,8.715),(5.195,8.715)), ) createRL( tech, net, 'nwm', - ((5.195,8.77),(5.195,9.43),(5.805,9.43),(5.805,8.77),(5.195,8.77)), + ((3.195,8.715),(3.195,9.485),(3.805,9.485),(3.805,8.715),(3.195,8.715)), ) createRL( tech, net, 'nwm', - ((0.195,8.77),(0.195,9.43),(0.805,9.43),(0.805,8.77),(0.195,8.77)), + ((0.195,8.715),(0.195,9.485),(0.805,9.485),(0.805,8.715),(0.195,8.715)), ) createRL( tech, net, 'nwm', - ((1.195,8.77),(1.195,9.43),(1.805,9.43),(1.805,8.77),(1.195,8.77)), + ((1.195,8.715),(1.195,9.485),(1.805,9.485),(1.805,8.715),(1.195,8.715)), ) createRL( tech, net, 'nwm', - ((2.195,8.77),(2.195,9.43),(2.805,9.43),(2.805,8.77),(2.195,8.77)), + ((2.195,8.715),(2.195,9.485),(2.805,9.485),(2.805,8.715),(2.195,8.715)), ) createRL( tech, net, 'nwm', @@ -11827,39 +11723,9 @@ def _load(): tech, net, 'nwm', ((-0.3,4.8),(-0.3,10.8),(7.3,10.8),(7.3,4.8),(-0.3,4.8)), ) - createRL( - tech, net, 'm2', - ((2.62,9.34),(2.62,9.66),(2.88,9.66),(2.88,9.34),(2.62,9.34)), - ) - createRL( - tech, net, 'm2', - ((2.12,9.34),(2.12,9.66),(2.38,9.66),(2.38,9.34),(2.12,9.34)), - ) - createRL( - tech, net, 'm2', - ((1.12,9.34),(1.12,9.66),(1.38,9.66),(1.38,9.34),(1.12,9.34)), - ) - createRL( - tech, net, 'm2', - ((1.62,9.34),(1.62,9.66),(1.88,9.66),(1.88,9.34),(1.62,9.34)), - ) - createRL( - tech, net, 'm2', - ((0.8,0.0),(0.8,10.0),(3.2,10.0),(3.2,0.0),(0.8,0.0)), - ) - Vertical.create( - net, tech.getLayer('m2.pin'), - u(2.0), u(2.4), u(0.0), u(10.0), - ) - pin = Vertical.create( - net, tech.getLayer('m2'), - u(2.0), u(2.4), u(0.0), u(10.0), - ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( tech, net, 'm1', - ((2.12,9.34),(2.12,9.66),(2.38,9.66),(2.38,9.34),(2.12,9.34)), + ((2.135,9.355),(2.135,9.645),(2.365,9.645),(2.365,9.355),(2.135,9.355)), ) createRL( tech, net, 'm1', @@ -11871,7 +11737,7 @@ def _load(): ) createRL( tech, net, 'm1', - ((2.135,9.355),(2.135,9.645),(2.365,9.645),(2.365,9.355),(2.135,9.355)), + ((2.12,9.34),(2.12,9.66),(2.38,9.66),(2.38,9.34),(2.12,9.34)), ) createRL( tech, net, 'm1', @@ -11887,45 +11753,65 @@ def _load(): ) createRL( tech, net, 'm1', - ((1.635,9.355),(1.635,9.645),(1.865,9.645),(1.865,9.355),(1.635,9.355)), + ((1.135,9.355),(1.135,9.645),(1.365,9.645),(1.365,9.355),(1.135,9.355)), ) createRL( tech, net, 'm1', - ((1.135,9.355),(1.135,9.645),(1.365,9.645),(1.365,9.355),(1.135,9.355)), + ((1.635,9.355),(1.635,9.645),(1.865,9.645),(1.865,9.355),(1.635,9.355)), + ) + Vertical.create( + net, tech.getLayer('m1.pin'), + u(2.0), u(2.0), u(9.35), u(9.65), + ) + pin = Vertical.create( + net, tech.getLayer('m1'), + u(2.0), u(2.0), u(9.35), u(9.65), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( tech, net, 'via', - ((2.675,9.425),(2.675,9.575),(2.825,9.575),(2.825,9.425),(2.675,9.425)), + ((2.175,9.425),(2.175,9.575),(2.325,9.575),(2.325,9.425),(2.175,9.425)), ) createRL( tech, net, 'via', - ((1.175,9.425),(1.175,9.575),(1.325,9.575),(1.325,9.425),(1.175,9.425)), + ((1.675,9.425),(1.675,9.575),(1.825,9.575),(1.825,9.425),(1.675,9.425)), ) createRL( tech, net, 'via', - ((2.175,9.425),(2.175,9.575),(2.325,9.575),(2.325,9.425),(2.175,9.425)), + ((2.675,9.425),(2.675,9.575),(2.825,9.575),(2.825,9.425),(2.675,9.425)), ) createRL( tech, net, 'via', - ((1.675,9.425),(1.675,9.575),(1.825,9.575),(1.825,9.425),(1.675,9.425)), + ((1.175,9.425),(1.175,9.575),(1.325,9.575),(1.325,9.425),(1.175,9.425)), ) - Vertical.create( - net, tech.getLayer('m1.pin'), - u(2.0), u(2.0), u(9.35), u(9.65), + createRL( + tech, net, 'm2', + ((2.62,9.34),(2.62,9.66),(2.88,9.66),(2.88,9.34),(2.62,9.34)), ) - pin = Vertical.create( - net, tech.getLayer('m1'), - u(2.0), u(2.0), u(9.35), u(9.65), + createRL( + tech, net, 'm2', + ((2.12,9.34),(2.12,9.66),(2.38,9.66),(2.38,9.34),(2.12,9.34)), + ) + createRL( + tech, net, 'm2', + ((1.12,9.34),(1.12,9.66),(1.38,9.66),(1.38,9.34),(1.12,9.34)), + ) + createRL( + tech, net, 'm2', + ((1.62,9.34),(1.62,9.66),(1.88,9.66),(1.88,9.34),(1.62,9.34)), + ) + createRL( + tech, net, 'm2', + ((0.8,0.0),(0.8,10.0),(3.2,10.0),(3.2,0.0),(0.8,0.0)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( tech, net, 'mcon', ((2.165,9.415),(2.165,9.585),(2.335,9.585),(2.335,9.415),(2.165,9.415)), ) createRL( tech, net, 'mcon', - ((1.165,9.415),(1.165,9.585),(1.335,9.585),(1.335,9.415),(1.165,9.415)), + ((1.665,9.415),(1.665,9.585),(1.835,9.585),(1.835,9.415),(1.665,9.415)), ) createRL( tech, net, 'mcon', @@ -11933,35 +11819,45 @@ def _load(): ) createRL( tech, net, 'mcon', - ((1.665,9.415),(1.665,9.585),(1.835,9.585),(1.835,9.415),(1.665,9.415)), + ((1.165,9.415),(1.165,9.585),(1.335,9.585),(1.335,9.415),(1.165,9.415)), + ) + Vertical.create( + net, tech.getLayer('m2.pin'), + u(2.0), u(2.4), u(0.0), u(10.0), + ) + pin = Vertical.create( + net, tech.getLayer('m2'), + u(2.0), u(2.4), u(0.0), u(10.0), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( tech, net, 'difftap', - ((4.375,8.95),(4.375,9.25),(4.625,9.25),(4.625,8.95),(4.375,8.95)), + ((4.375,8.895),(4.375,9.305),(4.625,9.305),(4.625,8.895),(4.375,8.895)), ) createRL( tech, net, 'difftap', - ((6.375,8.95),(6.375,9.25),(6.625,9.25),(6.625,8.95),(6.375,8.95)), + ((6.375,8.895),(6.375,9.305),(6.625,9.305),(6.625,8.895),(6.375,8.895)), ) createRL( tech, net, 'difftap', - ((3.375,8.95),(3.375,9.25),(3.625,9.25),(3.625,8.95),(3.375,8.95)), + ((5.375,8.895),(5.375,9.305),(5.625,9.305),(5.625,8.895),(5.375,8.895)), ) createRL( tech, net, 'difftap', - ((5.375,8.95),(5.375,9.25),(5.625,9.25),(5.625,8.95),(5.375,8.95)), + ((3.375,8.895),(3.375,9.305),(3.625,9.305),(3.625,8.895),(3.375,8.895)), ) createRL( tech, net, 'difftap', - ((0.375,8.95),(0.375,9.25),(0.625,9.25),(0.625,8.95),(0.375,8.95)), + ((0.375,8.895),(0.375,9.305),(0.625,9.305),(0.625,8.895),(0.375,8.895)), ) createRL( tech, net, 'difftap', - ((1.375,8.95),(1.375,9.25),(1.625,9.25),(1.625,8.95),(1.375,8.95)), + ((1.375,8.895),(1.375,9.305),(1.625,9.305),(1.625,8.895),(1.375,8.895)), ) createRL( tech, net, 'difftap', - ((2.375,8.95),(2.375,9.25),(2.625,9.25),(2.625,8.95),(2.375,8.95)), + ((2.375,8.895),(2.375,9.305),(2.625,9.305),(2.625,8.895),(2.375,8.895)), ) createRL( tech, net, 'difftap', @@ -11998,19 +11894,19 @@ def _load(): net = nets['*'] createRL( tech, net, 'psdm', - ((1.25,0.625),(1.25,1.175),(1.75,1.175),(1.75,0.625),(1.25,0.625)), + ((1.25,0.57),(1.25,1.23),(1.75,1.23),(1.75,0.57),(1.25,0.57)), ) createRL( tech, net, 'psdm', - ((4.25,0.625),(4.25,1.175),(4.75,1.175),(4.75,0.625),(4.25,0.625)), + ((4.25,0.57),(4.25,1.23),(4.75,1.23),(4.75,0.57),(4.25,0.57)), ) createRL( tech, net, 'psdm', - ((6.25,0.625),(6.25,1.175),(6.75,1.175),(6.75,0.625),(6.25,0.625)), + ((6.25,0.57),(6.25,1.23),(6.75,1.23),(6.75,0.57),(6.25,0.57)), ) createRL( tech, net, 'psdm', - ((0.25,0.625),(0.25,1.175),(0.75,1.175),(0.75,0.625),(0.25,0.625)), + ((0.25,0.57),(0.25,1.23),(0.75,1.23),(0.75,0.57),(0.25,0.57)), ) createRL( tech, net, 'psdm', @@ -12018,43 +11914,43 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,0.625),(2.25,1.175),(2.75,1.175),(2.75,0.625),(2.25,0.625)), + ((2.25,0.57),(2.25,1.23),(2.75,1.23),(2.75,0.57),(2.25,0.57)), ) createRL( tech, net, 'psdm', - ((5.25,0.625),(5.25,1.175),(5.75,1.175),(5.75,0.625),(5.25,0.625)), + ((5.25,0.57),(5.25,1.23),(5.75,1.23),(5.75,0.57),(5.25,0.57)), ) createRL( tech, net, 'psdm', - ((3.25,0.625),(3.25,1.175),(3.75,1.175),(3.75,0.625),(3.25,0.625)), + ((3.25,0.57),(3.25,1.23),(3.75,1.23),(3.75,0.57),(3.25,0.57)), ) createRL( tech, net, 'nsdm', - ((4.25,8.825),(4.25,9.375),(4.75,9.375),(4.75,8.825),(4.25,8.825)), + ((4.25,8.77),(4.25,9.43),(4.75,9.43),(4.75,8.77),(4.25,8.77)), ) createRL( tech, net, 'nsdm', - ((6.25,8.825),(6.25,9.375),(6.75,9.375),(6.75,8.825),(6.25,8.825)), + ((6.25,8.77),(6.25,9.43),(6.75,9.43),(6.75,8.77),(6.25,8.77)), ) createRL( tech, net, 'nsdm', - ((3.25,8.825),(3.25,9.375),(3.75,9.375),(3.75,8.825),(3.25,8.825)), + ((5.25,8.77),(5.25,9.43),(5.75,9.43),(5.75,8.77),(5.25,8.77)), ) createRL( tech, net, 'nsdm', - ((5.25,8.825),(5.25,9.375),(5.75,9.375),(5.75,8.825),(5.25,8.825)), + ((3.25,8.77),(3.25,9.43),(3.75,9.43),(3.75,8.77),(3.25,8.77)), ) createRL( tech, net, 'nsdm', - ((0.25,8.825),(0.25,9.375),(0.75,9.375),(0.75,8.825),(0.25,8.825)), + ((0.25,8.77),(0.25,9.43),(0.75,9.43),(0.75,8.77),(0.25,8.77)), ) createRL( tech, net, 'nsdm', - ((1.25,8.825),(1.25,9.375),(1.75,9.375),(1.75,8.825),(1.25,8.825)), + ((1.25,8.77),(1.25,9.43),(1.75,9.43),(1.75,8.77),(1.25,8.77)), ) createRL( tech, net, 'nsdm', - ((2.25,8.825),(2.25,9.375),(2.75,9.375),(2.75,8.825),(2.25,8.825)), + ((2.25,8.77),(2.25,9.43),(2.75,9.43),(2.75,8.77),(2.25,8.77)), ) createRL( tech, net, 'nsdm', @@ -12086,8 +11982,8 @@ def _load(): 'vss': Net.create(cell, 'vss'), 'y': Net.create(cell, 'y'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['nckr'] createRL( tech, net, 'difftap', @@ -12095,11 +11991,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.625,8.5),(0.625,6.5),(0.375,6.5)), + ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), + ((0.375,6.61),(0.375,8.39),(0.625,8.39),(0.625,6.61),(0.375,6.61)), ) createRL( tech, net, 'difftap', @@ -12111,7 +12007,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.515),(0.375,2.485),(0.625,2.485),(0.625,1.515),(0.375,1.515)), + ((0.375,1.625),(0.375,2.375),(0.625,2.375),(0.625,1.625),(0.375,1.625)), ) createRL( tech, net, 'poly', @@ -12175,43 +12071,35 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.415,1.575),(0.415,1.745),(0.585,1.745),(0.585,1.575),(0.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((0.415,2.255),(0.415,2.425),(0.585,2.425),(0.585,2.255),(0.415,2.255)), + ((0.415,6.735),(0.415,6.905),(0.585,6.905),(0.585,6.735),(0.415,6.735)), ) createRL( tech, net, 'licon', - ((0.415,6.565),(0.415,6.735),(0.585,6.735),(0.585,6.565),(0.415,6.565)), + ((0.415,7.075),(0.415,7.245),(0.585,7.245),(0.585,7.075),(0.415,7.075)), ) createRL( tech, net, 'licon', - ((0.415,6.905),(0.415,7.075),(0.585,7.075),(0.585,6.905),(0.415,6.905)), + ((0.415,7.415),(0.415,7.585),(0.585,7.585),(0.585,7.415),(0.415,7.415)), ) createRL( tech, net, 'licon', - ((0.415,7.245),(0.415,7.415),(0.585,7.415),(0.585,7.245),(0.415,7.245)), + ((0.415,7.755),(0.415,7.925),(0.585,7.925),(0.585,7.755),(0.415,7.755)), ) createRL( tech, net, 'licon', - ((0.415,7.585),(0.415,7.755),(0.585,7.755),(0.585,7.585),(0.415,7.585)), + ((0.415,8.095),(0.415,8.265),(0.585,8.265),(0.585,8.095),(0.415,8.095)), ) createRL( tech, net, 'licon', - ((0.415,7.925),(0.415,8.095),(0.585,8.095),(0.585,7.925),(0.415,7.925)), + ((5.915,2.915),(5.915,3.085),(6.085,3.085),(6.085,2.915),(5.915,2.915)), ) createRL( tech, net, 'licon', - ((0.415,8.265),(0.415,8.435),(0.585,8.435),(0.585,8.265),(0.415,8.265)), + ((0.415,1.745),(0.415,1.915),(0.585,1.915),(0.585,1.745),(0.415,1.745)), ) createRL( tech, net, 'licon', - ((5.915,2.915),(5.915,3.085),(6.085,3.085),(6.085,2.915),(5.915,2.915)), + ((0.415,2.085),(0.415,2.255),(0.585,2.255),(0.585,2.085),(0.415,2.085)), ) createRL( tech, net, 'licon', @@ -12223,7 +12111,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,2.335),(0.415,6.65),(0.585,6.65),(0.585,2.335),(0.415,2.335)), + ((0.415,2.165),(0.415,6.825),(0.585,6.825),(0.585,2.165),(0.415,2.165)), ) createRL( tech, net, 'li', @@ -12231,7 +12119,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,6.48),(0.415,8.52),(0.585,8.52),(0.585,6.48),(0.415,6.48)), + ((0.415,6.655),(0.415,8.345),(0.585,8.345),(0.585,6.655),(0.415,6.655)), ) createRL( tech, net, 'li', @@ -12247,7 +12135,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.495),(0.415,2.505),(0.585,2.505),(0.585,1.495),(0.415,1.495)), + ((0.415,1.665),(0.415,2.335),(0.585,2.335),(0.585,1.665),(0.415,1.665)), ) net = nets['vss'] createRL( @@ -12256,7 +12144,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((11.375,0.55),(11.375,0.85),(11.625,0.85),(11.625,0.55),(11.375,0.55)), + ((11.375,0.495),(11.375,0.905),(11.625,0.905),(11.625,0.495),(11.375,0.495)), ) createRL( tech, net, 'difftap', @@ -12280,19 +12168,19 @@ def _load(): ) createRL( tech, net, 'difftap', - ((8.375,0.735),(8.375,1.365),(8.625,1.365),(8.625,0.735),(8.375,0.735)), + ((12.375,0.66),(12.375,2.44),(12.625,2.44),(12.625,0.66),(12.375,0.66)), ) createRL( tech, net, 'difftap', - ((12.375,0.72),(12.375,2.38),(12.625,2.38),(12.625,0.72),(12.375,0.72)), + ((8.675,0.6),(8.675,1.5),(8.925,1.5),(8.925,0.6),(8.675,0.6)), ) createRL( tech, net, 'difftap', - ((8.075,0.6),(8.075,1.5),(8.325,1.5),(8.325,0.6),(8.075,0.6)), + ((1.375,0.595),(1.375,2.5),(1.625,2.5),(1.625,0.595),(1.375,0.595)), ) createRL( tech, net, 'difftap', - ((1.375,0.65),(1.375,2.5),(1.625,2.5),(1.625,0.65),(1.375,0.65)), + ((8.075,0.6),(8.075,1.5),(8.325,1.5),(8.325,0.6),(8.075,0.6)), ) createRL( tech, net, 'difftap', @@ -12300,7 +12188,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,0.55),(2.375,0.85),(2.625,0.85),(2.625,0.55),(2.375,0.55)), + ((1.375,0.595),(1.375,1.005),(1.625,1.005),(1.625,0.595),(1.375,0.595)), ) createRL( tech, net, 'difftap', @@ -12308,11 +12196,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((8.375,0.6),(8.375,1.5),(8.675,1.5),(8.675,0.6),(8.375,0.6)), + ((4.375,0.595),(4.375,1.005),(4.625,1.005),(4.625,0.595),(4.375,0.595)), ) createRL( tech, net, 'difftap', - ((8.675,0.6),(8.675,1.5),(8.925,1.5),(8.925,0.6),(8.675,0.6)), + ((2.375,0.495),(2.375,0.905),(2.625,0.905),(2.625,0.495),(2.375,0.495)), ) createRL( tech, net, 'difftap', @@ -12346,21 +12234,13 @@ def _load(): tech, net, 'difftap', ((11.925,1.5),(11.925,2.5),(12.075,2.5),(12.075,1.5),(11.925,1.5)), ) - createRL( - tech, net, 'difftap', - ((1.375,0.65),(1.375,0.95),(1.625,0.95),(1.625,0.65),(1.375,0.65)), - ) - createRL( - tech, net, 'difftap', - ((4.375,0.65),(4.375,0.95),(4.625,0.95),(4.625,0.65),(4.375,0.65)), - ) createRL( tech, net, 'difftap', ((14.075,0.6),(14.075,2.5),(14.325,2.5),(14.325,0.6),(14.075,0.6)), ) createRL( tech, net, 'difftap', - ((14.375,0.72),(14.375,2.38),(14.625,2.38),(14.625,0.72),(14.375,0.72)), + ((14.375,0.66),(14.375,2.44),(14.625,2.44),(14.625,0.66),(14.375,0.66)), ) createRL( tech, net, 'difftap', @@ -12368,7 +12248,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,0.55),(6.375,0.85),(6.625,0.85),(6.625,0.55),(6.375,0.55)), + ((6.375,0.495),(6.375,0.905),(6.625,0.905),(6.625,0.495),(6.375,0.495)), ) createRL( tech, net, 'difftap', @@ -12398,6 +12278,10 @@ def _load(): tech, net, 'difftap', ((8.325,0.6),(8.325,1.5),(8.625,1.5),(8.625,0.6),(8.325,0.6)), ) + createRL( + tech, net, 'difftap', + ((8.375,0.6),(8.375,1.5),(8.675,1.5),(8.675,0.6),(8.375,0.6)), + ) createRL( tech, net, 'difftap', ((6.925,1.5),(6.925,2.5),(7.075,2.5),(7.075,1.5),(6.925,1.5)), @@ -12408,7 +12292,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,0.55),(0.375,0.85),(0.625,0.85),(0.625,0.55),(0.375,0.55)), + ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), ) createRL( tech, net, 'difftap', @@ -12420,7 +12304,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), + ((0.375,0.495),(0.375,0.905),(0.625,0.905),(0.625,0.495),(0.375,0.495)), ) createRL( tech, net, 'difftap', @@ -12428,12 +12312,16 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,0.65),(4.375,2.5),(4.625,2.5),(4.625,0.65),(4.375,0.65)), + ((4.375,0.595),(4.375,2.5),(4.625,2.5),(4.625,0.595),(4.375,0.595)), ) createRL( tech, net, 'difftap', ((7.925,0.6),(7.925,1.5),(8.075,1.5),(8.075,0.6),(7.925,0.6)), ) + createRL( + tech, net, 'difftap', + ((8.375,0.675),(8.375,1.425),(8.625,1.425),(8.625,0.675),(8.375,0.675)), + ) createRL( tech, net, 'li', ((0.0,0.0),(0.0,1.2),(15.0,1.2),(15.0,0.0),(0.0,0.0)), @@ -12559,12 +12447,16 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((6.25,8.925),(6.25,9.475),(6.75,9.475),(6.75,8.925),(6.25,8.925)), + ((6.25,8.87),(6.25,9.53),(6.75,9.53),(6.75,8.87),(6.25,8.87)), ) createRL( tech, net, 'nsdm', ((6.125,8.875),(6.125,9.525),(6.875,9.525),(6.875,8.875),(6.125,8.875)), ) + createRL( + tech, net, 'nsdm', + ((1.25,0.47),(1.25,1.13),(1.75,1.13),(1.75,0.47),(1.25,0.47)), + ) createRL( tech, net, 'nsdm', ((1.855,1.43),(1.855,2.57),(2.145,2.57),(2.145,1.43),(1.855,1.43)), @@ -12575,15 +12467,15 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((10.25,8.925),(10.25,9.475),(10.75,9.475),(10.75,8.925),(10.25,8.925)), + ((10.125,8.875),(10.125,9.525),(10.875,9.525),(10.875,8.875),(10.125,8.875)), ) createRL( tech, net, 'nsdm', - ((10.125,8.875),(10.125,9.525),(10.875,9.525),(10.875,8.875),(10.125,8.875)), + ((10.25,8.87),(10.25,9.53),(10.75,9.53),(10.75,8.87),(10.25,8.87)), ) createRL( tech, net, 'nsdm', - ((2.25,1.39),(2.25,2.61),(2.75,2.61),(2.75,1.39),(2.25,1.39)), + ((2.25,1.5),(2.25,2.5),(2.75,2.5),(2.75,1.5),(2.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -12595,7 +12487,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,8.925),(0.25,9.475),(0.75,9.475),(0.75,8.925),(0.25,8.925)), + ((0.25,8.87),(0.25,9.53),(0.75,9.53),(0.75,8.87),(0.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -12607,7 +12499,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,1.39),(3.25,2.61),(3.75,2.61),(3.75,1.39),(3.25,1.39)), + ((3.25,1.5),(3.25,2.5),(3.75,2.5),(3.75,1.5),(3.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -12655,20 +12547,12 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((12.25,0.595),(12.25,2.505),(12.75,2.505),(12.75,0.595),(12.25,0.595)), + ((12.25,0.535),(12.25,2.565),(12.75,2.565),(12.75,0.535),(12.25,0.535)), ) createRL( tech, net, 'nsdm', ((12.25,0.475),(12.25,2.625),(12.8,2.625),(12.8,0.475),(12.25,0.475)), ) - createRL( - tech, net, 'nsdm', - ((1.25,0.525),(1.25,1.075),(1.75,1.075),(1.75,0.525),(1.25,0.525)), - ) - createRL( - tech, net, 'nsdm', - ((4.25,0.525),(4.25,1.075),(4.75,1.075),(4.75,0.525),(4.25,0.525)), - ) createRL( tech, net, 'nsdm', ((3.855,1.43),(3.855,2.57),(4.145,2.57),(4.145,1.43),(3.855,1.43)), @@ -12679,11 +12563,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((13.25,1.335),(13.25,2.555),(13.75,2.555),(13.75,1.335),(13.25,1.335)), + ((13.25,1.245),(13.25,2.585),(13.75,2.585),(13.75,1.245),(13.25,1.245)), ) createRL( tech, net, 'nsdm', - ((14.25,0.595),(14.25,2.505),(14.75,2.505),(14.75,0.595),(14.25,0.595)), + ((14.25,0.535),(14.25,2.565),(14.75,2.565),(14.75,0.535),(14.25,0.535)), ) createRL( tech, net, 'nsdm', @@ -12703,7 +12587,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,8.925),(2.25,9.475),(2.75,9.475),(2.75,8.925),(2.25,8.925)), + ((2.25,8.87),(2.25,9.53),(2.75,9.53),(2.75,8.87),(2.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -12719,11 +12603,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,0.525),(4.25,2.625),(4.75,2.625),(4.75,0.525),(4.25,0.525)), + ((4.25,0.47),(4.25,2.625),(4.75,2.625),(4.75,0.47),(4.25,0.47)), ) createRL( tech, net, 'nsdm', - ((9.25,1.335),(9.25,2.555),(9.75,2.555),(9.75,1.335),(9.25,1.335)), + ((9.25,1.245),(9.25,2.585),(9.75,2.585),(9.75,1.245),(9.25,1.245)), ) createRL( tech, net, 'nsdm', @@ -12743,7 +12627,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((6.25,1.39),(6.25,2.61),(6.75,2.61),(6.75,1.39),(6.25,1.39)), + ((4.25,0.47),(4.25,1.13),(4.75,1.13),(4.75,0.47),(4.25,0.47)), + ) + createRL( + tech, net, 'nsdm', + ((6.25,1.5),(6.25,2.5),(6.75,2.5),(6.75,1.5),(6.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -12763,7 +12651,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((10.25,1.375),(10.25,2.625),(10.8,2.625),(10.8,1.375),(10.25,1.375)), + ((10.2,1.375),(10.2,2.625),(10.75,2.625),(10.75,1.375),(10.2,1.375)), ) createRL( tech, net, 'nsdm', @@ -12771,11 +12659,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((10.2,1.375),(10.2,2.625),(10.75,2.625),(10.75,1.375),(10.2,1.375)), + ((10.25,1.5),(10.25,2.5),(10.75,2.5),(10.75,1.5),(10.25,1.5)), ) createRL( tech, net, 'nsdm', - ((10.25,1.39),(10.25,2.61),(10.75,2.61),(10.75,1.39),(10.25,1.39)), + ((10.25,1.375),(10.25,2.625),(10.8,2.625),(10.8,1.375),(10.25,1.375)), ) createRL( tech, net, 'nsdm', @@ -12787,7 +12675,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,1.39),(0.25,2.61),(0.75,2.61),(0.75,1.39),(0.25,1.39)), + ((0.25,1.5),(0.25,2.5),(0.75,2.5),(0.75,1.5),(0.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -12807,19 +12695,19 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((8.2,0.475),(8.2,1.625),(8.75,1.625),(8.75,0.475),(8.2,0.475)), + ((8.25,0.55),(8.25,1.55),(8.75,1.55),(8.75,0.55),(8.25,0.55)), ) createRL( tech, net, 'nsdm', - ((1.25,0.525),(1.25,2.625),(1.75,2.625),(1.75,0.525),(1.25,0.525)), + ((1.25,0.47),(1.25,2.625),(1.75,2.625),(1.75,0.47),(1.25,0.47)), ) createRL( tech, net, 'nsdm', - ((8.25,0.475),(8.25,1.625),(8.8,1.625),(8.8,0.475),(8.25,0.475)), + ((8.2,0.475),(8.2,1.625),(8.75,1.625),(8.75,0.475),(8.2,0.475)), ) createRL( tech, net, 'nsdm', - ((8.25,0.61),(8.25,1.49),(8.75,1.49),(8.75,0.61),(8.25,0.61)), + ((8.25,0.475),(8.25,1.625),(8.8,1.625),(8.8,0.475),(8.25,0.475)), ) createRL( tech, net, 'nsdm', @@ -12869,10 +12757,6 @@ def _load(): tech, net, 'psdm', ((11.855,7.43),(11.855,9.57),(12.145,9.57),(12.145,7.43),(11.855,7.43)), ) - createRL( - tech, net, 'psdm', - ((11.25,0.425),(11.25,0.975),(11.75,0.975),(11.75,0.425),(11.25,0.425)), - ) createRL( tech, net, 'psdm', ((11.55,7.375),(11.55,9.625),(12.45,9.625),(12.45,7.375),(11.55,7.375)), @@ -12899,11 +12783,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,8.925),(1.25,9.475),(1.75,9.475),(1.75,8.925),(1.25,8.925)), + ((1.25,8.87),(1.25,9.53),(1.75,9.53),(1.75,8.87),(1.25,8.87)), ) createRL( tech, net, 'psdm', - ((12.25,5.525),(12.25,9.475),(12.75,9.475),(12.75,5.525),(12.25,5.525)), + ((12.25,5.465),(12.25,9.535),(12.75,9.535),(12.75,5.465),(12.25,5.465)), ) createRL( tech, net, 'psdm', @@ -12911,7 +12795,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((13.25,5.425),(13.25,8.685),(13.75,8.685),(13.75,5.425),(13.25,5.425)), + ((13.25,5.395),(13.25,8.775),(13.75,8.775),(13.75,5.395),(13.25,5.395)), ) createRL( tech, net, 'psdm', @@ -12919,7 +12803,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((9.25,6.43),(9.25,8.68),(9.75,8.68),(9.75,6.43),(9.25,6.43)), + ((9.25,6.4),(9.25,8.77),(9.75,8.77),(9.75,6.4),(9.25,6.4)), ) createRL( tech, net, 'psdm', @@ -12927,15 +12811,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,9.475),(1.75,9.475),(1.75,6.375),(1.25,6.375)), - ) - createRL( - tech, net, 'psdm', - ((2.25,0.425),(2.25,0.975),(2.75,0.975),(2.75,0.425),(2.25,0.425)), + ((1.25,6.375),(1.25,9.53),(1.75,9.53),(1.75,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', - ((8.25,7.375),(8.25,9.625),(8.75,9.625),(8.75,7.375),(8.25,7.375)), + ((8.25,7.485),(8.25,9.515),(8.75,9.515),(8.75,7.485),(8.25,7.485)), ) createRL( tech, net, 'psdm', @@ -12947,7 +12827,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,6.375),(2.25,8.625),(2.75,8.625),(2.75,6.375),(2.25,6.375)), + ((2.25,6.485),(2.25,8.515),(2.75,8.515),(2.75,6.485),(2.25,6.485)), ) createRL( tech, net, 'psdm', @@ -12957,6 +12837,10 @@ def _load(): tech, net, 'psdm', ((6.125,0.375),(6.125,1.025),(6.875,1.025),(6.875,0.375),(6.125,0.375)), ) + createRL( + tech, net, 'psdm', + ((6.25,0.37),(6.25,1.03),(6.75,1.03),(6.75,0.37),(6.25,0.37)), + ) createRL( tech, net, 'psdm', ((1.55,6.375),(1.55,8.625),(2.45,8.625),(2.45,6.375),(1.55,6.375)), @@ -12979,11 +12863,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((4.25,7.375),(4.25,9.625),(4.8,9.625),(4.8,7.375),(4.25,7.375)), + ((4.2,7.375),(4.2,9.625),(4.75,9.625),(4.75,7.375),(4.2,7.375)), ) createRL( tech, net, 'psdm', - ((4.2,7.375),(4.2,9.625),(4.75,9.625),(4.75,7.375),(4.2,7.375)), + ((4.25,7.375),(4.25,9.625),(4.8,9.625),(4.8,7.375),(4.25,7.375)), ) createRL( tech, net, 'psdm', @@ -12995,7 +12879,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((4.25,8.72),(4.25,9.6),(4.75,9.6),(4.75,8.72),(4.25,8.72)), + ((4.25,8.8),(4.25,9.46),(4.75,9.46),(4.75,8.8),(4.25,8.8)), ) createRL( tech, net, 'psdm', @@ -13019,23 +12903,23 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), + ((0.25,0.37),(0.25,1.03),(0.75,1.03),(0.75,0.37),(0.25,0.37)), ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), + ((1.2,6.375),(1.2,8.625),(1.75,8.625),(1.75,6.375),(1.2,6.375)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.75,8.625),(0.75,6.375),(0.25,6.375)), + ((1.25,6.375),(1.25,8.625),(1.8,8.625),(1.8,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), + ((0.25,6.485),(0.25,8.515),(0.75,8.515),(0.75,6.485),(0.25,6.485)), ) createRL( tech, net, 'psdm', - ((6.25,0.425),(6.25,0.975),(6.75,0.975),(6.75,0.425),(6.25,0.425)), + ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), ) createRL( tech, net, 'psdm', @@ -13043,7 +12927,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((6.25,6.375),(6.25,8.625),(6.75,8.625),(6.75,6.375),(6.25,6.375)), + ((6.25,6.485),(6.25,8.515),(6.75,8.515),(6.75,6.485),(6.25,6.485)), ) createRL( tech, net, 'psdm', @@ -13073,6 +12957,10 @@ def _load(): tech, net, 'psdm', ((11.125,0.375),(11.125,1.025),(11.875,1.025),(11.875,0.375),(11.125,0.375)), ) + createRL( + tech, net, 'psdm', + ((11.25,0.37),(11.25,1.03),(11.75,1.03),(11.75,0.37),(11.25,0.37)), + ) createRL( tech, net, 'psdm', ((12.2,7.375),(12.2,9.625),(12.75,9.625),(12.75,7.375),(12.2,7.375)), @@ -13115,7 +13003,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,7.445),(3.25,8.665),(3.75,8.665),(3.75,7.445),(3.25,7.445)), + ((3.25,7.415),(3.25,8.755),(3.75,8.755),(3.75,7.415),(3.25,7.415)), ) createRL( tech, net, 'psdm', @@ -13127,7 +13015,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((14.25,5.525),(14.25,9.475),(14.75,9.475),(14.75,5.525),(14.25,5.525)), + ((14.25,5.465),(14.25,9.535),(14.75,9.535),(14.75,5.465),(14.25,5.465)), ) createRL( tech, net, 'psdm', @@ -13139,11 +13027,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((10.25,6.375),(10.25,8.625),(10.75,8.625),(10.75,6.375),(10.25,6.375)), - ) - createRL( - tech, net, 'psdm', - ((0.25,0.425),(0.25,0.975),(0.75,0.975),(0.75,0.425),(0.25,0.425)), + ((10.25,6.485),(10.25,8.515),(10.75,8.515),(10.75,6.485),(10.25,6.485)), ) createRL( tech, net, 'psdm', @@ -13157,6 +13041,10 @@ def _load(): tech, net, 'psdm', ((2.175,0.375),(2.175,1.025),(2.825,1.025),(2.825,0.375),(2.175,0.375)), ) + createRL( + tech, net, 'psdm', + ((2.25,0.37),(2.25,1.03),(2.75,1.03),(2.75,0.37),(2.25,0.37)), + ) createRL( tech, net, 'psdm', ((9.55,6.375),(9.55,8.625),(10.45,8.625),(10.45,6.375),(9.55,6.375)), @@ -13247,7 +13135,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,9.05),(2.375,9.35),(2.625,9.35),(2.625,9.05),(2.375,9.05)), + ((6.375,8.995),(6.375,9.405),(6.625,9.405),(6.625,8.995),(6.375,8.995)), + ) + createRL( + tech, net, 'difftap', + ((1.375,8.995),(1.375,9.405),(1.625,9.405),(1.625,8.995),(1.375,8.995)), ) createRL( tech, net, 'difftap', @@ -13259,7 +13151,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((12.375,5.65),(12.375,9.35),(12.625,9.35),(12.625,5.65),(12.375,5.65)), + ((12.375,5.59),(12.375,9.41),(12.625,9.41),(12.625,5.59),(12.375,5.59)), ) createRL( tech, net, 'difftap', @@ -13267,7 +13159,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,9.35),(1.625,9.35),(1.625,6.5),(1.375,6.5)), + ((1.375,6.5),(1.375,9.405),(1.625,9.405),(1.625,6.5),(1.375,6.5)), ) createRL( tech, net, 'difftap', @@ -13279,7 +13171,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((8.375,7.5),(8.375,9.5),(8.625,9.5),(8.625,7.5),(8.375,7.5)), + ((8.375,7.61),(8.375,9.39),(8.625,9.39),(8.625,7.61),(8.375,7.61)), ) createRL( tech, net, 'difftap', @@ -13289,17 +13181,21 @@ def _load(): tech, net, 'difftap', ((8.375,7.5),(8.375,9.5),(8.675,9.5),(8.675,7.5),(8.375,7.5)), ) + createRL( + tech, net, 'difftap', + ((10.375,8.995),(10.375,9.405),(10.625,9.405),(10.625,8.995),(10.375,8.995)), + ) createRL( tech, net, 'difftap', ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), ) createRL( tech, net, 'difftap', - ((10.925,6.5),(10.925,8.5),(11.075,8.5),(11.075,6.5),(10.925,6.5)), + ((0.375,8.995),(0.375,9.405),(0.625,9.405),(0.625,8.995),(0.375,8.995)), ) createRL( tech, net, 'difftap', - ((6.375,9.05),(6.375,9.35),(6.625,9.35),(6.625,9.05),(6.375,9.05)), + ((10.925,6.5),(10.925,8.5),(11.075,8.5),(11.075,6.5),(10.925,6.5)), ) createRL( tech, net, 'difftap', @@ -13323,7 +13219,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,8.845),(4.375,9.475),(4.625,9.475),(4.625,8.845),(4.375,8.845)), + ((4.375,8.925),(4.375,9.335),(4.625,9.335),(4.625,8.925),(4.375,8.925)), ) createRL( tech, net, 'difftap', @@ -13351,7 +13247,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((10.375,9.05),(10.375,9.35),(10.625,9.35),(10.625,9.05),(10.375,9.05)), + ((10.25,9.0),(10.25,9.4),(10.75,9.4),(10.75,9.0),(10.25,9.0)), ) createRL( tech, net, 'difftap', @@ -13359,7 +13255,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((10.25,9.0),(10.25,9.4),(10.75,9.4),(10.75,9.0),(10.25,9.0)), + ((2.375,8.995),(2.375,9.405),(2.625,9.405),(2.625,8.995),(2.375,8.995)), ) createRL( tech, net, 'difftap', @@ -13385,10 +13281,6 @@ def _load(): tech, net, 'difftap', ((0.35,9.0),(0.35,9.5),(0.65,9.5),(0.65,9.0),(0.35,9.0)), ) - createRL( - tech, net, 'difftap', - ((0.375,9.05),(0.375,9.35),(0.625,9.35),(0.625,9.05),(0.375,9.05)), - ) createRL( tech, net, 'difftap', ((6.925,6.5),(6.925,8.5),(7.075,8.5),(7.075,6.5),(6.925,6.5)), @@ -13397,17 +13289,13 @@ def _load(): tech, net, 'difftap', ((4.925,7.5),(4.925,9.5),(5.075,9.5),(5.075,7.5),(4.925,7.5)), ) - createRL( - tech, net, 'difftap', - ((1.375,9.05),(1.375,9.35),(1.625,9.35),(1.625,9.05),(1.375,9.05)), - ) createRL( tech, net, 'difftap', ((14.075,5.5),(14.075,9.5),(14.325,9.5),(14.325,5.5),(14.075,5.5)), ) createRL( tech, net, 'difftap', - ((14.375,5.65),(14.375,9.35),(14.625,9.35),(14.625,5.65),(14.375,5.65)), + ((14.375,5.59),(14.375,9.41),(14.625,9.41),(14.625,5.59),(14.375,5.59)), ) createRL( tech, net, 'difftap', @@ -13419,7 +13307,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,8.87),(6.195,9.53),(6.805,9.53),(6.805,8.87),(6.195,8.87)), + ((6.195,8.815),(6.195,9.585),(6.805,9.585),(6.805,8.815),(6.195,8.815)), ) createRL( tech, net, 'nwm', @@ -13435,7 +13323,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.87),(1.195,9.53),(1.805,9.53),(1.805,8.87),(1.195,8.87)), + ((1.195,8.815),(1.195,9.585),(1.805,9.585),(1.805,8.815),(1.195,8.815)), ) createRL( tech, net, 'nwm', @@ -13443,11 +13331,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((13.195,5.37),(13.195,8.74),(13.805,8.74),(13.805,5.37),(13.195,5.37)), + ((13.195,5.34),(13.195,8.83),(13.805,8.83),(13.805,5.34),(13.195,5.34)), ) createRL( tech, net, 'nwm', - ((12.195,5.47),(12.195,9.53),(12.805,9.53),(12.805,5.47),(12.195,5.47)), + ((12.195,5.41),(12.195,9.59),(12.805,9.59),(12.805,5.41),(12.195,5.41)), ) createRL( tech, net, 'nwm', @@ -13463,7 +13351,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((9.195,6.375),(9.195,8.735),(9.805,8.735),(9.805,6.375),(9.195,6.375)), + ((9.195,6.345),(9.195,8.825),(9.805,8.825),(9.805,6.345),(9.195,6.345)), ) createRL( tech, net, 'nwm', @@ -13471,11 +13359,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,6.32),(1.195,9.53),(1.805,9.53),(1.805,6.32),(1.195,6.32)), + ((1.195,6.32),(1.195,9.585),(1.805,9.585),(1.805,6.32),(1.195,6.32)), ) createRL( tech, net, 'nwm', - ((8.195,7.32),(8.195,9.68),(8.805,9.68),(8.805,7.32),(8.195,7.32)), + ((8.195,7.43),(8.195,9.57),(8.805,9.57),(8.805,7.43),(8.195,7.43)), ) createRL( tech, net, 'nwm', @@ -13487,7 +13375,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,6.32),(2.195,8.68),(2.805,8.68),(2.805,6.32),(2.195,6.32)), + ((2.195,6.43),(2.195,8.57),(2.805,8.57),(2.805,6.43),(2.195,6.43)), ) createRL( tech, net, 'nwm', @@ -13495,11 +13383,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((10.195,8.87),(10.195,9.53),(10.805,9.53),(10.805,8.87),(10.195,8.87)), + ((10.07,8.82),(10.07,9.58),(10.93,9.58),(10.93,8.82),(10.07,8.82)), ) createRL( tech, net, 'nwm', - ((10.07,8.82),(10.07,9.58),(10.93,9.58),(10.93,8.82),(10.07,8.82)), + ((10.195,8.815),(10.195,9.585),(10.805,9.585),(10.805,8.815),(10.195,8.815)), ) createRL( tech, net, 'nwm', @@ -13511,7 +13399,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.87),(0.195,9.53),(0.805,9.53),(0.805,8.87),(0.195,8.87)), + ((0.195,8.815),(0.195,9.585),(0.805,9.585),(0.805,8.815),(0.195,8.815)), ) createRL( tech, net, 'nwm', @@ -13543,7 +13431,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,8.665),(4.195,9.655),(4.805,9.655),(4.805,8.665),(4.195,8.665)), + ((4.195,8.745),(4.195,9.515),(4.805,9.515),(4.805,8.745),(4.195,8.745)), ) createRL( tech, net, 'nwm', @@ -13563,7 +13451,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.805,8.68),(0.805,6.32),(0.195,6.32)), + ((0.195,6.43),(0.195,8.57),(0.805,8.57),(0.805,6.43),(0.195,6.43)), ) createRL( tech, net, 'nwm', @@ -13571,7 +13459,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,6.32),(6.195,8.68),(6.805,8.68),(6.805,6.32),(6.195,6.32)), + ((6.195,6.43),(6.195,8.57),(6.805,8.57),(6.805,6.43),(6.195,6.43)), ) createRL( tech, net, 'nwm', @@ -13595,7 +13483,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,8.87),(2.195,9.53),(2.805,9.53),(2.805,8.87),(2.195,8.87)), + ((2.195,8.815),(2.195,9.585),(2.805,9.585),(2.805,8.815),(2.195,8.815)), ) createRL( tech, net, 'nwm', @@ -13627,7 +13515,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,7.39),(3.195,8.72),(3.805,8.72),(3.805,7.39),(3.195,7.39)), + ((3.195,7.36),(3.195,8.81),(3.805,8.81),(3.805,7.36),(3.195,7.36)), ) createRL( tech, net, 'nwm', @@ -13635,7 +13523,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((14.195,5.47),(14.195,9.53),(14.805,9.53),(14.805,5.47),(14.195,5.47)), + ((14.195,5.41),(14.195,9.59),(14.805,9.59),(14.805,5.41),(14.195,5.41)), ) createRL( tech, net, 'nwm', @@ -13647,7 +13535,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((10.195,6.32),(10.195,8.68),(10.805,8.68),(10.805,6.32),(10.195,6.32)), + ((10.195,6.43),(10.195,8.57),(10.805,8.57),(10.805,6.43),(10.195,6.43)), ) createRL( tech, net, 'nwm', @@ -13671,11 +13559,11 @@ def _load(): ) createRL( tech, net, 'li', - ((8.415,7.48),(8.415,9.52),(8.585,9.52),(8.585,7.48),(8.415,7.48)), + ((8.415,7.655),(8.415,9.345),(8.585,9.345),(8.585,7.655),(8.415,7.655)), ) createRL( tech, net, 'li', - ((4.415,8.825),(4.415,9.495),(4.585,9.495),(4.585,8.825),(4.415,8.825)), + ((4.415,8.965),(4.415,9.295),(4.585,9.295),(4.585,8.965),(4.415,8.965)), ) createRL( tech, net, 'li', @@ -13695,11 +13583,11 @@ def _load(): ) createRL( tech, net, 'li', - ((10.415,9.035),(10.415,9.365),(10.585,9.365),(10.585,9.035),(10.415,9.035)), + ((6.415,9.035),(6.415,9.365),(6.585,9.365),(6.585,9.035),(6.415,9.035)), ) createRL( tech, net, 'li', - ((6.415,9.035),(6.415,9.365),(6.585,9.365),(6.585,9.035),(6.415,9.035)), + ((10.415,9.035),(10.415,9.365),(10.585,9.365),(10.585,9.035),(10.415,9.035)), ) createRL( tech, net, 'li', @@ -13723,6 +13611,26 @@ def _load(): tech, net, 'licon', ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), ) + createRL( + tech, net, 'licon', + ((8.415,7.735),(8.415,7.905),(8.585,7.905),(8.585,7.735),(8.415,7.735)), + ) + createRL( + tech, net, 'licon', + ((8.415,8.075),(8.415,8.245),(8.585,8.245),(8.585,8.075),(8.415,8.075)), + ) + createRL( + tech, net, 'licon', + ((8.415,8.415),(8.415,8.585),(8.585,8.585),(8.585,8.415),(8.415,8.415)), + ) + createRL( + tech, net, 'licon', + ((8.415,8.755),(8.415,8.925),(8.585,8.925),(8.585,8.755),(8.415,8.755)), + ) + createRL( + tech, net, 'licon', + ((8.415,9.095),(8.415,9.265),(8.585,9.265),(8.585,9.095),(8.415,9.095)), + ) createRL( tech, net, 'licon', ((0.415,9.115),(0.415,9.285),(0.585,9.285),(0.585,9.115),(0.415,9.115)), @@ -13829,35 +13737,7 @@ def _load(): ) createRL( tech, net, 'licon', - ((8.415,7.565),(8.415,7.735),(8.585,7.735),(8.585,7.565),(8.415,7.565)), - ) - createRL( - tech, net, 'licon', - ((8.415,7.905),(8.415,8.075),(8.585,8.075),(8.585,7.905),(8.415,7.905)), - ) - createRL( - tech, net, 'licon', - ((8.415,8.245),(8.415,8.415),(8.585,8.415),(8.585,8.245),(8.415,8.245)), - ) - createRL( - tech, net, 'licon', - ((8.415,8.585),(8.415,8.755),(8.585,8.755),(8.585,8.585),(8.415,8.585)), - ) - createRL( - tech, net, 'licon', - ((8.415,8.925),(8.415,9.095),(8.585,9.095),(8.585,8.925),(8.415,8.925)), - ) - createRL( - tech, net, 'licon', - ((8.415,9.265),(8.415,9.435),(8.585,9.435),(8.585,9.265),(8.415,9.265)), - ) - createRL( - tech, net, 'licon', - ((4.415,8.905),(4.415,9.075),(4.585,9.075),(4.585,8.905),(4.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((4.415,9.245),(4.415,9.415),(4.585,9.415),(4.585,9.245),(4.415,9.245)), + ((4.415,9.045),(4.415,9.215),(4.585,9.215),(4.585,9.045),(4.415,9.045)), ) net = nets['_net1'] createRL( @@ -13883,7 +13763,7 @@ def _load(): net = nets['sff_m'] createRL( tech, net, 'difftap', - ((6.375,1.515),(6.375,2.485),(6.625,2.485),(6.625,1.515),(6.375,1.515)), + ((6.375,1.625),(6.375,2.375),(6.625,2.375),(6.625,1.625),(6.375,1.625)), ) createRL( tech, net, 'difftap', @@ -13903,7 +13783,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,6.5),(6.375,8.5),(6.625,8.5),(6.625,6.5),(6.375,6.5)), + ((6.375,6.61),(6.375,8.39),(6.625,8.39),(6.625,6.61),(6.375,6.61)), ) createRL( tech, net, 'difftap', @@ -13971,7 +13851,7 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,6.48),(6.415,8.52),(6.585,8.52),(6.585,6.48),(6.415,6.48)), + ((6.415,6.655),(6.415,8.345),(6.585,8.345),(6.585,6.655),(6.415,6.655)), ) createRL( tech, net, 'li', @@ -13987,15 +13867,15 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,1.915),(6.415,2.085),(7.55,2.085),(7.55,1.915),(6.415,1.915)), + ((7.45,5.915),(7.45,6.085),(8.835,6.085),(8.835,5.915),(7.45,5.915)), ) createRL( tech, net, 'li', - ((7.45,5.915),(7.45,6.085),(8.835,6.085),(8.835,5.915),(7.45,5.915)), + ((6.415,1.915),(6.415,2.085),(7.55,2.085),(7.55,1.915),(6.415,1.915)), ) createRL( tech, net, 'li', - ((6.415,1.495),(6.415,2.505),(6.585,2.505),(6.585,1.495),(6.415,1.495)), + ((6.415,1.665),(6.415,2.335),(6.585,2.335),(6.585,1.665),(6.415,1.665)), ) createRL( tech, net, 'li', @@ -14007,47 +13887,39 @@ def _load(): ) createRL( tech, net, 'licon', - ((8.665,2.915),(8.665,3.085),(8.835,3.085),(8.835,2.915),(8.665,2.915)), - ) - createRL( - tech, net, 'licon', - ((6.415,6.565),(6.415,6.735),(6.585,6.735),(6.585,6.565),(6.415,6.565)), + ((6.415,1.745),(6.415,1.915),(6.585,1.915),(6.585,1.745),(6.415,1.745)), ) createRL( tech, net, 'licon', - ((6.415,6.905),(6.415,7.075),(6.585,7.075),(6.585,6.905),(6.415,6.905)), + ((6.415,2.085),(6.415,2.255),(6.585,2.255),(6.585,2.085),(6.415,2.085)), ) createRL( tech, net, 'licon', - ((6.415,7.245),(6.415,7.415),(6.585,7.415),(6.585,7.245),(6.415,7.245)), - ) - createRL( - tech, net, 'licon', - ((6.415,7.585),(6.415,7.755),(6.585,7.755),(6.585,7.585),(6.415,7.585)), + ((8.665,2.915),(8.665,3.085),(8.835,3.085),(8.835,2.915),(8.665,2.915)), ) createRL( tech, net, 'licon', - ((6.415,7.925),(6.415,8.095),(6.585,8.095),(6.585,7.925),(6.415,7.925)), + ((8.665,5.915),(8.665,6.085),(8.835,6.085),(8.835,5.915),(8.665,5.915)), ) createRL( tech, net, 'licon', - ((6.415,8.265),(6.415,8.435),(6.585,8.435),(6.585,8.265),(6.415,8.265)), + ((6.415,6.735),(6.415,6.905),(6.585,6.905),(6.585,6.735),(6.415,6.735)), ) createRL( tech, net, 'licon', - ((8.665,5.915),(8.665,6.085),(8.835,6.085),(8.835,5.915),(8.665,5.915)), + ((6.415,7.075),(6.415,7.245),(6.585,7.245),(6.585,7.075),(6.415,7.075)), ) createRL( tech, net, 'licon', - ((6.415,1.575),(6.415,1.745),(6.585,1.745),(6.585,1.575),(6.415,1.575)), + ((6.415,7.415),(6.415,7.585),(6.585,7.585),(6.585,7.415),(6.415,7.415)), ) createRL( tech, net, 'licon', - ((6.415,1.915),(6.415,2.085),(6.585,2.085),(6.585,1.915),(6.415,1.915)), + ((6.415,7.755),(6.415,7.925),(6.585,7.925),(6.585,7.755),(6.415,7.755)), ) createRL( tech, net, 'licon', - ((6.415,2.255),(6.415,2.425),(6.585,2.425),(6.585,2.255),(6.415,2.255)), + ((6.415,8.095),(6.415,8.265),(6.585,8.265),(6.585,8.095),(6.415,8.095)), ) net = nets['ckr'] createRL( @@ -14124,7 +13996,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,6.5),(2.375,8.5),(2.625,8.5),(2.625,6.5),(2.375,6.5)), + ((2.375,6.61),(2.375,8.39),(2.625,8.39),(2.625,6.61),(2.375,6.61)), ) createRL( tech, net, 'difftap', @@ -14136,7 +14008,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,1.515),(2.375,2.485),(2.625,2.485),(2.625,1.515),(2.375,1.515)), + ((2.375,1.625),(2.375,2.375),(2.625,2.375),(2.625,1.625),(2.375,1.625)), ) createRL( tech, net, 'difftap', @@ -14148,15 +14020,11 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.415,1.575),(2.415,1.745),(2.585,1.745),(2.585,1.575),(2.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((2.415,1.915),(2.415,2.085),(2.585,2.085),(2.585,1.915),(2.415,1.915)), + ((2.415,1.745),(2.415,1.915),(2.585,1.915),(2.585,1.745),(2.415,1.745)), ) createRL( tech, net, 'licon', - ((2.415,2.255),(2.415,2.425),(2.585,2.425),(2.585,2.255),(2.415,2.255)), + ((2.415,2.085),(2.415,2.255),(2.585,2.255),(2.585,2.085),(2.415,2.085)), ) createRL( tech, net, 'licon', @@ -14164,7 +14032,7 @@ def _load(): ) createRL( tech, net, 'licon', - ((10.315,3.915),(10.315,4.085),(10.485,4.085),(10.485,3.915),(10.315,3.915)), + ((6.715,3.915),(6.715,4.085),(6.885,4.085),(6.885,3.915),(6.715,3.915)), ) createRL( tech, net, 'licon', @@ -14172,43 +14040,39 @@ def _load(): ) createRL( tech, net, 'licon', - ((6.115,5.915),(6.115,6.085),(6.285,6.085),(6.285,5.915),(6.115,5.915)), - ) - createRL( - tech, net, 'licon', - ((6.715,3.915),(6.715,4.085),(6.885,4.085),(6.885,3.915),(6.715,3.915)), + ((2.415,6.735),(2.415,6.905),(2.585,6.905),(2.585,6.735),(2.415,6.735)), ) createRL( tech, net, 'licon', - ((2.415,6.565),(2.415,6.735),(2.585,6.735),(2.585,6.565),(2.415,6.565)), + ((2.415,7.075),(2.415,7.245),(2.585,7.245),(2.585,7.075),(2.415,7.075)), ) createRL( tech, net, 'licon', - ((2.415,6.905),(2.415,7.075),(2.585,7.075),(2.585,6.905),(2.415,6.905)), + ((2.415,7.415),(2.415,7.585),(2.585,7.585),(2.585,7.415),(2.415,7.415)), ) createRL( tech, net, 'licon', - ((2.415,7.245),(2.415,7.415),(2.585,7.415),(2.585,7.245),(2.415,7.245)), + ((2.415,7.755),(2.415,7.925),(2.585,7.925),(2.585,7.755),(2.415,7.755)), ) createRL( tech, net, 'licon', - ((2.415,7.585),(2.415,7.755),(2.585,7.755),(2.585,7.585),(2.415,7.585)), + ((2.415,8.095),(2.415,8.265),(2.585,8.265),(2.585,8.095),(2.415,8.095)), ) createRL( tech, net, 'licon', - ((2.415,7.925),(2.415,8.095),(2.585,8.095),(2.585,7.925),(2.415,7.925)), + ((6.115,5.915),(6.115,6.085),(6.285,6.085),(6.285,5.915),(6.115,5.915)), ) createRL( tech, net, 'licon', - ((2.415,8.265),(2.415,8.435),(2.585,8.435),(2.585,8.265),(2.415,8.265)), + ((10.315,3.915),(10.315,4.085),(10.485,4.085),(10.485,3.915),(10.315,3.915)), ) createRL( tech, net, 'li', - ((2.415,6.48),(2.415,8.52),(2.585,8.52),(2.585,6.48),(2.415,6.48)), + ((2.415,6.655),(2.415,8.345),(2.585,8.345),(2.585,6.655),(2.415,6.655)), ) createRL( tech, net, 'li', - ((2.415,1.495),(2.415,2.505),(2.585,2.505),(2.585,1.495),(2.415,1.495)), + ((2.415,1.665),(2.415,2.335),(2.585,2.335),(2.585,1.665),(2.415,1.665)), ) createRL( tech, net, 'li', @@ -14257,7 +14121,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((9.375,1.46),(9.375,2.43),(9.625,2.43),(9.625,1.46),(9.375,1.46)), + ((9.375,1.37),(9.375,2.46),(9.625,2.46),(9.625,1.37),(9.375,1.37)), ) createRL( tech, net, 'difftap', @@ -14269,7 +14133,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((9.375,6.555),(9.375,8.555),(9.625,8.555),(9.625,6.555),(9.375,6.555)), + ((9.375,6.525),(9.375,8.645),(9.625,8.645),(9.625,6.525),(9.375,6.525)), ) createRL( tech, net, 'difftap', @@ -14325,51 +14189,51 @@ def _load(): ) createRL( tech, net, 'licon', - ((9.415,6.62),(9.415,6.79),(9.585,6.79),(9.585,6.62),(9.415,6.62)), + ((8.115,6.915),(8.115,7.085),(8.285,7.085),(8.285,6.915),(8.115,6.915)), ) createRL( tech, net, 'licon', - ((9.415,6.96),(9.415,7.13),(9.585,7.13),(9.585,6.96),(9.415,6.96)), + ((8.115,1.915),(8.115,2.085),(8.285,2.085),(8.285,1.915),(8.115,1.915)), ) createRL( tech, net, 'licon', - ((9.415,7.3),(9.415,7.47),(9.585,7.47),(9.585,7.3),(9.415,7.3)), + ((9.415,1.49),(9.415,1.66),(9.585,1.66),(9.585,1.49),(9.415,1.49)), ) createRL( tech, net, 'licon', - ((9.415,7.64),(9.415,7.81),(9.585,7.81),(9.585,7.64),(9.415,7.64)), + ((9.415,1.83),(9.415,2.0),(9.585,2.0),(9.585,1.83),(9.415,1.83)), ) createRL( tech, net, 'licon', - ((9.415,7.98),(9.415,8.15),(9.585,8.15),(9.585,7.98),(9.415,7.98)), + ((9.415,2.17),(9.415,2.34),(9.585,2.34),(9.585,2.17),(9.415,2.17)), ) createRL( tech, net, 'licon', - ((9.415,8.32),(9.415,8.49),(9.585,8.49),(9.585,8.32),(9.415,8.32)), + ((9.415,6.65),(9.415,6.82),(9.585,6.82),(9.585,6.65),(9.415,6.65)), ) createRL( tech, net, 'licon', - ((8.115,6.915),(8.115,7.085),(8.285,7.085),(8.285,6.915),(8.115,6.915)), + ((9.415,6.99),(9.415,7.16),(9.585,7.16),(9.585,6.99),(9.415,6.99)), ) createRL( tech, net, 'licon', - ((8.115,1.915),(8.115,2.085),(8.285,2.085),(8.285,1.915),(8.115,1.915)), + ((9.415,7.33),(9.415,7.5),(9.585,7.5),(9.585,7.33),(9.415,7.33)), ) createRL( tech, net, 'licon', - ((9.415,1.52),(9.415,1.69),(9.585,1.69),(9.585,1.52),(9.415,1.52)), + ((9.415,7.67),(9.415,7.84),(9.585,7.84),(9.585,7.67),(9.415,7.67)), ) createRL( tech, net, 'licon', - ((9.415,1.86),(9.415,2.03),(9.585,2.03),(9.585,1.86),(9.415,1.86)), + ((9.415,8.01),(9.415,8.18),(9.585,8.18),(9.585,8.01),(9.415,8.01)), ) createRL( tech, net, 'licon', - ((9.415,2.2),(9.415,2.37),(9.585,2.37),(9.585,2.2),(9.415,2.2)), + ((9.415,8.35),(9.415,8.52),(9.585,8.52),(9.585,8.35),(9.415,8.35)), ) createRL( tech, net, 'li', - ((9.415,1.44),(9.415,2.45),(9.585,2.45),(9.585,1.44),(9.415,1.44)), + ((9.415,1.41),(9.415,2.42),(9.585,2.42),(9.585,1.41),(9.415,1.41)), ) createRL( tech, net, 'li', @@ -14377,7 +14241,7 @@ def _load(): ) createRL( tech, net, 'li', - ((9.415,2.28),(9.415,6.705),(9.585,6.705),(9.585,2.28),(9.415,2.28)), + ((9.415,2.25),(9.415,6.735),(9.585,6.735),(9.585,2.25),(9.415,2.25)), ) createRL( tech, net, 'li', @@ -14401,16 +14265,16 @@ def _load(): ) createRL( tech, net, 'li', - ((9.415,6.535),(9.415,8.575),(9.585,8.575),(9.585,6.535),(9.415,6.535)), + ((9.415,6.565),(9.415,8.605),(9.585,8.605),(9.585,6.565),(9.415,6.565)), ) net = nets['sff_s'] createRL( tech, net, 'difftap', - ((10.375,1.515),(10.375,2.485),(10.625,2.485),(10.625,1.515),(10.375,1.515)), + ((10.675,1.5),(10.675,2.5),(10.925,2.5),(10.925,1.5),(10.675,1.5)), ) createRL( tech, net, 'difftap', - ((10.675,1.5),(10.675,2.5),(10.925,2.5),(10.925,1.5),(10.675,1.5)), + ((10.375,1.625),(10.375,2.375),(10.625,2.375),(10.625,1.625),(10.375,1.625)), ) createRL( tech, net, 'difftap', @@ -14426,7 +14290,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((10.375,6.5),(10.375,8.5),(10.625,8.5),(10.625,6.5),(10.375,6.5)), + ((10.375,6.61),(10.375,8.39),(10.625,8.39),(10.625,6.61),(10.375,6.61)), ) createRL( tech, net, 'difftap', @@ -14482,15 +14346,15 @@ def _load(): ) createRL( tech, net, 'li', - ((10.415,7.915),(10.415,8.085),(11.55,8.085),(11.55,7.915),(10.415,7.915)), + ((10.415,6.655),(10.415,8.345),(10.585,8.345),(10.585,6.655),(10.415,6.655)), ) createRL( tech, net, 'li', - ((10.415,6.48),(10.415,8.52),(10.585,8.52),(10.585,6.48),(10.415,6.48)), + ((10.45,7.915),(10.45,8.085),(11.55,8.085),(11.55,7.915),(10.45,7.915)), ) createRL( tech, net, 'li', - ((10.45,7.915),(10.45,8.085),(11.55,8.085),(11.55,7.915),(10.45,7.915)), + ((10.415,7.915),(10.415,8.085),(11.55,8.085),(11.55,7.915),(10.415,7.915)), ) createRL( tech, net, 'li', @@ -14510,7 +14374,7 @@ def _load(): ) createRL( tech, net, 'li', - ((10.415,1.495),(10.415,2.505),(10.585,2.505),(10.585,1.495),(10.415,1.495)), + ((10.415,1.665),(10.415,2.335),(10.585,2.335),(10.585,1.665),(10.415,1.665)), ) createRL( tech, net, 'li', @@ -14522,85 +14386,77 @@ def _load(): ) createRL( tech, net, 'licon', - ((10.415,6.565),(10.415,6.735),(10.585,6.735),(10.585,6.565),(10.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((10.415,6.905),(10.415,7.075),(10.585,7.075),(10.585,6.905),(10.415,6.905)), - ) - createRL( - tech, net, 'licon', - ((10.415,7.245),(10.415,7.415),(10.585,7.415),(10.585,7.245),(10.415,7.245)), + ((12.665,3.915),(12.665,4.085),(12.835,4.085),(12.835,3.915),(12.665,3.915)), ) createRL( tech, net, 'licon', - ((10.415,7.585),(10.415,7.755),(10.585,7.755),(10.585,7.585),(10.415,7.585)), + ((10.415,1.745),(10.415,1.915),(10.585,1.915),(10.585,1.745),(10.415,1.745)), ) createRL( tech, net, 'licon', - ((10.415,7.925),(10.415,8.095),(10.585,8.095),(10.585,7.925),(10.415,7.925)), + ((10.415,2.085),(10.415,2.255),(10.585,2.255),(10.585,2.085),(10.415,2.085)), ) createRL( tech, net, 'licon', - ((10.415,8.265),(10.415,8.435),(10.585,8.435),(10.585,8.265),(10.415,8.265)), + ((10.415,6.735),(10.415,6.905),(10.585,6.905),(10.585,6.735),(10.415,6.735)), ) createRL( tech, net, 'licon', - ((12.665,3.915),(12.665,4.085),(12.835,4.085),(12.835,3.915),(12.665,3.915)), + ((10.415,7.075),(10.415,7.245),(10.585,7.245),(10.585,7.075),(10.415,7.075)), ) createRL( tech, net, 'licon', - ((10.415,1.575),(10.415,1.745),(10.585,1.745),(10.585,1.575),(10.415,1.575)), + ((10.415,7.415),(10.415,7.585),(10.585,7.585),(10.585,7.415),(10.415,7.415)), ) createRL( tech, net, 'licon', - ((10.415,1.915),(10.415,2.085),(10.585,2.085),(10.585,1.915),(10.415,1.915)), + ((10.415,7.755),(10.415,7.925),(10.585,7.925),(10.585,7.755),(10.415,7.755)), ) createRL( tech, net, 'licon', - ((10.415,2.255),(10.415,2.425),(10.585,2.425),(10.585,2.255),(10.415,2.255)), + ((10.415,8.095),(10.415,8.265),(10.585,8.265),(10.585,8.095),(10.415,8.095)), ) - net = nets['_net4'] + net = nets['_net0'] createRL( tech, net, 'difftap', - ((7.075,1.5),(7.075,2.5),(7.325,2.5),(7.325,1.5),(7.075,1.5)), + ((11.325,6.5),(11.325,8.5),(11.575,8.5),(11.575,6.5),(11.325,6.5)), ) createRL( tech, net, 'difftap', - ((7.325,1.5),(7.325,2.5),(7.575,2.5),(7.575,1.5),(7.325,1.5)), + ((11.075,6.5),(11.075,8.5),(11.325,8.5),(11.325,6.5),(11.075,6.5)), ) createRL( tech, net, 'difftap', - ((7.425,0.8),(7.425,2.3),(7.575,2.3),(7.575,0.8),(7.425,0.8)), + ((11.425,7.5),(11.425,9.5),(11.675,9.5),(11.675,7.5),(11.425,7.5)), ) createRL( tech, net, 'difftap', - ((7.425,0.6),(7.425,1.5),(7.675,1.5),(7.675,0.6),(7.425,0.6)), + ((11.425,7.7),(11.425,9.3),(11.575,9.3),(11.575,7.7),(11.425,7.7)), ) createRL( tech, net, 'difftap', - ((7.675,0.6),(7.675,1.5),(7.925,1.5),(7.925,0.6),(7.675,0.6)), + ((11.675,7.5),(11.675,9.5),(11.925,9.5),(11.925,7.5),(11.675,7.5)), ) - net = nets['_net0'] + net = nets['_net4'] createRL( tech, net, 'difftap', - ((11.325,6.5),(11.325,8.5),(11.575,8.5),(11.575,6.5),(11.325,6.5)), + ((7.075,1.5),(7.075,2.5),(7.325,2.5),(7.325,1.5),(7.075,1.5)), ) createRL( tech, net, 'difftap', - ((11.075,6.5),(11.075,8.5),(11.325,8.5),(11.325,6.5),(11.075,6.5)), + ((7.325,1.5),(7.325,2.5),(7.575,2.5),(7.575,1.5),(7.325,1.5)), ) createRL( tech, net, 'difftap', - ((11.425,7.5),(11.425,9.5),(11.675,9.5),(11.675,7.5),(11.425,7.5)), + ((7.425,0.8),(7.425,2.3),(7.575,2.3),(7.575,0.8),(7.425,0.8)), ) createRL( tech, net, 'difftap', - ((11.425,7.7),(11.425,9.3),(11.575,9.3),(11.575,7.7),(11.425,7.7)), + ((7.425,0.6),(7.425,1.5),(7.675,1.5),(7.675,0.6),(7.425,0.6)), ) createRL( tech, net, 'difftap', - ((11.675,7.5),(11.675,9.5),(11.925,9.5),(11.925,7.5),(11.675,7.5)), + ((7.675,0.6),(7.675,1.5),(7.925,1.5),(7.925,0.6),(7.675,0.6)), ) net = nets['u'] createRL( @@ -14609,11 +14465,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,7.57),(3.375,8.54),(3.625,8.54),(3.625,7.57),(3.375,7.57)), + ((3.375,7.54),(3.375,8.63),(3.625,8.63),(3.625,7.54),(3.375,7.54)), ) createRL( tech, net, 'difftap', - ((3.375,1.515),(3.375,2.485),(3.625,2.485),(3.625,1.515),(3.375,1.515)), + ((3.375,1.625),(3.375,2.375),(3.625,2.375),(3.625,1.625),(3.375,1.625)), ) createRL( tech, net, 'difftap', @@ -14643,17 +14499,13 @@ def _load(): tech, net, 'poly', ((4.925,7.37),(4.925,9.63),(5.075,9.63),(5.075,7.37),(4.925,7.37)), ) - createRL( - tech, net, 'poly', - ((4.925,1.37),(4.925,2.63),(5.075,2.63),(5.075,1.37),(4.925,1.37)), - ) createRL( tech, net, 'poly', ((5.065,2.835),(5.065,3.165),(5.335,3.165),(5.335,2.835),(5.065,2.835)), ) createRL( tech, net, 'poly', - ((5.065,5.835),(5.065,6.165),(5.335,6.165),(5.335,5.835),(5.065,5.835)), + ((3.465,5.835),(3.465,6.165),(3.735,6.165),(3.735,5.835),(3.465,5.835)), ) createRL( tech, net, 'poly', @@ -14665,19 +14517,19 @@ def _load(): ) createRL( tech, net, 'poly', - ((3.465,5.835),(3.465,6.165),(3.735,6.165),(3.735,5.835),(3.465,5.835)), + ((4.925,1.37),(4.925,2.63),(5.075,2.63),(5.075,1.37),(4.925,1.37)), ) createRL( - tech, net, 'licon', - ((3.415,7.63),(3.415,7.8),(3.585,7.8),(3.585,7.63),(3.415,7.63)), + tech, net, 'poly', + ((5.065,5.835),(5.065,6.165),(5.335,6.165),(5.335,5.835),(5.065,5.835)), ) createRL( tech, net, 'licon', - ((3.415,7.97),(3.415,8.14),(3.585,8.14),(3.585,7.97),(3.415,7.97)), + ((3.415,1.745),(3.415,1.915),(3.585,1.915),(3.585,1.745),(3.415,1.745)), ) createRL( tech, net, 'licon', - ((3.415,8.31),(3.415,8.48),(3.585,8.48),(3.585,8.31),(3.415,8.31)), + ((3.415,2.085),(3.415,2.255),(3.585,2.255),(3.585,2.085),(3.415,2.085)), ) createRL( tech, net, 'licon', @@ -14693,27 +14545,27 @@ def _load(): ) createRL( tech, net, 'licon', - ((3.415,1.575),(3.415,1.745),(3.585,1.745),(3.585,1.575),(3.415,1.575)), + ((3.415,7.66),(3.415,7.83),(3.585,7.83),(3.585,7.66),(3.415,7.66)), ) createRL( tech, net, 'licon', - ((3.415,1.915),(3.415,2.085),(3.585,2.085),(3.585,1.915),(3.415,1.915)), + ((3.415,8.0),(3.415,8.17),(3.585,8.17),(3.585,8.0),(3.415,8.0)), ) createRL( tech, net, 'licon', - ((3.415,2.255),(3.415,2.425),(3.585,2.425),(3.585,2.255),(3.415,2.255)), + ((3.415,8.34),(3.415,8.51),(3.585,8.51),(3.585,8.34),(3.415,8.34)), ) createRL( tech, net, 'li', - ((3.415,7.55),(3.415,8.56),(3.585,8.56),(3.585,7.55),(3.415,7.55)), + ((3.415,7.58),(3.415,8.59),(3.585,8.59),(3.585,7.58),(3.415,7.58)), ) createRL( tech, net, 'li', - ((3.415,2.335),(3.415,7.72),(3.585,7.72),(3.585,2.335),(3.415,2.335)), + ((3.415,2.165),(3.415,7.75),(3.585,7.75),(3.585,2.165),(3.415,2.165)), ) createRL( tech, net, 'li', - ((3.415,1.495),(3.415,2.505),(3.585,2.505),(3.585,1.495),(3.415,1.495)), + ((3.415,1.665),(3.415,2.335),(3.585,2.335),(3.585,1.665),(3.415,1.665)), ) createRL( tech, net, 'li', @@ -14904,7 +14756,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((13.375,1.46),(13.375,2.43),(13.625,2.43),(13.625,1.46),(13.375,1.46)), + ((13.375,1.37),(13.375,2.46),(13.625,2.46),(13.625,1.37),(13.375,1.37)), ) createRL( tech, net, 'difftap', @@ -14912,7 +14764,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((13.375,5.55),(13.375,8.56),(13.625,8.56),(13.625,5.55),(13.375,5.55)), + ((13.375,5.52),(13.375,8.65),(13.625,8.65),(13.625,5.52),(13.375,5.52)), ) createRL( tech, net, 'difftap', @@ -14940,11 +14792,11 @@ def _load(): ) createRL( tech, net, 'li', - ((13.415,1.44),(13.415,2.45),(13.585,2.45),(13.585,1.44),(13.415,1.44)), + ((13.415,1.41),(13.415,2.42),(13.585,2.42),(13.585,1.41),(13.415,1.41)), ) createRL( tech, net, 'li', - ((13.415,5.53),(13.415,8.58),(13.585,8.58),(13.585,5.53),(13.415,5.53)), + ((13.415,5.56),(13.415,8.61),(13.585,8.61),(13.585,5.56),(13.415,5.56)), ) createRL( tech, net, 'li', @@ -14960,7 +14812,7 @@ def _load(): ) createRL( tech, net, 'li', - ((12.165,4.915),(12.165,5.085),(13.5,5.085),(13.5,4.915),(12.165,4.915)), + ((12.2,4.915),(12.2,5.085),(13.5,5.085),(13.5,4.915),(12.2,4.915)), ) createRL( tech, net, 'li', @@ -14968,7 +14820,7 @@ def _load(): ) createRL( tech, net, 'li', - ((12.2,4.915),(12.2,5.085),(13.5,5.085),(13.5,4.915),(12.2,4.915)), + ((12.165,4.915),(12.165,5.085),(13.5,5.085),(13.5,4.915),(12.165,4.915)), ) createRL( tech, net, 'li', @@ -14986,59 +14838,59 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((13.415,5.61),(13.415,5.78),(13.585,5.78),(13.585,5.61),(13.415,5.61)), + ((13.415,5.64),(13.415,5.81),(13.585,5.81),(13.585,5.64),(13.415,5.64)), ) createRL( tech, net, 'licon', - ((13.415,5.95),(13.415,6.12),(13.585,6.12),(13.585,5.95),(13.415,5.95)), + ((13.415,5.98),(13.415,6.15),(13.585,6.15),(13.585,5.98),(13.415,5.98)), ) createRL( tech, net, 'licon', - ((13.415,6.29),(13.415,6.46),(13.585,6.46),(13.585,6.29),(13.415,6.29)), + ((13.415,6.32),(13.415,6.49),(13.585,6.49),(13.585,6.32),(13.415,6.32)), ) createRL( tech, net, 'licon', - ((13.415,6.63),(13.415,6.8),(13.585,6.8),(13.585,6.63),(13.415,6.63)), + ((13.415,6.66),(13.415,6.83),(13.585,6.83),(13.585,6.66),(13.415,6.66)), ) createRL( tech, net, 'licon', - ((13.415,6.97),(13.415,7.14),(13.585,7.14),(13.585,6.97),(13.415,6.97)), + ((13.415,7.0),(13.415,7.17),(13.585,7.17),(13.585,7.0),(13.415,7.0)), ) createRL( tech, net, 'licon', - ((13.415,7.31),(13.415,7.48),(13.585,7.48),(13.585,7.31),(13.415,7.31)), + ((13.415,7.34),(13.415,7.51),(13.585,7.51),(13.585,7.34),(13.415,7.34)), ) createRL( tech, net, 'licon', - ((13.415,7.65),(13.415,7.82),(13.585,7.82),(13.585,7.65),(13.415,7.65)), + ((13.415,7.68),(13.415,7.85),(13.585,7.85),(13.585,7.68),(13.415,7.68)), ) createRL( tech, net, 'licon', - ((13.415,7.99),(13.415,8.16),(13.585,8.16),(13.585,7.99),(13.415,7.99)), + ((13.415,8.02),(13.415,8.19),(13.585,8.19),(13.585,8.02),(13.415,8.02)), ) createRL( tech, net, 'licon', - ((13.415,8.33),(13.415,8.5),(13.585,8.5),(13.585,8.33),(13.415,8.33)), + ((13.415,8.36),(13.415,8.53),(13.585,8.53),(13.585,8.36),(13.415,8.36)), ) createRL( tech, net, 'licon', - ((12.165,2.915),(12.165,3.085),(12.335,3.085),(12.335,2.915),(12.165,2.915)), + ((13.415,1.49),(13.415,1.66),(13.585,1.66),(13.585,1.49),(13.415,1.49)), ) createRL( tech, net, 'licon', - ((12.165,4.915),(12.165,5.085),(12.335,5.085),(12.335,4.915),(12.165,4.915)), + ((13.415,1.83),(13.415,2.0),(13.585,2.0),(13.585,1.83),(13.415,1.83)), ) createRL( tech, net, 'licon', - ((13.415,1.52),(13.415,1.69),(13.585,1.69),(13.585,1.52),(13.415,1.52)), + ((13.415,2.17),(13.415,2.34),(13.585,2.34),(13.585,2.17),(13.415,2.17)), ) createRL( tech, net, 'licon', - ((13.415,1.86),(13.415,2.03),(13.585,2.03),(13.585,1.86),(13.415,1.86)), + ((12.165,2.915),(12.165,3.085),(12.335,3.085),(12.335,2.915),(12.165,2.915)), ) createRL( tech, net, 'licon', - ((13.415,2.2),(13.415,2.37),(13.585,2.37),(13.585,2.2),(13.415,2.2)), + ((12.165,4.915),(12.165,5.085),(12.335,5.085),(12.335,4.915),(12.165,4.915)), ) cell = new_cells['sff1r_x4'] @@ -15069,8 +14921,8 @@ def _load(): 'vss': Net.create(cell, 'vss'), 'y': Net.create(cell, 'y'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['nckr'] createRL( tech, net, 'difftap', @@ -15078,11 +14930,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.625,8.5),(0.625,6.5),(0.375,6.5)), + ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.675,8.5),(0.675,6.5),(0.375,6.5)), + ((0.375,6.61),(0.375,8.39),(0.625,8.39),(0.625,6.61),(0.375,6.61)), ) createRL( tech, net, 'difftap', @@ -15094,7 +14946,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.515),(0.375,2.485),(0.625,2.485),(0.625,1.515),(0.375,1.515)), + ((0.375,1.625),(0.375,2.375),(0.625,2.375),(0.625,1.625),(0.375,1.625)), ) createRL( tech, net, 'poly', @@ -15104,10 +14956,6 @@ def _load(): tech, net, 'poly', ((0.465,4.835),(0.465,5.165),(13.075,5.165),(13.075,4.835),(0.465,4.835)), ) - createRL( - tech, net, 'poly', - ((12.925,1.37),(12.925,2.63),(13.075,2.63),(13.075,1.37),(12.925,1.37)), - ) createRL( tech, net, 'poly', ((1.925,6.37),(1.925,8.63),(2.075,8.63),(2.075,6.37),(1.925,6.37)), @@ -15118,11 +14966,11 @@ def _load(): ) createRL( tech, net, 'poly', - ((5.865,2.835),(5.865,3.165),(6.135,3.165),(6.135,2.835),(5.865,2.835)), + ((12.925,5.0),(12.925,6.52),(13.075,6.52),(13.075,5.0),(12.925,5.0)), ) createRL( tech, net, 'poly', - ((12.925,5.0),(12.925,6.52),(13.075,6.52),(13.075,5.0),(12.925,5.0)), + ((5.925,2.63),(5.925,3.165),(6.135,3.165),(6.135,2.63),(5.925,2.63)), ) createRL( tech, net, 'poly', @@ -15138,11 +14986,15 @@ def _load(): ) createRL( tech, net, 'poly', - ((5.925,2.63),(5.925,3.165),(6.135,3.165),(6.135,2.63),(5.925,2.63)), + ((5.925,1.37),(5.925,2.63),(6.075,2.63),(6.075,1.37),(5.925,1.37)), ) createRL( tech, net, 'poly', - ((5.925,1.37),(5.925,2.63),(6.075,2.63),(6.075,1.37),(5.925,1.37)), + ((5.865,2.835),(5.865,3.165),(6.135,3.165),(6.135,2.835),(5.865,2.835)), + ) + createRL( + tech, net, 'poly', + ((12.925,1.37),(12.925,2.63),(13.075,2.63),(13.075,1.37),(12.925,1.37)), ) createRL( tech, net, 'poly', @@ -15158,39 +15010,31 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.415,1.575),(0.415,1.745),(0.585,1.745),(0.585,1.575),(0.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((0.415,2.255),(0.415,2.425),(0.585,2.425),(0.585,2.255),(0.415,2.255)), + ((0.415,6.735),(0.415,6.905),(0.585,6.905),(0.585,6.735),(0.415,6.735)), ) createRL( tech, net, 'licon', - ((0.415,6.565),(0.415,6.735),(0.585,6.735),(0.585,6.565),(0.415,6.565)), + ((0.415,7.075),(0.415,7.245),(0.585,7.245),(0.585,7.075),(0.415,7.075)), ) createRL( tech, net, 'licon', - ((0.415,6.905),(0.415,7.075),(0.585,7.075),(0.585,6.905),(0.415,6.905)), + ((0.415,7.415),(0.415,7.585),(0.585,7.585),(0.585,7.415),(0.415,7.415)), ) createRL( tech, net, 'licon', - ((0.415,7.245),(0.415,7.415),(0.585,7.415),(0.585,7.245),(0.415,7.245)), + ((0.415,7.755),(0.415,7.925),(0.585,7.925),(0.585,7.755),(0.415,7.755)), ) createRL( tech, net, 'licon', - ((0.415,7.585),(0.415,7.755),(0.585,7.755),(0.585,7.585),(0.415,7.585)), + ((0.415,8.095),(0.415,8.265),(0.585,8.265),(0.585,8.095),(0.415,8.095)), ) createRL( tech, net, 'licon', - ((0.415,7.925),(0.415,8.095),(0.585,8.095),(0.585,7.925),(0.415,7.925)), + ((0.415,1.745),(0.415,1.915),(0.585,1.915),(0.585,1.745),(0.415,1.745)), ) createRL( tech, net, 'licon', - ((0.415,8.265),(0.415,8.435),(0.585,8.435),(0.585,8.265),(0.415,8.265)), + ((0.415,2.085),(0.415,2.255),(0.585,2.255),(0.585,2.085),(0.415,2.085)), ) createRL( tech, net, 'licon', @@ -15210,7 +15054,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,2.335),(0.415,6.65),(0.585,6.65),(0.585,2.335),(0.415,2.335)), + ((5.915,2.835),(5.915,3.165),(6.085,3.165),(6.085,2.835),(5.915,2.835)), ) createRL( tech, net, 'li', @@ -15218,11 +15062,11 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,6.48),(0.415,8.52),(0.585,8.52),(0.585,6.48),(0.415,6.48)), + ((0.415,6.655),(0.415,8.345),(0.585,8.345),(0.585,6.655),(0.415,6.655)), ) createRL( tech, net, 'li', - ((5.915,2.835),(5.915,3.165),(6.085,3.165),(6.085,2.835),(5.915,2.835)), + ((0.415,2.165),(0.415,6.825),(0.585,6.825),(0.585,2.165),(0.415,2.165)), ) createRL( tech, net, 'li', @@ -15230,7 +15074,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.495),(0.415,2.505),(0.585,2.505),(0.585,1.495),(0.415,1.495)), + ((0.415,1.665),(0.415,2.335),(0.585,2.335),(0.585,1.665),(0.415,1.665)), ) net = nets['vss'] createRL( @@ -15247,23 +15091,23 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.925,1.5),(5.925,2.5),(6.075,2.5),(6.075,1.5),(5.925,1.5)), + ((12.925,1.5),(12.925,2.5),(13.075,2.5),(13.075,1.5),(12.925,1.5)), ) createRL( tech, net, 'difftap', - ((12.925,1.5),(12.925,2.5),(13.075,2.5),(13.075,1.5),(12.925,1.5)), + ((5.925,1.5),(5.925,2.5),(6.075,2.5),(6.075,1.5),(5.925,1.5)), ) createRL( tech, net, 'difftap', - ((8.325,0.6),(8.325,1.5),(8.625,1.5),(8.625,0.6),(8.325,0.6)), + ((8.675,0.6),(8.675,1.5),(8.925,1.5),(8.925,0.6),(8.675,0.6)), ) createRL( tech, net, 'difftap', - ((8.675,0.6),(8.675,1.5),(8.925,1.5),(8.925,0.6),(8.675,0.6)), + ((8.075,0.6),(8.075,1.5),(8.325,1.5),(8.325,0.6),(8.075,0.6)), ) createRL( tech, net, 'difftap', - ((1.375,0.75),(1.375,2.5),(1.625,2.5),(1.625,0.75),(1.375,0.75)), + ((1.375,0.695),(1.375,2.5),(1.625,2.5),(1.625,0.695),(1.375,0.695)), ) createRL( tech, net, 'difftap', @@ -15271,7 +15115,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((8.075,0.6),(8.075,1.5),(8.325,1.5),(8.325,0.6),(8.075,0.6)), + ((8.325,0.6),(8.325,1.5),(8.625,1.5),(8.625,0.6),(8.325,0.6)), ) createRL( tech, net, 'difftap', @@ -15279,7 +15123,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,0.75),(1.375,1.05),(1.625,1.05),(1.625,0.75),(1.375,0.75)), + ((1.375,0.695),(1.375,1.105),(1.625,1.105),(1.625,0.695),(1.375,0.695)), ) createRL( tech, net, 'difftap', @@ -15287,15 +15131,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,0.75),(4.375,1.05),(4.625,1.05),(4.625,0.75),(4.375,0.75)), + ((4.375,0.695),(4.375,1.105),(4.625,1.105),(4.625,0.695),(4.375,0.695)), ) createRL( tech, net, 'difftap', - ((2.375,0.55),(2.375,0.85),(2.625,0.85),(2.625,0.55),(2.375,0.55)), + ((14.3,0.5),(14.3,0.9),(14.7,0.9),(14.7,0.5),(14.3,0.5)), ) createRL( tech, net, 'difftap', - ((14.3,0.5),(14.3,0.9),(14.7,0.9),(14.7,0.5),(14.3,0.5)), + ((2.375,0.495),(2.375,0.905),(2.625,0.905),(2.625,0.495),(2.375,0.495)), ) createRL( tech, net, 'difftap', @@ -15307,7 +15151,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((14.375,0.55),(14.375,0.85),(14.625,0.85),(14.625,0.55),(14.375,0.55)), + ((14.375,0.495),(14.375,0.905),(14.625,0.905),(14.625,0.495),(14.375,0.495)), ) createRL( tech, net, 'difftap', @@ -15335,11 +15179,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,0.55),(6.375,0.85),(6.625,0.85),(6.625,0.55),(6.375,0.55)), + ((6.3,0.5),(6.3,0.9),(6.7,0.9),(6.7,0.5),(6.3,0.5)), ) createRL( tech, net, 'difftap', - ((6.3,0.5),(6.3,0.9),(6.7,0.9),(6.7,0.5),(6.3,0.5)), + ((6.375,0.495),(6.375,0.905),(6.625,0.905),(6.625,0.495),(6.375,0.495)), ) createRL( tech, net, 'difftap', @@ -15375,7 +15219,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((15.375,0.72),(15.375,2.38),(15.625,2.38),(15.625,0.72),(15.375,0.72)), + ((15.375,0.66),(15.375,2.44),(15.625,2.44),(15.625,0.66),(15.375,0.66)), ) createRL( tech, net, 'difftap', @@ -15383,7 +15227,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((17.375,0.72),(17.375,2.38),(17.625,2.38),(17.625,0.72),(17.375,0.72)), + ((17.375,0.66),(17.375,2.44),(17.625,2.44),(17.625,0.66),(17.375,0.66)), ) createRL( tech, net, 'difftap', @@ -15399,11 +15243,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,0.55),(0.375,0.85),(0.625,0.85),(0.625,0.55),(0.375,0.55)), + ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), ) createRL( tech, net, 'difftap', - ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), + ((0.375,0.495),(0.375,0.905),(0.625,0.905),(0.625,0.495),(0.375,0.495)), ) createRL( tech, net, 'difftap', @@ -15415,7 +15259,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,0.75),(4.375,2.5),(4.625,2.5),(4.625,0.75),(4.375,0.75)), + ((4.375,0.695),(4.375,2.5),(4.625,2.5),(4.625,0.695),(4.375,0.695)), ) createRL( tech, net, 'difftap', @@ -15423,7 +15267,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((8.375,0.735),(8.375,1.365),(8.625,1.365),(8.625,0.735),(8.375,0.735)), + ((8.375,0.675),(8.375,1.425),(8.625,1.425),(8.625,0.675),(8.375,0.675)), ) createRL( tech, net, 'li', @@ -15554,7 +15398,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((6.25,8.925),(6.25,9.475),(6.75,9.475),(6.75,8.925),(6.25,8.925)), + ((6.25,8.87),(6.25,9.53),(6.75,9.53),(6.75,8.87),(6.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -15570,7 +15414,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((13.25,8.925),(13.25,9.475),(13.75,9.475),(13.75,8.925),(13.25,8.925)), + ((13.25,8.87),(13.25,9.53),(13.75,9.53),(13.75,8.87),(13.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -15578,11 +15422,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,8.925),(0.25,9.475),(0.75,9.475),(0.75,8.925),(0.25,8.925)), + ((0.25,8.87),(0.25,9.53),(0.75,9.53),(0.75,8.87),(0.25,8.87)), ) createRL( tech, net, 'nsdm', - ((2.25,1.39),(2.25,2.61),(2.75,2.61),(2.75,1.39),(2.25,1.39)), + ((2.25,1.5),(2.25,2.5),(2.75,2.5),(2.75,1.5),(2.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -15602,7 +15446,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,1.39),(3.25,2.61),(3.75,2.61),(3.75,1.39),(3.25,1.39)), + ((3.25,1.5),(3.25,2.5),(3.75,2.5),(3.75,1.5),(3.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -15618,7 +15462,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((12.25,1.39),(12.25,2.61),(12.75,2.61),(12.75,1.39),(12.25,1.39)), + ((12.25,1.5),(12.25,2.5),(12.75,2.5),(12.75,1.5),(12.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -15678,7 +15522,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((16.25,1.335),(16.25,2.555),(16.75,2.555),(16.75,1.335),(16.25,1.335)), + ((16.25,1.245),(16.25,2.585),(16.75,2.585),(16.75,1.245),(16.25,1.245)), ) createRL( tech, net, 'nsdm', @@ -15690,7 +15534,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((2.25,8.925),(2.25,9.475),(2.75,9.475),(2.75,8.925),(2.25,8.925)), + ((2.25,8.87),(2.25,9.53),(2.75,9.53),(2.75,8.87),(2.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -15698,7 +15542,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((15.25,0.595),(15.25,2.505),(15.75,2.505),(15.75,0.595),(15.25,0.595)), + ((15.25,0.535),(15.25,2.565),(15.75,2.565),(15.75,0.535),(15.25,0.535)), ) createRL( tech, net, 'nsdm', @@ -15706,7 +15550,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((17.25,0.595),(17.25,2.505),(17.75,2.505),(17.75,0.595),(17.25,0.595)), + ((17.25,0.535),(17.25,2.565),(17.75,2.565),(17.75,0.535),(17.25,0.535)), ) createRL( tech, net, 'nsdm', @@ -15738,7 +15582,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((4.25,0.625),(4.25,2.625),(4.75,2.625),(4.75,0.625),(4.25,0.625)), + ((4.25,0.57),(4.25,2.625),(4.75,2.625),(4.75,0.57),(4.25,0.57)), ) createRL( tech, net, 'nsdm', @@ -15782,7 +15626,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((6.25,1.39),(6.25,2.61),(6.75,2.61),(6.75,1.39),(6.25,1.39)), + ((6.25,1.5),(6.25,2.5),(6.75,2.5),(6.75,1.5),(6.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -15794,7 +15638,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((10.25,1.335),(10.25,2.555),(10.75,2.555),(10.75,1.335),(10.25,1.335)), + ((10.25,1.245),(10.25,2.585),(10.75,2.585),(10.75,1.245),(10.25,1.245)), ) createRL( tech, net, 'nsdm', @@ -15818,7 +15662,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,1.39),(0.25,2.61),(0.75,2.61),(0.75,1.39),(0.25,1.39)), + ((0.25,1.5),(0.25,2.5),(0.75,2.5),(0.75,1.5),(0.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -15826,11 +15670,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((8.25,0.61),(8.25,1.49),(8.75,1.49),(8.75,0.61),(8.25,0.61)), + ((8.25,0.55),(8.25,1.55),(8.75,1.55),(8.75,0.55),(8.25,0.55)), ) createRL( tech, net, 'nsdm', - ((1.25,0.625),(1.25,2.625),(1.75,2.625),(1.75,0.625),(1.25,0.625)), + ((1.25,0.57),(1.25,2.625),(1.75,2.625),(1.75,0.57),(1.25,0.57)), ) createRL( tech, net, 'nsdm', @@ -15842,11 +15686,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,0.625),(1.25,1.175),(1.75,1.175),(1.75,0.625),(1.25,0.625)), + ((1.25,0.57),(1.25,1.23),(1.75,1.23),(1.75,0.57),(1.25,0.57)), ) createRL( tech, net, 'nsdm', - ((4.25,0.625),(4.25,1.175),(4.75,1.175),(4.75,0.625),(4.25,0.625)), + ((4.25,0.57),(4.25,1.23),(4.75,1.23),(4.75,0.57),(4.25,0.57)), ) createRL( tech, net, 'nsdm', @@ -15898,11 +15742,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,8.825),(1.25,9.375),(1.75,9.375),(1.75,8.825),(1.25,8.825)), - ) - createRL( - tech, net, 'psdm', - ((14.25,0.425),(14.25,0.975),(14.75,0.975),(14.75,0.425),(14.25,0.425)), + ((1.25,8.77),(1.25,9.43),(1.75,9.43),(1.75,8.77),(1.25,8.77)), ) createRL( tech, net, 'psdm', @@ -15914,11 +15754,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((4.25,7.375),(4.25,9.625),(4.8,9.625),(4.8,7.375),(4.25,7.375)), + ((4.2,7.375),(4.2,9.625),(4.75,9.625),(4.75,7.375),(4.2,7.375)), ) createRL( tech, net, 'psdm', - ((4.2,7.375),(4.2,9.625),(4.75,9.625),(4.75,7.375),(4.2,7.375)), + ((4.25,7.375),(4.25,9.625),(4.8,9.625),(4.8,7.375),(4.25,7.375)), ) createRL( tech, net, 'psdm', @@ -15946,7 +15786,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((17.25,5.525),(17.25,9.475),(17.75,9.475),(17.75,5.525),(17.25,5.525)), + ((17.25,5.465),(17.25,9.535),(17.75,9.535),(17.75,5.465),(17.25,5.465)), ) createRL( tech, net, 'psdm', @@ -15964,13 +15804,17 @@ def _load(): tech, net, 'psdm', ((2.175,0.375),(2.175,1.025),(2.825,1.025),(2.825,0.375),(2.175,0.375)), ) + createRL( + tech, net, 'psdm', + ((2.25,0.37),(2.25,1.03),(2.75,1.03),(2.75,0.37),(2.25,0.37)), + ) createRL( tech, net, 'psdm', ((7.3,7.375),(7.3,9.625),(7.8,9.625),(7.8,7.375),(7.3,7.375)), ) createRL( tech, net, 'psdm', - ((11.25,7.445),(11.25,8.665),(11.75,8.665),(11.75,7.445),(11.25,7.445)), + ((11.25,7.415),(11.25,8.755),(11.75,8.755),(11.75,7.415),(11.25,7.415)), ) createRL( tech, net, 'psdm', @@ -15982,15 +15826,15 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,9.375),(1.75,9.375),(1.75,6.375),(1.25,6.375)), + ((1.25,6.375),(1.25,9.43),(1.75,9.43),(1.75,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', - ((13.25,6.5),(13.25,7.72),(13.75,7.72),(13.75,6.5),(13.25,6.5)), + ((13.25,6.47),(13.25,7.81),(13.75,7.81),(13.75,6.47),(13.25,6.47)), ) createRL( tech, net, 'psdm', - ((8.25,7.375),(8.25,9.625),(8.75,9.625),(8.75,7.375),(8.25,7.375)), + ((8.25,7.485),(8.25,9.515),(8.75,9.515),(8.75,7.485),(8.25,7.485)), ) createRL( tech, net, 'psdm', @@ -16002,7 +15846,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((14.25,6.43),(14.25,8.68),(14.75,8.68),(14.75,6.43),(14.25,6.43)), + ((14.25,6.4),(14.25,8.77),(14.75,8.77),(14.75,6.4),(14.25,6.4)), ) createRL( tech, net, 'psdm', @@ -16026,23 +15870,23 @@ def _load(): ) createRL( tech, net, 'psdm', - ((9.25,7.445),(9.25,8.665),(9.75,8.665),(9.75,7.445),(9.25,7.445)), + ((9.25,7.415),(9.25,8.755),(9.75,8.755),(9.75,7.415),(9.25,7.415)), ) createRL( tech, net, 'psdm', - ((16.25,5.425),(16.25,8.685),(16.75,8.685),(16.75,5.425),(16.25,5.425)), + ((16.25,5.395),(16.25,8.775),(16.75,8.775),(16.75,5.395),(16.25,5.395)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.75,8.625),(0.75,6.375),(0.25,6.375)), + ((0.25,0.37),(0.25,1.03),(0.75,1.03),(0.75,0.37),(0.25,0.37)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), + ((0.25,6.485),(0.25,8.515),(0.75,8.515),(0.75,6.485),(0.25,6.485)), ) createRL( tech, net, 'psdm', - ((6.25,0.425),(6.25,0.975),(6.75,0.975),(6.75,0.425),(6.25,0.425)), + ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), ) createRL( tech, net, 'psdm', @@ -16054,19 +15898,19 @@ def _load(): ) createRL( tech, net, 'psdm', - ((6.855,6.43),(6.855,8.57),(7.145,8.57),(7.145,6.43),(6.855,6.43)), + ((6.55,6.375),(6.55,8.625),(7.45,8.625),(7.45,6.375),(6.55,6.375)), ) createRL( tech, net, 'psdm', - ((6.55,6.375),(6.55,8.625),(7.45,8.625),(7.45,6.375),(6.55,6.375)), + ((6.855,6.43),(6.855,8.57),(7.145,8.57),(7.145,6.43),(6.855,6.43)), ) createRL( tech, net, 'psdm', - ((3.25,7.445),(3.25,8.665),(3.75,8.665),(3.75,7.445),(3.25,7.445)), + ((3.25,7.415),(3.25,8.755),(3.75,8.755),(3.75,7.415),(3.25,7.415)), ) createRL( tech, net, 'psdm', - ((0.25,0.425),(0.25,0.975),(0.75,0.975),(0.75,0.425),(0.25,0.425)), + ((14.25,0.37),(14.25,1.03),(14.75,1.03),(14.75,0.37),(14.25,0.37)), ) createRL( tech, net, 'psdm', @@ -16106,7 +15950,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,6.375),(2.25,8.625),(2.75,8.625),(2.75,6.375),(2.25,6.375)), + ((2.25,6.485),(2.25,8.515),(2.75,8.515),(2.75,6.485),(2.25,6.485)), ) createRL( tech, net, 'psdm', @@ -16126,7 +15970,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((6.25,6.375),(6.25,8.625),(6.75,8.625),(6.75,6.375),(6.25,6.375)), + ((6.25,6.485),(6.25,8.515),(6.75,8.515),(6.75,6.485),(6.25,6.485)), ) createRL( tech, net, 'psdm', @@ -16142,7 +15986,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((12.25,6.5),(12.25,7.72),(12.75,7.72),(12.75,6.5),(12.25,6.5)), + ((12.25,6.47),(12.25,7.81),(12.75,7.81),(12.75,6.47),(12.25,6.47)), ) createRL( tech, net, 'psdm', @@ -16162,7 +16006,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((15.25,5.525),(15.25,9.475),(15.75,9.475),(15.75,5.525),(15.25,5.525)), + ((15.25,5.465),(15.25,9.535),(15.75,9.535),(15.75,5.465),(15.25,5.465)), ) createRL( tech, net, 'psdm', @@ -16178,7 +16022,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((10.25,7.375),(10.25,9.625),(10.75,9.625),(10.75,7.375),(10.25,7.375)), + ((10.25,7.485),(10.25,9.515),(10.75,9.515),(10.75,7.485),(10.25,7.485)), ) createRL( tech, net, 'psdm', @@ -16186,11 +16030,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((2.25,0.425),(2.25,0.975),(2.75,0.975),(2.75,0.425),(2.25,0.425)), + ((6.175,0.375),(6.175,1.025),(6.825,1.025),(6.825,0.375),(6.175,0.375)), ) createRL( tech, net, 'psdm', - ((6.175,0.375),(6.175,1.025),(6.825,1.025),(6.825,0.375),(6.175,0.375)), + ((6.25,0.37),(6.25,1.03),(6.75,1.03),(6.75,0.37),(6.25,0.37)), ) createRL( tech, net, 'psdm', @@ -16210,15 +16054,15 @@ def _load(): ) createRL( tech, net, 'psdm', - ((4.25,8.72),(4.25,9.6),(4.75,9.6),(4.75,8.72),(4.25,8.72)), + ((4.25,8.8),(4.25,9.46),(4.75,9.46),(4.75,8.8),(4.25,8.8)), ) createRL( tech, net, 'psdm', - ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), + ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), ) createRL( tech, net, 'psdm', - ((0.55,6.375),(0.55,8.625),(1.45,8.625),(1.45,6.375),(0.55,6.375)), + ((0.855,6.43),(0.855,8.57),(1.145,8.57),(1.145,6.43),(0.855,6.43)), ) createRL( tech, net, 'psdm', @@ -16255,7 +16099,7 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.925,2.835),(0.925,3.165),(1.635,3.165),(1.635,2.835),(0.925,2.835)), + ((0.925,2.63),(0.925,3.165),(1.075,3.165),(1.075,2.63),(0.925,2.63)), ) createRL( tech, net, 'poly', @@ -16275,7 +16119,7 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.925,2.63),(0.925,3.165),(1.075,3.165),(1.075,2.63),(0.925,2.63)), + ((0.925,2.835),(0.925,3.165),(1.635,3.165),(1.635,2.835),(0.925,2.835)), ) createRL( tech, net, 'li', @@ -16310,11 +16154,11 @@ def _load(): net = nets['vdd'] createRL( tech, net, 'difftap', - ((2.375,9.05),(2.375,9.35),(2.625,9.35),(2.625,9.05),(2.375,9.05)), + ((5.925,6.5),(5.925,8.5),(6.075,8.5),(6.075,6.5),(5.925,6.5)), ) createRL( tech, net, 'difftap', - ((5.925,6.5),(5.925,8.5),(6.075,8.5),(6.075,6.5),(5.925,6.5)), + ((12.925,6.5),(12.925,8.5),(13.075,8.5),(13.075,6.5),(12.925,6.5)), ) createRL( tech, net, 'difftap', @@ -16326,7 +16170,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((12.925,6.5),(12.925,8.5),(13.075,8.5),(13.075,6.5),(12.925,6.5)), + ((6.375,8.995),(6.375,9.405),(6.625,9.405),(6.625,8.995),(6.375,8.995)), ) createRL( tech, net, 'difftap', @@ -16334,7 +16178,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((10.375,7.5),(10.375,9.5),(10.625,9.5),(10.625,7.5),(10.375,7.5)), + ((10.375,7.61),(10.375,9.39),(10.625,9.39),(10.625,7.61),(10.375,7.61)), ) createRL( tech, net, 'difftap', @@ -16346,7 +16190,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,8.95),(1.375,9.25),(1.625,9.25),(1.625,8.95),(1.375,8.95)), + ((1.375,8.895),(1.375,9.305),(1.625,9.305),(1.625,8.895),(1.375,8.895)), ) createRL( tech, net, 'difftap', @@ -16358,7 +16202,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,9.25),(1.625,9.25),(1.625,6.5),(1.375,6.5)), + ((1.375,6.5),(1.375,9.305),(1.625,9.305),(1.625,6.5),(1.375,6.5)), ) createRL( tech, net, 'difftap', @@ -16370,7 +16214,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((8.375,7.5),(8.375,9.5),(8.625,9.5),(8.625,7.5),(8.375,7.5)), + ((8.375,7.61),(8.375,9.39),(8.625,9.39),(8.625,7.61),(8.375,7.61)), ) createRL( tech, net, 'difftap', @@ -16384,10 +16228,6 @@ def _load(): tech, net, 'difftap', ((13.3,9.0),(13.3,9.4),(13.7,9.4),(13.7,9.0),(13.3,9.0)), ) - createRL( - tech, net, 'difftap', - ((13.375,9.05),(13.375,9.35),(13.625,9.35),(13.625,9.05),(13.375,9.05)), - ) createRL( tech, net, 'difftap', ((1.925,6.5),(1.925,8.5),(2.075,8.5),(2.075,6.5),(1.925,6.5)), @@ -16398,15 +16238,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.3,9.0),(6.3,9.4),(6.7,9.4),(6.7,9.0),(6.3,9.0)), + ((13.375,8.995),(13.375,9.405),(13.625,9.405),(13.625,8.995),(13.375,8.995)), ) createRL( tech, net, 'difftap', - ((6.375,9.05),(6.375,9.35),(6.625,9.35),(6.625,9.05),(6.375,9.05)), + ((0.375,8.995),(0.375,9.405),(0.625,9.405),(0.625,8.995),(0.375,8.995)), ) createRL( tech, net, 'difftap', - ((4.675,7.5),(4.675,9.5),(4.925,9.5),(4.925,7.5),(4.675,7.5)), + ((6.3,9.0),(6.3,9.4),(6.7,9.4),(6.7,9.0),(6.3,9.0)), ) createRL( tech, net, 'difftap', @@ -16414,7 +16254,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.075,7.5),(4.075,9.5),(4.325,9.5),(4.325,7.5),(4.075,7.5)), + ((4.675,7.5),(4.675,9.5),(4.925,9.5),(4.925,7.5),(4.675,7.5)), ) createRL( tech, net, 'difftap', @@ -16422,7 +16262,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,8.845),(4.375,9.475),(4.625,9.475),(4.625,8.845),(4.375,8.845)), + ((4.075,7.5),(4.075,9.5),(4.325,9.5),(4.325,7.5),(4.075,7.5)), + ) + createRL( + tech, net, 'difftap', + ((4.375,8.925),(4.375,9.335),(4.625,9.335),(4.625,8.925),(4.375,8.925)), ) createRL( tech, net, 'difftap', @@ -16460,6 +16304,10 @@ def _load(): tech, net, 'difftap', ((8.925,7.5),(8.925,9.5),(9.075,9.5),(9.075,7.5),(8.925,7.5)), ) + createRL( + tech, net, 'difftap', + ((2.375,8.995),(2.375,9.405),(2.625,9.405),(2.625,8.995),(2.375,8.995)), + ) createRL( tech, net, 'difftap', ((14.925,7.5),(14.925,9.5),(15.075,9.5),(15.075,7.5),(14.925,7.5)), @@ -16476,10 +16324,6 @@ def _load(): tech, net, 'difftap', ((0.35,9.0),(0.35,9.5),(0.65,9.5),(0.65,9.0),(0.35,9.0)), ) - createRL( - tech, net, 'difftap', - ((0.375,9.05),(0.375,9.35),(0.625,9.35),(0.625,9.05),(0.375,9.05)), - ) createRL( tech, net, 'difftap', ((6.925,6.5),(6.925,8.5),(7.075,8.5),(7.075,6.5),(6.925,6.5)), @@ -16498,7 +16342,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((17.375,5.65),(17.375,9.35),(17.625,9.35),(17.625,5.65),(17.375,5.65)), + ((17.375,5.59),(17.375,9.41),(17.625,9.41),(17.625,5.59),(17.375,5.59)), ) createRL( tech, net, 'difftap', @@ -16510,7 +16354,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((15.375,5.65),(15.375,9.35),(15.625,9.35),(15.625,5.65),(15.375,5.65)), + ((15.375,5.59),(15.375,9.41),(15.625,9.41),(15.625,5.59),(15.375,5.59)), ) createRL( tech, net, 'difftap', @@ -16526,7 +16370,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((10.195,7.32),(10.195,9.68),(10.805,9.68),(10.805,7.32),(10.195,7.32)), + ((10.195,7.43),(10.195,9.57),(10.805,9.57),(10.805,7.43),(10.195,7.43)), ) createRL( tech, net, 'nwm', @@ -16534,11 +16378,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,8.87),(6.195,9.53),(6.805,9.53),(6.805,8.87),(6.195,8.87)), + ((6.195,8.815),(6.195,9.585),(6.805,9.585),(6.805,8.815),(6.195,8.815)), ) createRL( tech, net, 'nwm', - ((11.195,7.39),(11.195,8.72),(11.805,8.72),(11.805,7.39),(11.195,7.39)), + ((11.195,7.36),(11.195,8.81),(11.805,8.81),(11.805,7.36),(11.195,7.36)), ) createRL( tech, net, 'nwm', @@ -16554,7 +16398,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.77),(1.195,9.43),(1.805,9.43),(1.805,8.77),(1.195,8.77)), + ((1.195,8.715),(1.195,9.485),(1.805,9.485),(1.805,8.715),(1.195,8.715)), ) createRL( tech, net, 'nwm', @@ -16574,7 +16418,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,6.32),(1.195,9.43),(1.805,9.43),(1.805,6.32),(1.195,6.32)), + ((1.195,6.32),(1.195,9.485),(1.805,9.485),(1.805,6.32),(1.195,6.32)), ) createRL( tech, net, 'nwm', @@ -16582,11 +16426,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((13.195,6.445),(13.195,7.775),(13.805,7.775),(13.805,6.445),(13.195,6.445)), + ((13.195,6.415),(13.195,7.865),(13.805,7.865),(13.805,6.415),(13.195,6.415)), ) createRL( tech, net, 'nwm', - ((8.195,7.32),(8.195,9.68),(8.805,9.68),(8.805,7.32),(8.195,7.32)), + ((8.195,7.43),(8.195,9.57),(8.805,9.57),(8.805,7.43),(8.195,7.43)), ) createRL( tech, net, 'nwm', @@ -16598,7 +16442,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((14.195,6.375),(14.195,8.735),(14.805,8.735),(14.805,6.375),(14.195,6.375)), + ((14.195,6.345),(14.195,8.825),(14.805,8.825),(14.805,6.345),(14.195,6.345)), ) createRL( tech, net, 'nwm', @@ -16606,7 +16450,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,6.32),(2.195,8.68),(2.805,8.68),(2.805,6.32),(2.195,6.32)), + ((2.195,6.43),(2.195,8.57),(2.805,8.57),(2.805,6.43),(2.195,6.43)), ) createRL( tech, net, 'nwm', @@ -16626,7 +16470,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((13.195,8.87),(13.195,9.53),(13.805,9.53),(13.805,8.87),(13.195,8.87)), + ((13.195,8.815),(13.195,9.585),(13.805,9.585),(13.805,8.815),(13.195,8.815)), ) createRL( tech, net, 'nwm', @@ -16634,7 +16478,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.87),(0.195,9.53),(0.805,9.53),(0.805,8.87),(0.195,8.87)), + ((0.195,8.815),(0.195,9.585),(0.805,9.585),(0.805,8.815),(0.195,8.815)), ) createRL( tech, net, 'nwm', @@ -16650,7 +16494,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((9.195,7.39),(9.195,8.72),(9.805,8.72),(9.805,7.39),(9.195,7.39)), + ((9.195,7.36),(9.195,8.81),(9.805,8.81),(9.805,7.36),(9.195,7.36)), ) createRL( tech, net, 'nwm', @@ -16674,11 +16518,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,8.665),(4.195,9.655),(4.805,9.655),(4.805,8.665),(4.195,8.665)), + ((4.195,8.745),(4.195,9.515),(4.805,9.515),(4.805,8.745),(4.195,8.745)), ) createRL( tech, net, 'nwm', - ((16.195,5.37),(16.195,8.74),(16.805,8.74),(16.805,5.37),(16.195,5.37)), + ((16.195,5.34),(16.195,8.83),(16.805,8.83),(16.805,5.34),(16.195,5.34)), ) createRL( tech, net, 'nwm', @@ -16698,7 +16542,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.805,8.68),(0.805,6.32),(0.195,6.32)), + ((0.195,6.43),(0.195,8.57),(0.805,8.57),(0.805,6.43),(0.195,6.43)), ) createRL( tech, net, 'nwm', @@ -16710,7 +16554,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,6.32),(6.195,8.68),(6.805,8.68),(6.805,6.32),(6.195,6.32)), + ((6.195,6.43),(6.195,8.57),(6.805,8.57),(6.805,6.43),(6.195,6.43)), ) createRL( tech, net, 'nwm', @@ -16730,7 +16574,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((2.195,8.87),(2.195,9.53),(2.805,9.53),(2.805,8.87),(2.195,8.87)), + ((2.195,8.815),(2.195,9.585),(2.805,9.585),(2.805,8.815),(2.195,8.815)), ) createRL( tech, net, 'nwm', @@ -16746,7 +16590,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((12.195,6.445),(12.195,7.775),(12.805,7.775),(12.805,6.445),(12.195,6.445)), + ((12.195,6.415),(12.195,7.865),(12.805,7.865),(12.805,6.415),(12.195,6.415)), ) createRL( tech, net, 'nwm', @@ -16770,7 +16614,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,7.39),(3.195,8.72),(3.805,8.72),(3.805,7.39),(3.195,7.39)), + ((3.195,7.36),(3.195,8.81),(3.805,8.81),(3.805,7.36),(3.195,7.36)), ) createRL( tech, net, 'nwm', @@ -16786,7 +16630,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((17.195,5.47),(17.195,9.53),(17.805,9.53),(17.805,5.47),(17.195,5.47)), + ((17.195,5.41),(17.195,9.59),(17.805,9.59),(17.805,5.41),(17.195,5.41)), ) createRL( tech, net, 'nwm', @@ -16794,7 +16638,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((15.195,5.47),(15.195,9.53),(15.805,9.53),(15.805,5.47),(15.195,5.47)), + ((15.195,5.41),(15.195,9.59),(15.805,9.59),(15.805,5.41),(15.195,5.41)), ) createRL( tech, net, 'nwm', @@ -16810,11 +16654,11 @@ def _load(): ) createRL( tech, net, 'li', - ((8.415,7.48),(8.415,9.52),(8.585,9.52),(8.585,7.48),(8.415,7.48)), + ((8.415,7.655),(8.415,9.345),(8.585,9.345),(8.585,7.655),(8.415,7.655)), ) createRL( tech, net, 'li', - ((4.415,8.825),(4.415,9.495),(4.585,9.495),(4.585,8.825),(4.415,8.825)), + ((4.415,8.965),(4.415,9.295),(4.585,9.295),(4.585,8.965),(4.415,8.965)), ) createRL( tech, net, 'li', @@ -16826,7 +16670,7 @@ def _load(): ) createRL( tech, net, 'li', - ((10.415,7.48),(10.415,9.52),(10.585,9.52),(10.585,7.48),(10.415,7.48)), + ((10.415,7.655),(10.415,9.345),(10.585,9.345),(10.585,7.655),(10.415,7.655)), ) createRL( tech, net, 'li', @@ -16864,99 +16708,107 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), + ((8.415,7.735),(8.415,7.905),(8.585,7.905),(8.585,7.735),(8.415,7.735)), ) createRL( tech, net, 'licon', - ((13.415,9.115),(13.415,9.285),(13.585,9.285),(13.585,9.115),(13.415,9.115)), + ((8.415,8.075),(8.415,8.245),(8.585,8.245),(8.585,8.075),(8.415,8.075)), ) createRL( tech, net, 'licon', - ((0.415,9.115),(0.415,9.285),(0.585,9.285),(0.585,9.115),(0.415,9.115)), + ((8.415,8.415),(8.415,8.585),(8.585,8.585),(8.585,8.415),(8.415,8.415)), ) createRL( tech, net, 'licon', - ((1.415,9.015),(1.415,9.185),(1.585,9.185),(1.585,9.015),(1.415,9.015)), + ((8.415,8.755),(8.415,8.925),(8.585,8.925),(8.585,8.755),(8.415,8.755)), ) createRL( tech, net, 'licon', - ((15.415,5.715),(15.415,5.885),(15.585,5.885),(15.585,5.715),(15.415,5.715)), + ((8.415,9.095),(8.415,9.265),(8.585,9.265),(8.585,9.095),(8.415,9.095)), ) createRL( tech, net, 'licon', - ((15.415,6.055),(15.415,6.225),(15.585,6.225),(15.585,6.055),(15.415,6.055)), + ((2.415,9.115),(2.415,9.285),(2.585,9.285),(2.585,9.115),(2.415,9.115)), ) createRL( tech, net, 'licon', - ((15.415,6.395),(15.415,6.565),(15.585,6.565),(15.585,6.395),(15.415,6.395)), + ((13.415,9.115),(13.415,9.285),(13.585,9.285),(13.585,9.115),(13.415,9.115)), ) createRL( tech, net, 'licon', - ((15.415,6.735),(15.415,6.905),(15.585,6.905),(15.585,6.735),(15.415,6.735)), + ((0.415,9.115),(0.415,9.285),(0.585,9.285),(0.585,9.115),(0.415,9.115)), ) createRL( tech, net, 'licon', - ((15.415,7.075),(15.415,7.245),(15.585,7.245),(15.585,7.075),(15.415,7.075)), + ((10.415,7.735),(10.415,7.905),(10.585,7.905),(10.585,7.735),(10.415,7.735)), ) createRL( tech, net, 'licon', - ((15.415,7.415),(15.415,7.585),(15.585,7.585),(15.585,7.415),(15.415,7.415)), + ((10.415,8.075),(10.415,8.245),(10.585,8.245),(10.585,8.075),(10.415,8.075)), ) createRL( tech, net, 'licon', - ((15.415,7.755),(15.415,7.925),(15.585,7.925),(15.585,7.755),(15.415,7.755)), + ((10.415,8.415),(10.415,8.585),(10.585,8.585),(10.585,8.415),(10.415,8.415)), ) createRL( tech, net, 'licon', - ((15.415,8.095),(15.415,8.265),(15.585,8.265),(15.585,8.095),(15.415,8.095)), + ((10.415,8.755),(10.415,8.925),(10.585,8.925),(10.585,8.755),(10.415,8.755)), + ) + createRL( + tech, net, 'licon', + ((10.415,9.095),(10.415,9.265),(10.585,9.265),(10.585,9.095),(10.415,9.095)), + ) + createRL( + tech, net, 'licon', + ((1.415,9.015),(1.415,9.185),(1.585,9.185),(1.585,9.015),(1.415,9.015)), ) createRL( tech, net, 'licon', - ((15.415,8.435),(15.415,8.605),(15.585,8.605),(15.585,8.435),(15.415,8.435)), + ((15.415,5.715),(15.415,5.885),(15.585,5.885),(15.585,5.715),(15.415,5.715)), ) createRL( tech, net, 'licon', - ((15.415,8.775),(15.415,8.945),(15.585,8.945),(15.585,8.775),(15.415,8.775)), + ((15.415,6.055),(15.415,6.225),(15.585,6.225),(15.585,6.055),(15.415,6.055)), ) createRL( tech, net, 'licon', - ((15.415,9.115),(15.415,9.285),(15.585,9.285),(15.585,9.115),(15.415,9.115)), + ((15.415,6.395),(15.415,6.565),(15.585,6.565),(15.585,6.395),(15.415,6.395)), ) createRL( tech, net, 'licon', - ((6.415,9.115),(6.415,9.285),(6.585,9.285),(6.585,9.115),(6.415,9.115)), + ((15.415,6.735),(15.415,6.905),(15.585,6.905),(15.585,6.735),(15.415,6.735)), ) createRL( tech, net, 'licon', - ((10.415,7.565),(10.415,7.735),(10.585,7.735),(10.585,7.565),(10.415,7.565)), + ((15.415,7.075),(15.415,7.245),(15.585,7.245),(15.585,7.075),(15.415,7.075)), ) createRL( tech, net, 'licon', - ((10.415,7.905),(10.415,8.075),(10.585,8.075),(10.585,7.905),(10.415,7.905)), + ((15.415,7.415),(15.415,7.585),(15.585,7.585),(15.585,7.415),(15.415,7.415)), ) createRL( tech, net, 'licon', - ((10.415,8.245),(10.415,8.415),(10.585,8.415),(10.585,8.245),(10.415,8.245)), + ((15.415,7.755),(15.415,7.925),(15.585,7.925),(15.585,7.755),(15.415,7.755)), ) createRL( tech, net, 'licon', - ((10.415,8.585),(10.415,8.755),(10.585,8.755),(10.585,8.585),(10.415,8.585)), + ((15.415,8.095),(15.415,8.265),(15.585,8.265),(15.585,8.095),(15.415,8.095)), ) createRL( tech, net, 'licon', - ((10.415,8.925),(10.415,9.095),(10.585,9.095),(10.585,8.925),(10.415,8.925)), + ((15.415,8.435),(15.415,8.605),(15.585,8.605),(15.585,8.435),(15.415,8.435)), ) createRL( tech, net, 'licon', - ((10.415,9.265),(10.415,9.435),(10.585,9.435),(10.585,9.265),(10.415,9.265)), + ((15.415,8.775),(15.415,8.945),(15.585,8.945),(15.585,8.775),(15.415,8.775)), ) createRL( tech, net, 'licon', - ((4.415,8.905),(4.415,9.075),(4.585,9.075),(4.585,8.905),(4.415,8.905)), + ((15.415,9.115),(15.415,9.285),(15.585,9.285),(15.585,9.115),(15.415,9.115)), ) createRL( tech, net, 'licon', - ((4.415,9.245),(4.415,9.415),(4.585,9.415),(4.585,9.245),(4.415,9.245)), + ((6.415,9.115),(6.415,9.285),(6.585,9.285),(6.585,9.115),(6.415,9.115)), ) createRL( tech, net, 'licon', @@ -17004,27 +16856,7 @@ def _load(): ) createRL( tech, net, 'licon', - ((8.415,7.565),(8.415,7.735),(8.585,7.735),(8.585,7.565),(8.415,7.565)), - ) - createRL( - tech, net, 'licon', - ((8.415,7.905),(8.415,8.075),(8.585,8.075),(8.585,7.905),(8.415,7.905)), - ) - createRL( - tech, net, 'licon', - ((8.415,8.245),(8.415,8.415),(8.585,8.415),(8.585,8.245),(8.415,8.245)), - ) - createRL( - tech, net, 'licon', - ((8.415,8.585),(8.415,8.755),(8.585,8.755),(8.585,8.585),(8.415,8.585)), - ) - createRL( - tech, net, 'licon', - ((8.415,8.925),(8.415,9.095),(8.585,9.095),(8.585,8.925),(8.415,8.925)), - ) - createRL( - tech, net, 'licon', - ((8.415,9.265),(8.415,9.435),(8.585,9.435),(8.585,9.265),(8.415,9.265)), + ((4.415,9.045),(4.415,9.215),(4.585,9.215),(4.585,9.045),(4.415,9.045)), ) net = nets['_net0'] createRL( @@ -17050,7 +16882,7 @@ def _load(): net = nets['sff_m'] createRL( tech, net, 'difftap', - ((6.375,1.515),(6.375,2.485),(6.625,2.485),(6.625,1.515),(6.375,1.515)), + ((6.375,1.625),(6.375,2.375),(6.625,2.375),(6.625,1.625),(6.375,1.625)), ) createRL( tech, net, 'difftap', @@ -17070,7 +16902,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,6.5),(6.375,8.5),(6.625,8.5),(6.625,6.5),(6.375,6.5)), + ((6.375,6.61),(6.375,8.39),(6.625,8.39),(6.625,6.61),(6.375,6.61)), ) createRL( tech, net, 'difftap', @@ -17122,47 +16954,39 @@ def _load(): ) createRL( tech, net, 'licon', - ((8.815,2.915),(8.815,3.085),(8.985,3.085),(8.985,2.915),(8.815,2.915)), - ) - createRL( - tech, net, 'licon', - ((6.415,6.565),(6.415,6.735),(6.585,6.735),(6.585,6.565),(6.415,6.565)), + ((6.415,1.745),(6.415,1.915),(6.585,1.915),(6.585,1.745),(6.415,1.745)), ) createRL( tech, net, 'licon', - ((6.415,6.905),(6.415,7.075),(6.585,7.075),(6.585,6.905),(6.415,6.905)), + ((6.415,2.085),(6.415,2.255),(6.585,2.255),(6.585,2.085),(6.415,2.085)), ) createRL( tech, net, 'licon', - ((6.415,7.245),(6.415,7.415),(6.585,7.415),(6.585,7.245),(6.415,7.245)), - ) - createRL( - tech, net, 'licon', - ((6.415,7.585),(6.415,7.755),(6.585,7.755),(6.585,7.585),(6.415,7.585)), + ((8.815,2.915),(8.815,3.085),(8.985,3.085),(8.985,2.915),(8.815,2.915)), ) createRL( tech, net, 'licon', - ((6.415,7.925),(6.415,8.095),(6.585,8.095),(6.585,7.925),(6.415,7.925)), + ((8.815,5.915),(8.815,6.085),(8.985,6.085),(8.985,5.915),(8.815,5.915)), ) createRL( tech, net, 'licon', - ((6.415,8.265),(6.415,8.435),(6.585,8.435),(6.585,8.265),(6.415,8.265)), + ((6.415,6.735),(6.415,6.905),(6.585,6.905),(6.585,6.735),(6.415,6.735)), ) createRL( tech, net, 'licon', - ((8.815,5.915),(8.815,6.085),(8.985,6.085),(8.985,5.915),(8.815,5.915)), + ((6.415,7.075),(6.415,7.245),(6.585,7.245),(6.585,7.075),(6.415,7.075)), ) createRL( tech, net, 'licon', - ((6.415,1.575),(6.415,1.745),(6.585,1.745),(6.585,1.575),(6.415,1.575)), + ((6.415,7.415),(6.415,7.585),(6.585,7.585),(6.585,7.415),(6.415,7.415)), ) createRL( tech, net, 'licon', - ((6.415,1.915),(6.415,2.085),(6.585,2.085),(6.585,1.915),(6.415,1.915)), + ((6.415,7.755),(6.415,7.925),(6.585,7.925),(6.585,7.755),(6.415,7.755)), ) createRL( tech, net, 'licon', - ((6.415,2.255),(6.415,2.425),(6.585,2.425),(6.585,2.255),(6.415,2.255)), + ((6.415,8.095),(6.415,8.265),(6.585,8.265),(6.585,8.095),(6.415,8.095)), ) createRL( tech, net, 'li', @@ -17186,7 +17010,7 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,6.48),(6.415,8.52),(6.585,8.52),(6.585,6.48),(6.415,6.48)), + ((6.415,6.655),(6.415,8.345),(6.585,8.345),(6.585,6.655),(6.415,6.655)), ) createRL( tech, net, 'li', @@ -17210,7 +17034,7 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,1.495),(6.415,2.505),(6.585,2.505),(6.585,1.495),(6.415,1.495)), + ((6.415,1.665),(6.415,2.335),(6.585,2.335),(6.585,1.665),(6.415,1.665)), ) createRL( tech, net, 'li', @@ -17245,6 +17069,10 @@ def _load(): tech, net, 'poly', ((11.925,1.37),(11.925,2.63),(12.075,2.63),(12.075,1.37),(11.925,1.37)), ) + createRL( + tech, net, 'poly', + ((6.925,2.48),(6.925,4.0),(7.075,4.0),(7.075,2.48),(6.925,2.48)), + ) createRL( tech, net, 'poly', ((13.465,4.835),(13.465,5.165),(13.735,5.165),(13.735,4.835),(13.465,4.835)), @@ -17265,10 +17093,6 @@ def _load(): tech, net, 'poly', ((2.465,3.835),(2.465,4.165),(2.735,4.165),(2.735,3.835),(2.465,3.835)), ) - createRL( - tech, net, 'poly', - ((6.615,3.835),(6.615,4.165),(6.885,4.165),(6.885,3.835),(6.615,3.835)), - ) createRL( tech, net, 'poly', ((5.925,6.37),(5.925,8.63),(6.075,8.63),(6.075,6.37),(5.925,6.37)), @@ -17295,7 +17119,7 @@ def _load(): ) createRL( tech, net, 'poly', - ((6.925,2.48),(6.925,4.0),(7.075,4.0),(7.075,2.48),(6.925,2.48)), + ((6.615,3.835),(6.615,4.165),(6.885,4.165),(6.885,3.835),(6.615,3.835)), ) createRL( tech, net, 'poly', @@ -17303,7 +17127,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,6.5),(2.375,8.5),(2.625,8.5),(2.625,6.5),(2.375,6.5)), + ((2.375,6.61),(2.375,8.39),(2.625,8.39),(2.625,6.61),(2.375,6.61)), ) createRL( tech, net, 'difftap', @@ -17315,11 +17139,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((2.375,1.515),(2.375,2.485),(2.625,2.485),(2.625,1.515),(2.375,1.515)), + ((2.325,1.5),(2.325,2.5),(2.625,2.5),(2.625,1.5),(2.325,1.5)), ) createRL( tech, net, 'difftap', - ((2.325,1.5),(2.325,2.5),(2.625,2.5),(2.625,1.5),(2.325,1.5)), + ((2.375,1.625),(2.375,2.375),(2.625,2.375),(2.625,1.625),(2.375,1.625)), ) createRL( tech, net, 'difftap', @@ -17331,15 +17155,11 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.415,1.575),(2.415,1.745),(2.585,1.745),(2.585,1.575),(2.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((2.415,1.915),(2.415,2.085),(2.585,2.085),(2.585,1.915),(2.415,1.915)), + ((2.415,1.745),(2.415,1.915),(2.585,1.915),(2.585,1.745),(2.415,1.745)), ) createRL( tech, net, 'licon', - ((2.415,2.255),(2.415,2.425),(2.585,2.425),(2.585,2.255),(2.415,2.255)), + ((2.415,2.085),(2.415,2.255),(2.585,2.255),(2.585,2.085),(2.415,2.085)), ) createRL( tech, net, 'licon', @@ -17355,31 +17175,27 @@ def _load(): ) createRL( tech, net, 'licon', - ((6.665,3.915),(6.665,4.085),(6.835,4.085),(6.835,3.915),(6.665,3.915)), - ) - createRL( - tech, net, 'licon', - ((2.415,6.565),(2.415,6.735),(2.585,6.735),(2.585,6.565),(2.415,6.565)), + ((2.415,6.735),(2.415,6.905),(2.585,6.905),(2.585,6.735),(2.415,6.735)), ) createRL( tech, net, 'licon', - ((2.415,6.905),(2.415,7.075),(2.585,7.075),(2.585,6.905),(2.415,6.905)), + ((2.415,7.075),(2.415,7.245),(2.585,7.245),(2.585,7.075),(2.415,7.075)), ) createRL( tech, net, 'licon', - ((2.415,7.245),(2.415,7.415),(2.585,7.415),(2.585,7.245),(2.415,7.245)), + ((2.415,7.415),(2.415,7.585),(2.585,7.585),(2.585,7.415),(2.415,7.415)), ) createRL( tech, net, 'licon', - ((2.415,7.585),(2.415,7.755),(2.585,7.755),(2.585,7.585),(2.415,7.585)), + ((2.415,7.755),(2.415,7.925),(2.585,7.925),(2.585,7.755),(2.415,7.755)), ) createRL( tech, net, 'licon', - ((2.415,7.925),(2.415,8.095),(2.585,8.095),(2.585,7.925),(2.415,7.925)), + ((2.415,8.095),(2.415,8.265),(2.585,8.265),(2.585,8.095),(2.415,8.095)), ) createRL( tech, net, 'licon', - ((2.415,8.265),(2.415,8.435),(2.585,8.435),(2.585,8.265),(2.415,8.265)), + ((6.665,3.915),(6.665,4.085),(6.835,4.085),(6.835,3.915),(6.665,3.915)), ) createRL( tech, net, 'li', @@ -17387,7 +17203,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,6.48),(2.415,8.52),(2.585,8.52),(2.585,6.48),(2.415,6.48)), + ((2.415,6.655),(2.415,8.345),(2.585,8.345),(2.585,6.655),(2.415,6.655)), ) createRL( tech, net, 'li', @@ -17399,7 +17215,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,1.495),(2.415,2.505),(2.585,2.505),(2.585,1.495),(2.415,1.495)), + ((2.415,1.665),(2.415,2.335),(2.585,2.335),(2.585,1.665),(2.415,1.665)), ) createRL( tech, net, 'li', @@ -17407,7 +17223,7 @@ def _load(): ) createRL( tech, net, 'li', - ((2.415,2.335),(2.415,6.65),(2.585,6.65),(2.585,2.335),(2.415,2.335)), + ((2.415,2.165),(2.415,6.825),(2.585,6.825),(2.585,2.165),(2.415,2.165)), ) createRL( tech, net, 'li', @@ -17441,10 +17257,31 @@ def _load(): tech, net, 'li', ((12.165,3.915),(12.165,4.085),(13.5,4.085),(13.5,3.915),(12.165,3.915)), ) + net = nets['_net6'] + createRL( + tech, net, 'difftap', + ((7.075,1.5),(7.075,2.5),(7.325,2.5),(7.325,1.5),(7.075,1.5)), + ) + createRL( + tech, net, 'difftap', + ((7.325,1.5),(7.325,2.5),(7.575,2.5),(7.575,1.5),(7.325,1.5)), + ) + createRL( + tech, net, 'difftap', + ((7.425,0.8),(7.425,2.3),(7.575,2.3),(7.575,0.8),(7.425,0.8)), + ) + createRL( + tech, net, 'difftap', + ((7.425,0.6),(7.425,1.5),(7.675,1.5),(7.675,0.6),(7.425,0.6)), + ) + createRL( + tech, net, 'difftap', + ((7.675,0.6),(7.675,1.5),(7.925,1.5),(7.925,0.6),(7.675,0.6)), + ) net = nets['y'] createRL( tech, net, 'difftap', - ((9.375,7.5),(9.375,9.5),(9.675,9.5),(9.675,7.5),(9.375,7.5)), + ((9.325,7.5),(9.325,9.5),(9.625,9.5),(9.625,7.5),(9.325,7.5)), ) createRL( tech, net, 'difftap', @@ -17468,7 +17305,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((9.375,7.57),(9.375,8.54),(9.625,8.54),(9.625,7.57),(9.375,7.57)), + ((9.375,7.54),(9.375,8.63),(9.625,8.63),(9.625,7.54),(9.375,7.54)), ) createRL( tech, net, 'difftap', @@ -17480,15 +17317,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((10.375,1.46),(10.375,2.43),(10.625,2.43),(10.625,1.46),(10.375,1.46)), + ((10.375,1.37),(10.375,2.46),(10.625,2.46),(10.625,1.37),(10.375,1.37)), ) createRL( tech, net, 'difftap', - ((12.375,6.625),(12.375,7.595),(12.625,7.595),(12.625,6.625),(12.375,6.625)), + ((12.375,6.595),(12.375,7.685),(12.625,7.685),(12.625,6.595),(12.375,6.595)), ) createRL( tech, net, 'difftap', - ((9.325,7.5),(9.325,9.5),(9.625,9.5),(9.625,7.5),(9.325,7.5)), + ((9.375,7.5),(9.375,9.5),(9.675,9.5),(9.675,7.5),(9.375,7.5)), ) createRL( tech, net, 'difftap', @@ -17498,21 +17335,17 @@ def _load(): tech, net, 'poly', ((7.925,7.37),(7.925,9.63),(8.075,9.63),(8.075,7.37),(7.925,7.37)), ) - createRL( - tech, net, 'poly', - ((7.925,1.835),(7.925,2.165),(8.235,2.165),(8.235,1.835),(7.925,1.835)), - ) createRL( tech, net, 'poly', ((7.965,1.835),(7.965,2.165),(8.235,2.165),(8.235,1.835),(7.965,1.835)), ) createRL( tech, net, 'poly', - ((7.925,0.47),(7.925,1.63),(8.075,1.63),(8.075,0.47),(7.925,0.47)), + ((7.925,1.63),(7.925,2.165),(8.075,2.165),(8.075,1.63),(7.925,1.63)), ) createRL( tech, net, 'poly', - ((7.925,1.63),(7.925,2.165),(8.075,2.165),(8.075,1.63),(7.925,1.63)), + ((7.925,1.835),(7.925,2.165),(8.235,2.165),(8.235,1.835),(7.925,1.835)), ) createRL( tech, net, 'poly', @@ -17526,6 +17359,10 @@ def _load(): tech, net, 'poly', ((7.925,6.835),(7.925,7.37),(8.075,7.37),(8.075,6.835),(7.925,6.835)), ) + createRL( + tech, net, 'poly', + ((7.925,0.47),(7.925,1.63),(8.075,1.63),(8.075,0.47),(7.925,0.47)), + ) createRL( tech, net, 'li', ((8.1,6.915),(8.1,7.085),(12.585,7.085),(12.585,6.915),(8.1,6.915)), @@ -17552,19 +17389,19 @@ def _load(): ) createRL( tech, net, 'li', - ((8.015,6.835),(8.015,7.165),(8.185,7.165),(8.185,6.835),(8.015,6.835)), + ((9.415,7.58),(9.415,8.59),(9.585,8.59),(9.585,7.58),(9.415,7.58)), ) createRL( tech, net, 'li', - ((9.415,7.55),(9.415,8.56),(9.585,8.56),(9.585,7.55),(9.415,7.55)), + ((8.015,6.835),(8.015,7.165),(8.185,7.165),(8.185,6.835),(8.015,6.835)), ) createRL( tech, net, 'li', - ((10.415,1.44),(10.415,2.45),(10.585,2.45),(10.585,1.44),(10.415,1.44)), + ((10.415,1.41),(10.415,2.42),(10.585,2.42),(10.585,1.41),(10.415,1.41)), ) createRL( tech, net, 'li', - ((12.415,6.605),(12.415,7.615),(12.585,7.615),(12.585,6.605),(12.415,6.605)), + ((12.415,6.635),(12.415,7.645),(12.585,7.645),(12.585,6.635),(12.415,6.635)), ) createRL( tech, net, 'li', @@ -17572,52 +17409,52 @@ def _load(): ) createRL( tech, net, 'licon', - ((8.015,1.915),(8.015,2.085),(8.185,2.085),(8.185,1.915),(8.015,1.915)), + ((10.415,1.49),(10.415,1.66),(10.585,1.66),(10.585,1.49),(10.415,1.49)), ) createRL( tech, net, 'licon', - ((8.015,6.915),(8.015,7.085),(8.185,7.085),(8.185,6.915),(8.015,6.915)), + ((10.415,1.83),(10.415,2.0),(10.585,2.0),(10.585,1.83),(10.415,1.83)), ) createRL( tech, net, 'licon', - ((9.415,7.63),(9.415,7.8),(9.585,7.8),(9.585,7.63),(9.415,7.63)), + ((10.415,2.17),(10.415,2.34),(10.585,2.34),(10.585,2.17),(10.415,2.17)), ) createRL( tech, net, 'licon', - ((9.415,7.97),(9.415,8.14),(9.585,8.14),(9.585,7.97),(9.415,7.97)), + ((12.415,6.715),(12.415,6.885),(12.585,6.885),(12.585,6.715),(12.415,6.715)), ) createRL( tech, net, 'licon', - ((9.415,8.31),(9.415,8.48),(9.585,8.48),(9.585,8.31),(9.415,8.31)), + ((12.415,7.055),(12.415,7.225),(12.585,7.225),(12.585,7.055),(12.415,7.055)), ) createRL( tech, net, 'licon', - ((10.415,1.52),(10.415,1.69),(10.585,1.69),(10.585,1.52),(10.415,1.52)), + ((12.415,7.395),(12.415,7.565),(12.585,7.565),(12.585,7.395),(12.415,7.395)), ) createRL( tech, net, 'licon', - ((10.415,1.86),(10.415,2.03),(10.585,2.03),(10.585,1.86),(10.415,1.86)), + ((8.015,1.915),(8.015,2.085),(8.185,2.085),(8.185,1.915),(8.015,1.915)), ) createRL( tech, net, 'licon', - ((10.415,2.2),(10.415,2.37),(10.585,2.37),(10.585,2.2),(10.415,2.2)), + ((8.015,6.915),(8.015,7.085),(8.185,7.085),(8.185,6.915),(8.015,6.915)), ) createRL( tech, net, 'licon', - ((12.415,6.685),(12.415,6.855),(12.585,6.855),(12.585,6.685),(12.415,6.685)), + ((9.415,7.66),(9.415,7.83),(9.585,7.83),(9.585,7.66),(9.415,7.66)), ) createRL( tech, net, 'licon', - ((12.415,7.025),(12.415,7.195),(12.585,7.195),(12.585,7.025),(12.415,7.025)), + ((9.415,8.0),(9.415,8.17),(9.585,8.17),(9.585,8.0),(9.415,8.0)), ) createRL( tech, net, 'licon', - ((12.415,7.365),(12.415,7.535),(12.585,7.535),(12.585,7.365),(12.415,7.365)), + ((9.415,8.34),(9.415,8.51),(9.585,8.51),(9.585,8.34),(9.415,8.34)), ) net = nets['sff_s'] createRL( tech, net, 'difftap', - ((13.375,6.625),(13.375,7.595),(13.625,7.595),(13.625,6.625),(13.375,6.625)), + ((13.375,6.595),(13.375,7.685),(13.625,7.685),(13.625,6.595),(13.375,6.595)), ) createRL( tech, net, 'difftap', @@ -17637,11 +17474,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((12.375,1.515),(12.375,2.485),(12.625,2.485),(12.625,1.515),(12.375,1.515)), + ((12.375,1.5),(12.375,2.5),(12.675,2.5),(12.675,1.5),(12.375,1.5)), ) createRL( tech, net, 'difftap', - ((12.375,1.5),(12.375,2.5),(12.675,2.5),(12.675,1.5),(12.375,1.5)), + ((12.375,1.625),(12.375,2.375),(12.625,2.375),(12.625,1.625),(12.375,1.625)), ) createRL( tech, net, 'difftap', @@ -17689,7 +17526,7 @@ def _load(): ) createRL( tech, net, 'li', - ((13.415,6.605),(13.415,7.615),(13.585,7.615),(13.585,6.605),(13.415,6.605)), + ((13.415,6.635),(13.415,7.645),(13.585,7.645),(13.585,6.635),(13.415,6.635)), ) createRL( tech, net, 'li', @@ -17713,15 +17550,15 @@ def _load(): ) createRL( tech, net, 'li', - ((12.415,1.915),(12.415,2.085),(14.5,2.085),(14.5,1.915),(12.415,1.915)), + ((12.5,1.915),(12.5,2.085),(14.585,2.085),(14.585,1.915),(12.5,1.915)), ) createRL( tech, net, 'li', - ((12.5,1.915),(12.5,2.085),(14.585,2.085),(14.585,1.915),(12.5,1.915)), + ((12.5,1.915),(12.5,2.085),(14.5,2.085),(14.5,1.915),(12.5,1.915)), ) createRL( tech, net, 'li', - ((12.5,1.915),(12.5,2.085),(14.5,2.085),(14.5,1.915),(12.5,1.915)), + ((12.415,1.915),(12.415,2.085),(14.5,2.085),(14.5,1.915),(12.415,1.915)), ) createRL( tech, net, 'li', @@ -17733,11 +17570,11 @@ def _load(): ) createRL( tech, net, 'li', - ((12.415,1.495),(12.415,2.505),(12.585,2.505),(12.585,1.495),(12.415,1.495)), + ((12.415,1.665),(12.415,2.335),(12.585,2.335),(12.585,1.665),(12.415,1.665)), ) createRL( tech, net, 'li', - ((13.415,5.915),(13.415,6.605),(13.585,6.605),(13.585,5.915),(13.415,5.915)), + ((13.415,5.915),(13.415,6.635),(13.585,6.635),(13.585,5.915),(13.415,5.915)), ) createRL( tech, net, 'li', @@ -17745,31 +17582,27 @@ def _load(): ) createRL( tech, net, 'licon', - ((15.515,3.915),(15.515,4.085),(15.685,4.085),(15.685,3.915),(15.515,3.915)), - ) - createRL( - tech, net, 'licon', - ((12.415,1.575),(12.415,1.745),(12.585,1.745),(12.585,1.575),(12.415,1.575)), + ((12.415,1.745),(12.415,1.915),(12.585,1.915),(12.585,1.745),(12.415,1.745)), ) createRL( tech, net, 'licon', - ((12.415,1.915),(12.415,2.085),(12.585,2.085),(12.585,1.915),(12.415,1.915)), + ((12.415,2.085),(12.415,2.255),(12.585,2.255),(12.585,2.085),(12.415,2.085)), ) createRL( tech, net, 'licon', - ((12.415,2.255),(12.415,2.425),(12.585,2.425),(12.585,2.255),(12.415,2.255)), + ((15.515,3.915),(15.515,4.085),(15.685,4.085),(15.685,3.915),(15.515,3.915)), ) createRL( tech, net, 'licon', - ((13.415,6.685),(13.415,6.855),(13.585,6.855),(13.585,6.685),(13.415,6.685)), + ((13.415,6.715),(13.415,6.885),(13.585,6.885),(13.585,6.715),(13.415,6.715)), ) createRL( tech, net, 'licon', - ((13.415,7.025),(13.415,7.195),(13.585,7.195),(13.585,7.025),(13.415,7.025)), + ((13.415,7.055),(13.415,7.225),(13.585,7.225),(13.585,7.055),(13.415,7.055)), ) createRL( tech, net, 'licon', - ((13.415,7.365),(13.415,7.535),(13.585,7.535),(13.585,7.365),(13.415,7.365)), + ((13.415,7.395),(13.415,7.565),(13.585,7.565),(13.585,7.395),(13.415,7.395)), ) net = nets['_net3'] createRL( @@ -17778,7 +17611,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((14.375,6.555),(14.375,8.555),(14.625,8.555),(14.625,6.555),(14.375,6.555)), + ((14.375,6.525),(14.375,8.645),(14.625,8.645),(14.625,6.525),(14.375,6.525)), ) createRL( tech, net, 'difftap', @@ -17790,7 +17623,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((11.375,7.57),(11.375,8.54),(11.625,8.54),(11.625,7.57),(11.375,7.57)), + ((11.375,7.54),(11.375,8.63),(11.625,8.63),(11.625,7.54),(11.375,7.54)), ) createRL( tech, net, 'difftap', @@ -17806,43 +17639,43 @@ def _load(): ) createRL( tech, net, 'licon', - ((14.415,6.62),(14.415,6.79),(14.585,6.79),(14.585,6.62),(14.415,6.62)), + ((11.415,7.66),(11.415,7.83),(11.585,7.83),(11.585,7.66),(11.415,7.66)), ) createRL( tech, net, 'licon', - ((14.415,6.96),(14.415,7.13),(14.585,7.13),(14.585,6.96),(14.415,6.96)), + ((11.415,8.0),(11.415,8.17),(11.585,8.17),(11.585,8.0),(11.415,8.0)), ) createRL( tech, net, 'licon', - ((14.415,7.3),(14.415,7.47),(14.585,7.47),(14.585,7.3),(14.415,7.3)), + ((11.415,8.34),(11.415,8.51),(11.585,8.51),(11.585,8.34),(11.415,8.34)), ) createRL( tech, net, 'licon', - ((14.415,7.64),(14.415,7.81),(14.585,7.81),(14.585,7.64),(14.415,7.64)), + ((14.415,6.65),(14.415,6.82),(14.585,6.82),(14.585,6.65),(14.415,6.65)), ) createRL( tech, net, 'licon', - ((14.415,7.98),(14.415,8.15),(14.585,8.15),(14.585,7.98),(14.415,7.98)), + ((14.415,6.99),(14.415,7.16),(14.585,7.16),(14.585,6.99),(14.415,6.99)), ) createRL( tech, net, 'licon', - ((14.415,8.32),(14.415,8.49),(14.585,8.49),(14.585,8.32),(14.415,8.32)), + ((14.415,7.33),(14.415,7.5),(14.585,7.5),(14.585,7.33),(14.415,7.33)), ) createRL( tech, net, 'licon', - ((11.415,7.63),(11.415,7.8),(11.585,7.8),(11.585,7.63),(11.415,7.63)), + ((14.415,7.67),(14.415,7.84),(14.585,7.84),(14.585,7.67),(14.415,7.67)), ) createRL( tech, net, 'licon', - ((11.415,7.97),(11.415,8.14),(11.585,8.14),(11.585,7.97),(11.415,7.97)), + ((14.415,8.01),(14.415,8.18),(14.585,8.18),(14.585,8.01),(14.415,8.01)), ) createRL( tech, net, 'licon', - ((11.415,8.31),(11.415,8.48),(11.585,8.48),(11.585,8.31),(11.415,8.31)), + ((14.415,8.35),(14.415,8.52),(14.585,8.52),(14.585,8.35),(14.415,8.35)), ) createRL( tech, net, 'li', - ((14.415,6.535),(14.415,8.575),(14.585,8.575),(14.585,6.535),(14.415,6.535)), + ((14.415,6.565),(14.415,8.605),(14.585,8.605),(14.585,6.565),(14.415,6.565)), ) createRL( tech, net, 'li', @@ -17858,28 +17691,7 @@ def _load(): ) createRL( tech, net, 'li', - ((11.415,7.55),(11.415,8.56),(11.585,8.56),(11.585,7.55),(11.415,7.55)), - ) - net = nets['_net6'] - createRL( - tech, net, 'difftap', - ((7.075,1.5),(7.075,2.5),(7.325,2.5),(7.325,1.5),(7.075,1.5)), - ) - createRL( - tech, net, 'difftap', - ((7.325,1.5),(7.325,2.5),(7.575,2.5),(7.575,1.5),(7.325,1.5)), - ) - createRL( - tech, net, 'difftap', - ((7.425,0.8),(7.425,2.3),(7.575,2.3),(7.575,0.8),(7.425,0.8)), - ) - createRL( - tech, net, 'difftap', - ((7.425,0.6),(7.425,1.5),(7.675,1.5),(7.675,0.6),(7.425,0.6)), - ) - createRL( - tech, net, 'difftap', - ((7.675,0.6),(7.675,1.5),(7.925,1.5),(7.925,0.6),(7.675,0.6)), + ((11.415,7.58),(11.415,8.59),(11.585,8.59),(11.585,7.58),(11.415,7.58)), ) net = nets['u'] createRL( @@ -17888,11 +17700,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,7.57),(3.375,8.54),(3.625,8.54),(3.625,7.57),(3.375,7.57)), + ((3.375,7.54),(3.375,8.63),(3.625,8.63),(3.625,7.54),(3.375,7.54)), ) createRL( tech, net, 'difftap', - ((3.375,1.515),(3.375,2.485),(3.625,2.485),(3.625,1.515),(3.375,1.515)), + ((3.375,1.625),(3.375,2.375),(3.625,2.375),(3.625,1.625),(3.375,1.625)), ) createRL( tech, net, 'difftap', @@ -17944,15 +17756,11 @@ def _load(): ) createRL( tech, net, 'licon', - ((3.415,7.63),(3.415,7.8),(3.585,7.8),(3.585,7.63),(3.415,7.63)), - ) - createRL( - tech, net, 'licon', - ((3.415,7.97),(3.415,8.14),(3.585,8.14),(3.585,7.97),(3.415,7.97)), + ((3.415,1.745),(3.415,1.915),(3.585,1.915),(3.585,1.745),(3.415,1.745)), ) createRL( tech, net, 'licon', - ((3.415,8.31),(3.415,8.48),(3.585,8.48),(3.585,8.31),(3.415,8.31)), + ((3.415,2.085),(3.415,2.255),(3.585,2.255),(3.585,2.085),(3.415,2.085)), ) createRL( tech, net, 'licon', @@ -17968,27 +17776,27 @@ def _load(): ) createRL( tech, net, 'licon', - ((3.415,1.575),(3.415,1.745),(3.585,1.745),(3.585,1.575),(3.415,1.575)), + ((3.415,7.66),(3.415,7.83),(3.585,7.83),(3.585,7.66),(3.415,7.66)), ) createRL( tech, net, 'licon', - ((3.415,1.915),(3.415,2.085),(3.585,2.085),(3.585,1.915),(3.415,1.915)), + ((3.415,8.0),(3.415,8.17),(3.585,8.17),(3.585,8.0),(3.415,8.0)), ) createRL( tech, net, 'licon', - ((3.415,2.255),(3.415,2.425),(3.585,2.425),(3.585,2.255),(3.415,2.255)), + ((3.415,8.34),(3.415,8.51),(3.585,8.51),(3.585,8.34),(3.415,8.34)), ) createRL( tech, net, 'li', - ((3.415,7.55),(3.415,8.56),(3.585,8.56),(3.585,7.55),(3.415,7.55)), + ((3.415,7.58),(3.415,8.59),(3.585,8.59),(3.585,7.58),(3.415,7.58)), ) createRL( tech, net, 'li', - ((3.415,2.335),(3.415,7.72),(3.585,7.72),(3.585,2.335),(3.415,2.335)), + ((3.415,2.165),(3.415,7.75),(3.585,7.75),(3.585,2.165),(3.415,2.165)), ) createRL( tech, net, 'li', - ((3.415,1.495),(3.415,2.505),(3.585,2.505),(3.585,1.495),(3.415,1.495)), + ((3.415,1.665),(3.415,2.335),(3.585,2.335),(3.585,1.665),(3.415,1.665)), ) createRL( tech, net, 'li', @@ -18069,68 +17877,68 @@ def _load(): tech, net, 'licon', ((4.315,2.915),(4.315,3.085),(4.485,3.085),(4.485,2.915),(4.315,2.915)), ) - net = nets['_net7'] + net = nets['_net2'] createRL( tech, net, 'difftap', - ((5.675,1.5),(5.675,2.5),(5.925,2.5),(5.925,1.5),(5.675,1.5)), + ((7.675,7.5),(7.675,9.5),(7.925,9.5),(7.925,7.5),(7.675,7.5)), ) createRL( tech, net, 'difftap', - ((5.075,1.5),(5.075,2.5),(5.325,2.5),(5.325,1.5),(5.075,1.5)), + ((7.075,6.5),(7.075,8.5),(7.325,8.5),(7.325,6.5),(7.075,6.5)), ) createRL( tech, net, 'difftap', - ((5.425,1.5),(5.425,2.5),(5.675,2.5),(5.675,1.5),(5.425,1.5)), + ((7.425,6.7),(7.425,9.3),(7.575,9.3),(7.575,6.7),(7.425,6.7)), ) createRL( tech, net, 'difftap', - ((5.425,1.75),(5.425,2.25),(5.575,2.25),(5.575,1.75),(5.425,1.75)), + ((7.325,6.5),(7.325,8.5),(7.575,8.5),(7.575,6.5),(7.325,6.5)), ) createRL( tech, net, 'difftap', - ((5.325,1.5),(5.325,2.5),(5.575,2.5),(5.575,1.5),(5.325,1.5)), + ((7.425,7.5),(7.425,9.5),(7.675,9.5),(7.675,7.5),(7.425,7.5)), ) - net = nets['_net2'] + net = nets['_net8'] createRL( tech, net, 'difftap', - ((7.675,7.5),(7.675,9.5),(7.925,9.5),(7.925,7.5),(7.675,7.5)), + ((13.075,1.5),(13.075,2.5),(13.325,2.5),(13.325,1.5),(13.075,1.5)), ) createRL( tech, net, 'difftap', - ((7.075,6.5),(7.075,8.5),(7.325,8.5),(7.325,6.5),(7.075,6.5)), + ((13.675,1.5),(13.675,2.5),(13.925,2.5),(13.925,1.5),(13.675,1.5)), ) createRL( tech, net, 'difftap', - ((7.425,6.7),(7.425,9.3),(7.575,9.3),(7.575,6.7),(7.425,6.7)), + ((13.425,1.5),(13.425,2.5),(13.675,2.5),(13.675,1.5),(13.425,1.5)), ) createRL( tech, net, 'difftap', - ((7.325,6.5),(7.325,8.5),(7.575,8.5),(7.575,6.5),(7.325,6.5)), + ((13.425,1.7),(13.425,2.3),(13.575,2.3),(13.575,1.7),(13.425,1.7)), ) createRL( tech, net, 'difftap', - ((7.425,7.5),(7.425,9.5),(7.675,9.5),(7.675,7.5),(7.425,7.5)), + ((13.325,1.5),(13.325,2.5),(13.575,2.5),(13.575,1.5),(13.325,1.5)), ) - net = nets['_net8'] + net = nets['_net7'] createRL( tech, net, 'difftap', - ((13.075,1.5),(13.075,2.5),(13.325,2.5),(13.325,1.5),(13.075,1.5)), + ((5.675,1.5),(5.675,2.5),(5.925,2.5),(5.925,1.5),(5.675,1.5)), ) createRL( tech, net, 'difftap', - ((13.675,1.5),(13.675,2.5),(13.925,2.5),(13.925,1.5),(13.675,1.5)), + ((5.075,1.5),(5.075,2.5),(5.325,2.5),(5.325,1.5),(5.075,1.5)), ) createRL( tech, net, 'difftap', - ((13.425,1.5),(13.425,2.5),(13.675,2.5),(13.675,1.5),(13.425,1.5)), + ((5.425,1.5),(5.425,2.5),(5.675,2.5),(5.675,1.5),(5.425,1.5)), ) createRL( tech, net, 'difftap', - ((13.425,1.7),(13.425,2.3),(13.575,2.3),(13.575,1.7),(13.425,1.7)), + ((5.425,1.75),(5.425,2.25),(5.575,2.25),(5.575,1.75),(5.425,1.75)), ) createRL( tech, net, 'difftap', - ((13.325,1.5),(13.325,2.5),(13.575,2.5),(13.575,1.5),(13.325,1.5)), + ((5.325,1.5),(5.325,2.5),(5.575,2.5),(5.575,1.5),(5.325,1.5)), ) net = nets['_net5'] createRL( @@ -18320,7 +18128,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((16.375,5.55),(16.375,8.56),(16.625,8.56),(16.625,5.55),(16.375,5.55)), + ((16.375,5.52),(16.375,8.65),(16.625,8.65),(16.625,5.52),(16.375,5.52)), ) createRL( tech, net, 'difftap', @@ -18352,11 +18160,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((16.375,1.46),(16.375,2.43),(16.625,2.43),(16.625,1.46),(16.375,1.46)), + ((16.375,1.37),(16.375,2.46),(16.625,2.46),(16.625,1.37),(16.375,1.37)), ) createRL( tech, net, 'li', - ((16.415,5.53),(16.415,8.58),(16.585,8.58),(16.585,5.53),(16.415,5.53)), + ((16.415,5.56),(16.415,8.61),(16.585,8.61),(16.585,5.56),(16.415,5.56)), ) createRL( tech, net, 'li', @@ -18396,7 +18204,7 @@ def _load(): ) createRL( tech, net, 'li', - ((16.415,1.44),(16.415,2.45),(16.585,2.45),(16.585,1.44),(16.415,1.44)), + ((16.415,1.41),(16.415,2.42),(16.585,2.42),(16.585,1.41),(16.415,1.41)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -18414,55 +18222,55 @@ def _load(): ) createRL( tech, net, 'licon', - ((16.415,1.52),(16.415,1.69),(16.585,1.69),(16.585,1.52),(16.415,1.52)), + ((16.415,5.64),(16.415,5.81),(16.585,5.81),(16.585,5.64),(16.415,5.64)), ) createRL( tech, net, 'licon', - ((16.415,1.86),(16.415,2.03),(16.585,2.03),(16.585,1.86),(16.415,1.86)), + ((16.415,5.98),(16.415,6.15),(16.585,6.15),(16.585,5.98),(16.415,5.98)), ) createRL( tech, net, 'licon', - ((16.415,2.2),(16.415,2.37),(16.585,2.37),(16.585,2.2),(16.415,2.2)), + ((16.415,6.32),(16.415,6.49),(16.585,6.49),(16.585,6.32),(16.415,6.32)), ) createRL( tech, net, 'licon', - ((15.015,4.915),(15.015,5.085),(15.185,5.085),(15.185,4.915),(15.015,4.915)), + ((16.415,6.66),(16.415,6.83),(16.585,6.83),(16.585,6.66),(16.415,6.66)), ) createRL( tech, net, 'licon', - ((16.415,5.61),(16.415,5.78),(16.585,5.78),(16.585,5.61),(16.415,5.61)), + ((16.415,7.0),(16.415,7.17),(16.585,7.17),(16.585,7.0),(16.415,7.0)), ) createRL( tech, net, 'licon', - ((16.415,5.95),(16.415,6.12),(16.585,6.12),(16.585,5.95),(16.415,5.95)), + ((16.415,7.34),(16.415,7.51),(16.585,7.51),(16.585,7.34),(16.415,7.34)), ) createRL( tech, net, 'licon', - ((16.415,6.29),(16.415,6.46),(16.585,6.46),(16.585,6.29),(16.415,6.29)), + ((16.415,7.68),(16.415,7.85),(16.585,7.85),(16.585,7.68),(16.415,7.68)), ) createRL( tech, net, 'licon', - ((16.415,6.63),(16.415,6.8),(16.585,6.8),(16.585,6.63),(16.415,6.63)), + ((16.415,8.02),(16.415,8.19),(16.585,8.19),(16.585,8.02),(16.415,8.02)), ) createRL( tech, net, 'licon', - ((16.415,6.97),(16.415,7.14),(16.585,7.14),(16.585,6.97),(16.415,6.97)), + ((16.415,8.36),(16.415,8.53),(16.585,8.53),(16.585,8.36),(16.415,8.36)), ) createRL( tech, net, 'licon', - ((16.415,7.31),(16.415,7.48),(16.585,7.48),(16.585,7.31),(16.415,7.31)), + ((15.015,4.915),(15.015,5.085),(15.185,5.085),(15.185,4.915),(15.015,4.915)), ) createRL( tech, net, 'licon', - ((16.415,7.65),(16.415,7.82),(16.585,7.82),(16.585,7.65),(16.415,7.65)), + ((16.415,1.49),(16.415,1.66),(16.585,1.66),(16.585,1.49),(16.415,1.49)), ) createRL( tech, net, 'licon', - ((16.415,7.99),(16.415,8.16),(16.585,8.16),(16.585,7.99),(16.415,7.99)), + ((16.415,1.83),(16.415,2.0),(16.585,2.0),(16.585,1.83),(16.415,1.83)), ) createRL( tech, net, 'licon', - ((16.415,8.33),(16.415,8.5),(16.585,8.5),(16.585,8.33),(16.415,8.33)), + ((16.415,2.17),(16.415,2.34),(16.585,2.34),(16.585,2.17),(16.415,2.17)), ) cell = new_cells['xr2_x1'] @@ -18483,8 +18291,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['q'] createRL( tech, net, 'difftap', @@ -18500,7 +18308,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,1.46),(3.375,2.43),(3.625,2.43),(3.625,1.46),(3.375,1.46)), + ((3.375,1.37),(3.375,2.46),(3.625,2.46),(3.625,1.37),(3.375,1.37)), ) createRL( tech, net, 'difftap', @@ -18524,7 +18332,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((3.375,5.61),(3.375,7.61),(3.625,7.61),(3.625,5.61),(3.375,5.61)), + ((3.375,5.58),(3.375,7.7),(3.625,7.7),(3.625,5.58),(3.375,5.58)), ) createRL( tech, net, 'li', @@ -18544,7 +18352,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,1.44),(3.415,2.45),(3.585,2.45),(3.585,1.44),(3.415,1.44)), + ((3.415,1.41),(3.415,2.42),(3.585,2.42),(3.585,1.41),(3.415,1.41)), ) createRL( tech, net, 'li', @@ -18552,7 +18360,7 @@ def _load(): ) createRL( tech, net, 'li', - ((3.415,5.59),(3.415,7.63),(3.585,7.63),(3.585,5.59),(3.415,5.59)), + ((3.415,5.62),(3.415,7.66),(3.585,7.66),(3.585,5.62),(3.415,5.62)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -18566,39 +18374,39 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((3.415,1.52),(3.415,1.69),(3.585,1.69),(3.585,1.52),(3.415,1.52)), + ((3.415,5.705),(3.415,5.875),(3.585,5.875),(3.585,5.705),(3.415,5.705)), ) createRL( tech, net, 'licon', - ((3.415,1.86),(3.415,2.03),(3.585,2.03),(3.585,1.86),(3.415,1.86)), + ((3.415,6.045),(3.415,6.215),(3.585,6.215),(3.585,6.045),(3.415,6.045)), ) createRL( tech, net, 'licon', - ((3.415,2.2),(3.415,2.37),(3.585,2.37),(3.585,2.2),(3.415,2.2)), + ((3.415,6.385),(3.415,6.555),(3.585,6.555),(3.585,6.385),(3.415,6.385)), ) createRL( tech, net, 'licon', - ((3.415,5.675),(3.415,5.845),(3.585,5.845),(3.585,5.675),(3.415,5.675)), + ((3.415,6.725),(3.415,6.895),(3.585,6.895),(3.585,6.725),(3.415,6.725)), ) createRL( tech, net, 'licon', - ((3.415,6.015),(3.415,6.185),(3.585,6.185),(3.585,6.015),(3.415,6.015)), + ((3.415,7.065),(3.415,7.235),(3.585,7.235),(3.585,7.065),(3.415,7.065)), ) createRL( tech, net, 'licon', - ((3.415,6.355),(3.415,6.525),(3.585,6.525),(3.585,6.355),(3.415,6.355)), + ((3.415,7.405),(3.415,7.575),(3.585,7.575),(3.585,7.405),(3.415,7.405)), ) createRL( tech, net, 'licon', - ((3.415,6.695),(3.415,6.865),(3.585,6.865),(3.585,6.695),(3.415,6.695)), + ((3.415,1.49),(3.415,1.66),(3.585,1.66),(3.585,1.49),(3.415,1.49)), ) createRL( tech, net, 'licon', - ((3.415,7.035),(3.415,7.205),(3.585,7.205),(3.585,7.035),(3.415,7.035)), + ((3.415,1.83),(3.415,2.0),(3.585,2.0),(3.585,1.83),(3.415,1.83)), ) createRL( tech, net, 'licon', - ((3.415,7.375),(3.415,7.545),(3.585,7.545),(3.585,7.375),(3.415,7.375)), + ((3.415,2.17),(3.415,2.34),(3.585,2.34),(3.585,2.17),(3.415,2.17)), ) net = nets['vss'] createRL( @@ -18615,19 +18423,19 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.675,0.6),(1.675,2.5),(1.925,2.5),(1.925,0.6),(1.675,0.6)), + ((1.375,0.6),(1.375,2.5),(1.675,2.5),(1.675,0.6),(1.375,0.6)), ) createRL( tech, net, 'difftap', - ((1.375,0.74),(1.375,2.5),(1.625,2.5),(1.625,0.74),(1.375,0.74)), + ((1.375,0.715),(1.375,2.5),(1.625,2.5),(1.625,0.715),(1.375,0.715)), ) createRL( tech, net, 'difftap', - ((1.375,0.6),(1.375,2.5),(1.675,2.5),(1.675,0.6),(1.375,0.6)), + ((1.675,0.6),(1.675,2.5),(1.925,2.5),(1.925,0.6),(1.675,0.6)), ) createRL( tech, net, 'difftap', - ((1.375,0.74),(1.375,1.04),(1.625,1.04),(1.625,0.74),(1.375,0.74)), + ((1.375,0.715),(1.375,1.125),(1.625,1.125),(1.625,0.715),(1.375,0.715)), ) createRL( tech, net, 'difftap', @@ -18647,11 +18455,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,0.55),(6.375,0.85),(6.625,0.85),(6.625,0.55),(6.375,0.55)), + ((6.375,0.495),(6.375,0.905),(6.625,0.905),(6.625,0.495),(6.375,0.495)), ) createRL( tech, net, 'difftap', - ((5.375,0.74),(5.375,2.5),(5.625,2.5),(5.625,0.74),(5.375,0.74)), + ((5.325,0.6),(5.325,2.5),(5.625,2.5),(5.625,0.6),(5.325,0.6)), ) createRL( tech, net, 'difftap', @@ -18667,11 +18475,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,0.55),(0.375,0.85),(0.625,0.85),(0.625,0.55),(0.375,0.55)), + ((5.375,0.715),(5.375,2.5),(5.625,2.5),(5.625,0.715),(5.375,0.715)), ) createRL( tech, net, 'difftap', - ((5.375,0.74),(5.375,1.04),(5.625,1.04),(5.625,0.74),(5.375,0.74)), + ((5.375,0.715),(5.375,1.125),(5.625,1.125),(5.625,0.715),(5.375,0.715)), ) createRL( tech, net, 'difftap', @@ -18679,11 +18487,11 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), + ((0.375,0.495),(0.375,0.905),(0.625,0.905),(0.625,0.495),(0.375,0.495)), ) createRL( tech, net, 'difftap', - ((5.325,0.6),(5.325,2.5),(5.625,2.5),(5.625,0.6),(5.325,0.6)), + ((0.35,0.4),(0.35,0.9),(0.65,0.9),(0.65,0.4),(0.35,0.4)), ) createRL( tech, net, 'difftap', @@ -18691,7 +18499,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,0.725),(1.415,1.055),(1.585,1.055),(1.585,0.725),(1.415,0.725)), + ((1.415,0.755),(1.415,1.085),(1.585,1.085),(1.585,0.755),(1.415,0.755)), ) createRL( tech, net, 'li', @@ -18703,7 +18511,7 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,0.725),(5.415,1.055),(5.585,1.055),(5.585,0.725),(5.415,0.725)), + ((5.415,0.755),(5.415,1.085),(5.585,1.085),(5.585,0.755),(5.415,0.755)), ) createRL( tech, net, 'li', @@ -18721,15 +18529,15 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,0.805),(1.415,0.975),(1.585,0.975),(1.585,0.805),(1.415,0.805)), + ((1.415,0.835),(1.415,1.005),(1.585,1.005),(1.585,0.835),(1.415,0.835)), ) createRL( tech, net, 'licon', - ((5.415,0.805),(5.415,0.975),(5.585,0.975),(5.585,0.805),(5.415,0.805)), + ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), ) createRL( tech, net, 'licon', - ((0.415,0.615),(0.415,0.785),(0.585,0.785),(0.585,0.615),(0.415,0.615)), + ((5.415,0.835),(5.415,1.005),(5.585,1.005),(5.585,0.835),(5.415,0.835)), ) createRL( tech, net, 'licon', @@ -18775,7 +18583,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((6.25,8.925),(6.25,9.475),(6.75,9.475),(6.75,8.925),(6.25,8.925)), + ((6.25,8.87),(6.25,9.53),(6.75,9.53),(6.75,8.87),(6.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -18791,23 +18599,19 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((1.25,0.475),(1.25,2.625),(1.8,2.625),(1.8,0.475),(1.25,0.475)), - ) - createRL( - tech, net, 'nsdm', - ((1.25,0.615),(1.25,2.625),(1.75,2.625),(1.75,0.615),(1.25,0.615)), + ((1.25,0.59),(1.25,2.625),(1.75,2.625),(1.75,0.59),(1.25,0.59)), ) createRL( tech, net, 'nsdm', - ((1.25,0.615),(1.25,1.165),(1.75,1.165),(1.75,0.615),(1.25,0.615)), + ((1.25,0.475),(1.25,2.625),(1.8,2.625),(1.8,0.475),(1.25,0.475)), ) createRL( tech, net, 'nsdm', - ((0.25,1.39),(0.25,2.61),(0.75,2.61),(0.75,1.39),(0.25,1.39)), + ((1.25,0.59),(1.25,1.25),(1.75,1.25),(1.75,0.59),(1.25,0.59)), ) createRL( tech, net, 'nsdm', - ((0.25,8.925),(0.25,9.475),(0.75,9.475),(0.75,8.925),(0.25,8.925)), + ((0.25,8.87),(0.25,9.53),(0.75,9.53),(0.75,8.87),(0.25,8.87)), ) createRL( tech, net, 'nsdm', @@ -18825,6 +18629,10 @@ def _load(): tech, net, 'nsdm', ((1.2,1.375),(1.2,2.625),(1.75,2.625),(1.75,1.375),(1.2,1.375)), ) + createRL( + tech, net, 'nsdm', + ((0.25,1.5),(0.25,2.5),(0.75,2.5),(0.75,1.5),(0.25,1.5)), + ) createRL( tech, net, 'nsdm', ((4.2,0.475),(4.2,2.625),(4.7,2.625),(4.7,0.475),(4.2,0.475)), @@ -18859,11 +18667,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((3.25,1.335),(3.25,2.555),(3.75,2.555),(3.75,1.335),(3.25,1.335)), + ((3.25,1.245),(3.25,2.585),(3.75,2.585),(3.75,1.245),(3.25,1.245)), ) createRL( tech, net, 'nsdm', - ((6.25,1.39),(6.25,2.61),(6.75,2.61),(6.75,1.39),(6.25,1.39)), + ((6.25,1.5),(6.25,2.5),(6.75,2.5),(6.75,1.5),(6.25,1.5)), ) createRL( tech, net, 'nsdm', @@ -18891,11 +18699,11 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((5.25,0.615),(5.25,2.625),(5.75,2.625),(5.75,0.615),(5.25,0.615)), + ((5.25,0.59),(5.25,2.625),(5.75,2.625),(5.75,0.59),(5.25,0.59)), ) createRL( tech, net, 'nsdm', - ((5.25,0.615),(5.25,1.165),(5.75,1.165),(5.75,0.615),(5.25,0.615)), + ((5.25,0.59),(5.25,1.25),(5.75,1.25),(5.75,0.59),(5.25,0.59)), ) createRL( tech, net, 'nsdm', @@ -18907,7 +18715,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((5.25,8.72),(5.25,9.6),(5.75,9.6),(5.75,8.72),(5.25,8.72)), + ((5.25,8.8),(5.25,9.46),(5.75,9.46),(5.75,8.8),(5.25,8.8)), ) createRL( tech, net, 'psdm', @@ -18915,7 +18723,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,8.72),(1.25,9.6),(1.75,9.6),(1.75,8.72),(1.25,8.72)), + ((1.25,8.8),(1.25,9.46),(1.75,9.46),(1.75,8.8),(1.25,8.8)), ) createRL( tech, net, 'psdm', @@ -18939,11 +18747,11 @@ def _load(): ) createRL( tech, net, 'psdm', - ((1.25,6.375),(1.25,9.6),(1.75,9.6),(1.75,6.375),(1.25,6.375)), + ((1.25,6.375),(1.25,9.46),(1.75,9.46),(1.75,6.375),(1.25,6.375)), ) createRL( tech, net, 'psdm', - ((2.25,6.695),(2.25,8.605),(2.75,8.605),(2.75,6.695),(2.25,6.695)), + ((2.25,6.635),(2.25,8.665),(2.75,8.665),(2.75,6.635),(2.25,6.635)), ) createRL( tech, net, 'psdm', @@ -18957,6 +18765,10 @@ def _load(): tech, net, 'psdm', ((4.855,5.43),(4.855,9.57),(5.145,9.57),(5.145,5.43),(4.855,5.43)), ) + createRL( + tech, net, 'psdm', + ((6.25,0.37),(6.25,1.03),(6.75,1.03),(6.75,0.37),(6.25,0.37)), + ) createRL( tech, net, 'psdm', ((1.25,5.375),(1.25,9.625),(1.8,9.625),(1.8,5.375),(1.25,5.375)), @@ -18971,7 +18783,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((3.25,5.485),(3.25,7.735),(3.75,7.735),(3.75,5.485),(3.25,5.485)), + ((3.25,5.455),(3.25,7.825),(3.75,7.825),(3.75,5.455),(3.25,5.455)), ) createRL( tech, net, 'psdm', @@ -18987,27 +18799,27 @@ def _load(): ) createRL( tech, net, 'psdm', - ((0.225,0.275),(0.225,1.025),(0.775,1.025),(0.775,0.275),(0.225,0.275)), + ((0.25,0.37),(0.25,1.03),(0.75,1.03),(0.75,0.37),(0.25,0.37)), ) createRL( tech, net, 'psdm', - ((4.25,5.425),(4.25,8.685),(4.75,8.685),(4.75,5.425),(4.25,5.425)), + ((0.225,0.275),(0.225,1.025),(0.775,1.025),(0.775,0.275),(0.225,0.275)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.75,8.625),(0.75,6.375),(0.25,6.375)), + ((4.25,5.395),(4.25,8.775),(4.75,8.775),(4.75,5.395),(4.25,5.395)), ) createRL( tech, net, 'psdm', - ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), + ((0.25,6.485),(0.25,8.515),(0.75,8.515),(0.75,6.485),(0.25,6.485)), ) createRL( tech, net, 'psdm', - ((6.25,0.425),(6.25,0.975),(6.75,0.975),(6.75,0.425),(6.25,0.425)), + ((0.25,6.375),(0.25,8.625),(0.8,8.625),(0.8,6.375),(0.25,6.375)), ) createRL( tech, net, 'psdm', - ((6.25,6.375),(6.25,8.625),(6.75,8.625),(6.75,6.375),(6.25,6.375)), + ((6.25,6.485),(6.25,8.515),(6.75,8.515),(6.75,6.485),(6.25,6.485)), ) createRL( tech, net, 'psdm', @@ -19027,7 +18839,7 @@ def _load(): ) createRL( tech, net, 'psdm', - ((5.25,6.375),(5.25,9.6),(5.75,9.6),(5.75,6.375),(5.25,6.375)), + ((5.25,6.375),(5.25,9.46),(5.75,9.46),(5.75,6.375),(5.25,6.375)), ) createRL( tech, net, 'psdm', @@ -19037,10 +18849,6 @@ def _load(): tech, net, 'psdm', ((2.25,5.375),(2.25,9.625),(2.8,9.625),(2.8,5.375),(2.25,5.375)), ) - createRL( - tech, net, 'psdm', - ((0.25,0.425),(0.25,0.975),(0.75,0.975),(0.75,0.425),(0.25,0.425)), - ) createRL( tech, net, 'psdm', ((4.2,5.375),(4.2,9.625),(4.75,9.625),(4.75,5.375),(4.2,5.375)), @@ -19084,7 +18892,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,6.5),(0.375,8.5),(0.625,8.5),(0.625,6.5),(0.375,6.5)), + ((0.375,6.61),(0.375,8.39),(0.625,8.39),(0.625,6.61),(0.375,6.61)), ) createRL( tech, net, 'difftap', @@ -19096,7 +18904,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,1.515),(0.375,2.485),(0.625,2.485),(0.625,1.515),(0.375,1.515)), + ((0.375,1.625),(0.375,2.375),(0.625,2.375),(0.625,1.625),(0.375,1.625)), ) createRL( tech, net, 'licon', @@ -19104,39 +18912,31 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.415,6.565),(0.415,6.735),(0.585,6.735),(0.585,6.565),(0.415,6.565)), - ) - createRL( - tech, net, 'licon', - ((0.415,6.905),(0.415,7.075),(0.585,7.075),(0.585,6.905),(0.415,6.905)), + ((0.415,1.745),(0.415,1.915),(0.585,1.915),(0.585,1.745),(0.415,1.745)), ) createRL( tech, net, 'licon', - ((0.415,7.245),(0.415,7.415),(0.585,7.415),(0.585,7.245),(0.415,7.245)), + ((0.415,2.085),(0.415,2.255),(0.585,2.255),(0.585,2.085),(0.415,2.085)), ) createRL( tech, net, 'licon', - ((0.415,7.585),(0.415,7.755),(0.585,7.755),(0.585,7.585),(0.415,7.585)), + ((0.415,6.735),(0.415,6.905),(0.585,6.905),(0.585,6.735),(0.415,6.735)), ) createRL( tech, net, 'licon', - ((0.415,7.925),(0.415,8.095),(0.585,8.095),(0.585,7.925),(0.415,7.925)), + ((0.415,7.075),(0.415,7.245),(0.585,7.245),(0.585,7.075),(0.415,7.075)), ) createRL( tech, net, 'licon', - ((0.415,8.265),(0.415,8.435),(0.585,8.435),(0.585,8.265),(0.415,8.265)), + ((0.415,7.415),(0.415,7.585),(0.585,7.585),(0.585,7.415),(0.415,7.415)), ) createRL( tech, net, 'licon', - ((0.415,1.575),(0.415,1.745),(0.585,1.745),(0.585,1.575),(0.415,1.575)), + ((0.415,7.755),(0.415,7.925),(0.585,7.925),(0.585,7.755),(0.415,7.755)), ) createRL( tech, net, 'licon', - ((0.415,1.915),(0.415,2.085),(0.585,2.085),(0.585,1.915),(0.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((0.415,2.255),(0.415,2.425),(0.585,2.425),(0.585,2.255),(0.415,2.255)), + ((0.415,8.095),(0.415,8.265),(0.585,8.265),(0.585,8.095),(0.415,8.095)), ) createRL( tech, net, 'li', @@ -19144,28 +18944,28 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,1.495),(0.415,2.505),(0.585,2.505),(0.585,1.495),(0.415,1.495)), + ((0.415,1.665),(0.415,2.335),(0.585,2.335),(0.585,1.665),(0.415,1.665)), ) createRL( tech, net, 'li', - ((0.415,6.48),(0.415,8.52),(0.585,8.52),(0.585,6.48),(0.415,6.48)), + ((0.415,6.655),(0.415,8.345),(0.585,8.345),(0.585,6.655),(0.415,6.655)), ) createRL( tech, net, 'li', - ((0.415,2.335),(0.415,6.65),(0.585,6.65),(0.585,2.335),(0.415,2.335)), + ((0.415,2.165),(0.415,6.825),(0.585,6.825),(0.585,2.165),(0.415,2.165)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((5.375,8.845),(5.375,9.475),(5.625,9.475),(5.625,8.845),(5.375,8.845)), + ((6.375,8.995),(6.375,9.405),(6.625,9.405),(6.625,8.995),(6.375,8.995)), ) createRL( tech, net, 'difftap', - ((5.375,6.5),(5.375,8.5),(5.675,8.5),(5.675,6.5),(5.375,6.5)), + ((5.375,8.925),(5.375,9.335),(5.625,9.335),(5.625,8.925),(5.375,8.925)), ) createRL( tech, net, 'difftap', - ((1.375,8.845),(1.375,9.475),(1.625,9.475),(1.625,8.845),(1.375,8.845)), + ((5.375,6.5),(5.375,8.5),(5.675,8.5),(5.675,6.5),(5.375,6.5)), ) createRL( tech, net, 'difftap', @@ -19175,6 +18975,10 @@ def _load(): tech, net, 'difftap', ((5.675,6.5),(5.675,8.5),(5.925,8.5),(5.925,6.5),(5.675,6.5)), ) + createRL( + tech, net, 'difftap', + ((1.375,8.925),(1.375,9.335),(1.625,9.335),(1.625,8.925),(1.375,8.925)), + ) createRL( tech, net, 'difftap', ((5.325,5.5),(5.325,9.5),(5.625,9.5),(5.625,5.5),(5.325,5.5)), @@ -19185,7 +18989,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.375,6.5),(1.375,9.475),(1.625,9.475),(1.625,6.5),(1.375,6.5)), + ((1.375,6.5),(1.375,9.335),(1.625,9.335),(1.625,6.5),(1.375,6.5)), ) createRL( tech, net, 'difftap', @@ -19193,15 +18997,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.675,5.5),(1.675,9.5),(1.925,9.5),(1.925,5.5),(1.675,5.5)), + ((0.375,8.995),(0.375,9.405),(0.625,9.405),(0.625,8.995),(0.375,8.995)), ) createRL( tech, net, 'difftap', - ((1.375,5.5),(1.375,9.5),(1.675,9.5),(1.675,5.5),(1.375,5.5)), + ((1.675,5.5),(1.675,9.5),(1.925,9.5),(1.925,5.5),(1.675,5.5)), ) createRL( tech, net, 'difftap', - ((6.375,9.05),(6.375,9.35),(6.625,9.35),(6.625,9.05),(6.375,9.05)), + ((1.375,5.5),(1.375,9.5),(1.675,9.5),(1.675,5.5),(1.375,5.5)), ) createRL( tech, net, 'difftap', @@ -19229,11 +19033,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((5.375,6.5),(5.375,9.475),(5.625,9.475),(5.625,6.5),(5.375,6.5)), - ) - createRL( - tech, net, 'difftap', - ((0.375,9.05),(0.375,9.35),(0.625,9.35),(0.625,9.05),(0.375,9.05)), + ((5.375,6.5),(5.375,9.335),(5.625,9.335),(5.625,6.5),(5.375,6.5)), ) createRL( tech, net, 'difftap', @@ -19245,7 +19045,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,8.87),(6.195,9.53),(6.805,9.53),(6.805,8.87),(6.195,8.87)), + ((6.195,8.815),(6.195,9.585),(6.805,9.585),(6.805,8.815),(6.195,8.815)), ) createRL( tech, net, 'nwm', @@ -19253,7 +19053,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((5.195,8.665),(5.195,9.655),(5.805,9.655),(5.805,8.665),(5.195,8.665)), + ((5.195,8.745),(5.195,9.515),(5.805,9.515),(5.805,8.745),(5.195,8.745)), ) createRL( tech, net, 'nwm', @@ -19269,7 +19069,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,8.665),(1.195,9.655),(1.805,9.655),(1.805,8.665),(1.195,8.665)), + ((1.195,8.745),(1.195,9.515),(1.805,9.515),(1.805,8.745),(1.195,8.745)), ) createRL( tech, net, 'nwm', @@ -19281,11 +19081,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.195,6.32),(1.195,9.655),(1.805,9.655),(1.805,6.32),(1.195,6.32)), + ((1.195,6.32),(1.195,9.515),(1.805,9.515),(1.805,6.32),(1.195,6.32)), ) createRL( tech, net, 'nwm', - ((2.195,6.64),(2.195,8.66),(2.805,8.66),(2.805,6.64),(2.195,6.64)), + ((2.195,6.58),(2.195,8.72),(2.805,8.72),(2.805,6.58),(2.195,6.58)), ) createRL( tech, net, 'nwm', @@ -19293,7 +19093,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.87),(0.195,9.53),(0.805,9.53),(0.805,8.87),(0.195,8.87)), + ((0.195,8.815),(0.195,9.585),(0.805,9.585),(0.805,8.815),(0.195,8.815)), ) createRL( tech, net, 'nwm', @@ -19309,7 +19109,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((3.195,5.43),(3.195,7.79),(3.805,7.79),(3.805,5.43),(3.195,5.43)), + ((3.195,5.4),(3.195,7.88),(3.805,7.88),(3.805,5.4),(3.195,5.4)), ) createRL( tech, net, 'nwm', @@ -19321,11 +19121,11 @@ def _load(): ) createRL( tech, net, 'nwm', - ((4.195,5.37),(4.195,8.74),(4.805,8.74),(4.805,5.37),(4.195,5.37)), + ((4.195,5.34),(4.195,8.83),(4.805,8.83),(4.805,5.34),(4.195,5.34)), ) createRL( tech, net, 'nwm', - ((0.195,6.32),(0.195,8.68),(0.805,8.68),(0.805,6.32),(0.195,6.32)), + ((0.195,6.43),(0.195,8.57),(0.805,8.57),(0.805,6.43),(0.195,6.43)), ) createRL( tech, net, 'nwm', @@ -19333,7 +19133,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((6.195,6.32),(6.195,8.68),(6.805,8.68),(6.805,6.32),(6.195,6.32)), + ((6.195,6.43),(6.195,8.57),(6.805,8.57),(6.805,6.43),(6.195,6.43)), ) createRL( tech, net, 'nwm', @@ -19349,7 +19149,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((5.195,6.32),(5.195,9.655),(5.805,9.655),(5.805,6.32),(5.195,6.32)), + ((5.195,6.32),(5.195,9.515),(5.805,9.515),(5.805,6.32),(5.195,6.32)), ) createRL( tech, net, 'nwm', @@ -19377,11 +19177,11 @@ def _load(): ) createRL( tech, net, 'li', - ((5.415,8.825),(5.415,9.495),(5.585,9.495),(5.585,8.825),(5.415,8.825)), + ((5.415,8.965),(5.415,9.295),(5.585,9.295),(5.585,8.965),(5.415,8.965)), ) createRL( tech, net, 'li', - ((1.415,8.825),(1.415,9.495),(1.585,9.495),(1.585,8.825),(1.415,8.825)), + ((1.415,8.965),(1.415,9.295),(1.585,9.295),(1.585,8.965),(1.415,8.965)), ) createRL( tech, net, 'li', @@ -19403,11 +19203,7 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,8.905),(1.415,9.075),(1.585,9.075),(1.585,8.905),(1.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((1.415,9.245),(1.415,9.415),(1.585,9.415),(1.585,9.245),(1.415,9.245)), + ((1.415,9.045),(1.415,9.215),(1.585,9.215),(1.585,9.045),(1.415,9.045)), ) createRL( tech, net, 'licon', @@ -19415,11 +19211,7 @@ def _load(): ) createRL( tech, net, 'licon', - ((5.415,8.905),(5.415,9.075),(5.585,9.075),(5.585,8.905),(5.415,8.905)), - ) - createRL( - tech, net, 'licon', - ((5.415,9.245),(5.415,9.415),(5.585,9.415),(5.585,9.245),(5.415,9.245)), + ((5.415,9.045),(5.415,9.215),(5.585,9.215),(5.585,9.045),(5.415,9.045)), ) createRL( tech, net, 'licon', @@ -19428,7 +19220,7 @@ def _load(): net = nets['_net2'] createRL( tech, net, 'difftap', - ((2.375,6.82),(2.375,8.48),(2.625,8.48),(2.625,6.82),(2.375,6.82)), + ((2.375,6.76),(2.375,8.54),(2.625,8.54),(2.625,6.76),(2.375,6.76)), ) createRL( tech, net, 'difftap', @@ -19436,15 +19228,15 @@ def _load(): ) createRL( tech, net, 'difftap', - ((4.375,5.55),(4.375,8.56),(4.625,8.56),(4.625,5.55),(4.375,5.55)), + ((2.075,5.5),(2.075,9.5),(2.325,9.5),(2.325,5.5),(2.075,5.5)), ) createRL( tech, net, 'difftap', - ((2.075,5.5),(2.075,9.5),(2.325,9.5),(2.325,5.5),(2.075,5.5)), + ((4.075,5.5),(4.075,9.5),(4.325,9.5),(4.325,5.5),(4.075,5.5)), ) createRL( tech, net, 'difftap', - ((4.075,5.5),(4.075,9.5),(4.325,9.5),(4.325,5.5),(4.075,5.5)), + ((4.375,5.52),(4.375,8.65),(4.625,8.65),(4.625,5.52),(4.375,5.52)), ) createRL( tech, net, 'difftap', @@ -19488,39 +19280,39 @@ def _load(): ) createRL( tech, net, 'licon', - ((4.415,5.61),(4.415,5.78),(4.585,5.78),(4.585,5.61),(4.415,5.61)), + ((4.415,5.64),(4.415,5.81),(4.585,5.81),(4.585,5.64),(4.415,5.64)), ) createRL( tech, net, 'licon', - ((4.415,5.95),(4.415,6.12),(4.585,6.12),(4.585,5.95),(4.415,5.95)), + ((4.415,5.98),(4.415,6.15),(4.585,6.15),(4.585,5.98),(4.415,5.98)), ) createRL( tech, net, 'licon', - ((4.415,6.29),(4.415,6.46),(4.585,6.46),(4.585,6.29),(4.415,6.29)), + ((4.415,6.32),(4.415,6.49),(4.585,6.49),(4.585,6.32),(4.415,6.32)), ) createRL( tech, net, 'licon', - ((4.415,6.63),(4.415,6.8),(4.585,6.8),(4.585,6.63),(4.415,6.63)), + ((4.415,6.66),(4.415,6.83),(4.585,6.83),(4.585,6.66),(4.415,6.66)), ) createRL( tech, net, 'licon', - ((4.415,6.97),(4.415,7.14),(4.585,7.14),(4.585,6.97),(4.415,6.97)), + ((4.415,7.0),(4.415,7.17),(4.585,7.17),(4.585,7.0),(4.415,7.0)), ) createRL( tech, net, 'licon', - ((4.415,7.31),(4.415,7.48),(4.585,7.48),(4.585,7.31),(4.415,7.31)), + ((4.415,7.34),(4.415,7.51),(4.585,7.51),(4.585,7.34),(4.415,7.34)), ) createRL( tech, net, 'licon', - ((4.415,7.65),(4.415,7.82),(4.585,7.82),(4.585,7.65),(4.415,7.65)), + ((4.415,7.68),(4.415,7.85),(4.585,7.85),(4.585,7.68),(4.415,7.68)), ) createRL( tech, net, 'licon', - ((4.415,7.99),(4.415,8.16),(4.585,8.16),(4.585,7.99),(4.415,7.99)), + ((4.415,8.02),(4.415,8.19),(4.585,8.19),(4.585,8.02),(4.415,8.02)), ) createRL( tech, net, 'licon', - ((4.415,8.33),(4.415,8.5),(4.585,8.5),(4.585,8.33),(4.415,8.33)), + ((4.415,8.36),(4.415,8.53),(4.585,8.53),(4.585,8.36),(4.415,8.36)), ) createRL( tech, net, 'li', @@ -19540,7 +19332,7 @@ def _load(): ) createRL( tech, net, 'li', - ((4.415,5.53),(4.415,8.58),(4.585,8.58),(4.585,5.53),(4.415,5.53)), + ((4.415,5.56),(4.415,8.61),(4.585,8.61),(4.585,5.56),(4.415,5.56)), ) net = nets['_net3'] createRL( @@ -19593,7 +19385,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,6.5),(6.375,8.5),(6.625,8.5),(6.625,6.5),(6.375,6.5)), + ((6.375,6.61),(6.375,8.39),(6.625,8.39),(6.625,6.61),(6.375,6.61)), ) createRL( tech, net, 'difftap', @@ -19601,7 +19393,7 @@ def _load(): ) createRL( tech, net, 'difftap', - ((6.375,1.515),(6.375,2.485),(6.625,2.485),(6.625,1.515),(6.375,1.515)), + ((6.375,1.625),(6.375,2.375),(6.625,2.375),(6.625,1.625),(6.375,1.625)), ) createRL( tech, net, 'difftap', @@ -19613,43 +19405,35 @@ def _load(): ) createRL( tech, net, 'licon', - ((6.415,1.575),(6.415,1.745),(6.585,1.745),(6.585,1.575),(6.415,1.575)), - ) - createRL( - tech, net, 'licon', - ((6.415,1.915),(6.415,2.085),(6.585,2.085),(6.585,1.915),(6.415,1.915)), - ) - createRL( - tech, net, 'licon', - ((6.415,2.255),(6.415,2.425),(6.585,2.425),(6.585,2.255),(6.415,2.255)), + ((3.315,4.915),(3.315,5.085),(3.485,5.085),(3.485,4.915),(3.315,4.915)), ) createRL( tech, net, 'licon', - ((3.315,4.915),(3.315,5.085),(3.485,5.085),(3.485,4.915),(3.315,4.915)), + ((6.415,6.735),(6.415,6.905),(6.585,6.905),(6.585,6.735),(6.415,6.735)), ) createRL( tech, net, 'licon', - ((6.415,6.565),(6.415,6.735),(6.585,6.735),(6.585,6.565),(6.415,6.565)), + ((6.415,7.075),(6.415,7.245),(6.585,7.245),(6.585,7.075),(6.415,7.075)), ) createRL( tech, net, 'licon', - ((6.415,6.905),(6.415,7.075),(6.585,7.075),(6.585,6.905),(6.415,6.905)), + ((6.415,7.415),(6.415,7.585),(6.585,7.585),(6.585,7.415),(6.415,7.415)), ) createRL( tech, net, 'licon', - ((6.415,7.245),(6.415,7.415),(6.585,7.415),(6.585,7.245),(6.415,7.245)), + ((6.415,7.755),(6.415,7.925),(6.585,7.925),(6.585,7.755),(6.415,7.755)), ) createRL( tech, net, 'licon', - ((6.415,7.585),(6.415,7.755),(6.585,7.755),(6.585,7.585),(6.415,7.585)), + ((6.415,8.095),(6.415,8.265),(6.585,8.265),(6.585,8.095),(6.415,8.095)), ) createRL( tech, net, 'licon', - ((6.415,7.925),(6.415,8.095),(6.585,8.095),(6.585,7.925),(6.415,7.925)), + ((6.415,1.745),(6.415,1.915),(6.585,1.915),(6.585,1.745),(6.415,1.745)), ) createRL( tech, net, 'licon', - ((6.415,8.265),(6.415,8.435),(6.585,8.435),(6.585,8.265),(6.415,8.265)), + ((6.415,2.085),(6.415,2.255),(6.585,2.255),(6.585,2.085),(6.415,2.085)), ) createRL( tech, net, 'licon', @@ -19665,7 +19449,7 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,6.48),(6.415,8.52),(6.585,8.52),(6.585,6.48),(6.415,6.48)), + ((6.415,6.655),(6.415,8.345),(6.585,8.345),(6.585,6.655),(6.415,6.655)), ) createRL( tech, net, 'li', @@ -19685,11 +19469,11 @@ def _load(): ) createRL( tech, net, 'li', - ((6.415,1.495),(6.415,2.505),(6.585,2.505),(6.585,1.495),(6.415,1.495)), + ((6.415,1.665),(6.415,2.335),(6.585,2.335),(6.585,1.665),(6.415,1.665)), ) createRL( tech, net, 'li', - ((6.415,2.335),(6.415,6.65),(6.585,6.65),(6.585,2.335),(6.415,2.335)), + ((6.415,2.165),(6.415,6.825),(6.585,6.825),(6.585,2.165),(6.415,2.165)), ) createRL( tech, net, 'li', @@ -19702,11 +19486,11 @@ def _load(): ) createRL( tech, net, 'poly', - ((1.365,4.835),(1.365,5.165),(2.075,5.165),(2.075,4.835),(1.365,4.835)), + ((1.925,4.835),(1.925,5.37),(2.075,5.37),(2.075,4.835),(1.925,4.835)), ) createRL( tech, net, 'poly', - ((1.925,4.835),(1.925,5.37),(2.075,5.37),(2.075,4.835),(1.925,4.835)), + ((1.365,4.835),(1.365,5.165),(2.075,5.165),(2.075,4.835),(1.365,4.835)), ) createRL( tech, net, 'poly', @@ -19726,11 +19510,11 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.925,2.63),(0.925,3.165),(1.075,3.165),(1.075,2.63),(0.925,2.63)), + ((0.925,2.835),(0.925,3.165),(1.635,3.165),(1.635,2.835),(0.925,2.835)), ) createRL( tech, net, 'poly', - ((0.925,2.835),(0.925,3.165),(1.635,3.165),(1.635,2.835),(0.925,2.835)), + ((0.925,2.63),(0.925,3.165),(1.075,3.165),(1.075,2.63),(0.925,2.63)), ) createRL( tech, net, 'poly', @@ -19754,7 +19538,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,2.835),(1.415,3.165),(1.585,3.165),(1.585,2.835),(1.415,2.835)), + ((1.415,4.835),(1.415,5.165),(1.585,5.165),(1.585,4.835),(1.415,4.835)), ) createRL( tech, net, 'li', @@ -19762,7 +19546,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.415,4.835),(1.415,5.165),(1.585,5.165),(1.585,4.835),(1.415,4.835)), + ((1.415,2.835),(1.415,3.165),(1.585,3.165),(1.585,2.835),(1.415,2.835)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -19776,11 +19560,11 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((1.415,2.915),(1.415,3.085),(1.585,3.085),(1.585,2.915),(1.415,2.915)), + ((1.415,4.915),(1.415,5.085),(1.585,5.085),(1.585,4.915),(1.415,4.915)), ) createRL( tech, net, 'licon', - ((1.415,4.915),(1.415,5.085),(1.585,5.085),(1.585,4.915),(1.415,4.915)), + ((1.415,2.915),(1.415,3.085),(1.585,3.085),(1.585,2.915),(1.415,2.915)), ) net = nets['_net1'] createRL( @@ -19818,7 +19602,7 @@ def _load(): ) createRL( tech, net, 'poly', - ((5.925,2.63),(5.925,3.165),(6.075,3.165),(6.075,2.63),(5.925,2.63)), + ((5.365,2.835),(5.365,3.165),(6.075,3.165),(6.075,2.835),(5.365,2.835)), ) createRL( tech, net, 'poly', @@ -19838,23 +19622,23 @@ def _load(): ) createRL( tech, net, 'poly', - ((5.365,2.835),(5.365,3.165),(5.635,3.165),(5.635,2.835),(5.365,2.835)), + ((5.925,6.37),(5.925,8.63),(6.075,8.63),(6.075,6.37),(5.925,6.37)), ) createRL( tech, net, 'poly', - ((5.925,6.37),(5.925,8.63),(6.075,8.63),(6.075,6.37),(5.925,6.37)), + ((4.925,4.835),(4.925,5.37),(5.075,5.37),(5.075,4.835),(4.925,4.835)), ) createRL( tech, net, 'poly', - ((4.925,4.835),(4.925,5.165),(5.635,5.165),(5.635,4.835),(4.925,4.835)), + ((5.365,2.835),(5.365,3.165),(5.635,3.165),(5.635,2.835),(5.365,2.835)), ) createRL( tech, net, 'poly', - ((4.925,4.835),(4.925,5.37),(5.075,5.37),(5.075,4.835),(4.925,4.835)), + ((4.925,4.835),(4.925,5.165),(5.635,5.165),(5.635,4.835),(4.925,4.835)), ) createRL( tech, net, 'poly', - ((5.365,2.835),(5.365,3.165),(6.075,3.165),(6.075,2.835),(5.365,2.835)), + ((5.925,2.63),(5.925,3.165),(6.075,3.165),(6.075,2.63),(5.925,2.63)), ) createRL( tech, net, 'poly', @@ -19904,11 +19688,11 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'licon', - ((5.415,2.915),(5.415,3.085),(5.585,3.085),(5.585,2.915),(5.415,2.915)), + ((5.415,4.915),(5.415,5.085),(5.585,5.085),(5.585,4.915),(5.415,4.915)), ) createRL( tech, net, 'licon', - ((5.415,4.915),(5.415,5.085),(5.585,5.085),(5.585,4.915),(5.415,4.915)), + ((5.415,2.915),(5.415,3.085),(5.585,3.085),(5.585,2.915),(5.415,2.915)), ) createRL( tech, net, 'licon', @@ -19924,8 +19708,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', @@ -19971,8 +19755,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', @@ -19980,7 +19764,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,9.035),(0.415,9.705),(0.585,9.705),(0.585,9.035),(0.415,9.035)), + ((0.415,9.055),(0.415,9.725),(0.585,9.725),(0.585,9.055),(0.415,9.055)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -19998,24 +19782,24 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.875),(0.195,9.865),(0.805,9.865),(0.805,8.875),(0.195,8.875)), + ((0.115,8.915),(0.115,9.865),(0.885,9.865),(0.885,8.915),(0.115,8.915)), ) createRL( tech, net, 'difftap', - ((0.375,9.055),(0.375,9.685),(0.625,9.685),(0.625,9.055),(0.375,9.055)), + ((0.295,9.095),(0.295,9.685),(0.705,9.685),(0.705,9.095),(0.295,9.095)), ) createRL( tech, net, 'licon', - ((0.415,9.115),(0.415,9.285),(0.585,9.285),(0.585,9.115),(0.415,9.115)), + ((0.415,9.135),(0.415,9.305),(0.585,9.305),(0.585,9.135),(0.415,9.135)), ) createRL( tech, net, 'licon', - ((0.415,9.455),(0.415,9.625),(0.585,9.625),(0.585,9.455),(0.415,9.455)), + ((0.415,9.475),(0.415,9.645),(0.585,9.645),(0.585,9.475),(0.415,9.475)), ) net = nets['vss'] createRL( tech, net, 'li', - ((0.415,0.295),(0.415,0.965),(0.585,0.965),(0.585,0.295),(0.415,0.295)), + ((0.415,0.275),(0.415,0.945),(0.585,0.945),(0.585,0.275),(0.415,0.275)), ) createRL( tech, net, 'li', @@ -20033,24 +19817,24 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'difftap', - ((0.375,0.315),(0.375,0.945),(0.625,0.945),(0.625,0.315),(0.375,0.315)), + ((0.295,0.315),(0.295,0.905),(0.705,0.905),(0.705,0.315),(0.295,0.315)), ) createRL( tech, net, 'licon', - ((0.415,0.375),(0.415,0.545),(0.585,0.545),(0.585,0.375),(0.415,0.375)), + ((0.415,0.355),(0.415,0.525),(0.585,0.525),(0.585,0.355),(0.415,0.355)), ) createRL( tech, net, 'licon', - ((0.415,0.715),(0.415,0.885),(0.585,0.885),(0.585,0.715),(0.415,0.715)), + ((0.415,0.695),(0.415,0.865),(0.585,0.865),(0.585,0.695),(0.415,0.695)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.25,0.19),(0.25,1.07),(0.75,1.07),(0.75,0.19),(0.25,0.19)), + ((0.17,0.19),(0.17,1.03),(0.83,1.03),(0.83,0.19),(0.17,0.19)), ) createRL( tech, net, 'nsdm', - ((0.25,8.93),(0.25,9.81),(0.75,9.81),(0.75,8.93),(0.25,8.93)), + ((0.17,8.97),(0.17,9.81),(0.83,9.81),(0.83,8.97),(0.17,8.97)), ) cell = new_cells['tie_diff'] @@ -20063,8 +19847,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', @@ -20151,7 +19935,7 @@ def _load(): net = nets['vss'] createRL( tech, net, 'li', - ((0.415,0.35),(0.415,4.42),(0.585,4.42),(0.585,0.35),(0.415,0.35)), + ((0.415,0.515),(0.415,4.255),(0.585,4.255),(0.585,0.515),(0.415,0.515)), ) createRL( tech, net, 'li', @@ -20173,51 +19957,47 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.415,0.43),(0.415,0.6),(0.585,0.6),(0.585,0.43),(0.415,0.43)), - ) - createRL( - tech, net, 'licon', - ((0.415,0.77),(0.415,0.94),(0.585,0.94),(0.585,0.77),(0.415,0.77)), + ((0.415,0.6),(0.415,0.77),(0.585,0.77),(0.585,0.6),(0.415,0.6)), ) createRL( tech, net, 'licon', - ((0.415,1.11),(0.415,1.28),(0.585,1.28),(0.585,1.11),(0.415,1.11)), + ((0.415,0.94),(0.415,1.11),(0.585,1.11),(0.585,0.94),(0.415,0.94)), ) createRL( tech, net, 'licon', - ((0.415,1.45),(0.415,1.62),(0.585,1.62),(0.585,1.45),(0.415,1.45)), + ((0.415,1.28),(0.415,1.45),(0.585,1.45),(0.585,1.28),(0.415,1.28)), ) createRL( tech, net, 'licon', - ((0.415,1.79),(0.415,1.96),(0.585,1.96),(0.585,1.79),(0.415,1.79)), + ((0.415,1.62),(0.415,1.79),(0.585,1.79),(0.585,1.62),(0.415,1.62)), ) createRL( tech, net, 'licon', - ((0.415,2.13),(0.415,2.3),(0.585,2.3),(0.585,2.13),(0.415,2.13)), + ((0.415,1.96),(0.415,2.13),(0.585,2.13),(0.585,1.96),(0.415,1.96)), ) createRL( tech, net, 'licon', - ((0.415,2.47),(0.415,2.64),(0.585,2.64),(0.585,2.47),(0.415,2.47)), + ((0.415,2.3),(0.415,2.47),(0.585,2.47),(0.585,2.3),(0.415,2.3)), ) createRL( tech, net, 'licon', - ((0.415,2.81),(0.415,2.98),(0.585,2.98),(0.585,2.81),(0.415,2.81)), + ((0.415,2.64),(0.415,2.81),(0.585,2.81),(0.585,2.64),(0.415,2.64)), ) createRL( tech, net, 'licon', - ((0.415,3.15),(0.415,3.32),(0.585,3.32),(0.585,3.15),(0.415,3.15)), + ((0.415,2.98),(0.415,3.15),(0.585,3.15),(0.585,2.98),(0.415,2.98)), ) createRL( tech, net, 'licon', - ((0.415,3.49),(0.415,3.66),(0.585,3.66),(0.585,3.49),(0.415,3.49)), + ((0.415,3.32),(0.415,3.49),(0.585,3.49),(0.585,3.32),(0.415,3.32)), ) createRL( tech, net, 'licon', - ((0.415,3.83),(0.415,4.0),(0.585,4.0),(0.585,3.83),(0.415,3.83)), + ((0.415,3.66),(0.415,3.83),(0.585,3.83),(0.585,3.66),(0.415,3.66)), ) createRL( tech, net, 'licon', - ((0.415,4.17),(0.415,4.34),(0.585,4.34),(0.585,4.17),(0.415,4.17)), + ((0.415,4.0),(0.415,4.17),(0.585,4.17),(0.585,4.0),(0.415,4.0)), ) net = nets['*'] createRL( @@ -20239,8 +20019,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', @@ -20248,7 +20028,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.415,9.035),(0.415,9.705),(0.585,9.705),(0.585,9.035),(0.415,9.035)), + ((0.415,9.055),(0.415,9.725),(0.585,9.725),(0.585,9.055),(0.415,9.055)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -20266,28 +20046,28 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.875),(0.195,9.865),(0.805,9.865),(0.805,8.875),(0.195,8.875)), + ((0.115,8.915),(0.115,9.865),(0.885,9.865),(0.885,8.915),(0.115,8.915)), ) createRL( tech, net, 'difftap', - ((0.375,9.055),(0.375,9.685),(0.625,9.685),(0.625,9.055),(0.375,9.055)), + ((0.295,9.095),(0.295,9.685),(0.705,9.685),(0.705,9.095),(0.295,9.095)), ) createRL( tech, net, 'licon', - ((0.415,9.115),(0.415,9.285),(0.585,9.285),(0.585,9.115),(0.415,9.115)), + ((0.415,9.135),(0.415,9.305),(0.585,9.305),(0.585,9.135),(0.415,9.135)), ) createRL( tech, net, 'licon', - ((0.415,9.455),(0.415,9.625),(0.585,9.625),(0.585,9.455),(0.415,9.455)), + ((0.415,9.475),(0.415,9.645),(0.585,9.645),(0.585,9.475),(0.415,9.475)), ) net = nets['vss'] createRL( tech, net, 'li', - ((0.415,0.995),(0.415,1.325),(0.585,1.325),(0.585,0.995),(0.415,0.995)), + ((0.415,0.275),(0.415,0.945),(0.585,0.945),(0.585,0.275),(0.415,0.275)), ) createRL( tech, net, 'li', - ((0.415,0.295),(0.415,0.965),(0.585,0.965),(0.585,0.295),(0.415,0.295)), + ((0.415,1.06),(0.415,1.39),(0.585,1.39),(0.585,1.06),(0.415,1.06)), ) createRL( tech, net, 'li', @@ -20305,36 +20085,36 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'difftap', - ((0.375,0.315),(0.375,0.945),(0.625,0.945),(0.625,0.315),(0.375,0.315)), + ((0.295,0.315),(0.295,0.905),(0.705,0.905),(0.705,0.315),(0.295,0.315)), ) createRL( tech, net, 'licon', - ((0.415,0.375),(0.415,0.545),(0.585,0.545),(0.585,0.375),(0.415,0.375)), + ((0.415,0.355),(0.415,0.525),(0.585,0.525),(0.585,0.355),(0.415,0.355)), ) createRL( tech, net, 'licon', - ((0.415,0.715),(0.415,0.885),(0.585,0.885),(0.585,0.715),(0.415,0.715)), + ((0.415,0.695),(0.415,0.865),(0.585,0.865),(0.585,0.695),(0.415,0.695)), ) createRL( tech, net, 'licon', - ((0.415,1.075),(0.415,1.245),(0.585,1.245),(0.585,1.075),(0.415,1.075)), + ((0.415,1.14),(0.415,1.31),(0.585,1.31),(0.585,1.14),(0.415,1.14)), ) createRL( tech, net, 'poly', - ((0.105,0.995),(0.105,9.005),(0.895,9.005),(0.895,0.995),(0.105,0.995)), + ((0.105,0.98),(0.105,9.02),(0.895,9.02),(0.895,0.98),(0.105,0.98)), ) createRL( tech, net, 'poly', - ((0.365,0.995),(0.365,1.325),(0.635,1.325),(0.635,0.995),(0.365,0.995)), + ((0.365,1.06),(0.365,1.39),(0.635,1.39),(0.635,1.06),(0.365,1.06)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.25,0.19),(0.25,1.07),(0.75,1.07),(0.75,0.19),(0.25,0.19)), + ((0.17,0.19),(0.17,1.03),(0.83,1.03),(0.83,0.19),(0.17,0.19)), ) createRL( tech, net, 'nsdm', - ((0.25,8.93),(0.25,9.81),(0.75,9.81),(0.75,8.93),(0.25,8.93)), + ((0.17,8.97),(0.17,9.81),(0.83,9.81),(0.83,8.97),(0.17,8.97)), ) cell = new_cells['diode_w1'] @@ -20348,20 +20128,20 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', - ((0.415,5.105),(0.415,8.505),(0.585,8.505),(0.585,5.105),(0.415,5.105)), + ((0.415,8.975),(0.415,9.645),(0.585,9.645),(0.585,8.975),(0.415,8.975)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(1.0,10.0),(1.0,8.8),(0.0,8.8)), + ((0.415,5.105),(0.415,8.505),(0.585,8.505),(0.585,5.105),(0.415,5.105)), ) createRL( tech, net, 'li', - ((0.415,9.035),(0.415,9.705),(0.585,9.705),(0.585,9.035),(0.415,9.035)), + ((0.0,8.8),(0.0,10.0),(1.0,10.0),(1.0,8.8),(0.0,8.8)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -20379,7 +20159,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.195,8.875),(0.195,9.865),(0.805,9.865),(0.805,8.875),(0.195,8.875)), + ((0.195,8.755),(0.195,9.865),(0.805,9.865),(0.805,8.755),(0.195,8.755)), ) createRL( tech, net, 'nwm', @@ -20387,19 +20167,19 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.375,4.98),(0.375,8.63),(0.625,8.63),(0.625,4.98),(0.375,4.98)), + ((0.375,8.935),(0.375,9.685),(0.625,9.685),(0.625,8.935),(0.375,8.935)), ) createRL( tech, net, 'difftap', - ((0.375,9.055),(0.375,9.685),(0.625,9.685),(0.625,9.055),(0.375,9.055)), + ((0.375,4.98),(0.375,8.63),(0.625,8.63),(0.625,4.98),(0.375,4.98)), ) createRL( tech, net, 'licon', - ((0.415,9.115),(0.415,9.285),(0.585,9.285),(0.585,9.115),(0.415,9.115)), + ((0.415,9.055),(0.415,9.225),(0.585,9.225),(0.585,9.055),(0.415,9.055)), ) createRL( tech, net, 'licon', - ((0.415,9.455),(0.415,9.625),(0.585,9.625),(0.585,9.455),(0.415,9.455)), + ((0.415,9.395),(0.415,9.565),(0.585,9.565),(0.585,9.395),(0.415,9.395)), ) createRL( tech, net, 'licon', @@ -20444,11 +20224,11 @@ def _load(): net = nets['vss'] createRL( tech, net, 'li', - ((0.415,1.39),(0.415,4.44),(0.585,4.44),(0.585,1.39),(0.415,1.39)), + ((0.415,0.355),(0.415,1.025),(0.585,1.025),(0.585,0.355),(0.415,0.355)), ) createRL( tech, net, 'li', - ((0.415,0.295),(0.415,0.965),(0.585,0.965),(0.585,0.295),(0.415,0.295)), + ((0.415,1.555),(0.415,4.275),(0.585,4.275),(0.585,1.555),(0.415,1.555)), ) createRL( tech, net, 'li', @@ -20466,60 +20246,56 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'difftap', - ((0.375,1.37),(0.375,4.46),(0.625,4.46),(0.625,1.37),(0.375,1.37)), + ((0.375,0.315),(0.375,1.065),(0.625,1.065),(0.625,0.315),(0.375,0.315)), ) createRL( tech, net, 'difftap', - ((0.375,0.315),(0.375,0.945),(0.625,0.945),(0.625,0.315),(0.375,0.315)), - ) - createRL( - tech, net, 'licon', - ((0.415,1.47),(0.415,1.64),(0.585,1.64),(0.585,1.47),(0.415,1.47)), + ((0.375,1.37),(0.375,4.46),(0.625,4.46),(0.625,1.37),(0.375,1.37)), ) createRL( tech, net, 'licon', - ((0.415,1.81),(0.415,1.98),(0.585,1.98),(0.585,1.81),(0.415,1.81)), + ((0.415,1.64),(0.415,1.81),(0.585,1.81),(0.585,1.64),(0.415,1.64)), ) createRL( tech, net, 'licon', - ((0.415,2.15),(0.415,2.32),(0.585,2.32),(0.585,2.15),(0.415,2.15)), + ((0.415,1.98),(0.415,2.15),(0.585,2.15),(0.585,1.98),(0.415,1.98)), ) createRL( tech, net, 'licon', - ((0.415,2.49),(0.415,2.66),(0.585,2.66),(0.585,2.49),(0.415,2.49)), + ((0.415,2.32),(0.415,2.49),(0.585,2.49),(0.585,2.32),(0.415,2.32)), ) createRL( tech, net, 'licon', - ((0.415,2.83),(0.415,3.0),(0.585,3.0),(0.585,2.83),(0.415,2.83)), + ((0.415,2.66),(0.415,2.83),(0.585,2.83),(0.585,2.66),(0.415,2.66)), ) createRL( tech, net, 'licon', - ((0.415,3.17),(0.415,3.34),(0.585,3.34),(0.585,3.17),(0.415,3.17)), + ((0.415,3.0),(0.415,3.17),(0.585,3.17),(0.585,3.0),(0.415,3.0)), ) createRL( tech, net, 'licon', - ((0.415,3.51),(0.415,3.68),(0.585,3.68),(0.585,3.51),(0.415,3.51)), + ((0.415,3.34),(0.415,3.51),(0.585,3.51),(0.585,3.34),(0.415,3.34)), ) createRL( tech, net, 'licon', - ((0.415,3.85),(0.415,4.02),(0.585,4.02),(0.585,3.85),(0.415,3.85)), + ((0.415,3.68),(0.415,3.85),(0.585,3.85),(0.585,3.68),(0.415,3.68)), ) createRL( tech, net, 'licon', - ((0.415,4.19),(0.415,4.36),(0.585,4.36),(0.585,4.19),(0.415,4.19)), + ((0.415,4.02),(0.415,4.19),(0.585,4.19),(0.585,4.02),(0.415,4.02)), ) createRL( tech, net, 'licon', - ((0.415,0.375),(0.415,0.545),(0.585,0.545),(0.585,0.375),(0.415,0.375)), + ((0.415,0.435),(0.415,0.605),(0.585,0.605),(0.585,0.435),(0.415,0.435)), ) createRL( tech, net, 'licon', - ((0.415,0.715),(0.415,0.885),(0.585,0.885),(0.585,0.715),(0.415,0.715)), + ((0.415,0.775),(0.415,0.945),(0.585,0.945),(0.585,0.775),(0.415,0.775)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.25,0.19),(0.25,1.07),(0.75,1.07),(0.75,0.19),(0.25,0.19)), + ((0.25,0.19),(0.25,1.19),(0.75,1.19),(0.75,0.19),(0.25,0.19)), ) createRL( tech, net, 'psdm', @@ -20527,7 +20303,7 @@ def _load(): ) createRL( tech, net, 'nsdm', - ((0.25,8.93),(0.25,9.81),(0.75,9.81),(0.75,8.93),(0.25,8.93)), + ((0.25,8.81),(0.25,9.81),(0.75,9.81),(0.75,8.81),(0.25,8.81)), ) createRL( tech, net, 'nsdm', @@ -20536,15 +20312,15 @@ def _load(): net = nets['i'] createRL( tech, net, 'li', - ((0.415,1.39),(0.415,8.505),(0.585,8.505),(0.585,1.39),(0.415,1.39)), + ((0.415,1.555),(0.415,8.505),(0.585,8.505),(0.585,1.555),(0.415,1.555)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.5), u(0.17), u(1.39), u(8.505), + u(0.5), u(0.17), u(1.555), u(8.505), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.5), u(0.17), u(1.39), u(8.505), + u(0.5), u(0.17), u(1.555), u(8.505), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -20561,16 +20337,20 @@ def _load(): 'vss': Net.create(cell, 'vss'), 'zero': Net.create(cell, 'zero'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', - ((1.13,5.575),(1.13,10.0),(1.3,10.0),(1.3,5.575),(1.13,5.575)), + ((1.13,5.56),(1.13,8.96),(1.3,8.96),(1.3,5.56),(1.13,5.56)), ) createRL( tech, net, 'li', - ((0.745,9.37),(0.745,9.7),(1.255,9.7),(1.255,9.37),(0.745,9.37)), + ((1.13,5.56),(1.13,10.0),(1.3,10.0),(1.3,5.56),(1.13,5.56)), + ) + createRL( + tech, net, 'li', + ((0.745,9.395),(0.745,9.725),(1.255,9.725),(1.255,9.395),(0.745,9.395)), ) createRL( tech, net, 'li', @@ -20588,27 +20368,23 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'nwm', - ((0.48,5.235),(0.48,8.975),(1.09,8.975),(1.09,5.235),(0.48,5.235)), - ) - createRL( - tech, net, 'nwm', - ((0.525,9.205),(0.525,9.865),(1.475,9.865),(1.475,9.205),(0.525,9.205)), + ((0.48,5.555),(0.48,8.985),(1.09,8.985),(1.09,5.555),(0.48,5.555)), ) createRL( tech, net, 'nwm', - ((0.495,5.105),(0.495,9.285),(1.505,9.285),(1.505,5.105),(0.495,5.105)), + ((0.445,9.255),(0.445,9.865),(1.555,9.865),(1.555,9.255),(0.445,9.255)), ) createRL( tech, net, 'nwm', - ((0.91,5.265),(0.91,9.285),(1.52,9.285),(1.52,5.265),(0.91,5.265)), + ((0.495,5.18),(0.495,9.34),(1.505,9.34),(1.505,5.18),(0.495,5.18)), ) createRL( tech, net, 'nwm', - ((0.91,5.105),(0.91,9.285),(1.52,9.285),(1.52,5.105),(0.91,5.105)), + ((0.91,5.18),(0.91,9.34),(1.52,9.34),(1.52,5.18),(0.91,5.18)), ) createRL( tech, net, 'nwm', - ((0.48,5.105),(0.48,9.285),(1.09,9.285),(1.09,5.105),(0.48,5.105)), + ((0.48,5.18),(0.48,9.34),(1.09,9.34),(1.09,5.18),(0.48,5.18)), ) createRL( tech, net, 'nwm', @@ -20616,252 +20392,244 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.075,5.285),(1.075,9.105),(1.325,9.105),(1.325,5.285),(1.075,5.285)), + ((1.075,5.36),(1.075,9.16),(1.325,9.16),(1.325,5.36),(1.075,5.36)), ) createRL( tech, net, 'difftap', - ((0.705,9.385),(0.705,9.685),(1.295,9.685),(1.295,9.385),(0.705,9.385)), + ((0.625,9.435),(0.625,9.685),(1.375,9.685),(1.375,9.435),(0.625,9.435)), ) createRL( tech, net, 'difftap', - ((0.925,5.285),(0.925,9.105),(1.075,9.105),(1.075,5.285),(0.925,5.285)), + ((0.925,5.36),(0.925,9.16),(1.075,9.16),(1.075,5.36),(0.925,5.36)), ) createRL( tech, net, 'difftap', - ((1.09,5.285),(1.09,9.105),(1.34,9.105),(1.34,5.285),(1.09,5.285)), + ((1.09,5.36),(1.09,9.16),(1.34,9.16),(1.34,5.36),(1.09,5.36)), ) createRL( tech, net, 'licon', - ((0.745,9.45),(0.745,9.62),(0.915,9.62),(0.915,9.45),(0.745,9.45)), + ((0.745,9.475),(0.745,9.645),(0.915,9.645),(0.915,9.475),(0.745,9.475)), ) createRL( tech, net, 'licon', - ((1.085,9.45),(1.085,9.62),(1.255,9.62),(1.255,9.45),(1.085,9.45)), + ((1.085,9.475),(1.085,9.645),(1.255,9.645),(1.255,9.475),(1.085,9.475)), ) - net = nets['vss'] createRL( - tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), + tech, net, 'licon', + ((1.13,5.645),(1.13,5.815),(1.3,5.815),(1.3,5.645),(1.13,5.645)), ) createRL( - tech, net, 'li', - ((1.13,5.575),(1.13,8.975),(1.3,8.975),(1.3,5.575),(1.13,5.575)), + tech, net, 'licon', + ((1.13,5.985),(1.13,6.155),(1.3,6.155),(1.3,5.985),(1.13,5.985)), ) createRL( - tech, net, 'li', - ((0.745,0.3),(0.745,0.63),(1.255,0.63),(1.255,0.3),(0.745,0.3)), + tech, net, 'licon', + ((1.13,6.325),(1.13,6.495),(1.3,6.495),(1.3,6.325),(1.13,6.325)), ) createRL( - tech, net, 'li', - ((0.7,0.0),(0.7,4.055),(0.87,4.055),(0.87,0.0),(0.7,0.0)), + tech, net, 'licon', + ((1.13,6.665),(1.13,6.835),(1.3,6.835),(1.3,6.665),(1.13,6.665)), ) createRL( - tech, net, 'li', - ((0.7,1.005),(0.7,4.055),(0.87,4.055),(0.87,1.005),(0.7,1.005)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(1.0), u(2.0), u(0.0), u(1.2), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(1.0), u(2.0), u(0.0), u(1.2), + tech, net, 'licon', + ((1.13,7.005),(1.13,7.175),(1.3,7.175),(1.3,7.005),(1.13,7.005)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( - tech, net, 'difftap', - ((0.705,0.315),(0.705,0.615),(1.295,0.615),(1.295,0.315),(0.705,0.315)), + tech, net, 'licon', + ((1.13,7.345),(1.13,7.515),(1.3,7.515),(1.3,7.345),(1.13,7.345)), ) createRL( - tech, net, 'difftap', - ((0.675,0.885),(0.675,4.315),(0.925,4.315),(0.925,0.885),(0.675,0.885)), + tech, net, 'licon', + ((1.13,7.685),(1.13,7.855),(1.3,7.855),(1.3,7.685),(1.13,7.685)), ) createRL( - tech, net, 'difftap', - ((0.66,0.885),(0.66,4.175),(0.91,4.175),(0.91,0.885),(0.66,0.885)), + tech, net, 'licon', + ((1.13,8.025),(1.13,8.195),(1.3,8.195),(1.3,8.025),(1.13,8.025)), ) createRL( - tech, net, 'difftap', - ((0.66,0.885),(0.66,4.315),(0.91,4.315),(0.91,0.885),(0.66,0.885)), + tech, net, 'licon', + ((1.13,8.365),(1.13,8.535),(1.3,8.535),(1.3,8.365),(1.13,8.365)), ) createRL( - tech, net, 'difftap', - ((0.925,0.885),(0.925,4.315),(1.075,4.315),(1.075,0.885),(0.925,0.885)), + tech, net, 'licon', + ((1.13,8.705),(1.13,8.875),(1.3,8.875),(1.3,8.705),(1.13,8.705)), ) + net = nets['vss'] createRL( - tech, net, 'difftap', - ((1.09,5.445),(1.09,9.105),(1.34,9.105),(1.34,5.445),(1.09,5.445)), + tech, net, 'li', + ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), ) createRL( - tech, net, 'licon', - ((1.13,5.66),(1.13,5.83),(1.3,5.83),(1.3,5.66),(1.13,5.66)), + tech, net, 'li', + ((0.7,1.01),(0.7,4.06),(0.87,4.06),(0.87,1.01),(0.7,1.01)), ) createRL( - tech, net, 'licon', - ((1.13,6.0),(1.13,6.17),(1.3,6.17),(1.3,6.0),(1.13,6.0)), + tech, net, 'li', + ((0.745,0.275),(0.745,0.605),(1.255,0.605),(1.255,0.275),(0.745,0.275)), ) createRL( - tech, net, 'licon', - ((1.13,6.34),(1.13,6.51),(1.3,6.51),(1.3,6.34),(1.13,6.34)), + tech, net, 'li', + ((0.7,0.0),(0.7,4.06),(0.87,4.06),(0.87,0.0),(0.7,0.0)), ) - createRL( - tech, net, 'licon', - ((1.13,6.68),(1.13,6.85),(1.3,6.85),(1.3,6.68),(1.13,6.68)), + Vertical.create( + net, tech.getLayer('li.pin'), + u(1.0), u(2.0), u(0.0), u(1.2), ) - createRL( - tech, net, 'licon', - ((1.13,7.02),(1.13,7.19),(1.3,7.19),(1.3,7.02),(1.13,7.02)), + pin = Vertical.create( + net, tech.getLayer('li'), + u(1.0), u(2.0), u(0.0), u(1.2), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'licon', - ((1.13,7.36),(1.13,7.53),(1.3,7.53),(1.3,7.36),(1.13,7.36)), + tech, net, 'difftap', + ((0.625,0.315),(0.625,0.565),(1.375,0.565),(1.375,0.315),(0.625,0.315)), ) createRL( - tech, net, 'licon', - ((1.13,7.7),(1.13,7.87),(1.3,7.87),(1.3,7.7),(1.13,7.7)), + tech, net, 'difftap', + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.04),(1.13,8.21),(1.3,8.21),(1.3,8.04),(1.13,8.04)), + tech, net, 'difftap', + ((0.675,0.835),(0.675,4.235),(0.925,4.235),(0.925,0.835),(0.675,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.38),(1.13,8.55),(1.3,8.55),(1.3,8.38),(1.13,8.38)), + tech, net, 'difftap', + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.72),(1.13,8.89),(1.3,8.89),(1.3,8.72),(1.13,8.72)), + tech, net, 'difftap', + ((0.925,0.835),(0.925,4.235),(1.075,4.235),(1.075,0.835),(0.925,0.835)), ) createRL( tech, net, 'licon', - ((0.745,0.38),(0.745,0.55),(0.915,0.55),(0.915,0.38),(0.745,0.38)), + ((0.745,0.355),(0.745,0.525),(0.915,0.525),(0.915,0.355),(0.745,0.355)), ) createRL( tech, net, 'licon', - ((1.085,0.38),(1.085,0.55),(1.255,0.55),(1.255,0.38),(1.085,0.38)), + ((1.085,0.355),(1.085,0.525),(1.255,0.525),(1.255,0.355),(1.085,0.355)), ) createRL( tech, net, 'licon', - ((0.7,1.085),(0.7,1.255),(0.87,1.255),(0.87,1.085),(0.7,1.085)), + ((0.7,1.09),(0.7,1.26),(0.87,1.26),(0.87,1.09),(0.7,1.09)), ) createRL( tech, net, 'licon', - ((0.7,1.425),(0.7,1.595),(0.87,1.595),(0.87,1.425),(0.7,1.425)), + ((0.7,1.43),(0.7,1.6),(0.87,1.6),(0.87,1.43),(0.7,1.43)), ) createRL( tech, net, 'licon', - ((0.7,1.765),(0.7,1.935),(0.87,1.935),(0.87,1.765),(0.7,1.765)), + ((0.7,1.77),(0.7,1.94),(0.87,1.94),(0.87,1.77),(0.7,1.77)), ) createRL( tech, net, 'licon', - ((0.7,2.105),(0.7,2.275),(0.87,2.275),(0.87,2.105),(0.7,2.105)), + ((0.7,2.11),(0.7,2.28),(0.87,2.28),(0.87,2.11),(0.7,2.11)), ) createRL( tech, net, 'licon', - ((0.7,2.445),(0.7,2.615),(0.87,2.615),(0.87,2.445),(0.7,2.445)), + ((0.7,2.45),(0.7,2.62),(0.87,2.62),(0.87,2.45),(0.7,2.45)), ) createRL( tech, net, 'licon', - ((0.7,2.785),(0.7,2.955),(0.87,2.955),(0.87,2.785),(0.7,2.785)), + ((0.7,2.79),(0.7,2.96),(0.87,2.96),(0.87,2.79),(0.7,2.79)), ) createRL( tech, net, 'licon', - ((0.7,3.125),(0.7,3.295),(0.87,3.295),(0.87,3.125),(0.7,3.125)), + ((0.7,3.13),(0.7,3.3),(0.87,3.3),(0.87,3.13),(0.7,3.13)), ) createRL( tech, net, 'licon', - ((0.7,3.465),(0.7,3.635),(0.87,3.635),(0.87,3.465),(0.7,3.465)), + ((0.7,3.47),(0.7,3.64),(0.87,3.64),(0.87,3.47),(0.7,3.47)), ) createRL( tech, net, 'licon', - ((0.7,3.805),(0.7,3.975),(0.87,3.975),(0.87,3.805),(0.7,3.805)), + ((0.7,3.81),(0.7,3.98),(0.87,3.98),(0.87,3.81),(0.7,3.81)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.535,5.29),(0.535,8.92),(1.035,8.92),(1.035,5.29),(0.535,5.29)), - ) - createRL( - tech, net, 'psdm', - ((0.535,5.16),(0.535,9.23),(1.035,9.23),(1.035,5.16),(0.535,5.16)), + ((0.535,5.61),(0.535,8.93),(1.035,8.93),(1.035,5.61),(0.535,5.61)), ) createRL( tech, net, 'psdm', - ((0.58,0.19),(0.58,0.74),(1.42,0.74),(1.42,0.19),(0.58,0.19)), + ((0.535,5.235),(0.535,9.285),(1.035,9.285),(1.035,5.235),(0.535,5.235)), ) createRL( tech, net, 'psdm', - ((0.55,5.16),(0.55,9.23),(1.45,9.23),(1.45,5.16),(0.55,5.16)), + ((0.5,0.19),(0.5,0.69),(1.5,0.69),(1.5,0.19),(0.5,0.19)), ) createRL( tech, net, 'psdm', - ((0.855,5.215),(0.855,9.175),(1.145,9.175),(1.145,5.215),(0.855,5.215)), + ((0.55,5.235),(0.55,9.285),(1.45,9.285),(1.45,5.235),(0.55,5.235)), ) createRL( tech, net, 'psdm', - ((0.965,5.16),(0.965,9.23),(1.465,9.23),(1.465,5.16),(0.965,5.16)), + ((0.855,5.29),(0.855,9.23),(1.145,9.23),(1.145,5.29),(0.855,5.29)), ) createRL( tech, net, 'psdm', - ((0.965,5.32),(0.965,9.23),(1.465,9.23),(1.465,5.32),(0.965,5.32)), + ((0.965,5.235),(0.965,9.285),(1.465,9.285),(1.465,5.235),(0.965,5.235)), ) createRL( tech, net, 'nsdm', - ((0.58,9.26),(0.58,9.81),(1.42,9.81),(1.42,9.26),(0.58,9.26)), + ((0.5,9.31),(0.5,9.81),(1.5,9.81),(1.5,9.31),(0.5,9.31)), ) createRL( tech, net, 'nsdm', - ((0.965,1.125),(0.965,4.335),(1.465,4.335),(1.465,1.125),(0.965,1.125)), + ((0.965,1.09),(0.965,4.03),(1.465,4.03),(1.465,1.09),(0.965,1.09)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.44),(1.035,4.44),(1.035,0.76),(0.535,0.76)), + ((0.855,0.765),(0.855,4.305),(1.145,4.305),(1.145,0.765),(0.855,0.765)), ) createRL( tech, net, 'nsdm', - ((0.55,0.76),(0.55,4.44),(1.45,4.44),(1.45,0.76),(0.55,0.76)), + ((0.55,0.71),(0.55,4.36),(1.45,4.36),(1.45,0.71),(0.55,0.71)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.3),(1.035,4.3),(1.035,0.76),(0.535,0.76)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.855,0.815),(0.855,4.385),(1.145,4.385),(1.145,0.815),(0.855,0.815)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.965,0.76),(0.965,4.44),(1.465,4.44),(1.465,0.76),(0.965,0.76)), + ((0.965,0.71),(0.965,4.36),(1.465,4.36),(1.465,0.71),(0.965,0.71)), ) net = nets['zero'] createRL( tech, net, 'difftap', - ((1.09,1.25),(1.09,4.21),(1.34,4.21),(1.34,1.25),(1.09,1.25)), + ((1.075,0.835),(1.075,4.235),(1.325,4.235),(1.325,0.835),(1.075,0.835)), ) createRL( tech, net, 'difftap', - ((1.075,0.885),(1.075,4.315),(1.325,4.315),(1.325,0.885),(1.075,0.885)), + ((1.09,0.835),(1.09,4.235),(1.34,4.235),(1.34,0.835),(1.09,0.835)), ) createRL( tech, net, 'difftap', - ((1.09,0.885),(1.09,4.315),(1.34,4.315),(1.34,0.885),(1.09,0.885)), + ((1.09,1.215),(1.09,3.905),(1.34,3.905),(1.34,1.215),(1.09,1.215)), + ) + createRL( + tech, net, 'poly', + ((1.05,4.905),(1.05,5.175),(1.38,5.175),(1.38,4.905),(1.05,4.905)), ) createRL( tech, net, 'poly', - ((1.08,4.905),(1.08,5.235),(1.35,5.235),(1.35,4.905),(1.08,4.905)), + ((0.925,4.905),(0.925,9.29),(1.075,9.29),(1.075,4.905),(0.925,4.905)), ) createRL( tech, net, 'poly', - ((0.925,5.155),(0.925,9.235),(1.075,9.235),(1.075,5.155),(0.925,5.155)), + ((0.925,5.23),(0.925,9.29),(1.075,9.29),(1.075,5.23),(0.925,5.23)), ) createRL( tech, net, 'poly', - ((0.925,4.905),(0.925,5.235),(1.35,5.235),(1.35,4.905),(0.925,4.905)), + ((0.925,4.905),(0.925,5.175),(1.38,5.175),(1.38,4.905),(0.925,4.905)), ) createRL( tech, net, 'licon', - ((1.13,4.985),(1.13,5.155),(1.3,5.155),(1.3,4.985),(1.13,4.985)), + ((1.13,4.955),(1.13,5.125),(1.3,5.125),(1.3,4.955),(1.13,4.955)), ) createRL( tech, net, 'licon', @@ -20891,108 +20659,104 @@ def _load(): tech, net, 'licon', ((1.13,3.495),(1.13,3.665),(1.3,3.665),(1.3,3.495),(1.13,3.495)), ) - createRL( - tech, net, 'licon', - ((1.13,3.835),(1.13,4.005),(1.3,4.005),(1.3,3.835),(1.13,3.835)), - ) createRL( tech, net, 'li', - ((1.13,4.905),(1.13,5.235),(1.3,5.235),(1.3,4.905),(1.13,4.905)), + ((1.13,4.875),(1.13,5.205),(1.3,5.205),(1.3,4.875),(1.13,4.875)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,4.09),(1.3,4.09),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,5.205),(1.3,5.205),(1.3,1.37),(1.13,1.37)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,5.235),(1.3,5.235),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,3.75),(1.3,3.75),(1.3,1.37),(1.13,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.215), u(0.17), u(1.37), u(5.235), + u(1.215), u(0.17), u(1.37), u(5.205), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.215), u(0.17), u(1.37), u(5.235), + u(1.215), u(0.17), u(1.37), u(5.205), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['one'] createRL( tech, net, 'poly', - ((0.925,0.755),(0.925,4.445),(1.075,4.445),(1.075,0.755),(0.925,0.755)), + ((0.925,0.705),(0.925,4.365),(1.075,4.365),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(0.92,4.695),(0.92,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(0.95,4.695),(0.95,4.425),(0.62,4.425)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(1.075,4.695),(1.075,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(1.075,4.695),(1.075,4.425),(0.62,4.425)), ) createRL( - tech, net, 'difftap', - ((0.66,5.415),(0.66,8.795),(0.91,8.795),(0.91,5.415),(0.66,5.415)), + tech, net, 'poly', + ((0.925,0.705),(0.925,4.695),(1.075,4.695),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'difftap', - ((0.66,5.285),(0.66,9.105),(0.91,9.105),(0.91,5.285),(0.66,5.285)), + ((0.66,5.735),(0.66,8.805),(0.91,8.805),(0.91,5.735),(0.66,5.735)), ) createRL( tech, net, 'difftap', - ((0.675,5.285),(0.675,9.105),(0.925,9.105),(0.925,5.285),(0.675,5.285)), + ((0.66,5.36),(0.66,9.16),(0.91,9.16),(0.91,5.36),(0.66,5.36)), ) createRL( - tech, net, 'licon', - ((0.7,5.66),(0.7,5.83),(0.87,5.83),(0.87,5.66),(0.7,5.66)), + tech, net, 'difftap', + ((0.675,5.36),(0.675,9.16),(0.925,9.16),(0.925,5.36),(0.675,5.36)), ) createRL( tech, net, 'licon', - ((0.7,6.0),(0.7,6.17),(0.87,6.17),(0.87,6.0),(0.7,6.0)), + ((0.7,4.475),(0.7,4.645),(0.87,4.645),(0.87,4.475),(0.7,4.475)), ) createRL( tech, net, 'licon', - ((0.7,6.34),(0.7,6.51),(0.87,6.51),(0.87,6.34),(0.7,6.34)), + ((0.7,5.995),(0.7,6.165),(0.87,6.165),(0.87,5.995),(0.7,5.995)), ) createRL( tech, net, 'licon', - ((0.7,6.68),(0.7,6.85),(0.87,6.85),(0.87,6.68),(0.7,6.68)), + ((0.7,6.335),(0.7,6.505),(0.87,6.505),(0.87,6.335),(0.7,6.335)), ) createRL( tech, net, 'licon', - ((0.7,7.02),(0.7,7.19),(0.87,7.19),(0.87,7.02),(0.7,7.02)), + ((0.7,6.675),(0.7,6.845),(0.87,6.845),(0.87,6.675),(0.7,6.675)), ) createRL( tech, net, 'licon', - ((0.7,7.36),(0.7,7.53),(0.87,7.53),(0.87,7.36),(0.7,7.36)), + ((0.7,7.015),(0.7,7.185),(0.87,7.185),(0.87,7.015),(0.7,7.015)), ) createRL( tech, net, 'licon', - ((0.7,7.7),(0.7,7.87),(0.87,7.87),(0.87,7.7),(0.7,7.7)), + ((0.7,7.355),(0.7,7.525),(0.87,7.525),(0.87,7.355),(0.7,7.355)), ) createRL( tech, net, 'licon', - ((0.7,8.04),(0.7,8.21),(0.87,8.21),(0.87,8.04),(0.7,8.04)), + ((0.7,7.695),(0.7,7.865),(0.87,7.865),(0.87,7.695),(0.7,7.695)), ) createRL( tech, net, 'licon', - ((0.7,8.38),(0.7,8.55),(0.87,8.55),(0.87,8.38),(0.7,8.38)), + ((0.7,8.035),(0.7,8.205),(0.87,8.205),(0.87,8.035),(0.7,8.035)), ) createRL( tech, net, 'licon', - ((0.7,4.445),(0.7,4.615),(0.87,4.615),(0.87,4.445),(0.7,4.445)), + ((0.7,8.375),(0.7,8.545),(0.87,8.545),(0.87,8.375),(0.7,8.375)), ) createRL( tech, net, 'li', - ((0.7,5.58),(0.7,8.63),(0.87,8.63),(0.87,5.58),(0.7,5.58)), + ((0.7,5.91),(0.7,8.63),(0.87,8.63),(0.87,5.91),(0.7,5.91)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,4.695),(0.87,4.695),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,4.725),(0.87,4.725),(0.87,4.395),(0.7,4.395)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,8.63),(0.87,8.63),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,8.63),(0.87,8.63),(0.87,4.395),(0.7,4.395)), ) cell = new_cells['one_x1'] @@ -21007,16 +20771,20 @@ def _load(): 'vss': Net.create(cell, 'vss'), 'zero': Net.create(cell, 'zero'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', - ((1.13,5.575),(1.13,10.0),(1.3,10.0),(1.3,5.575),(1.13,5.575)), + ((1.13,5.56),(1.13,8.96),(1.3,8.96),(1.3,5.56),(1.13,5.56)), + ) + createRL( + tech, net, 'li', + ((1.13,5.56),(1.13,10.0),(1.3,10.0),(1.3,5.56),(1.13,5.56)), ) createRL( tech, net, 'li', - ((0.745,9.37),(0.745,9.7),(1.255,9.7),(1.255,9.37),(0.745,9.37)), + ((0.745,9.395),(0.745,9.725),(1.255,9.725),(1.255,9.395),(0.745,9.395)), ) createRL( tech, net, 'li', @@ -21034,27 +20802,23 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'nwm', - ((0.48,5.235),(0.48,8.975),(1.09,8.975),(1.09,5.235),(0.48,5.235)), + ((0.48,5.555),(0.48,8.985),(1.09,8.985),(1.09,5.555),(0.48,5.555)), ) createRL( tech, net, 'nwm', - ((0.525,9.205),(0.525,9.865),(1.475,9.865),(1.475,9.205),(0.525,9.205)), + ((0.445,9.255),(0.445,9.865),(1.555,9.865),(1.555,9.255),(0.445,9.255)), ) createRL( tech, net, 'nwm', - ((0.495,5.105),(0.495,9.285),(1.505,9.285),(1.505,5.105),(0.495,5.105)), + ((0.495,5.18),(0.495,9.34),(1.505,9.34),(1.505,5.18),(0.495,5.18)), ) createRL( tech, net, 'nwm', - ((0.91,5.265),(0.91,9.285),(1.52,9.285),(1.52,5.265),(0.91,5.265)), + ((0.91,5.18),(0.91,9.34),(1.52,9.34),(1.52,5.18),(0.91,5.18)), ) createRL( tech, net, 'nwm', - ((0.91,5.105),(0.91,9.285),(1.52,9.285),(1.52,5.105),(0.91,5.105)), - ) - createRL( - tech, net, 'nwm', - ((0.48,5.105),(0.48,9.285),(1.09,9.285),(1.09,5.105),(0.48,5.105)), + ((0.48,5.18),(0.48,9.34),(1.09,9.34),(1.09,5.18),(0.48,5.18)), ) createRL( tech, net, 'nwm', @@ -21062,252 +20826,244 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.075,5.285),(1.075,9.105),(1.325,9.105),(1.325,5.285),(1.075,5.285)), + ((1.075,5.36),(1.075,9.16),(1.325,9.16),(1.325,5.36),(1.075,5.36)), ) createRL( tech, net, 'difftap', - ((0.705,9.385),(0.705,9.685),(1.295,9.685),(1.295,9.385),(0.705,9.385)), + ((0.625,9.435),(0.625,9.685),(1.375,9.685),(1.375,9.435),(0.625,9.435)), ) createRL( tech, net, 'difftap', - ((0.925,5.285),(0.925,9.105),(1.075,9.105),(1.075,5.285),(0.925,5.285)), + ((0.925,5.36),(0.925,9.16),(1.075,9.16),(1.075,5.36),(0.925,5.36)), ) createRL( tech, net, 'difftap', - ((1.09,5.285),(1.09,9.105),(1.34,9.105),(1.34,5.285),(1.09,5.285)), + ((1.09,5.36),(1.09,9.16),(1.34,9.16),(1.34,5.36),(1.09,5.36)), ) createRL( tech, net, 'licon', - ((0.745,9.45),(0.745,9.62),(0.915,9.62),(0.915,9.45),(0.745,9.45)), + ((0.745,9.475),(0.745,9.645),(0.915,9.645),(0.915,9.475),(0.745,9.475)), ) createRL( tech, net, 'licon', - ((1.085,9.45),(1.085,9.62),(1.255,9.62),(1.255,9.45),(1.085,9.45)), + ((1.085,9.475),(1.085,9.645),(1.255,9.645),(1.255,9.475),(1.085,9.475)), ) - net = nets['vss'] createRL( - tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), + tech, net, 'licon', + ((1.13,5.645),(1.13,5.815),(1.3,5.815),(1.3,5.645),(1.13,5.645)), ) createRL( - tech, net, 'li', - ((1.13,5.575),(1.13,8.975),(1.3,8.975),(1.3,5.575),(1.13,5.575)), + tech, net, 'licon', + ((1.13,5.985),(1.13,6.155),(1.3,6.155),(1.3,5.985),(1.13,5.985)), ) createRL( - tech, net, 'li', - ((0.745,0.3),(0.745,0.63),(1.255,0.63),(1.255,0.3),(0.745,0.3)), + tech, net, 'licon', + ((1.13,6.325),(1.13,6.495),(1.3,6.495),(1.3,6.325),(1.13,6.325)), ) createRL( - tech, net, 'li', - ((0.7,0.0),(0.7,4.055),(0.87,4.055),(0.87,0.0),(0.7,0.0)), + tech, net, 'licon', + ((1.13,6.665),(1.13,6.835),(1.3,6.835),(1.3,6.665),(1.13,6.665)), ) createRL( - tech, net, 'li', - ((0.7,1.005),(0.7,4.055),(0.87,4.055),(0.87,1.005),(0.7,1.005)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(1.0), u(2.0), u(0.0), u(1.2), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(1.0), u(2.0), u(0.0), u(1.2), + tech, net, 'licon', + ((1.13,7.005),(1.13,7.175),(1.3,7.175),(1.3,7.005),(1.13,7.005)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( - tech, net, 'difftap', - ((0.705,0.315),(0.705,0.615),(1.295,0.615),(1.295,0.315),(0.705,0.315)), + tech, net, 'licon', + ((1.13,7.345),(1.13,7.515),(1.3,7.515),(1.3,7.345),(1.13,7.345)), ) createRL( - tech, net, 'difftap', - ((0.675,0.885),(0.675,4.315),(0.925,4.315),(0.925,0.885),(0.675,0.885)), + tech, net, 'licon', + ((1.13,7.685),(1.13,7.855),(1.3,7.855),(1.3,7.685),(1.13,7.685)), ) createRL( - tech, net, 'difftap', - ((0.66,0.885),(0.66,4.175),(0.91,4.175),(0.91,0.885),(0.66,0.885)), + tech, net, 'licon', + ((1.13,8.025),(1.13,8.195),(1.3,8.195),(1.3,8.025),(1.13,8.025)), ) createRL( - tech, net, 'difftap', - ((0.66,0.885),(0.66,4.315),(0.91,4.315),(0.91,0.885),(0.66,0.885)), + tech, net, 'licon', + ((1.13,8.365),(1.13,8.535),(1.3,8.535),(1.3,8.365),(1.13,8.365)), ) createRL( - tech, net, 'difftap', - ((0.925,0.885),(0.925,4.315),(1.075,4.315),(1.075,0.885),(0.925,0.885)), + tech, net, 'licon', + ((1.13,8.705),(1.13,8.875),(1.3,8.875),(1.3,8.705),(1.13,8.705)), ) + net = nets['vss'] createRL( - tech, net, 'difftap', - ((1.09,5.445),(1.09,9.105),(1.34,9.105),(1.34,5.445),(1.09,5.445)), + tech, net, 'li', + ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), ) createRL( - tech, net, 'licon', - ((1.13,5.66),(1.13,5.83),(1.3,5.83),(1.3,5.66),(1.13,5.66)), + tech, net, 'li', + ((0.7,1.01),(0.7,4.06),(0.87,4.06),(0.87,1.01),(0.7,1.01)), ) createRL( - tech, net, 'licon', - ((1.13,6.0),(1.13,6.17),(1.3,6.17),(1.3,6.0),(1.13,6.0)), + tech, net, 'li', + ((0.745,0.275),(0.745,0.605),(1.255,0.605),(1.255,0.275),(0.745,0.275)), ) createRL( - tech, net, 'licon', - ((1.13,6.34),(1.13,6.51),(1.3,6.51),(1.3,6.34),(1.13,6.34)), + tech, net, 'li', + ((0.7,0.0),(0.7,4.06),(0.87,4.06),(0.87,0.0),(0.7,0.0)), ) - createRL( - tech, net, 'licon', - ((1.13,6.68),(1.13,6.85),(1.3,6.85),(1.3,6.68),(1.13,6.68)), + Vertical.create( + net, tech.getLayer('li.pin'), + u(1.0), u(2.0), u(0.0), u(1.2), ) - createRL( - tech, net, 'licon', - ((1.13,7.02),(1.13,7.19),(1.3,7.19),(1.3,7.02),(1.13,7.02)), + pin = Vertical.create( + net, tech.getLayer('li'), + u(1.0), u(2.0), u(0.0), u(1.2), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'licon', - ((1.13,7.36),(1.13,7.53),(1.3,7.53),(1.3,7.36),(1.13,7.36)), + tech, net, 'difftap', + ((0.625,0.315),(0.625,0.565),(1.375,0.565),(1.375,0.315),(0.625,0.315)), ) createRL( - tech, net, 'licon', - ((1.13,7.7),(1.13,7.87),(1.3,7.87),(1.3,7.7),(1.13,7.7)), + tech, net, 'difftap', + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.04),(1.13,8.21),(1.3,8.21),(1.3,8.04),(1.13,8.04)), + tech, net, 'difftap', + ((0.675,0.835),(0.675,4.235),(0.925,4.235),(0.925,0.835),(0.675,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.38),(1.13,8.55),(1.3,8.55),(1.3,8.38),(1.13,8.38)), + tech, net, 'difftap', + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.72),(1.13,8.89),(1.3,8.89),(1.3,8.72),(1.13,8.72)), + tech, net, 'difftap', + ((0.925,0.835),(0.925,4.235),(1.075,4.235),(1.075,0.835),(0.925,0.835)), ) createRL( tech, net, 'licon', - ((0.745,0.38),(0.745,0.55),(0.915,0.55),(0.915,0.38),(0.745,0.38)), + ((0.745,0.355),(0.745,0.525),(0.915,0.525),(0.915,0.355),(0.745,0.355)), ) createRL( tech, net, 'licon', - ((1.085,0.38),(1.085,0.55),(1.255,0.55),(1.255,0.38),(1.085,0.38)), + ((1.085,0.355),(1.085,0.525),(1.255,0.525),(1.255,0.355),(1.085,0.355)), ) createRL( tech, net, 'licon', - ((0.7,1.085),(0.7,1.255),(0.87,1.255),(0.87,1.085),(0.7,1.085)), + ((0.7,1.09),(0.7,1.26),(0.87,1.26),(0.87,1.09),(0.7,1.09)), ) createRL( tech, net, 'licon', - ((0.7,1.425),(0.7,1.595),(0.87,1.595),(0.87,1.425),(0.7,1.425)), + ((0.7,1.43),(0.7,1.6),(0.87,1.6),(0.87,1.43),(0.7,1.43)), ) createRL( tech, net, 'licon', - ((0.7,1.765),(0.7,1.935),(0.87,1.935),(0.87,1.765),(0.7,1.765)), + ((0.7,1.77),(0.7,1.94),(0.87,1.94),(0.87,1.77),(0.7,1.77)), ) createRL( tech, net, 'licon', - ((0.7,2.105),(0.7,2.275),(0.87,2.275),(0.87,2.105),(0.7,2.105)), + ((0.7,2.11),(0.7,2.28),(0.87,2.28),(0.87,2.11),(0.7,2.11)), ) createRL( tech, net, 'licon', - ((0.7,2.445),(0.7,2.615),(0.87,2.615),(0.87,2.445),(0.7,2.445)), + ((0.7,2.45),(0.7,2.62),(0.87,2.62),(0.87,2.45),(0.7,2.45)), ) createRL( tech, net, 'licon', - ((0.7,2.785),(0.7,2.955),(0.87,2.955),(0.87,2.785),(0.7,2.785)), + ((0.7,2.79),(0.7,2.96),(0.87,2.96),(0.87,2.79),(0.7,2.79)), ) createRL( tech, net, 'licon', - ((0.7,3.125),(0.7,3.295),(0.87,3.295),(0.87,3.125),(0.7,3.125)), + ((0.7,3.13),(0.7,3.3),(0.87,3.3),(0.87,3.13),(0.7,3.13)), ) createRL( tech, net, 'licon', - ((0.7,3.465),(0.7,3.635),(0.87,3.635),(0.87,3.465),(0.7,3.465)), + ((0.7,3.47),(0.7,3.64),(0.87,3.64),(0.87,3.47),(0.7,3.47)), ) createRL( tech, net, 'licon', - ((0.7,3.805),(0.7,3.975),(0.87,3.975),(0.87,3.805),(0.7,3.805)), + ((0.7,3.81),(0.7,3.98),(0.87,3.98),(0.87,3.81),(0.7,3.81)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.535,5.29),(0.535,8.92),(1.035,8.92),(1.035,5.29),(0.535,5.29)), - ) - createRL( - tech, net, 'psdm', - ((0.535,5.16),(0.535,9.23),(1.035,9.23),(1.035,5.16),(0.535,5.16)), + ((0.535,5.61),(0.535,8.93),(1.035,8.93),(1.035,5.61),(0.535,5.61)), ) createRL( tech, net, 'psdm', - ((0.58,0.19),(0.58,0.74),(1.42,0.74),(1.42,0.19),(0.58,0.19)), + ((0.535,5.235),(0.535,9.285),(1.035,9.285),(1.035,5.235),(0.535,5.235)), ) createRL( tech, net, 'psdm', - ((0.55,5.16),(0.55,9.23),(1.45,9.23),(1.45,5.16),(0.55,5.16)), + ((0.5,0.19),(0.5,0.69),(1.5,0.69),(1.5,0.19),(0.5,0.19)), ) createRL( tech, net, 'psdm', - ((0.855,5.215),(0.855,9.175),(1.145,9.175),(1.145,5.215),(0.855,5.215)), + ((0.55,5.235),(0.55,9.285),(1.45,9.285),(1.45,5.235),(0.55,5.235)), ) createRL( tech, net, 'psdm', - ((0.965,5.16),(0.965,9.23),(1.465,9.23),(1.465,5.16),(0.965,5.16)), + ((0.855,5.29),(0.855,9.23),(1.145,9.23),(1.145,5.29),(0.855,5.29)), ) createRL( tech, net, 'psdm', - ((0.965,5.32),(0.965,9.23),(1.465,9.23),(1.465,5.32),(0.965,5.32)), + ((0.965,5.235),(0.965,9.285),(1.465,9.285),(1.465,5.235),(0.965,5.235)), ) createRL( tech, net, 'nsdm', - ((0.58,9.26),(0.58,9.81),(1.42,9.81),(1.42,9.26),(0.58,9.26)), + ((0.5,9.31),(0.5,9.81),(1.5,9.81),(1.5,9.31),(0.5,9.31)), ) createRL( tech, net, 'nsdm', - ((0.965,1.125),(0.965,4.335),(1.465,4.335),(1.465,1.125),(0.965,1.125)), + ((0.965,1.09),(0.965,4.03),(1.465,4.03),(1.465,1.09),(0.965,1.09)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.44),(1.035,4.44),(1.035,0.76),(0.535,0.76)), + ((0.855,0.765),(0.855,4.305),(1.145,4.305),(1.145,0.765),(0.855,0.765)), ) createRL( tech, net, 'nsdm', - ((0.55,0.76),(0.55,4.44),(1.45,4.44),(1.45,0.76),(0.55,0.76)), + ((0.55,0.71),(0.55,4.36),(1.45,4.36),(1.45,0.71),(0.55,0.71)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.3),(1.035,4.3),(1.035,0.76),(0.535,0.76)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.855,0.815),(0.855,4.385),(1.145,4.385),(1.145,0.815),(0.855,0.815)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.965,0.76),(0.965,4.44),(1.465,4.44),(1.465,0.76),(0.965,0.76)), + ((0.965,0.71),(0.965,4.36),(1.465,4.36),(1.465,0.71),(0.965,0.71)), ) net = nets['zero'] createRL( tech, net, 'difftap', - ((1.09,1.25),(1.09,4.21),(1.34,4.21),(1.34,1.25),(1.09,1.25)), + ((1.075,0.835),(1.075,4.235),(1.325,4.235),(1.325,0.835),(1.075,0.835)), ) createRL( tech, net, 'difftap', - ((1.075,0.885),(1.075,4.315),(1.325,4.315),(1.325,0.885),(1.075,0.885)), + ((1.09,0.835),(1.09,4.235),(1.34,4.235),(1.34,0.835),(1.09,0.835)), ) createRL( tech, net, 'difftap', - ((1.09,0.885),(1.09,4.315),(1.34,4.315),(1.34,0.885),(1.09,0.885)), + ((1.09,1.215),(1.09,3.905),(1.34,3.905),(1.34,1.215),(1.09,1.215)), + ) + createRL( + tech, net, 'poly', + ((1.05,4.905),(1.05,5.175),(1.38,5.175),(1.38,4.905),(1.05,4.905)), ) createRL( tech, net, 'poly', - ((1.08,4.905),(1.08,5.235),(1.35,5.235),(1.35,4.905),(1.08,4.905)), + ((0.925,4.905),(0.925,9.29),(1.075,9.29),(1.075,4.905),(0.925,4.905)), ) createRL( tech, net, 'poly', - ((0.925,5.155),(0.925,9.235),(1.075,9.235),(1.075,5.155),(0.925,5.155)), + ((0.925,5.23),(0.925,9.29),(1.075,9.29),(1.075,5.23),(0.925,5.23)), ) createRL( tech, net, 'poly', - ((0.925,4.905),(0.925,5.235),(1.35,5.235),(1.35,4.905),(0.925,4.905)), + ((0.925,4.905),(0.925,5.175),(1.38,5.175),(1.38,4.905),(0.925,4.905)), ) createRL( tech, net, 'licon', - ((1.13,4.985),(1.13,5.155),(1.3,5.155),(1.3,4.985),(1.13,4.985)), + ((1.13,4.955),(1.13,5.125),(1.3,5.125),(1.3,4.955),(1.13,4.955)), ) createRL( tech, net, 'licon', @@ -21337,106 +21093,102 @@ def _load(): tech, net, 'licon', ((1.13,3.495),(1.13,3.665),(1.3,3.665),(1.3,3.495),(1.13,3.495)), ) - createRL( - tech, net, 'licon', - ((1.13,3.835),(1.13,4.005),(1.3,4.005),(1.3,3.835),(1.13,3.835)), - ) createRL( tech, net, 'li', - ((1.13,4.905),(1.13,5.235),(1.3,5.235),(1.3,4.905),(1.13,4.905)), + ((1.13,4.875),(1.13,5.205),(1.3,5.205),(1.3,4.875),(1.13,4.875)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,4.09),(1.3,4.09),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,5.205),(1.3,5.205),(1.3,1.37),(1.13,1.37)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,5.235),(1.3,5.235),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,3.75),(1.3,3.75),(1.3,1.37),(1.13,1.37)), ) net = nets['one'] createRL( tech, net, 'poly', - ((0.925,0.755),(0.925,4.445),(1.075,4.445),(1.075,0.755),(0.925,0.755)), + ((0.925,0.705),(0.925,4.365),(1.075,4.365),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(0.92,4.695),(0.92,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(0.95,4.695),(0.95,4.425),(0.62,4.425)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(1.075,4.695),(1.075,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(1.075,4.695),(1.075,4.425),(0.62,4.425)), ) createRL( - tech, net, 'difftap', - ((0.66,5.415),(0.66,8.795),(0.91,8.795),(0.91,5.415),(0.66,5.415)), + tech, net, 'poly', + ((0.925,0.705),(0.925,4.695),(1.075,4.695),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'difftap', - ((0.66,5.285),(0.66,9.105),(0.91,9.105),(0.91,5.285),(0.66,5.285)), + ((0.66,5.735),(0.66,8.805),(0.91,8.805),(0.91,5.735),(0.66,5.735)), ) createRL( tech, net, 'difftap', - ((0.675,5.285),(0.675,9.105),(0.925,9.105),(0.925,5.285),(0.675,5.285)), + ((0.66,5.36),(0.66,9.16),(0.91,9.16),(0.91,5.36),(0.66,5.36)), ) createRL( - tech, net, 'licon', - ((0.7,5.66),(0.7,5.83),(0.87,5.83),(0.87,5.66),(0.7,5.66)), + tech, net, 'difftap', + ((0.675,5.36),(0.675,9.16),(0.925,9.16),(0.925,5.36),(0.675,5.36)), ) createRL( tech, net, 'licon', - ((0.7,6.0),(0.7,6.17),(0.87,6.17),(0.87,6.0),(0.7,6.0)), + ((0.7,4.475),(0.7,4.645),(0.87,4.645),(0.87,4.475),(0.7,4.475)), ) createRL( tech, net, 'licon', - ((0.7,6.34),(0.7,6.51),(0.87,6.51),(0.87,6.34),(0.7,6.34)), + ((0.7,5.995),(0.7,6.165),(0.87,6.165),(0.87,5.995),(0.7,5.995)), ) createRL( tech, net, 'licon', - ((0.7,6.68),(0.7,6.85),(0.87,6.85),(0.87,6.68),(0.7,6.68)), + ((0.7,6.335),(0.7,6.505),(0.87,6.505),(0.87,6.335),(0.7,6.335)), ) createRL( tech, net, 'licon', - ((0.7,7.02),(0.7,7.19),(0.87,7.19),(0.87,7.02),(0.7,7.02)), + ((0.7,6.675),(0.7,6.845),(0.87,6.845),(0.87,6.675),(0.7,6.675)), ) createRL( tech, net, 'licon', - ((0.7,7.36),(0.7,7.53),(0.87,7.53),(0.87,7.36),(0.7,7.36)), + ((0.7,7.015),(0.7,7.185),(0.87,7.185),(0.87,7.015),(0.7,7.015)), ) createRL( tech, net, 'licon', - ((0.7,7.7),(0.7,7.87),(0.87,7.87),(0.87,7.7),(0.7,7.7)), + ((0.7,7.355),(0.7,7.525),(0.87,7.525),(0.87,7.355),(0.7,7.355)), ) createRL( tech, net, 'licon', - ((0.7,8.04),(0.7,8.21),(0.87,8.21),(0.87,8.04),(0.7,8.04)), + ((0.7,7.695),(0.7,7.865),(0.87,7.865),(0.87,7.695),(0.7,7.695)), ) createRL( tech, net, 'licon', - ((0.7,8.38),(0.7,8.55),(0.87,8.55),(0.87,8.38),(0.7,8.38)), + ((0.7,8.035),(0.7,8.205),(0.87,8.205),(0.87,8.035),(0.7,8.035)), ) createRL( tech, net, 'licon', - ((0.7,4.445),(0.7,4.615),(0.87,4.615),(0.87,4.445),(0.7,4.445)), + ((0.7,8.375),(0.7,8.545),(0.87,8.545),(0.87,8.375),(0.7,8.375)), ) createRL( tech, net, 'li', - ((0.7,5.58),(0.7,8.63),(0.87,8.63),(0.87,5.58),(0.7,5.58)), + ((0.7,5.91),(0.7,8.63),(0.87,8.63),(0.87,5.91),(0.7,5.91)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,4.695),(0.87,4.695),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,4.725),(0.87,4.725),(0.87,4.395),(0.7,4.395)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,8.63),(0.87,8.63),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,8.63),(0.87,8.63),(0.87,4.395),(0.7,4.395)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.785), u(0.17), u(4.365), u(8.63), + u(0.785), u(0.17), u(4.395), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.785), u(0.17), u(4.365), u(8.63), + u(0.785), u(0.17), u(4.395), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -21453,16 +21205,20 @@ def _load(): 'vss': Net.create(cell, 'vss'), 'zero': Net.create(cell, 'zero'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', - ((1.13,5.575),(1.13,10.0),(1.3,10.0),(1.3,5.575),(1.13,5.575)), + ((1.13,5.56),(1.13,8.96),(1.3,8.96),(1.3,5.56),(1.13,5.56)), + ) + createRL( + tech, net, 'li', + ((1.13,5.56),(1.13,10.0),(1.3,10.0),(1.3,5.56),(1.13,5.56)), ) createRL( tech, net, 'li', - ((0.745,9.37),(0.745,9.7),(1.255,9.7),(1.255,9.37),(0.745,9.37)), + ((0.745,9.395),(0.745,9.725),(1.255,9.725),(1.255,9.395),(0.745,9.395)), ) createRL( tech, net, 'li', @@ -21480,55 +21236,91 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'nwm', - ((0.48,5.235),(0.48,8.975),(1.09,8.975),(1.09,5.235),(0.48,5.235)), + ((0.48,5.555),(0.48,8.985),(1.09,8.985),(1.09,5.555),(0.48,5.555)), + ) + createRL( + tech, net, 'nwm', + ((0.445,9.255),(0.445,9.865),(1.555,9.865),(1.555,9.255),(0.445,9.255)), ) createRL( tech, net, 'nwm', - ((0.525,9.205),(0.525,9.865),(1.475,9.865),(1.475,9.205),(0.525,9.205)), + ((0.495,5.18),(0.495,9.34),(1.505,9.34),(1.505,5.18),(0.495,5.18)), ) createRL( tech, net, 'nwm', - ((0.495,5.105),(0.495,9.285),(1.505,9.285),(1.505,5.105),(0.495,5.105)), + ((0.91,5.18),(0.91,9.34),(1.52,9.34),(1.52,5.18),(0.91,5.18)), ) createRL( tech, net, 'nwm', - ((0.91,5.265),(0.91,9.285),(1.52,9.285),(1.52,5.265),(0.91,5.265)), + ((0.48,5.18),(0.48,9.34),(1.09,9.34),(1.09,5.18),(0.48,5.18)), + ) + createRL( + tech, net, 'nwm', + ((-0.18,4.8),(-0.18,10.18),(2.18,10.18),(2.18,4.8),(-0.18,4.8)), + ) + createRL( + tech, net, 'difftap', + ((1.075,5.36),(1.075,9.16),(1.325,9.16),(1.325,5.36),(1.075,5.36)), + ) + createRL( + tech, net, 'difftap', + ((0.625,9.435),(0.625,9.685),(1.375,9.685),(1.375,9.435),(0.625,9.435)), + ) + createRL( + tech, net, 'difftap', + ((0.925,5.36),(0.925,9.16),(1.075,9.16),(1.075,5.36),(0.925,5.36)), + ) + createRL( + tech, net, 'difftap', + ((1.09,5.36),(1.09,9.16),(1.34,9.16),(1.34,5.36),(1.09,5.36)), + ) + createRL( + tech, net, 'licon', + ((0.745,9.475),(0.745,9.645),(0.915,9.645),(0.915,9.475),(0.745,9.475)), + ) + createRL( + tech, net, 'licon', + ((1.085,9.475),(1.085,9.645),(1.255,9.645),(1.255,9.475),(1.085,9.475)), + ) + createRL( + tech, net, 'licon', + ((1.13,5.645),(1.13,5.815),(1.3,5.815),(1.3,5.645),(1.13,5.645)), ) createRL( - tech, net, 'nwm', - ((0.91,5.105),(0.91,9.285),(1.52,9.285),(1.52,5.105),(0.91,5.105)), + tech, net, 'licon', + ((1.13,5.985),(1.13,6.155),(1.3,6.155),(1.3,5.985),(1.13,5.985)), ) createRL( - tech, net, 'nwm', - ((0.48,5.105),(0.48,9.285),(1.09,9.285),(1.09,5.105),(0.48,5.105)), + tech, net, 'licon', + ((1.13,6.325),(1.13,6.495),(1.3,6.495),(1.3,6.325),(1.13,6.325)), ) createRL( - tech, net, 'nwm', - ((-0.18,4.8),(-0.18,10.18),(2.18,10.18),(2.18,4.8),(-0.18,4.8)), + tech, net, 'licon', + ((1.13,6.665),(1.13,6.835),(1.3,6.835),(1.3,6.665),(1.13,6.665)), ) createRL( - tech, net, 'difftap', - ((1.075,5.285),(1.075,9.105),(1.325,9.105),(1.325,5.285),(1.075,5.285)), + tech, net, 'licon', + ((1.13,7.005),(1.13,7.175),(1.3,7.175),(1.3,7.005),(1.13,7.005)), ) createRL( - tech, net, 'difftap', - ((0.705,9.385),(0.705,9.685),(1.295,9.685),(1.295,9.385),(0.705,9.385)), + tech, net, 'licon', + ((1.13,7.345),(1.13,7.515),(1.3,7.515),(1.3,7.345),(1.13,7.345)), ) createRL( - tech, net, 'difftap', - ((0.925,5.285),(0.925,9.105),(1.075,9.105),(1.075,5.285),(0.925,5.285)), + tech, net, 'licon', + ((1.13,7.685),(1.13,7.855),(1.3,7.855),(1.3,7.685),(1.13,7.685)), ) createRL( - tech, net, 'difftap', - ((1.09,5.285),(1.09,9.105),(1.34,9.105),(1.34,5.285),(1.09,5.285)), + tech, net, 'licon', + ((1.13,8.025),(1.13,8.195),(1.3,8.195),(1.3,8.025),(1.13,8.025)), ) createRL( tech, net, 'licon', - ((0.745,9.45),(0.745,9.62),(0.915,9.62),(0.915,9.45),(0.745,9.45)), + ((1.13,8.365),(1.13,8.535),(1.3,8.535),(1.3,8.365),(1.13,8.365)), ) createRL( tech, net, 'licon', - ((1.085,9.45),(1.085,9.62),(1.255,9.62),(1.255,9.45),(1.085,9.45)), + ((1.13,8.705),(1.13,8.875),(1.3,8.875),(1.3,8.705),(1.13,8.705)), ) net = nets['vss'] createRL( @@ -21537,19 +21329,15 @@ def _load(): ) createRL( tech, net, 'li', - ((1.13,5.575),(1.13,8.975),(1.3,8.975),(1.3,5.575),(1.13,5.575)), + ((0.7,1.01),(0.7,4.06),(0.87,4.06),(0.87,1.01),(0.7,1.01)), ) createRL( tech, net, 'li', - ((0.745,0.3),(0.745,0.63),(1.255,0.63),(1.255,0.3),(0.745,0.3)), + ((0.745,0.275),(0.745,0.605),(1.255,0.605),(1.255,0.275),(0.745,0.275)), ) createRL( tech, net, 'li', - ((0.7,0.0),(0.7,4.055),(0.87,4.055),(0.87,0.0),(0.7,0.0)), - ) - createRL( - tech, net, 'li', - ((0.7,1.005),(0.7,4.055),(0.87,4.055),(0.87,1.005),(0.7,1.005)), + ((0.7,0.0),(0.7,4.06),(0.87,4.06),(0.87,0.0),(0.7,0.0)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -21563,197 +21351,153 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'difftap', - ((0.705,0.315),(0.705,0.615),(1.295,0.615),(1.295,0.315),(0.705,0.315)), - ) - createRL( - tech, net, 'difftap', - ((0.675,0.885),(0.675,4.315),(0.925,4.315),(0.925,0.885),(0.675,0.885)), + ((0.625,0.315),(0.625,0.565),(1.375,0.565),(1.375,0.315),(0.625,0.315)), ) createRL( tech, net, 'difftap', - ((0.66,0.885),(0.66,4.175),(0.91,4.175),(0.91,0.885),(0.66,0.885)), + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( tech, net, 'difftap', - ((0.66,0.885),(0.66,4.315),(0.91,4.315),(0.91,0.885),(0.66,0.885)), + ((0.675,0.835),(0.675,4.235),(0.925,4.235),(0.925,0.835),(0.675,0.835)), ) createRL( tech, net, 'difftap', - ((0.925,0.885),(0.925,4.315),(1.075,4.315),(1.075,0.885),(0.925,0.885)), + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( tech, net, 'difftap', - ((1.09,5.445),(1.09,9.105),(1.34,9.105),(1.34,5.445),(1.09,5.445)), - ) - createRL( - tech, net, 'licon', - ((1.13,5.66),(1.13,5.83),(1.3,5.83),(1.3,5.66),(1.13,5.66)), - ) - createRL( - tech, net, 'licon', - ((1.13,6.0),(1.13,6.17),(1.3,6.17),(1.3,6.0),(1.13,6.0)), - ) - createRL( - tech, net, 'licon', - ((1.13,6.34),(1.13,6.51),(1.3,6.51),(1.3,6.34),(1.13,6.34)), - ) - createRL( - tech, net, 'licon', - ((1.13,6.68),(1.13,6.85),(1.3,6.85),(1.3,6.68),(1.13,6.68)), - ) - createRL( - tech, net, 'licon', - ((1.13,7.02),(1.13,7.19),(1.3,7.19),(1.3,7.02),(1.13,7.02)), - ) - createRL( - tech, net, 'licon', - ((1.13,7.36),(1.13,7.53),(1.3,7.53),(1.3,7.36),(1.13,7.36)), - ) - createRL( - tech, net, 'licon', - ((1.13,7.7),(1.13,7.87),(1.3,7.87),(1.3,7.7),(1.13,7.7)), - ) - createRL( - tech, net, 'licon', - ((1.13,8.04),(1.13,8.21),(1.3,8.21),(1.3,8.04),(1.13,8.04)), - ) - createRL( - tech, net, 'licon', - ((1.13,8.38),(1.13,8.55),(1.3,8.55),(1.3,8.38),(1.13,8.38)), - ) - createRL( - tech, net, 'licon', - ((1.13,8.72),(1.13,8.89),(1.3,8.89),(1.3,8.72),(1.13,8.72)), + ((0.925,0.835),(0.925,4.235),(1.075,4.235),(1.075,0.835),(0.925,0.835)), ) createRL( tech, net, 'licon', - ((0.745,0.38),(0.745,0.55),(0.915,0.55),(0.915,0.38),(0.745,0.38)), + ((0.745,0.355),(0.745,0.525),(0.915,0.525),(0.915,0.355),(0.745,0.355)), ) createRL( tech, net, 'licon', - ((1.085,0.38),(1.085,0.55),(1.255,0.55),(1.255,0.38),(1.085,0.38)), + ((1.085,0.355),(1.085,0.525),(1.255,0.525),(1.255,0.355),(1.085,0.355)), ) createRL( tech, net, 'licon', - ((0.7,1.085),(0.7,1.255),(0.87,1.255),(0.87,1.085),(0.7,1.085)), + ((0.7,1.09),(0.7,1.26),(0.87,1.26),(0.87,1.09),(0.7,1.09)), ) createRL( tech, net, 'licon', - ((0.7,1.425),(0.7,1.595),(0.87,1.595),(0.87,1.425),(0.7,1.425)), + ((0.7,1.43),(0.7,1.6),(0.87,1.6),(0.87,1.43),(0.7,1.43)), ) createRL( tech, net, 'licon', - ((0.7,1.765),(0.7,1.935),(0.87,1.935),(0.87,1.765),(0.7,1.765)), + ((0.7,1.77),(0.7,1.94),(0.87,1.94),(0.87,1.77),(0.7,1.77)), ) createRL( tech, net, 'licon', - ((0.7,2.105),(0.7,2.275),(0.87,2.275),(0.87,2.105),(0.7,2.105)), + ((0.7,2.11),(0.7,2.28),(0.87,2.28),(0.87,2.11),(0.7,2.11)), ) createRL( tech, net, 'licon', - ((0.7,2.445),(0.7,2.615),(0.87,2.615),(0.87,2.445),(0.7,2.445)), + ((0.7,2.45),(0.7,2.62),(0.87,2.62),(0.87,2.45),(0.7,2.45)), ) createRL( tech, net, 'licon', - ((0.7,2.785),(0.7,2.955),(0.87,2.955),(0.87,2.785),(0.7,2.785)), + ((0.7,2.79),(0.7,2.96),(0.87,2.96),(0.87,2.79),(0.7,2.79)), ) createRL( tech, net, 'licon', - ((0.7,3.125),(0.7,3.295),(0.87,3.295),(0.87,3.125),(0.7,3.125)), + ((0.7,3.13),(0.7,3.3),(0.87,3.3),(0.87,3.13),(0.7,3.13)), ) createRL( tech, net, 'licon', - ((0.7,3.465),(0.7,3.635),(0.87,3.635),(0.87,3.465),(0.7,3.465)), + ((0.7,3.47),(0.7,3.64),(0.87,3.64),(0.87,3.47),(0.7,3.47)), ) createRL( tech, net, 'licon', - ((0.7,3.805),(0.7,3.975),(0.87,3.975),(0.87,3.805),(0.7,3.805)), + ((0.7,3.81),(0.7,3.98),(0.87,3.98),(0.87,3.81),(0.7,3.81)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.535,5.29),(0.535,8.92),(1.035,8.92),(1.035,5.29),(0.535,5.29)), + ((0.535,5.61),(0.535,8.93),(1.035,8.93),(1.035,5.61),(0.535,5.61)), ) createRL( tech, net, 'psdm', - ((0.535,5.16),(0.535,9.23),(1.035,9.23),(1.035,5.16),(0.535,5.16)), + ((0.535,5.235),(0.535,9.285),(1.035,9.285),(1.035,5.235),(0.535,5.235)), ) createRL( tech, net, 'psdm', - ((0.58,0.19),(0.58,0.74),(1.42,0.74),(1.42,0.19),(0.58,0.19)), + ((0.5,0.19),(0.5,0.69),(1.5,0.69),(1.5,0.19),(0.5,0.19)), ) createRL( tech, net, 'psdm', - ((0.55,5.16),(0.55,9.23),(1.45,9.23),(1.45,5.16),(0.55,5.16)), + ((0.55,5.235),(0.55,9.285),(1.45,9.285),(1.45,5.235),(0.55,5.235)), ) createRL( tech, net, 'psdm', - ((0.855,5.215),(0.855,9.175),(1.145,9.175),(1.145,5.215),(0.855,5.215)), + ((0.855,5.29),(0.855,9.23),(1.145,9.23),(1.145,5.29),(0.855,5.29)), ) createRL( tech, net, 'psdm', - ((0.965,5.16),(0.965,9.23),(1.465,9.23),(1.465,5.16),(0.965,5.16)), - ) - createRL( - tech, net, 'psdm', - ((0.965,5.32),(0.965,9.23),(1.465,9.23),(1.465,5.32),(0.965,5.32)), + ((0.965,5.235),(0.965,9.285),(1.465,9.285),(1.465,5.235),(0.965,5.235)), ) createRL( tech, net, 'nsdm', - ((0.58,9.26),(0.58,9.81),(1.42,9.81),(1.42,9.26),(0.58,9.26)), + ((0.5,9.31),(0.5,9.81),(1.5,9.81),(1.5,9.31),(0.5,9.31)), ) createRL( tech, net, 'nsdm', - ((0.965,1.125),(0.965,4.335),(1.465,4.335),(1.465,1.125),(0.965,1.125)), + ((0.965,1.09),(0.965,4.03),(1.465,4.03),(1.465,1.09),(0.965,1.09)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.44),(1.035,4.44),(1.035,0.76),(0.535,0.76)), + ((0.855,0.765),(0.855,4.305),(1.145,4.305),(1.145,0.765),(0.855,0.765)), ) createRL( tech, net, 'nsdm', - ((0.55,0.76),(0.55,4.44),(1.45,4.44),(1.45,0.76),(0.55,0.76)), + ((0.55,0.71),(0.55,4.36),(1.45,4.36),(1.45,0.71),(0.55,0.71)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.3),(1.035,4.3),(1.035,0.76),(0.535,0.76)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.855,0.815),(0.855,4.385),(1.145,4.385),(1.145,0.815),(0.855,0.815)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.965,0.76),(0.965,4.44),(1.465,4.44),(1.465,0.76),(0.965,0.76)), + ((0.965,0.71),(0.965,4.36),(1.465,4.36),(1.465,0.71),(0.965,0.71)), ) net = nets['zero'] createRL( tech, net, 'difftap', - ((1.09,1.25),(1.09,4.21),(1.34,4.21),(1.34,1.25),(1.09,1.25)), + ((1.075,0.835),(1.075,4.235),(1.325,4.235),(1.325,0.835),(1.075,0.835)), ) createRL( tech, net, 'difftap', - ((1.075,0.885),(1.075,4.315),(1.325,4.315),(1.325,0.885),(1.075,0.885)), + ((1.09,0.835),(1.09,4.235),(1.34,4.235),(1.34,0.835),(1.09,0.835)), ) createRL( tech, net, 'difftap', - ((1.09,0.885),(1.09,4.315),(1.34,4.315),(1.34,0.885),(1.09,0.885)), + ((1.09,1.215),(1.09,3.905),(1.34,3.905),(1.34,1.215),(1.09,1.215)), + ) + createRL( + tech, net, 'poly', + ((1.05,4.905),(1.05,5.175),(1.38,5.175),(1.38,4.905),(1.05,4.905)), ) createRL( tech, net, 'poly', - ((1.08,4.905),(1.08,5.235),(1.35,5.235),(1.35,4.905),(1.08,4.905)), + ((0.925,4.905),(0.925,9.29),(1.075,9.29),(1.075,4.905),(0.925,4.905)), ) createRL( tech, net, 'poly', - ((0.925,5.155),(0.925,9.235),(1.075,9.235),(1.075,5.155),(0.925,5.155)), + ((0.925,5.23),(0.925,9.29),(1.075,9.29),(1.075,5.23),(0.925,5.23)), ) createRL( tech, net, 'poly', - ((0.925,4.905),(0.925,5.235),(1.35,5.235),(1.35,4.905),(0.925,4.905)), + ((0.925,4.905),(0.925,5.175),(1.38,5.175),(1.38,4.905),(0.925,4.905)), ) createRL( tech, net, 'licon', - ((1.13,4.985),(1.13,5.155),(1.3,5.155),(1.3,4.985),(1.13,4.985)), + ((1.13,4.955),(1.13,5.125),(1.3,5.125),(1.3,4.955),(1.13,4.955)), ) createRL( tech, net, 'licon', @@ -21783,116 +21527,112 @@ def _load(): tech, net, 'licon', ((1.13,3.495),(1.13,3.665),(1.3,3.665),(1.3,3.495),(1.13,3.495)), ) - createRL( - tech, net, 'licon', - ((1.13,3.835),(1.13,4.005),(1.3,4.005),(1.3,3.835),(1.13,3.835)), - ) createRL( tech, net, 'li', - ((1.13,4.905),(1.13,5.235),(1.3,5.235),(1.3,4.905),(1.13,4.905)), + ((1.13,4.875),(1.13,5.205),(1.3,5.205),(1.3,4.875),(1.13,4.875)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,4.09),(1.3,4.09),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,5.205),(1.3,5.205),(1.3,1.37),(1.13,1.37)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,5.235),(1.3,5.235),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,3.75),(1.3,3.75),(1.3,1.37),(1.13,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.215), u(0.17), u(1.37), u(5.235), + u(1.215), u(0.17), u(1.37), u(5.205), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.215), u(0.17), u(1.37), u(5.235), + u(1.215), u(0.17), u(1.37), u(5.205), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['one'] createRL( tech, net, 'poly', - ((0.925,0.755),(0.925,4.445),(1.075,4.445),(1.075,0.755),(0.925,0.755)), + ((0.925,0.705),(0.925,4.365),(1.075,4.365),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(0.92,4.695),(0.92,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(0.95,4.695),(0.95,4.425),(0.62,4.425)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(1.075,4.695),(1.075,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(1.075,4.695),(1.075,4.425),(0.62,4.425)), ) createRL( - tech, net, 'difftap', - ((0.66,5.415),(0.66,8.795),(0.91,8.795),(0.91,5.415),(0.66,5.415)), + tech, net, 'poly', + ((0.925,0.705),(0.925,4.695),(1.075,4.695),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'difftap', - ((0.66,5.285),(0.66,9.105),(0.91,9.105),(0.91,5.285),(0.66,5.285)), + ((0.66,5.735),(0.66,8.805),(0.91,8.805),(0.91,5.735),(0.66,5.735)), ) createRL( tech, net, 'difftap', - ((0.675,5.285),(0.675,9.105),(0.925,9.105),(0.925,5.285),(0.675,5.285)), + ((0.66,5.36),(0.66,9.16),(0.91,9.16),(0.91,5.36),(0.66,5.36)), ) createRL( - tech, net, 'licon', - ((0.7,5.66),(0.7,5.83),(0.87,5.83),(0.87,5.66),(0.7,5.66)), + tech, net, 'difftap', + ((0.675,5.36),(0.675,9.16),(0.925,9.16),(0.925,5.36),(0.675,5.36)), ) createRL( tech, net, 'licon', - ((0.7,6.0),(0.7,6.17),(0.87,6.17),(0.87,6.0),(0.7,6.0)), + ((0.7,4.475),(0.7,4.645),(0.87,4.645),(0.87,4.475),(0.7,4.475)), ) createRL( tech, net, 'licon', - ((0.7,6.34),(0.7,6.51),(0.87,6.51),(0.87,6.34),(0.7,6.34)), + ((0.7,5.995),(0.7,6.165),(0.87,6.165),(0.87,5.995),(0.7,5.995)), ) createRL( tech, net, 'licon', - ((0.7,6.68),(0.7,6.85),(0.87,6.85),(0.87,6.68),(0.7,6.68)), + ((0.7,6.335),(0.7,6.505),(0.87,6.505),(0.87,6.335),(0.7,6.335)), ) createRL( tech, net, 'licon', - ((0.7,7.02),(0.7,7.19),(0.87,7.19),(0.87,7.02),(0.7,7.02)), + ((0.7,6.675),(0.7,6.845),(0.87,6.845),(0.87,6.675),(0.7,6.675)), ) createRL( tech, net, 'licon', - ((0.7,7.36),(0.7,7.53),(0.87,7.53),(0.87,7.36),(0.7,7.36)), + ((0.7,7.015),(0.7,7.185),(0.87,7.185),(0.87,7.015),(0.7,7.015)), ) createRL( tech, net, 'licon', - ((0.7,7.7),(0.7,7.87),(0.87,7.87),(0.87,7.7),(0.7,7.7)), + ((0.7,7.355),(0.7,7.525),(0.87,7.525),(0.87,7.355),(0.7,7.355)), ) createRL( tech, net, 'licon', - ((0.7,8.04),(0.7,8.21),(0.87,8.21),(0.87,8.04),(0.7,8.04)), + ((0.7,7.695),(0.7,7.865),(0.87,7.865),(0.87,7.695),(0.7,7.695)), ) createRL( tech, net, 'licon', - ((0.7,8.38),(0.7,8.55),(0.87,8.55),(0.87,8.38),(0.7,8.38)), + ((0.7,8.035),(0.7,8.205),(0.87,8.205),(0.87,8.035),(0.7,8.035)), ) createRL( tech, net, 'licon', - ((0.7,4.445),(0.7,4.615),(0.87,4.615),(0.87,4.445),(0.7,4.445)), + ((0.7,8.375),(0.7,8.545),(0.87,8.545),(0.87,8.375),(0.7,8.375)), ) createRL( tech, net, 'li', - ((0.7,5.58),(0.7,8.63),(0.87,8.63),(0.87,5.58),(0.7,5.58)), + ((0.7,5.91),(0.7,8.63),(0.87,8.63),(0.87,5.91),(0.7,5.91)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,4.695),(0.87,4.695),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,4.725),(0.87,4.725),(0.87,4.395),(0.7,4.395)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,8.63),(0.87,8.63),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,8.63),(0.87,8.63),(0.87,4.395),(0.7,4.395)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.785), u(0.17), u(4.365), u(8.63), + u(0.785), u(0.17), u(4.395), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.785), u(0.17), u(4.365), u(8.63), + u(0.785), u(0.17), u(4.395), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -21909,16 +21649,20 @@ def _load(): 'vss': Net.create(cell, 'vss'), 'zero': Net.create(cell, 'zero'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vdd'] createRL( tech, net, 'li', - ((1.13,5.575),(1.13,10.0),(1.3,10.0),(1.3,5.575),(1.13,5.575)), + ((1.13,5.56),(1.13,8.96),(1.3,8.96),(1.3,5.56),(1.13,5.56)), + ) + createRL( + tech, net, 'li', + ((1.13,5.56),(1.13,10.0),(1.3,10.0),(1.3,5.56),(1.13,5.56)), ) createRL( tech, net, 'li', - ((0.745,9.37),(0.745,9.7),(1.255,9.7),(1.255,9.37),(0.745,9.37)), + ((0.745,9.395),(0.745,9.725),(1.255,9.725),(1.255,9.395),(0.745,9.395)), ) createRL( tech, net, 'li', @@ -21936,27 +21680,23 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'nwm', - ((0.48,5.235),(0.48,8.975),(1.09,8.975),(1.09,5.235),(0.48,5.235)), - ) - createRL( - tech, net, 'nwm', - ((0.525,9.205),(0.525,9.865),(1.475,9.865),(1.475,9.205),(0.525,9.205)), + ((0.48,5.555),(0.48,8.985),(1.09,8.985),(1.09,5.555),(0.48,5.555)), ) createRL( tech, net, 'nwm', - ((0.495,5.105),(0.495,9.285),(1.505,9.285),(1.505,5.105),(0.495,5.105)), + ((0.445,9.255),(0.445,9.865),(1.555,9.865),(1.555,9.255),(0.445,9.255)), ) createRL( tech, net, 'nwm', - ((0.91,5.265),(0.91,9.285),(1.52,9.285),(1.52,5.265),(0.91,5.265)), + ((0.495,5.18),(0.495,9.34),(1.505,9.34),(1.505,5.18),(0.495,5.18)), ) createRL( tech, net, 'nwm', - ((0.91,5.105),(0.91,9.285),(1.52,9.285),(1.52,5.105),(0.91,5.105)), + ((0.91,5.18),(0.91,9.34),(1.52,9.34),(1.52,5.18),(0.91,5.18)), ) createRL( tech, net, 'nwm', - ((0.48,5.105),(0.48,9.285),(1.09,9.285),(1.09,5.105),(0.48,5.105)), + ((0.48,5.18),(0.48,9.34),(1.09,9.34),(1.09,5.18),(0.48,5.18)), ) createRL( tech, net, 'nwm', @@ -21964,252 +21704,244 @@ def _load(): ) createRL( tech, net, 'difftap', - ((1.075,5.285),(1.075,9.105),(1.325,9.105),(1.325,5.285),(1.075,5.285)), + ((1.075,5.36),(1.075,9.16),(1.325,9.16),(1.325,5.36),(1.075,5.36)), ) createRL( tech, net, 'difftap', - ((0.705,9.385),(0.705,9.685),(1.295,9.685),(1.295,9.385),(0.705,9.385)), + ((0.625,9.435),(0.625,9.685),(1.375,9.685),(1.375,9.435),(0.625,9.435)), ) createRL( tech, net, 'difftap', - ((0.925,5.285),(0.925,9.105),(1.075,9.105),(1.075,5.285),(0.925,5.285)), + ((0.925,5.36),(0.925,9.16),(1.075,9.16),(1.075,5.36),(0.925,5.36)), ) createRL( tech, net, 'difftap', - ((1.09,5.285),(1.09,9.105),(1.34,9.105),(1.34,5.285),(1.09,5.285)), + ((1.09,5.36),(1.09,9.16),(1.34,9.16),(1.34,5.36),(1.09,5.36)), ) createRL( tech, net, 'licon', - ((0.745,9.45),(0.745,9.62),(0.915,9.62),(0.915,9.45),(0.745,9.45)), + ((0.745,9.475),(0.745,9.645),(0.915,9.645),(0.915,9.475),(0.745,9.475)), ) createRL( tech, net, 'licon', - ((1.085,9.45),(1.085,9.62),(1.255,9.62),(1.255,9.45),(1.085,9.45)), + ((1.085,9.475),(1.085,9.645),(1.255,9.645),(1.255,9.475),(1.085,9.475)), ) - net = nets['vss'] createRL( - tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), + tech, net, 'licon', + ((1.13,5.645),(1.13,5.815),(1.3,5.815),(1.3,5.645),(1.13,5.645)), ) createRL( - tech, net, 'li', - ((1.13,5.575),(1.13,8.975),(1.3,8.975),(1.3,5.575),(1.13,5.575)), + tech, net, 'licon', + ((1.13,5.985),(1.13,6.155),(1.3,6.155),(1.3,5.985),(1.13,5.985)), ) createRL( - tech, net, 'li', - ((0.745,0.3),(0.745,0.63),(1.255,0.63),(1.255,0.3),(0.745,0.3)), + tech, net, 'licon', + ((1.13,6.325),(1.13,6.495),(1.3,6.495),(1.3,6.325),(1.13,6.325)), ) createRL( - tech, net, 'li', - ((0.7,0.0),(0.7,4.055),(0.87,4.055),(0.87,0.0),(0.7,0.0)), + tech, net, 'licon', + ((1.13,6.665),(1.13,6.835),(1.3,6.835),(1.3,6.665),(1.13,6.665)), ) createRL( - tech, net, 'li', - ((0.7,1.005),(0.7,4.055),(0.87,4.055),(0.87,1.005),(0.7,1.005)), - ) - Vertical.create( - net, tech.getLayer('li.pin'), - u(1.0), u(2.0), u(0.0), u(1.2), - ) - pin = Vertical.create( - net, tech.getLayer('li'), - u(1.0), u(2.0), u(0.0), u(1.2), + tech, net, 'licon', + ((1.13,7.005),(1.13,7.175),(1.3,7.175),(1.3,7.005),(1.13,7.005)), ) - net.setExternal(True) - NetExternalComponents.setExternal(pin) createRL( - tech, net, 'difftap', - ((0.705,0.315),(0.705,0.615),(1.295,0.615),(1.295,0.315),(0.705,0.315)), + tech, net, 'licon', + ((1.13,7.345),(1.13,7.515),(1.3,7.515),(1.3,7.345),(1.13,7.345)), ) createRL( - tech, net, 'difftap', - ((0.675,0.885),(0.675,4.315),(0.925,4.315),(0.925,0.885),(0.675,0.885)), + tech, net, 'licon', + ((1.13,7.685),(1.13,7.855),(1.3,7.855),(1.3,7.685),(1.13,7.685)), ) createRL( - tech, net, 'difftap', - ((0.66,0.885),(0.66,4.175),(0.91,4.175),(0.91,0.885),(0.66,0.885)), + tech, net, 'licon', + ((1.13,8.025),(1.13,8.195),(1.3,8.195),(1.3,8.025),(1.13,8.025)), ) createRL( - tech, net, 'difftap', - ((0.66,0.885),(0.66,4.315),(0.91,4.315),(0.91,0.885),(0.66,0.885)), + tech, net, 'licon', + ((1.13,8.365),(1.13,8.535),(1.3,8.535),(1.3,8.365),(1.13,8.365)), ) createRL( - tech, net, 'difftap', - ((0.925,0.885),(0.925,4.315),(1.075,4.315),(1.075,0.885),(0.925,0.885)), + tech, net, 'licon', + ((1.13,8.705),(1.13,8.875),(1.3,8.875),(1.3,8.705),(1.13,8.705)), ) + net = nets['vss'] createRL( - tech, net, 'difftap', - ((1.09,5.445),(1.09,9.105),(1.34,9.105),(1.34,5.445),(1.09,5.445)), + tech, net, 'li', + ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), ) createRL( - tech, net, 'licon', - ((1.13,5.66),(1.13,5.83),(1.3,5.83),(1.3,5.66),(1.13,5.66)), + tech, net, 'li', + ((0.7,1.01),(0.7,4.06),(0.87,4.06),(0.87,1.01),(0.7,1.01)), ) createRL( - tech, net, 'licon', - ((1.13,6.0),(1.13,6.17),(1.3,6.17),(1.3,6.0),(1.13,6.0)), + tech, net, 'li', + ((0.745,0.275),(0.745,0.605),(1.255,0.605),(1.255,0.275),(0.745,0.275)), ) createRL( - tech, net, 'licon', - ((1.13,6.34),(1.13,6.51),(1.3,6.51),(1.3,6.34),(1.13,6.34)), + tech, net, 'li', + ((0.7,0.0),(0.7,4.06),(0.87,4.06),(0.87,0.0),(0.7,0.0)), ) - createRL( - tech, net, 'licon', - ((1.13,6.68),(1.13,6.85),(1.3,6.85),(1.3,6.68),(1.13,6.68)), + Vertical.create( + net, tech.getLayer('li.pin'), + u(1.0), u(2.0), u(0.0), u(1.2), ) - createRL( - tech, net, 'licon', - ((1.13,7.02),(1.13,7.19),(1.3,7.19),(1.3,7.02),(1.13,7.02)), + pin = Vertical.create( + net, tech.getLayer('li'), + u(1.0), u(2.0), u(0.0), u(1.2), ) + net.setExternal(True) + NetExternalComponents.setExternal(pin) createRL( - tech, net, 'licon', - ((1.13,7.36),(1.13,7.53),(1.3,7.53),(1.3,7.36),(1.13,7.36)), + tech, net, 'difftap', + ((0.625,0.315),(0.625,0.565),(1.375,0.565),(1.375,0.315),(0.625,0.315)), ) createRL( - tech, net, 'licon', - ((1.13,7.7),(1.13,7.87),(1.3,7.87),(1.3,7.7),(1.13,7.7)), + tech, net, 'difftap', + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.04),(1.13,8.21),(1.3,8.21),(1.3,8.04),(1.13,8.04)), + tech, net, 'difftap', + ((0.675,0.835),(0.675,4.235),(0.925,4.235),(0.925,0.835),(0.675,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.38),(1.13,8.55),(1.3,8.55),(1.3,8.38),(1.13,8.38)), + tech, net, 'difftap', + ((0.66,0.835),(0.66,4.235),(0.91,4.235),(0.91,0.835),(0.66,0.835)), ) createRL( - tech, net, 'licon', - ((1.13,8.72),(1.13,8.89),(1.3,8.89),(1.3,8.72),(1.13,8.72)), + tech, net, 'difftap', + ((0.925,0.835),(0.925,4.235),(1.075,4.235),(1.075,0.835),(0.925,0.835)), ) createRL( tech, net, 'licon', - ((0.745,0.38),(0.745,0.55),(0.915,0.55),(0.915,0.38),(0.745,0.38)), + ((0.745,0.355),(0.745,0.525),(0.915,0.525),(0.915,0.355),(0.745,0.355)), ) createRL( tech, net, 'licon', - ((1.085,0.38),(1.085,0.55),(1.255,0.55),(1.255,0.38),(1.085,0.38)), + ((1.085,0.355),(1.085,0.525),(1.255,0.525),(1.255,0.355),(1.085,0.355)), ) createRL( tech, net, 'licon', - ((0.7,1.085),(0.7,1.255),(0.87,1.255),(0.87,1.085),(0.7,1.085)), + ((0.7,1.09),(0.7,1.26),(0.87,1.26),(0.87,1.09),(0.7,1.09)), ) createRL( tech, net, 'licon', - ((0.7,1.425),(0.7,1.595),(0.87,1.595),(0.87,1.425),(0.7,1.425)), + ((0.7,1.43),(0.7,1.6),(0.87,1.6),(0.87,1.43),(0.7,1.43)), ) createRL( tech, net, 'licon', - ((0.7,1.765),(0.7,1.935),(0.87,1.935),(0.87,1.765),(0.7,1.765)), + ((0.7,1.77),(0.7,1.94),(0.87,1.94),(0.87,1.77),(0.7,1.77)), ) createRL( tech, net, 'licon', - ((0.7,2.105),(0.7,2.275),(0.87,2.275),(0.87,2.105),(0.7,2.105)), + ((0.7,2.11),(0.7,2.28),(0.87,2.28),(0.87,2.11),(0.7,2.11)), ) createRL( tech, net, 'licon', - ((0.7,2.445),(0.7,2.615),(0.87,2.615),(0.87,2.445),(0.7,2.445)), + ((0.7,2.45),(0.7,2.62),(0.87,2.62),(0.87,2.45),(0.7,2.45)), ) createRL( tech, net, 'licon', - ((0.7,2.785),(0.7,2.955),(0.87,2.955),(0.87,2.785),(0.7,2.785)), + ((0.7,2.79),(0.7,2.96),(0.87,2.96),(0.87,2.79),(0.7,2.79)), ) createRL( tech, net, 'licon', - ((0.7,3.125),(0.7,3.295),(0.87,3.295),(0.87,3.125),(0.7,3.125)), + ((0.7,3.13),(0.7,3.3),(0.87,3.3),(0.87,3.13),(0.7,3.13)), ) createRL( tech, net, 'licon', - ((0.7,3.465),(0.7,3.635),(0.87,3.635),(0.87,3.465),(0.7,3.465)), + ((0.7,3.47),(0.7,3.64),(0.87,3.64),(0.87,3.47),(0.7,3.47)), ) createRL( tech, net, 'licon', - ((0.7,3.805),(0.7,3.975),(0.87,3.975),(0.87,3.805),(0.7,3.805)), + ((0.7,3.81),(0.7,3.98),(0.87,3.98),(0.87,3.81),(0.7,3.81)), ) net = nets['*'] createRL( tech, net, 'psdm', - ((0.535,5.29),(0.535,8.92),(1.035,8.92),(1.035,5.29),(0.535,5.29)), - ) - createRL( - tech, net, 'psdm', - ((0.535,5.16),(0.535,9.23),(1.035,9.23),(1.035,5.16),(0.535,5.16)), + ((0.535,5.61),(0.535,8.93),(1.035,8.93),(1.035,5.61),(0.535,5.61)), ) createRL( tech, net, 'psdm', - ((0.58,0.19),(0.58,0.74),(1.42,0.74),(1.42,0.19),(0.58,0.19)), + ((0.535,5.235),(0.535,9.285),(1.035,9.285),(1.035,5.235),(0.535,5.235)), ) createRL( tech, net, 'psdm', - ((0.55,5.16),(0.55,9.23),(1.45,9.23),(1.45,5.16),(0.55,5.16)), + ((0.5,0.19),(0.5,0.69),(1.5,0.69),(1.5,0.19),(0.5,0.19)), ) createRL( tech, net, 'psdm', - ((0.855,5.215),(0.855,9.175),(1.145,9.175),(1.145,5.215),(0.855,5.215)), + ((0.55,5.235),(0.55,9.285),(1.45,9.285),(1.45,5.235),(0.55,5.235)), ) createRL( tech, net, 'psdm', - ((0.965,5.16),(0.965,9.23),(1.465,9.23),(1.465,5.16),(0.965,5.16)), + ((0.855,5.29),(0.855,9.23),(1.145,9.23),(1.145,5.29),(0.855,5.29)), ) createRL( tech, net, 'psdm', - ((0.965,5.32),(0.965,9.23),(1.465,9.23),(1.465,5.32),(0.965,5.32)), + ((0.965,5.235),(0.965,9.285),(1.465,9.285),(1.465,5.235),(0.965,5.235)), ) createRL( tech, net, 'nsdm', - ((0.58,9.26),(0.58,9.81),(1.42,9.81),(1.42,9.26),(0.58,9.26)), + ((0.5,9.31),(0.5,9.81),(1.5,9.81),(1.5,9.31),(0.5,9.31)), ) createRL( tech, net, 'nsdm', - ((0.965,1.125),(0.965,4.335),(1.465,4.335),(1.465,1.125),(0.965,1.125)), + ((0.965,1.09),(0.965,4.03),(1.465,4.03),(1.465,1.09),(0.965,1.09)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.44),(1.035,4.44),(1.035,0.76),(0.535,0.76)), + ((0.855,0.765),(0.855,4.305),(1.145,4.305),(1.145,0.765),(0.855,0.765)), ) createRL( tech, net, 'nsdm', - ((0.55,0.76),(0.55,4.44),(1.45,4.44),(1.45,0.76),(0.55,0.76)), + ((0.55,0.71),(0.55,4.36),(1.45,4.36),(1.45,0.71),(0.55,0.71)), ) createRL( tech, net, 'nsdm', - ((0.535,0.76),(0.535,4.3),(1.035,4.3),(1.035,0.76),(0.535,0.76)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.855,0.815),(0.855,4.385),(1.145,4.385),(1.145,0.815),(0.855,0.815)), + ((0.535,0.71),(0.535,4.36),(1.035,4.36),(1.035,0.71),(0.535,0.71)), ) createRL( tech, net, 'nsdm', - ((0.965,0.76),(0.965,4.44),(1.465,4.44),(1.465,0.76),(0.965,0.76)), + ((0.965,0.71),(0.965,4.36),(1.465,4.36),(1.465,0.71),(0.965,0.71)), ) net = nets['zero'] createRL( tech, net, 'difftap', - ((1.09,1.25),(1.09,4.21),(1.34,4.21),(1.34,1.25),(1.09,1.25)), + ((1.075,0.835),(1.075,4.235),(1.325,4.235),(1.325,0.835),(1.075,0.835)), ) createRL( tech, net, 'difftap', - ((1.075,0.885),(1.075,4.315),(1.325,4.315),(1.325,0.885),(1.075,0.885)), + ((1.09,0.835),(1.09,4.235),(1.34,4.235),(1.34,0.835),(1.09,0.835)), ) createRL( tech, net, 'difftap', - ((1.09,0.885),(1.09,4.315),(1.34,4.315),(1.34,0.885),(1.09,0.885)), + ((1.09,1.215),(1.09,3.905),(1.34,3.905),(1.34,1.215),(1.09,1.215)), ) createRL( tech, net, 'poly', - ((1.08,4.905),(1.08,5.235),(1.35,5.235),(1.35,4.905),(1.08,4.905)), + ((1.05,4.905),(1.05,5.175),(1.38,5.175),(1.38,4.905),(1.05,4.905)), ) createRL( tech, net, 'poly', - ((0.925,5.155),(0.925,9.235),(1.075,9.235),(1.075,5.155),(0.925,5.155)), + ((0.925,4.905),(0.925,9.29),(1.075,9.29),(1.075,4.905),(0.925,4.905)), ) createRL( tech, net, 'poly', - ((0.925,4.905),(0.925,5.235),(1.35,5.235),(1.35,4.905),(0.925,4.905)), + ((0.925,5.23),(0.925,9.29),(1.075,9.29),(1.075,5.23),(0.925,5.23)), + ) + createRL( + tech, net, 'poly', + ((0.925,4.905),(0.925,5.175),(1.38,5.175),(1.38,4.905),(0.925,4.905)), ) createRL( tech, net, 'licon', - ((1.13,4.985),(1.13,5.155),(1.3,5.155),(1.3,4.985),(1.13,4.985)), + ((1.13,4.955),(1.13,5.125),(1.3,5.125),(1.3,4.955),(1.13,4.955)), ) createRL( tech, net, 'licon', @@ -22239,98 +21971,94 @@ def _load(): tech, net, 'licon', ((1.13,3.495),(1.13,3.665),(1.3,3.665),(1.3,3.495),(1.13,3.495)), ) - createRL( - tech, net, 'licon', - ((1.13,3.835),(1.13,4.005),(1.3,4.005),(1.3,3.835),(1.13,3.835)), - ) createRL( tech, net, 'li', - ((1.13,4.905),(1.13,5.235),(1.3,5.235),(1.3,4.905),(1.13,4.905)), + ((1.13,4.875),(1.13,5.205),(1.3,5.205),(1.3,4.875),(1.13,4.875)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,4.09),(1.3,4.09),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,5.205),(1.3,5.205),(1.3,1.37),(1.13,1.37)), ) createRL( tech, net, 'li', - ((1.13,1.37),(1.13,5.235),(1.3,5.235),(1.3,1.37),(1.13,1.37)), + ((1.13,1.37),(1.13,3.75),(1.3,3.75),(1.3,1.37),(1.13,1.37)), ) net = nets['one'] createRL( tech, net, 'poly', - ((0.925,0.755),(0.925,4.445),(1.075,4.445),(1.075,0.755),(0.925,0.755)), + ((0.925,0.705),(0.925,4.365),(1.075,4.365),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(0.92,4.695),(0.92,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(0.95,4.695),(0.95,4.425),(0.62,4.425)), ) createRL( tech, net, 'poly', - ((0.65,4.365),(0.65,4.695),(1.075,4.695),(1.075,4.365),(0.65,4.365)), + ((0.62,4.425),(0.62,4.695),(1.075,4.695),(1.075,4.425),(0.62,4.425)), ) createRL( - tech, net, 'difftap', - ((0.66,5.415),(0.66,8.795),(0.91,8.795),(0.91,5.415),(0.66,5.415)), + tech, net, 'poly', + ((0.925,0.705),(0.925,4.695),(1.075,4.695),(1.075,0.705),(0.925,0.705)), ) createRL( tech, net, 'difftap', - ((0.66,5.285),(0.66,9.105),(0.91,9.105),(0.91,5.285),(0.66,5.285)), + ((0.66,5.735),(0.66,8.805),(0.91,8.805),(0.91,5.735),(0.66,5.735)), ) createRL( tech, net, 'difftap', - ((0.675,5.285),(0.675,9.105),(0.925,9.105),(0.925,5.285),(0.675,5.285)), + ((0.66,5.36),(0.66,9.16),(0.91,9.16),(0.91,5.36),(0.66,5.36)), ) createRL( - tech, net, 'licon', - ((0.7,5.66),(0.7,5.83),(0.87,5.83),(0.87,5.66),(0.7,5.66)), + tech, net, 'difftap', + ((0.675,5.36),(0.675,9.16),(0.925,9.16),(0.925,5.36),(0.675,5.36)), ) createRL( tech, net, 'licon', - ((0.7,6.0),(0.7,6.17),(0.87,6.17),(0.87,6.0),(0.7,6.0)), + ((0.7,4.475),(0.7,4.645),(0.87,4.645),(0.87,4.475),(0.7,4.475)), ) createRL( tech, net, 'licon', - ((0.7,6.34),(0.7,6.51),(0.87,6.51),(0.87,6.34),(0.7,6.34)), + ((0.7,5.995),(0.7,6.165),(0.87,6.165),(0.87,5.995),(0.7,5.995)), ) createRL( tech, net, 'licon', - ((0.7,6.68),(0.7,6.85),(0.87,6.85),(0.87,6.68),(0.7,6.68)), + ((0.7,6.335),(0.7,6.505),(0.87,6.505),(0.87,6.335),(0.7,6.335)), ) createRL( tech, net, 'licon', - ((0.7,7.02),(0.7,7.19),(0.87,7.19),(0.87,7.02),(0.7,7.02)), + ((0.7,6.675),(0.7,6.845),(0.87,6.845),(0.87,6.675),(0.7,6.675)), ) createRL( tech, net, 'licon', - ((0.7,7.36),(0.7,7.53),(0.87,7.53),(0.87,7.36),(0.7,7.36)), + ((0.7,7.015),(0.7,7.185),(0.87,7.185),(0.87,7.015),(0.7,7.015)), ) createRL( tech, net, 'licon', - ((0.7,7.7),(0.7,7.87),(0.87,7.87),(0.87,7.7),(0.7,7.7)), + ((0.7,7.355),(0.7,7.525),(0.87,7.525),(0.87,7.355),(0.7,7.355)), ) createRL( tech, net, 'licon', - ((0.7,8.04),(0.7,8.21),(0.87,8.21),(0.87,8.04),(0.7,8.04)), + ((0.7,7.695),(0.7,7.865),(0.87,7.865),(0.87,7.695),(0.7,7.695)), ) createRL( tech, net, 'licon', - ((0.7,8.38),(0.7,8.55),(0.87,8.55),(0.87,8.38),(0.7,8.38)), + ((0.7,8.035),(0.7,8.205),(0.87,8.205),(0.87,8.035),(0.7,8.035)), ) createRL( tech, net, 'licon', - ((0.7,4.445),(0.7,4.615),(0.87,4.615),(0.87,4.445),(0.7,4.445)), + ((0.7,8.375),(0.7,8.545),(0.87,8.545),(0.87,8.375),(0.7,8.375)), ) createRL( tech, net, 'li', - ((0.7,5.58),(0.7,8.63),(0.87,8.63),(0.87,5.58),(0.7,5.58)), + ((0.7,5.91),(0.7,8.63),(0.87,8.63),(0.87,5.91),(0.7,5.91)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,4.695),(0.87,4.695),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,4.725),(0.87,4.725),(0.87,4.395),(0.7,4.395)), ) createRL( tech, net, 'li', - ((0.7,4.365),(0.7,8.63),(0.87,8.63),(0.87,4.365),(0.7,4.365)), + ((0.7,4.395),(0.7,8.63),(0.87,8.63),(0.87,4.395),(0.7,4.395)), ) cell = new_cells['inv_x0'] @@ -22345,8 +22073,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['i'] createRL( tech, net, 'li', @@ -22368,7 +22096,7 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'poly', - ((0.205,4.635),(0.205,4.965),(0.765,4.965),(0.765,4.635),(0.205,4.635)), + ((0.205,4.635),(0.205,4.965),(0.79,4.965),(0.79,4.635),(0.205,4.635)), ) createRL( tech, net, 'poly', @@ -22376,15 +22104,15 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.615,6.48),(0.615,8.74),(0.765,8.74),(0.765,6.48),(0.615,6.48)), + ((0.64,6.655),(0.64,8.915),(0.79,8.915),(0.79,6.655),(0.64,6.655)), ) createRL( tech, net, 'poly', - ((0.615,2.505),(0.615,6.48),(0.765,6.48),(0.765,2.505),(0.615,2.505)), + ((0.64,2.335),(0.64,6.655),(0.79,6.655),(0.79,2.335),(0.64,2.335)), ) createRL( tech, net, 'poly', - ((0.615,1.245),(0.615,2.505),(0.765,2.505),(0.765,1.245),(0.615,1.245)), + ((0.64,1.075),(0.64,2.335),(0.79,2.335),(0.79,1.075),(0.64,1.075)), ) createRL( tech, net, 'licon', @@ -22393,35 +22121,35 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,2.375),(0.565,2.375),(0.565,0.885),(0.315,0.885)), + ((0.315,0.91),(0.315,2.205),(0.565,2.205),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((1.095,0.315),(1.095,0.615),(1.685,0.615),(1.685,0.315),(1.095,0.315)), + ((0.315,0.91),(0.315,1.32),(0.565,1.32),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.935,0.315),(0.935,0.565),(1.685,0.565),(1.685,0.315),(0.935,0.315)), ) createRL( tech, net, 'difftap', - ((0.365,1.375),(0.365,2.375),(0.615,2.375),(0.615,1.375),(0.365,1.375)), + ((0.39,1.205),(0.39,2.205),(0.64,2.205),(0.64,1.205),(0.39,1.205)), ) createRL( tech, net, 'difftap', - ((0.615,1.375),(0.615,2.375),(0.765,2.375),(0.765,1.375),(0.615,1.375)), + ((0.64,1.205),(0.64,2.205),(0.79,2.205),(0.79,1.205),(0.64,1.205)), ) createRL( tech, net, 'licon', - ((1.135,0.38),(1.135,0.55),(1.305,0.55),(1.305,0.38),(1.135,0.38)), + ((1.055,0.355),(1.055,0.525),(1.225,0.525),(1.225,0.355),(1.055,0.355)), ) createRL( tech, net, 'licon', - ((1.475,0.38),(1.475,0.55),(1.645,0.55),(1.645,0.38),(1.475,0.38)), + ((1.395,0.355),(1.395,0.525),(1.565,0.525),(1.565,0.355),(1.395,0.355)), ) createRL( tech, net, 'licon', - ((0.355,0.95),(0.355,1.12),(0.525,1.12),(0.525,0.95),(0.355,0.95)), + ((0.355,1.03),(0.355,1.2),(0.525,1.2),(0.525,1.03),(0.355,1.03)), ) createRL( tech, net, 'li', @@ -22429,11 +22157,11 @@ def _load(): ) createRL( tech, net, 'li', - ((1.135,0.3),(1.135,0.63),(1.645,0.63),(1.645,0.3),(1.135,0.3)), + ((1.055,0.275),(1.055,0.605),(1.565,0.605),(1.565,0.275),(1.055,0.275)), ) createRL( tech, net, 'li', - ((0.355,0.87),(0.355,1.2),(0.525,1.2),(0.525,0.87),(0.355,0.87)), + ((0.275,1.03),(0.275,1.2),(0.605,1.2),(0.605,1.03),(0.275,1.03)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -22448,128 +22176,128 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((0.24,1.25),(0.24,2.5),(1.14,2.5),(1.14,1.25),(0.24,1.25)), + ((0.68,1.205),(0.68,2.205),(1.18,2.205),(1.18,1.205),(0.68,1.205)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,2.5),(0.69,2.5),(0.69,0.76),(0.19,0.76)), + ((0.68,1.08),(0.68,2.33),(1.18,2.33),(1.18,1.08),(0.68,1.08)), ) createRL( tech, net, 'nsdm', - ((0.655,1.265),(0.655,2.485),(1.155,2.485),(1.155,1.265),(0.655,1.265)), + ((0.265,1.08),(0.265,2.33),(1.165,2.33),(1.165,1.08),(0.265,1.08)), ) createRL( tech, net, 'nsdm', - ((0.655,1.25),(0.655,2.5),(1.155,2.5),(1.155,1.25),(0.655,1.25)), + ((0.19,0.785),(0.19,2.33),(0.69,2.33),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((0.19,0.785),(0.19,1.445),(0.69,1.445),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((0.97,9.26),(0.97,9.81),(1.81,9.81),(1.81,9.26),(0.97,9.26)), + ((0.81,9.31),(0.81,9.81),(1.81,9.81),(1.81,9.31),(0.81,9.31)), ) createRL( tech, net, 'nsdm', - ((0.545,1.305),(0.545,2.445),(0.835,2.445),(0.835,1.305),(0.545,1.305)), + ((0.57,1.135),(0.57,2.275),(0.86,2.275),(0.86,1.135),(0.57,1.135)), ) createRL( tech, net, 'psdm', - ((0.19,6.485),(0.19,9.24),(0.69,9.24),(0.69,6.485),(0.19,6.485)), + ((0.19,6.66),(0.19,9.215),(0.69,9.215),(0.69,6.66),(0.19,6.66)), ) createRL( tech, net, 'psdm', - ((0.24,6.485),(0.24,8.735),(1.14,8.735),(1.14,6.485),(0.24,6.485)), + ((0.265,6.66),(0.265,8.91),(1.165,8.91),(1.165,6.66),(0.265,6.66)), ) createRL( tech, net, 'psdm', - ((0.655,6.485),(0.655,8.735),(1.155,8.735),(1.155,6.485),(0.655,6.485)), + ((0.68,6.66),(0.68,8.91),(1.18,8.91),(1.18,6.66),(0.68,6.66)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.555),(0.19,9.215),(0.69,9.215),(0.69,8.555),(0.19,8.555)), ) createRL( tech, net, 'psdm', - ((0.655,6.485),(0.655,8.735),(1.155,8.735),(1.155,6.485),(0.655,6.485)), + ((0.68,6.77),(0.68,8.8),(1.18,8.8),(1.18,6.77),(0.68,6.77)), ) createRL( tech, net, 'psdm', - ((0.545,6.54),(0.545,8.68),(0.835,8.68),(0.835,6.54),(0.545,6.54)), + ((0.57,6.715),(0.57,8.855),(0.86,8.855),(0.86,6.715),(0.57,6.715)), ) createRL( tech, net, 'psdm', - ((0.97,0.19),(0.97,0.74),(1.81,0.74),(1.81,0.19),(0.97,0.19)), + ((0.81,0.19),(0.81,0.69),(1.81,0.69),(1.81,0.19),(0.81,0.19)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((0.315,6.61),(0.315,9.115),(0.565,9.115),(0.565,6.61),(0.315,6.61)), + ((0.315,6.785),(0.315,9.09),(0.565,9.09),(0.565,6.785),(0.315,6.785)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.68),(0.315,9.09),(0.565,9.09),(0.565,8.68),(0.315,8.68)), ) createRL( tech, net, 'difftap', - ((0.615,6.61),(0.615,8.61),(0.765,8.61),(0.765,6.61),(0.615,6.61)), + ((0.935,9.435),(0.935,9.685),(1.685,9.685),(1.685,9.435),(0.935,9.435)), ) createRL( tech, net, 'difftap', - ((1.095,9.385),(1.095,9.685),(1.685,9.685),(1.685,9.385),(1.095,9.385)), + ((0.64,6.785),(0.64,8.785),(0.79,8.785),(0.79,6.785),(0.64,6.785)), ) createRL( tech, net, 'difftap', - ((0.365,6.61),(0.365,8.61),(0.615,8.61),(0.615,6.61),(0.365,6.61)), + ((0.39,6.785),(0.39,8.785),(0.64,8.785),(0.64,6.785),(0.39,6.785)), ) createRL( tech, net, 'licon', - ((0.355,8.88),(0.355,9.05),(0.525,9.05),(0.525,8.88),(0.355,8.88)), + ((1.055,9.475),(1.055,9.645),(1.225,9.645),(1.225,9.475),(1.055,9.475)), ) createRL( tech, net, 'licon', - ((1.135,9.45),(1.135,9.62),(1.305,9.62),(1.305,9.45),(1.135,9.45)), + ((1.395,9.475),(1.395,9.645),(1.565,9.645),(1.565,9.475),(1.395,9.475)), ) createRL( tech, net, 'licon', - ((1.475,9.45),(1.475,9.62),(1.645,9.62),(1.645,9.45),(1.475,9.45)), + ((0.355,8.8),(0.355,8.97),(0.525,8.97),(0.525,8.8),(0.355,8.8)), ) createRL( tech, net, 'li', - ((0.355,8.8),(0.355,9.13),(0.525,9.13),(0.525,8.8),(0.355,8.8)), + ((1.055,9.395),(1.055,9.725),(1.565,9.725),(1.565,9.395),(1.055,9.395)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(2.0,10.0),(2.0,8.8),(0.0,8.8)), + ((0.275,8.8),(0.275,8.97),(0.605,8.97),(0.605,8.8),(0.275,8.8)), ) createRL( tech, net, 'li', - ((1.135,9.37),(1.135,9.7),(1.645,9.7),(1.645,9.37),(1.135,9.37)), + ((0.0,8.8),(0.0,10.0),(2.0,10.0),(2.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'nwm', - ((0.135,6.43),(0.135,9.295),(0.745,9.295),(0.745,6.43),(0.135,6.43)), + ((0.135,6.605),(0.135,9.27),(0.745,9.27),(0.745,6.605),(0.135,6.605)), ) createRL( tech, net, 'nwm', - ((0.185,6.43),(0.185,8.79),(1.195,8.79),(1.195,6.43),(0.185,6.43)), + ((0.21,6.605),(0.21,8.965),(1.22,8.965),(1.22,6.605),(0.21,6.605)), ) createRL( tech, net, 'nwm', - ((0.6,6.43),(0.6,8.79),(1.21,8.79),(1.21,6.43),(0.6,6.43)), + ((0.625,6.605),(0.625,8.965),(1.235,8.965),(1.235,6.605),(0.625,6.605)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.5),(0.135,9.27),(0.745,9.27),(0.745,8.5),(0.135,8.5)), ) createRL( tech, net, 'nwm', - ((0.6,6.43),(0.6,8.79),(1.21,8.79),(1.21,6.43),(0.6,6.43)), + ((0.625,6.715),(0.625,8.855),(1.235,8.855),(1.235,6.715),(0.625,6.715)), ) createRL( tech, net, 'nwm', - ((0.915,9.205),(0.915,9.865),(1.865,9.865),(1.865,9.205),(0.915,9.205)), + ((0.755,9.255),(0.755,9.865),(1.865,9.865),(1.865,9.255),(0.755,9.255)), ) createRL( tech, net, 'nwm', @@ -22588,83 +22316,75 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,1.39),(0.78,2.36),(1.03,2.36),(1.03,1.39),(0.78,1.39)), + ((0.805,1.33),(0.805,2.08),(1.055,2.08),(1.055,1.33),(0.805,1.33)), ) createRL( tech, net, 'difftap', - ((0.78,1.375),(0.78,2.375),(1.03,2.375),(1.03,1.375),(0.78,1.375)), + ((0.805,1.205),(0.805,2.205),(1.055,2.205),(1.055,1.205),(0.805,1.205)), ) createRL( tech, net, 'difftap', - ((0.78,6.61),(0.78,8.61),(1.03,8.61),(1.03,6.61),(0.78,6.61)), + ((0.805,6.895),(0.805,8.675),(1.055,8.675),(1.055,6.895),(0.805,6.895)), ) createRL( tech, net, 'difftap', - ((0.78,6.61),(0.78,8.61),(1.03,8.61),(1.03,6.61),(0.78,6.61)), + ((0.805,6.785),(0.805,8.785),(1.055,8.785),(1.055,6.785),(0.805,6.785)), ) createRL( tech, net, 'difftap', - ((0.765,6.61),(0.765,8.61),(1.015,8.61),(1.015,6.61),(0.765,6.61)), + ((0.79,6.785),(0.79,8.785),(1.04,8.785),(1.04,6.785),(0.79,6.785)), ) createRL( tech, net, 'difftap', - ((0.765,1.375),(0.765,2.375),(1.015,2.375),(1.015,1.375),(0.765,1.375)), - ) - createRL( - tech, net, 'licon', - ((0.82,1.45),(0.82,1.62),(0.99,1.62),(0.99,1.45),(0.82,1.45)), - ) - createRL( - tech, net, 'licon', - ((0.82,1.79),(0.82,1.96),(0.99,1.96),(0.99,1.79),(0.82,1.79)), + ((0.79,1.205),(0.79,2.205),(1.04,2.205),(1.04,1.205),(0.79,1.205)), ) createRL( tech, net, 'licon', - ((0.82,2.13),(0.82,2.3),(0.99,2.3),(0.99,2.13),(0.82,2.13)), + ((0.845,7.02),(0.845,7.19),(1.015,7.19),(1.015,7.02),(0.845,7.02)), ) createRL( tech, net, 'licon', - ((0.82,6.675),(0.82,6.845),(0.99,6.845),(0.99,6.675),(0.82,6.675)), + ((0.845,7.36),(0.845,7.53),(1.015,7.53),(1.015,7.36),(0.845,7.36)), ) createRL( tech, net, 'licon', - ((0.82,7.015),(0.82,7.185),(0.99,7.185),(0.99,7.015),(0.82,7.015)), + ((0.845,7.7),(0.845,7.87),(1.015,7.87),(1.015,7.7),(0.845,7.7)), ) createRL( tech, net, 'licon', - ((0.82,7.355),(0.82,7.525),(0.99,7.525),(0.99,7.355),(0.82,7.355)), + ((0.845,8.04),(0.845,8.21),(1.015,8.21),(1.015,8.04),(0.845,8.04)), ) createRL( tech, net, 'licon', - ((0.82,7.695),(0.82,7.865),(0.99,7.865),(0.99,7.695),(0.82,7.695)), + ((0.845,8.38),(0.845,8.55),(1.015,8.55),(1.015,8.38),(0.845,8.38)), ) createRL( tech, net, 'licon', - ((0.82,8.035),(0.82,8.205),(0.99,8.205),(0.99,8.035),(0.82,8.035)), + ((0.845,1.45),(0.845,1.62),(1.015,1.62),(1.015,1.45),(0.845,1.45)), ) createRL( tech, net, 'licon', - ((0.82,8.375),(0.82,8.545),(0.99,8.545),(0.99,8.375),(0.82,8.375)), + ((0.845,1.79),(0.845,1.96),(1.015,1.96),(1.015,1.79),(0.845,1.79)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,2.38),(0.99,2.38),(0.99,1.37),(0.82,1.37)), + ((0.845,6.94),(0.845,8.63),(1.015,8.63),(1.015,6.94),(0.845,6.94)), ) createRL( tech, net, 'li', - ((0.82,6.59),(0.82,8.63),(0.99,8.63),(0.99,6.59),(0.82,6.59)), + ((0.845,1.37),(0.845,2.04),(1.015,2.04),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,8.63),(0.99,8.63),(0.99,1.37),(0.82,1.37)), + ((0.845,1.37),(0.845,8.63),(1.015,8.63),(1.015,1.37),(0.845,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -22681,8 +22401,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['i'] createRL( tech, net, 'li', @@ -22708,19 +22428,19 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.205,4.635),(0.205,4.965),(0.765,4.965),(0.765,4.635),(0.205,4.635)), + ((0.205,4.635),(0.205,4.965),(0.79,4.965),(0.79,4.635),(0.205,4.635)), ) createRL( tech, net, 'poly', - ((0.615,1.185),(0.615,3.245),(0.765,3.245),(0.765,1.185),(0.615,1.185)), + ((0.64,1.185),(0.64,3.245),(0.79,3.245),(0.79,1.185),(0.64,1.185)), ) createRL( tech, net, 'poly', - ((0.615,5.0),(0.615,8.86),(0.765,8.86),(0.765,5.0),(0.615,5.0)), + ((0.64,5.0),(0.64,8.86),(0.79,8.86),(0.79,5.0),(0.64,5.0)), ) createRL( tech, net, 'poly', - ((0.615,3.245),(0.615,5.0),(0.765,5.0),(0.765,3.245),(0.615,3.245)), + ((0.64,3.245),(0.64,5.0),(0.79,5.0),(0.79,3.245),(0.64,3.245)), ) createRL( tech, net, 'licon', @@ -22729,35 +22449,35 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((0.615,1.315),(0.615,3.115),(0.765,3.115),(0.765,1.315),(0.615,1.315)), + ((0.64,1.315),(0.64,3.115),(0.79,3.115),(0.79,1.315),(0.64,1.315)), ) createRL( tech, net, 'difftap', - ((0.365,1.315),(0.365,3.115),(0.615,3.115),(0.615,1.315),(0.365,1.315)), + ((0.39,1.315),(0.39,3.115),(0.64,3.115),(0.64,1.315),(0.39,1.315)), ) createRL( tech, net, 'difftap', - ((1.095,0.315),(1.095,0.615),(1.685,0.615),(1.685,0.315),(1.095,0.315)), + ((0.315,0.91),(0.315,1.32),(0.565,1.32),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.935,0.315),(0.935,0.565),(1.685,0.565),(1.685,0.315),(0.935,0.315)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,3.115),(0.565,3.115),(0.565,0.885),(0.315,0.885)), + ((0.315,0.91),(0.315,3.115),(0.565,3.115),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'licon', - ((1.135,0.38),(1.135,0.55),(1.305,0.55),(1.305,0.38),(1.135,0.38)), + ((1.055,0.355),(1.055,0.525),(1.225,0.525),(1.225,0.355),(1.055,0.355)), ) createRL( tech, net, 'licon', - ((1.475,0.38),(1.475,0.55),(1.645,0.55),(1.645,0.38),(1.475,0.38)), + ((1.395,0.355),(1.395,0.525),(1.565,0.525),(1.565,0.355),(1.395,0.355)), ) createRL( tech, net, 'licon', - ((0.355,0.95),(0.355,1.12),(0.525,1.12),(0.525,0.95),(0.355,0.95)), + ((0.355,1.03),(0.355,1.2),(0.525,1.2),(0.525,1.03),(0.355,1.03)), ) createRL( tech, net, 'li', @@ -22765,11 +22485,11 @@ def _load(): ) createRL( tech, net, 'li', - ((1.135,0.3),(1.135,0.63),(1.645,0.63),(1.645,0.3),(1.135,0.3)), + ((1.055,0.275),(1.055,0.605),(1.565,0.605),(1.565,0.275),(1.055,0.275)), ) createRL( tech, net, 'li', - ((0.355,0.87),(0.355,1.2),(0.525,1.2),(0.525,0.87),(0.355,0.87)), + ((0.275,1.03),(0.275,1.2),(0.605,1.2),(0.605,1.03),(0.275,1.03)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -22784,128 +22504,128 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((0.545,1.245),(0.545,3.185),(0.835,3.185),(0.835,1.245),(0.545,1.245)), + ((0.57,1.245),(0.57,3.185),(0.86,3.185),(0.86,1.245),(0.57,1.245)), ) createRL( tech, net, 'nsdm', - ((0.655,1.19),(0.655,3.24),(1.155,3.24),(1.155,1.19),(0.655,1.19)), + ((0.68,1.19),(0.68,3.24),(1.18,3.24),(1.18,1.19),(0.68,1.19)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((0.19,0.785),(0.19,1.445),(0.69,1.445),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((0.97,9.26),(0.97,9.81),(1.81,9.81),(1.81,9.26),(0.97,9.26)), + ((0.81,9.31),(0.81,9.81),(1.81,9.81),(1.81,9.31),(0.81,9.31)), ) createRL( tech, net, 'nsdm', - ((0.655,1.26),(0.655,3.17),(1.155,3.17),(1.155,1.26),(0.655,1.26)), + ((0.19,0.785),(0.19,3.24),(0.69,3.24),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((0.24,1.19),(0.24,3.24),(1.14,3.24),(1.14,1.19),(0.24,1.19)), + ((0.68,1.2),(0.68,3.23),(1.18,3.23),(1.18,1.2),(0.68,1.2)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,3.24),(0.69,3.24),(0.69,0.76),(0.19,0.76)), + ((0.265,1.19),(0.265,3.24),(1.165,3.24),(1.165,1.19),(0.265,1.19)), ) createRL( tech, net, 'psdm', - ((0.545,5.06),(0.545,8.8),(0.835,8.8),(0.835,5.06),(0.545,5.06)), + ((0.57,5.06),(0.57,8.8),(0.86,8.8),(0.86,5.06),(0.57,5.06)), ) createRL( tech, net, 'psdm', - ((0.655,5.125),(0.655,8.735),(1.155,8.735),(1.155,5.125),(0.655,5.125)), + ((0.68,5.065),(0.68,8.795),(1.18,8.795),(1.18,5.065),(0.68,5.065)), ) createRL( tech, net, 'psdm', - ((0.655,5.005),(0.655,8.855),(1.155,8.855),(1.155,5.005),(0.655,5.005)), + ((0.68,5.005),(0.68,8.855),(1.18,8.855),(1.18,5.005),(0.68,5.005)), ) createRL( tech, net, 'psdm', - ((0.24,5.005),(0.24,8.855),(1.14,8.855),(1.14,5.005),(0.24,5.005)), + ((0.265,5.005),(0.265,8.855),(1.165,8.855),(1.165,5.005),(0.265,5.005)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.555),(0.19,9.215),(0.69,9.215),(0.69,8.555),(0.19,8.555)), ) createRL( tech, net, 'psdm', - ((0.19,5.005),(0.19,9.24),(0.69,9.24),(0.69,5.005),(0.19,5.005)), + ((0.19,5.005),(0.19,9.215),(0.69,9.215),(0.69,5.005),(0.19,5.005)), ) createRL( tech, net, 'psdm', - ((0.97,0.19),(0.97,0.74),(1.81,0.74),(1.81,0.19),(0.97,0.19)), + ((0.81,0.19),(0.81,0.69),(1.81,0.69),(1.81,0.19),(0.81,0.19)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((0.365,5.13),(0.365,8.73),(0.615,8.73),(0.615,5.13),(0.365,5.13)), + ((0.39,5.13),(0.39,8.73),(0.64,8.73),(0.64,5.13),(0.39,5.13)), ) createRL( tech, net, 'difftap', - ((0.615,5.13),(0.615,8.73),(0.765,8.73),(0.765,5.13),(0.615,5.13)), + ((0.64,5.13),(0.64,8.73),(0.79,8.73),(0.79,5.13),(0.64,5.13)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.935,9.435),(0.935,9.685),(1.685,9.685),(1.685,9.435),(0.935,9.435)), ) createRL( tech, net, 'difftap', - ((0.315,5.13),(0.315,9.115),(0.565,9.115),(0.565,5.13),(0.315,5.13)), + ((0.315,8.68),(0.315,9.09),(0.565,9.09),(0.565,8.68),(0.315,8.68)), ) createRL( tech, net, 'difftap', - ((1.095,9.385),(1.095,9.685),(1.685,9.685),(1.685,9.385),(1.095,9.385)), + ((0.315,5.13),(0.315,9.09),(0.565,9.09),(0.565,5.13),(0.315,5.13)), ) createRL( tech, net, 'licon', - ((0.355,8.88),(0.355,9.05),(0.525,9.05),(0.525,8.88),(0.355,8.88)), + ((1.055,9.475),(1.055,9.645),(1.225,9.645),(1.225,9.475),(1.055,9.475)), ) createRL( tech, net, 'licon', - ((1.135,9.45),(1.135,9.62),(1.305,9.62),(1.305,9.45),(1.135,9.45)), + ((1.395,9.475),(1.395,9.645),(1.565,9.645),(1.565,9.475),(1.395,9.475)), ) createRL( tech, net, 'licon', - ((1.475,9.45),(1.475,9.62),(1.645,9.62),(1.645,9.45),(1.475,9.45)), + ((0.355,8.8),(0.355,8.97),(0.525,8.97),(0.525,8.8),(0.355,8.8)), ) createRL( tech, net, 'li', - ((0.355,8.8),(0.355,9.13),(0.525,9.13),(0.525,8.8),(0.355,8.8)), + ((1.055,9.395),(1.055,9.725),(1.565,9.725),(1.565,9.395),(1.055,9.395)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(2.0,10.0),(2.0,8.8),(0.0,8.8)), + ((0.275,8.8),(0.275,8.97),(0.605,8.97),(0.605,8.8),(0.275,8.8)), ) createRL( tech, net, 'li', - ((1.135,9.37),(1.135,9.7),(1.645,9.7),(1.645,9.37),(1.135,9.37)), + ((0.0,8.8),(0.0,10.0),(2.0,10.0),(2.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'nwm', - ((0.6,4.95),(0.6,8.91),(1.21,8.91),(1.21,4.95),(0.6,4.95)), + ((0.625,4.95),(0.625,8.91),(1.235,8.91),(1.235,4.95),(0.625,4.95)), ) createRL( tech, net, 'nwm', - ((0.185,4.95),(0.185,8.91),(1.195,8.91),(1.195,4.95),(0.185,4.95)), + ((0.21,4.95),(0.21,8.91),(1.22,8.91),(1.22,4.95),(0.21,4.95)), ) createRL( tech, net, 'nwm', - ((0.6,5.07),(0.6,8.79),(1.21,8.79),(1.21,5.07),(0.6,5.07)), + ((0.625,5.01),(0.625,8.85),(1.235,8.85),(1.235,5.01),(0.625,5.01)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.5),(0.135,9.27),(0.745,9.27),(0.745,8.5),(0.135,8.5)), ) createRL( tech, net, 'nwm', - ((0.915,9.205),(0.915,9.865),(1.865,9.865),(1.865,9.205),(0.915,9.205)), + ((0.755,9.255),(0.755,9.865),(1.865,9.865),(1.865,9.255),(0.755,9.255)), ) createRL( tech, net, 'nwm', - ((0.135,4.95),(0.135,9.295),(0.745,9.295),(0.745,4.95),(0.135,4.95)), + ((0.135,4.95),(0.135,9.27),(0.745,9.27),(0.745,4.95),(0.135,4.95)), ) createRL( tech, net, 'nwm', @@ -22924,107 +22644,107 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,5.25),(0.78,8.61),(1.03,8.61),(1.03,5.25),(0.78,5.25)), + ((0.805,5.19),(0.805,8.67),(1.055,8.67),(1.055,5.19),(0.805,5.19)), ) createRL( tech, net, 'difftap', - ((0.78,5.13),(0.78,8.73),(1.03,8.73),(1.03,5.13),(0.78,5.13)), + ((0.805,5.13),(0.805,8.73),(1.055,8.73),(1.055,5.13),(0.805,5.13)), ) createRL( tech, net, 'difftap', - ((0.765,5.13),(0.765,8.73),(1.015,8.73),(1.015,5.13),(0.765,5.13)), + ((0.79,5.13),(0.79,8.73),(1.04,8.73),(1.04,5.13),(0.79,5.13)), ) createRL( tech, net, 'difftap', - ((0.78,1.385),(0.78,3.045),(1.03,3.045),(1.03,1.385),(0.78,1.385)), + ((0.805,1.325),(0.805,3.105),(1.055,3.105),(1.055,1.325),(0.805,1.325)), ) createRL( tech, net, 'difftap', - ((0.765,1.315),(0.765,3.115),(1.015,3.115),(1.015,1.315),(0.765,1.315)), + ((0.79,1.315),(0.79,3.115),(1.04,3.115),(1.04,1.315),(0.79,1.315)), ) createRL( tech, net, 'difftap', - ((0.78,1.315),(0.78,3.115),(1.03,3.115),(1.03,1.315),(0.78,1.315)), + ((0.805,1.315),(0.805,3.115),(1.055,3.115),(1.055,1.315),(0.805,1.315)), ) createRL( tech, net, 'licon', - ((0.82,1.45),(0.82,1.62),(0.99,1.62),(0.99,1.45),(0.82,1.45)), + ((0.845,1.45),(0.845,1.62),(1.015,1.62),(1.015,1.45),(0.845,1.45)), ) createRL( tech, net, 'licon', - ((0.82,1.79),(0.82,1.96),(0.99,1.96),(0.99,1.79),(0.82,1.79)), + ((0.845,1.79),(0.845,1.96),(1.015,1.96),(1.015,1.79),(0.845,1.79)), ) createRL( tech, net, 'licon', - ((0.82,2.13),(0.82,2.3),(0.99,2.3),(0.99,2.13),(0.82,2.13)), + ((0.845,2.13),(0.845,2.3),(1.015,2.3),(1.015,2.13),(0.845,2.13)), ) createRL( tech, net, 'licon', - ((0.82,2.47),(0.82,2.64),(0.99,2.64),(0.99,2.47),(0.82,2.47)), + ((0.845,2.47),(0.845,2.64),(1.015,2.64),(1.015,2.47),(0.845,2.47)), ) createRL( tech, net, 'licon', - ((0.82,2.81),(0.82,2.98),(0.99,2.98),(0.99,2.81),(0.82,2.81)), + ((0.845,2.81),(0.845,2.98),(1.015,2.98),(1.015,2.81),(0.845,2.81)), ) createRL( tech, net, 'licon', - ((0.82,5.315),(0.82,5.485),(0.99,5.485),(0.99,5.315),(0.82,5.315)), + ((0.845,5.315),(0.845,5.485),(1.015,5.485),(1.015,5.315),(0.845,5.315)), ) createRL( tech, net, 'licon', - ((0.82,5.655),(0.82,5.825),(0.99,5.825),(0.99,5.655),(0.82,5.655)), + ((0.845,5.655),(0.845,5.825),(1.015,5.825),(1.015,5.655),(0.845,5.655)), ) createRL( tech, net, 'licon', - ((0.82,5.995),(0.82,6.165),(0.99,6.165),(0.99,5.995),(0.82,5.995)), + ((0.845,5.995),(0.845,6.165),(1.015,6.165),(1.015,5.995),(0.845,5.995)), ) createRL( tech, net, 'licon', - ((0.82,6.335),(0.82,6.505),(0.99,6.505),(0.99,6.335),(0.82,6.335)), + ((0.845,6.335),(0.845,6.505),(1.015,6.505),(1.015,6.335),(0.845,6.335)), ) createRL( tech, net, 'licon', - ((0.82,6.675),(0.82,6.845),(0.99,6.845),(0.99,6.675),(0.82,6.675)), + ((0.845,6.675),(0.845,6.845),(1.015,6.845),(1.015,6.675),(0.845,6.675)), ) createRL( tech, net, 'licon', - ((0.82,7.015),(0.82,7.185),(0.99,7.185),(0.99,7.015),(0.82,7.015)), + ((0.845,7.015),(0.845,7.185),(1.015,7.185),(1.015,7.015),(0.845,7.015)), ) createRL( tech, net, 'licon', - ((0.82,7.355),(0.82,7.525),(0.99,7.525),(0.99,7.355),(0.82,7.355)), + ((0.845,7.355),(0.845,7.525),(1.015,7.525),(1.015,7.355),(0.845,7.355)), ) createRL( tech, net, 'licon', - ((0.82,7.695),(0.82,7.865),(0.99,7.865),(0.99,7.695),(0.82,7.695)), + ((0.845,7.695),(0.845,7.865),(1.015,7.865),(1.015,7.695),(0.845,7.695)), ) createRL( tech, net, 'licon', - ((0.82,8.035),(0.82,8.205),(0.99,8.205),(0.99,8.035),(0.82,8.035)), + ((0.845,8.035),(0.845,8.205),(1.015,8.205),(1.015,8.035),(0.845,8.035)), ) createRL( tech, net, 'licon', - ((0.82,8.375),(0.82,8.545),(0.99,8.545),(0.99,8.375),(0.82,8.375)), + ((0.845,8.375),(0.845,8.545),(1.015,8.545),(1.015,8.375),(0.845,8.375)), ) createRL( tech, net, 'li', - ((0.82,5.23),(0.82,8.63),(0.99,8.63),(0.99,5.23),(0.82,5.23)), + ((0.845,1.37),(0.845,3.06),(1.015,3.06),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,3.06),(0.99,3.06),(0.99,1.37),(0.82,1.37)), + ((0.845,1.37),(0.845,8.63),(1.015,8.63),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,8.63),(0.99,8.63),(0.99,1.37),(0.82,1.37)), + ((0.845,5.23),(0.845,8.63),(1.015,8.63),(1.015,5.23),(0.845,5.23)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -23041,8 +22761,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['i'] createRL( tech, net, 'li', @@ -23068,31 +22788,31 @@ def _load(): ) createRL( tech, net, 'poly', - ((0.615,1.185),(0.615,3.245),(0.765,3.245),(0.765,1.185),(0.615,1.185)), + ((0.64,1.185),(0.64,3.245),(0.79,3.245),(0.79,1.185),(0.64,1.185)), ) createRL( tech, net, 'poly', - ((0.615,5.0),(0.615,8.86),(0.765,8.86),(0.765,5.0),(0.615,5.0)), + ((0.64,5.0),(0.64,8.86),(0.79,8.86),(0.79,5.0),(0.64,5.0)), ) createRL( tech, net, 'poly', - ((0.615,3.245),(0.615,5.0),(0.765,5.0),(0.765,3.245),(0.615,3.245)), + ((0.64,3.245),(0.64,5.0),(0.79,5.0),(0.79,3.245),(0.64,3.245)), ) createRL( tech, net, 'poly', - ((1.045,5.0),(1.045,8.86),(1.195,8.86),(1.195,5.0),(1.045,5.0)), + ((1.07,5.0),(1.07,8.86),(1.22,8.86),(1.22,5.0),(1.07,5.0)), ) createRL( tech, net, 'poly', - ((1.045,3.245),(1.045,5.0),(1.195,5.0),(1.195,3.245),(1.045,3.245)), + ((1.07,3.245),(1.07,5.0),(1.22,5.0),(1.22,3.245),(1.07,3.245)), ) createRL( tech, net, 'poly', - ((0.205,4.635),(0.205,4.965),(1.195,4.965),(1.195,4.635),(0.205,4.635)), + ((0.205,4.635),(0.205,4.965),(1.22,4.965),(1.22,4.635),(0.205,4.635)), ) createRL( tech, net, 'poly', - ((1.045,1.185),(1.045,3.245),(1.195,3.245),(1.195,1.185),(1.045,1.185)), + ((1.07,1.185),(1.07,3.245),(1.22,3.245),(1.22,1.185),(1.07,1.185)), ) createRL( tech, net, 'licon', @@ -23101,71 +22821,71 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((1.245,0.885),(1.245,1.185),(1.495,1.185),(1.495,0.885),(1.245,0.885)), + ((1.295,0.91),(1.295,1.32),(1.545,1.32),(1.545,0.91),(1.295,0.91)), ) createRL( tech, net, 'difftap', - ((0.615,1.315),(0.615,3.115),(0.765,3.115),(0.765,1.315),(0.615,1.315)), + ((0.64,1.315),(0.64,3.115),(0.79,3.115),(0.79,1.315),(0.64,1.315)), ) createRL( tech, net, 'difftap', - ((0.365,1.315),(0.365,3.115),(0.615,3.115),(0.615,1.315),(0.365,1.315)), + ((0.39,1.315),(0.39,3.115),(0.64,3.115),(0.64,1.315),(0.39,1.315)), ) createRL( tech, net, 'difftap', - ((1.095,0.315),(1.095,0.615),(1.685,0.615),(1.685,0.315),(1.095,0.315)), + ((0.315,0.91),(0.315,1.32),(0.565,1.32),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((1.07,1.315),(1.07,3.115),(1.22,3.115),(1.22,1.315),(1.07,1.315)), ) createRL( tech, net, 'difftap', - ((1.045,1.315),(1.045,3.115),(1.195,3.115),(1.195,1.315),(1.045,1.315)), + ((0.935,0.315),(0.935,0.565),(1.685,0.565),(1.685,0.315),(0.935,0.315)), ) createRL( tech, net, 'difftap', - ((1.245,0.885),(1.245,3.115),(1.495,3.115),(1.495,0.885),(1.245,0.885)), + ((1.295,0.91),(1.295,3.115),(1.545,3.115),(1.545,0.91),(1.295,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,3.115),(0.565,3.115),(0.565,0.885),(0.315,0.885)), + ((0.315,0.91),(0.315,3.115),(0.565,3.115),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((1.195,1.315),(1.195,3.115),(1.445,3.115),(1.445,1.315),(1.195,1.315)), + ((1.22,1.315),(1.22,3.115),(1.47,3.115),(1.47,1.315),(1.22,1.315)), ) createRL( tech, net, 'licon', - ((1.285,0.95),(1.285,1.12),(1.455,1.12),(1.455,0.95),(1.285,0.95)), + ((1.055,0.355),(1.055,0.525),(1.225,0.525),(1.225,0.355),(1.055,0.355)), ) createRL( tech, net, 'licon', - ((1.135,0.38),(1.135,0.55),(1.305,0.55),(1.305,0.38),(1.135,0.38)), + ((1.395,0.355),(1.395,0.525),(1.565,0.525),(1.565,0.355),(1.395,0.355)), ) createRL( tech, net, 'licon', - ((1.475,0.38),(1.475,0.55),(1.645,0.55),(1.645,0.38),(1.475,0.38)), + ((1.335,1.03),(1.335,1.2),(1.505,1.2),(1.505,1.03),(1.335,1.03)), ) createRL( tech, net, 'licon', - ((0.355,0.95),(0.355,1.12),(0.525,1.12),(0.525,0.95),(0.355,0.95)), + ((0.355,1.03),(0.355,1.2),(0.525,1.2),(0.525,1.03),(0.355,1.03)), ) createRL( tech, net, 'li', - ((1.285,0.87),(1.285,1.2),(1.455,1.2),(1.455,0.87),(1.285,0.87)), + ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), ) createRL( tech, net, 'li', - ((1.135,0.3),(1.135,0.63),(1.645,0.63),(1.645,0.3),(1.135,0.3)), + ((1.055,0.275),(1.055,0.605),(1.565,0.605),(1.565,0.275),(1.055,0.275)), ) createRL( tech, net, 'li', - ((0.355,0.87),(0.355,1.2),(0.525,1.2),(0.525,0.87),(0.355,0.87)), + ((1.255,1.03),(1.255,1.2),(1.585,1.2),(1.585,1.03),(1.255,1.03)), ) createRL( tech, net, 'li', - ((0.0,0.0),(0.0,1.2),(2.0,1.2),(2.0,0.0),(0.0,0.0)), + ((0.275,1.03),(0.275,1.2),(0.605,1.2),(0.605,1.03),(0.275,1.03)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -23180,196 +22900,196 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((1.12,0.76),(1.12,1.31),(1.62,1.31),(1.62,0.76),(1.12,0.76)), + ((1.17,0.785),(1.17,1.445),(1.67,1.445),(1.67,0.785),(1.17,0.785)), ) createRL( tech, net, 'nsdm', - ((0.24,1.19),(0.24,3.24),(1.14,3.24),(1.14,1.19),(0.24,1.19)), + ((0.265,1.19),(0.265,3.24),(1.165,3.24),(1.165,1.19),(0.265,1.19)), ) createRL( tech, net, 'nsdm', - ((0.545,1.245),(0.545,3.185),(0.835,3.185),(0.835,1.245),(0.545,1.245)), + ((0.57,1.245),(0.57,3.185),(0.86,3.185),(0.86,1.245),(0.57,1.245)), ) createRL( tech, net, 'nsdm', - ((0.67,1.19),(0.67,3.24),(1.57,3.24),(1.57,1.19),(0.67,1.19)), + ((0.695,1.19),(0.695,3.24),(1.595,3.24),(1.595,1.19),(0.695,1.19)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((0.19,0.785),(0.19,1.445),(0.69,1.445),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((0.97,9.26),(0.97,9.81),(1.81,9.81),(1.81,9.26),(0.97,9.26)), + ((0.81,9.31),(0.81,9.81),(1.81,9.81),(1.81,9.31),(0.81,9.31)), ) createRL( tech, net, 'nsdm', - ((0.655,1.26),(0.655,3.17),(1.155,3.17),(1.155,1.26),(0.655,1.26)), + ((0.19,0.785),(0.19,3.24),(0.69,3.24),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((1.12,0.76),(1.12,3.24),(1.62,3.24),(1.62,0.76),(1.12,0.76)), + ((0.68,1.2),(0.68,3.23),(1.18,3.23),(1.18,1.2),(0.68,1.2)), ) createRL( tech, net, 'nsdm', - ((0.975,1.245),(0.975,3.185),(1.265,3.185),(1.265,1.245),(0.975,1.245)), + ((1.17,0.785),(1.17,3.24),(1.67,3.24),(1.67,0.785),(1.17,0.785)), ) createRL( tech, net, 'nsdm', - ((0.655,1.19),(0.655,3.24),(1.155,3.24),(1.155,1.19),(0.655,1.19)), + ((1.0,1.245),(1.0,3.185),(1.29,3.185),(1.29,1.245),(1.0,1.245)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,3.24),(0.69,3.24),(0.69,0.76),(0.19,0.76)), + ((0.68,1.19),(0.68,3.24),(1.18,3.24),(1.18,1.19),(0.68,1.19)), ) createRL( tech, net, 'psdm', - ((0.545,5.06),(0.545,8.8),(0.835,8.8),(0.835,5.06),(0.545,5.06)), + ((0.57,5.06),(0.57,8.8),(0.86,8.8),(0.86,5.06),(0.57,5.06)), ) createRL( tech, net, 'psdm', - ((0.655,5.005),(0.655,8.855),(1.155,8.855),(1.155,5.005),(0.655,5.005)), + ((0.68,5.005),(0.68,8.855),(1.18,8.855),(1.18,5.005),(0.68,5.005)), ) createRL( tech, net, 'psdm', - ((0.24,5.005),(0.24,8.855),(1.14,8.855),(1.14,5.005),(0.24,5.005)), + ((0.265,5.005),(0.265,8.855),(1.165,8.855),(1.165,5.005),(0.265,5.005)), ) createRL( tech, net, 'psdm', - ((0.655,5.125),(0.655,8.735),(1.155,8.735),(1.155,5.125),(0.655,5.125)), + ((0.68,5.065),(0.68,8.795),(1.18,8.795),(1.18,5.065),(0.68,5.065)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.555),(0.19,9.215),(0.69,9.215),(0.69,8.555),(0.19,8.555)), ) createRL( tech, net, 'psdm', - ((0.19,5.005),(0.19,9.24),(0.69,9.24),(0.69,5.005),(0.19,5.005)), + ((0.19,5.005),(0.19,9.215),(0.69,9.215),(0.69,5.005),(0.19,5.005)), ) createRL( tech, net, 'psdm', - ((0.975,5.06),(0.975,8.8),(1.265,8.8),(1.265,5.06),(0.975,5.06)), + ((1.0,5.06),(1.0,8.8),(1.29,8.8),(1.29,5.06),(1.0,5.06)), ) createRL( tech, net, 'psdm', - ((0.67,5.005),(0.67,8.855),(1.57,8.855),(1.57,5.005),(0.67,5.005)), + ((0.695,5.005),(0.695,8.855),(1.595,8.855),(1.595,5.005),(0.695,5.005)), ) createRL( tech, net, 'psdm', - ((0.97,0.19),(0.97,0.74),(1.81,0.74),(1.81,0.19),(0.97,0.19)), + ((0.81,0.19),(0.81,0.69),(1.81,0.69),(1.81,0.19),(0.81,0.19)), ) createRL( tech, net, 'psdm', - ((1.12,8.69),(1.12,9.24),(1.62,9.24),(1.62,8.69),(1.12,8.69)), + ((1.17,8.555),(1.17,9.215),(1.67,9.215),(1.67,8.555),(1.17,8.555)), ) createRL( tech, net, 'psdm', - ((1.12,5.005),(1.12,9.24),(1.62,9.24),(1.62,5.005),(1.12,5.005)), + ((1.17,5.005),(1.17,9.215),(1.67,9.215),(1.67,5.005),(1.17,5.005)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((0.365,5.13),(0.365,8.73),(0.615,8.73),(0.615,5.13),(0.365,5.13)), + ((0.39,5.13),(0.39,8.73),(0.64,8.73),(0.64,5.13),(0.39,5.13)), ) createRL( tech, net, 'difftap', - ((0.615,5.13),(0.615,8.73),(0.765,8.73),(0.765,5.13),(0.615,5.13)), + ((0.64,5.13),(0.64,8.73),(0.79,8.73),(0.79,5.13),(0.64,5.13)), ) createRL( tech, net, 'difftap', - ((1.195,5.13),(1.195,8.73),(1.445,8.73),(1.445,5.13),(1.195,5.13)), + ((1.22,5.13),(1.22,8.73),(1.47,8.73),(1.47,5.13),(1.22,5.13)), ) createRL( tech, net, 'difftap', - ((1.045,5.13),(1.045,8.73),(1.195,8.73),(1.195,5.13),(1.045,5.13)), + ((1.07,5.13),(1.07,8.73),(1.22,8.73),(1.22,5.13),(1.07,5.13)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.68),(0.315,9.09),(0.565,9.09),(0.565,8.68),(0.315,8.68)), ) createRL( tech, net, 'difftap', - ((0.315,5.13),(0.315,9.115),(0.565,9.115),(0.565,5.13),(0.315,5.13)), + ((0.315,5.13),(0.315,9.09),(0.565,9.09),(0.565,5.13),(0.315,5.13)), ) createRL( tech, net, 'difftap', - ((1.095,9.385),(1.095,9.685),(1.685,9.685),(1.685,9.385),(1.095,9.385)), + ((0.935,9.435),(0.935,9.685),(1.685,9.685),(1.685,9.435),(0.935,9.435)), ) createRL( tech, net, 'difftap', - ((1.245,8.815),(1.245,9.115),(1.495,9.115),(1.495,8.815),(1.245,8.815)), + ((1.295,8.68),(1.295,9.09),(1.545,9.09),(1.545,8.68),(1.295,8.68)), ) createRL( tech, net, 'difftap', - ((1.245,5.13),(1.245,9.115),(1.495,9.115),(1.495,5.13),(1.245,5.13)), + ((1.295,5.13),(1.295,9.09),(1.545,9.09),(1.545,5.13),(1.295,5.13)), ) createRL( tech, net, 'licon', - ((1.285,8.88),(1.285,9.05),(1.455,9.05),(1.455,8.88),(1.285,8.88)), + ((1.335,8.8),(1.335,8.97),(1.505,8.97),(1.505,8.8),(1.335,8.8)), ) createRL( tech, net, 'licon', - ((0.355,8.88),(0.355,9.05),(0.525,9.05),(0.525,8.88),(0.355,8.88)), + ((1.055,9.475),(1.055,9.645),(1.225,9.645),(1.225,9.475),(1.055,9.475)), ) createRL( tech, net, 'licon', - ((1.135,9.45),(1.135,9.62),(1.305,9.62),(1.305,9.45),(1.135,9.45)), + ((1.395,9.475),(1.395,9.645),(1.565,9.645),(1.565,9.475),(1.395,9.475)), ) createRL( tech, net, 'licon', - ((1.475,9.45),(1.475,9.62),(1.645,9.62),(1.645,9.45),(1.475,9.45)), + ((0.355,8.8),(0.355,8.97),(0.525,8.97),(0.525,8.8),(0.355,8.8)), ) createRL( tech, net, 'li', - ((1.285,8.8),(1.285,9.13),(1.455,9.13),(1.455,8.8),(1.285,8.8)), + ((1.055,9.395),(1.055,9.725),(1.565,9.725),(1.565,9.395),(1.055,9.395)), ) createRL( tech, net, 'li', - ((0.355,8.8),(0.355,9.13),(0.525,9.13),(0.525,8.8),(0.355,8.8)), + ((1.255,8.8),(1.255,8.97),(1.585,8.97),(1.585,8.8),(1.255,8.8)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(2.0,10.0),(2.0,8.8),(0.0,8.8)), + ((0.275,8.8),(0.275,8.97),(0.605,8.97),(0.605,8.8),(0.275,8.8)), ) createRL( tech, net, 'li', - ((1.135,9.37),(1.135,9.7),(1.645,9.7),(1.645,9.37),(1.135,9.37)), + ((0.0,8.8),(0.0,10.0),(2.0,10.0),(2.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'nwm', - ((0.185,4.95),(0.185,8.91),(1.195,8.91),(1.195,4.95),(0.185,4.95)), + ((0.21,4.95),(0.21,8.91),(1.22,8.91),(1.22,4.95),(0.21,4.95)), ) createRL( tech, net, 'nwm', - ((0.6,4.95),(0.6,8.91),(1.21,8.91),(1.21,4.95),(0.6,4.95)), + ((0.625,4.95),(0.625,8.91),(1.235,8.91),(1.235,4.95),(0.625,4.95)), ) createRL( tech, net, 'nwm', - ((1.065,4.95),(1.065,9.295),(1.675,9.295),(1.675,4.95),(1.065,4.95)), + ((1.115,4.95),(1.115,9.27),(1.725,9.27),(1.725,4.95),(1.115,4.95)), ) createRL( tech, net, 'nwm', - ((0.615,4.95),(0.615,8.91),(1.625,8.91),(1.625,4.95),(0.615,4.95)), + ((0.64,4.95),(0.64,8.91),(1.65,8.91),(1.65,4.95),(0.64,4.95)), ) createRL( tech, net, 'nwm', - ((0.6,5.07),(0.6,8.79),(1.21,8.79),(1.21,5.07),(0.6,5.07)), + ((0.625,5.01),(0.625,8.85),(1.235,8.85),(1.235,5.01),(0.625,5.01)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.5),(0.135,9.27),(0.745,9.27),(0.745,8.5),(0.135,8.5)), ) createRL( tech, net, 'nwm', - ((0.915,9.205),(0.915,9.865),(1.865,9.865),(1.865,9.205),(0.915,9.205)), + ((0.755,9.255),(0.755,9.865),(1.865,9.865),(1.865,9.255),(0.755,9.255)), ) createRL( tech, net, 'nwm', - ((1.065,8.635),(1.065,9.295),(1.675,9.295),(1.675,8.635),(1.065,8.635)), + ((1.115,8.5),(1.115,9.27),(1.725,9.27),(1.725,8.5),(1.115,8.5)), ) createRL( tech, net, 'nwm', - ((0.135,4.95),(0.135,9.295),(0.745,9.295),(0.745,4.95),(0.135,4.95)), + ((0.135,4.95),(0.135,9.27),(0.745,9.27),(0.745,4.95),(0.135,4.95)), ) createRL( tech, net, 'nwm', @@ -23388,115 +23108,115 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,5.25),(0.78,8.61),(1.03,8.61),(1.03,5.25),(0.78,5.25)), + ((0.805,5.19),(0.805,8.67),(1.055,8.67),(1.055,5.19),(0.805,5.19)), ) createRL( tech, net, 'difftap', - ((0.78,5.13),(0.78,8.73),(1.03,8.73),(1.03,5.13),(0.78,5.13)), + ((0.805,5.13),(0.805,8.73),(1.055,8.73),(1.055,5.13),(0.805,5.13)), ) createRL( tech, net, 'difftap', - ((0.765,5.13),(0.765,8.73),(1.015,8.73),(1.015,5.13),(0.765,5.13)), + ((0.79,5.13),(0.79,8.73),(1.04,8.73),(1.04,5.13),(0.79,5.13)), ) createRL( tech, net, 'difftap', - ((0.795,5.13),(0.795,8.73),(1.045,8.73),(1.045,5.13),(0.795,5.13)), + ((0.82,5.13),(0.82,8.73),(1.07,8.73),(1.07,5.13),(0.82,5.13)), ) createRL( tech, net, 'difftap', - ((0.78,1.385),(0.78,3.045),(1.03,3.045),(1.03,1.385),(0.78,1.385)), + ((0.805,1.325),(0.805,3.105),(1.055,3.105),(1.055,1.325),(0.805,1.325)), ) createRL( tech, net, 'difftap', - ((0.765,1.315),(0.765,3.115),(1.015,3.115),(1.015,1.315),(0.765,1.315)), + ((0.79,1.315),(0.79,3.115),(1.04,3.115),(1.04,1.315),(0.79,1.315)), ) createRL( tech, net, 'difftap', - ((0.795,1.315),(0.795,3.115),(1.045,3.115),(1.045,1.315),(0.795,1.315)), + ((0.82,1.315),(0.82,3.115),(1.07,3.115),(1.07,1.315),(0.82,1.315)), ) createRL( tech, net, 'difftap', - ((0.78,1.315),(0.78,3.115),(1.03,3.115),(1.03,1.315),(0.78,1.315)), + ((0.805,1.315),(0.805,3.115),(1.055,3.115),(1.055,1.315),(0.805,1.315)), ) createRL( tech, net, 'licon', - ((0.82,1.45),(0.82,1.62),(0.99,1.62),(0.99,1.45),(0.82,1.45)), + ((0.845,1.45),(0.845,1.62),(1.015,1.62),(1.015,1.45),(0.845,1.45)), ) createRL( tech, net, 'licon', - ((0.82,1.79),(0.82,1.96),(0.99,1.96),(0.99,1.79),(0.82,1.79)), + ((0.845,1.79),(0.845,1.96),(1.015,1.96),(1.015,1.79),(0.845,1.79)), ) createRL( tech, net, 'licon', - ((0.82,2.13),(0.82,2.3),(0.99,2.3),(0.99,2.13),(0.82,2.13)), + ((0.845,2.13),(0.845,2.3),(1.015,2.3),(1.015,2.13),(0.845,2.13)), ) createRL( tech, net, 'licon', - ((0.82,2.47),(0.82,2.64),(0.99,2.64),(0.99,2.47),(0.82,2.47)), + ((0.845,2.47),(0.845,2.64),(1.015,2.64),(1.015,2.47),(0.845,2.47)), ) createRL( tech, net, 'licon', - ((0.82,2.81),(0.82,2.98),(0.99,2.98),(0.99,2.81),(0.82,2.81)), + ((0.845,2.81),(0.845,2.98),(1.015,2.98),(1.015,2.81),(0.845,2.81)), ) createRL( tech, net, 'licon', - ((0.82,5.315),(0.82,5.485),(0.99,5.485),(0.99,5.315),(0.82,5.315)), + ((0.845,5.315),(0.845,5.485),(1.015,5.485),(1.015,5.315),(0.845,5.315)), ) createRL( tech, net, 'licon', - ((0.82,5.655),(0.82,5.825),(0.99,5.825),(0.99,5.655),(0.82,5.655)), + ((0.845,5.655),(0.845,5.825),(1.015,5.825),(1.015,5.655),(0.845,5.655)), ) createRL( tech, net, 'licon', - ((0.82,5.995),(0.82,6.165),(0.99,6.165),(0.99,5.995),(0.82,5.995)), + ((0.845,5.995),(0.845,6.165),(1.015,6.165),(1.015,5.995),(0.845,5.995)), ) createRL( tech, net, 'licon', - ((0.82,6.335),(0.82,6.505),(0.99,6.505),(0.99,6.335),(0.82,6.335)), + ((0.845,6.335),(0.845,6.505),(1.015,6.505),(1.015,6.335),(0.845,6.335)), ) createRL( tech, net, 'licon', - ((0.82,6.675),(0.82,6.845),(0.99,6.845),(0.99,6.675),(0.82,6.675)), + ((0.845,6.675),(0.845,6.845),(1.015,6.845),(1.015,6.675),(0.845,6.675)), ) createRL( tech, net, 'licon', - ((0.82,7.015),(0.82,7.185),(0.99,7.185),(0.99,7.015),(0.82,7.015)), + ((0.845,7.015),(0.845,7.185),(1.015,7.185),(1.015,7.015),(0.845,7.015)), ) createRL( tech, net, 'licon', - ((0.82,7.355),(0.82,7.525),(0.99,7.525),(0.99,7.355),(0.82,7.355)), + ((0.845,7.355),(0.845,7.525),(1.015,7.525),(1.015,7.355),(0.845,7.355)), ) createRL( tech, net, 'licon', - ((0.82,7.695),(0.82,7.865),(0.99,7.865),(0.99,7.695),(0.82,7.695)), + ((0.845,7.695),(0.845,7.865),(1.015,7.865),(1.015,7.695),(0.845,7.695)), ) createRL( tech, net, 'licon', - ((0.82,8.035),(0.82,8.205),(0.99,8.205),(0.99,8.035),(0.82,8.035)), + ((0.845,8.035),(0.845,8.205),(1.015,8.205),(1.015,8.035),(0.845,8.035)), ) createRL( tech, net, 'licon', - ((0.82,8.375),(0.82,8.545),(0.99,8.545),(0.99,8.375),(0.82,8.375)), + ((0.845,8.375),(0.845,8.545),(1.015,8.545),(1.015,8.375),(0.845,8.375)), ) createRL( tech, net, 'li', - ((0.82,5.23),(0.82,8.63),(0.99,8.63),(0.99,5.23),(0.82,5.23)), + ((0.845,1.37),(0.845,3.06),(1.015,3.06),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,3.06),(0.99,3.06),(0.99,1.37),(0.82,1.37)), + ((0.845,1.37),(0.845,8.63),(1.015,8.63),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,8.63),(0.99,8.63),(0.99,1.37),(0.82,1.37)), + ((0.845,5.23),(0.845,8.63),(1.015,8.63),(1.015,5.23),(0.845,5.23)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -23513,8 +23233,8 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['i'] createRL( tech, net, 'li', @@ -23536,59 +23256,59 @@ def _load(): NetExternalComponents.setExternal(pin) createRL( tech, net, 'poly', - ((1.975,5.0),(1.975,8.86),(2.125,8.86),(2.125,5.0),(1.975,5.0)), + ((0.205,4.635),(0.205,4.965),(0.475,4.965),(0.475,4.635),(0.205,4.635)), ) createRL( tech, net, 'poly', - ((0.205,4.635),(0.205,4.965),(0.475,4.965),(0.475,4.635),(0.205,4.635)), + ((0.64,1.185),(0.64,3.245),(0.79,3.245),(0.79,1.185),(0.64,1.185)), ) createRL( tech, net, 'poly', - ((0.615,1.185),(0.615,3.245),(0.765,3.245),(0.765,1.185),(0.615,1.185)), + ((0.64,5.0),(0.64,8.86),(0.79,8.86),(0.79,5.0),(0.64,5.0)), ) createRL( tech, net, 'poly', - ((1.975,3.245),(1.975,5.0),(2.125,5.0),(2.125,3.245),(1.975,3.245)), + ((0.64,3.245),(0.64,5.0),(0.79,5.0),(0.79,3.245),(0.64,3.245)), ) createRL( tech, net, 'poly', - ((0.615,5.0),(0.615,8.86),(0.765,8.86),(0.765,5.0),(0.615,5.0)), + ((2.05,3.245),(2.05,5.0),(2.2,5.0),(2.2,3.245),(2.05,3.245)), ) createRL( tech, net, 'poly', - ((0.615,3.245),(0.615,5.0),(0.765,5.0),(0.765,3.245),(0.615,3.245)), + ((1.07,5.0),(1.07,8.86),(1.22,8.86),(1.22,5.0),(1.07,5.0)), ) createRL( tech, net, 'poly', - ((1.045,5.0),(1.045,8.86),(1.195,8.86),(1.195,5.0),(1.045,5.0)), + ((1.62,5.0),(1.62,8.86),(1.77,8.86),(1.77,5.0),(1.62,5.0)), ) createRL( tech, net, 'poly', - ((1.545,5.0),(1.545,8.86),(1.695,8.86),(1.695,5.0),(1.545,5.0)), + ((2.05,1.185),(2.05,3.245),(2.2,3.245),(2.2,1.185),(2.05,1.185)), ) createRL( tech, net, 'poly', - ((1.045,3.245),(1.045,5.0),(1.195,5.0),(1.195,3.245),(1.045,3.245)), + ((1.07,3.245),(1.07,5.0),(1.22,5.0),(1.22,3.245),(1.07,3.245)), ) createRL( tech, net, 'poly', - ((1.545,3.245),(1.545,5.0),(1.695,5.0),(1.695,3.245),(1.545,3.245)), + ((1.62,3.245),(1.62,5.0),(1.77,5.0),(1.77,3.245),(1.62,3.245)), ) createRL( tech, net, 'poly', - ((1.975,1.185),(1.975,3.245),(2.125,3.245),(2.125,1.185),(1.975,1.185)), + ((0.205,4.635),(0.205,4.965),(2.2,4.965),(2.2,4.635),(0.205,4.635)), ) createRL( tech, net, 'poly', - ((0.205,4.635),(0.205,4.965),(2.125,4.965),(2.125,4.635),(0.205,4.635)), + ((2.05,5.0),(2.05,8.86),(2.2,8.86),(2.2,5.0),(2.05,5.0)), ) createRL( tech, net, 'poly', - ((1.545,1.185),(1.545,3.245),(1.695,3.245),(1.695,1.185),(1.545,1.185)), + ((1.62,1.185),(1.62,3.245),(1.77,3.245),(1.77,1.185),(1.62,1.185)), ) createRL( tech, net, 'poly', - ((1.045,1.185),(1.045,3.245),(1.195,3.245),(1.195,1.185),(1.045,1.185)), + ((1.07,1.185),(1.07,3.245),(1.22,3.245),(1.22,1.185),(1.07,1.185)), ) createRL( tech, net, 'licon', @@ -23597,91 +23317,91 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((1.245,0.885),(1.245,1.185),(1.495,1.185),(1.495,0.885),(1.245,0.885)), + ((1.295,0.91),(1.295,1.32),(1.545,1.32),(1.545,0.91),(1.295,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,3.115),(0.565,3.115),(0.565,0.885),(0.315,0.885)), + ((2.275,0.91),(2.275,3.115),(2.525,3.115),(2.525,0.91),(2.275,0.91)), ) createRL( tech, net, 'difftap', - ((2.175,0.885),(2.175,3.115),(2.425,3.115),(2.425,0.885),(2.175,0.885)), + ((0.64,1.315),(0.64,3.115),(0.79,3.115),(0.79,1.315),(0.64,1.315)), ) createRL( tech, net, 'difftap', - ((0.615,1.315),(0.615,3.115),(0.765,3.115),(0.765,1.315),(0.615,1.315)), + ((0.39,1.315),(0.39,3.115),(0.64,3.115),(0.64,1.315),(0.39,1.315)), ) createRL( tech, net, 'difftap', - ((0.365,1.315),(0.365,3.115),(0.615,3.115),(0.615,1.315),(0.365,1.315)), + ((0.315,0.91),(0.315,1.32),(0.565,1.32),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((1.07,1.315),(1.07,3.115),(1.22,3.115),(1.22,1.315),(1.07,1.315)), ) createRL( tech, net, 'difftap', - ((1.045,1.315),(1.045,3.115),(1.195,3.115),(1.195,1.315),(1.045,1.315)), + ((1.37,1.315),(1.37,3.115),(1.62,3.115),(1.62,1.315),(1.37,1.315)), ) createRL( tech, net, 'difftap', - ((1.295,1.315),(1.295,3.115),(1.545,3.115),(1.545,1.315),(1.295,1.315)), + ((1.62,1.315),(1.62,3.115),(1.77,3.115),(1.77,1.315),(1.62,1.315)), ) createRL( tech, net, 'difftap', - ((1.545,1.315),(1.545,3.115),(1.695,3.115),(1.695,1.315),(1.545,1.315)), + ((2.2,1.315),(2.2,3.115),(2.45,3.115),(2.45,1.315),(2.2,1.315)), ) createRL( tech, net, 'difftap', - ((2.125,1.315),(2.125,3.115),(2.375,3.115),(2.375,1.315),(2.125,1.315)), + ((1.295,0.91),(1.295,3.115),(1.545,3.115),(1.545,0.91),(1.295,0.91)), ) createRL( tech, net, 'difftap', - ((1.245,0.885),(1.245,3.115),(1.495,3.115),(1.495,0.885),(1.245,0.885)), + ((2.05,1.315),(2.05,3.115),(2.2,3.115),(2.2,1.315),(2.05,1.315)), ) createRL( tech, net, 'difftap', - ((2.095,0.315),(2.095,0.615),(2.685,0.615),(2.685,0.315),(2.095,0.315)), + ((1.935,0.315),(1.935,0.565),(2.685,0.565),(2.685,0.315),(1.935,0.315)), ) createRL( tech, net, 'difftap', - ((2.175,0.885),(2.175,1.185),(2.425,1.185),(2.425,0.885),(2.175,0.885)), + ((2.275,0.91),(2.275,1.32),(2.525,1.32),(2.525,0.91),(2.275,0.91)), ) createRL( tech, net, 'difftap', - ((1.975,1.315),(1.975,3.115),(2.125,3.115),(2.125,1.315),(1.975,1.315)), + ((0.315,0.91),(0.315,3.115),(0.565,3.115),(0.565,0.91),(0.315,0.91)), ) createRL( tech, net, 'difftap', - ((1.195,1.315),(1.195,3.115),(1.445,3.115),(1.445,1.315),(1.195,1.315)), + ((1.22,1.315),(1.22,3.115),(1.47,3.115),(1.47,1.315),(1.22,1.315)), ) createRL( tech, net, 'licon', - ((1.285,0.95),(1.285,1.12),(1.455,1.12),(1.455,0.95),(1.285,0.95)), + ((2.315,1.03),(2.315,1.2),(2.485,1.2),(2.485,1.03),(2.315,1.03)), ) createRL( tech, net, 'licon', - ((0.355,0.95),(0.355,1.12),(0.525,1.12),(0.525,0.95),(0.355,0.95)), + ((2.055,0.355),(2.055,0.525),(2.225,0.525),(2.225,0.355),(2.055,0.355)), ) createRL( tech, net, 'licon', - ((2.135,0.38),(2.135,0.55),(2.305,0.55),(2.305,0.38),(2.135,0.38)), + ((2.395,0.355),(2.395,0.525),(2.565,0.525),(2.565,0.355),(2.395,0.355)), ) createRL( tech, net, 'licon', - ((2.475,0.38),(2.475,0.55),(2.645,0.55),(2.645,0.38),(2.475,0.38)), + ((1.335,1.03),(1.335,1.2),(1.505,1.2),(1.505,1.03),(1.335,1.03)), ) createRL( tech, net, 'licon', - ((2.215,0.95),(2.215,1.12),(2.385,1.12),(2.385,0.95),(2.215,0.95)), + ((0.355,1.03),(0.355,1.2),(0.525,1.2),(0.525,1.03),(0.355,1.03)), ) createRL( tech, net, 'li', - ((1.285,0.87),(1.285,1.2),(1.455,1.2),(1.455,0.87),(1.285,0.87)), + ((2.235,1.03),(2.235,1.2),(2.565,1.2),(2.565,1.03),(2.235,1.03)), ) createRL( tech, net, 'li', - ((0.355,0.87),(0.355,1.2),(0.525,1.2),(0.525,0.87),(0.355,0.87)), + ((1.255,1.03),(1.255,1.2),(1.585,1.2),(1.585,1.03),(1.255,1.03)), ) createRL( tech, net, 'li', @@ -23689,11 +23409,11 @@ def _load(): ) createRL( tech, net, 'li', - ((2.215,0.87),(2.215,1.2),(2.385,1.2),(2.385,0.87),(2.215,0.87)), + ((0.275,1.03),(0.275,1.2),(0.605,1.2),(0.605,1.03),(0.275,1.03)), ) createRL( tech, net, 'li', - ((2.135,0.3),(2.135,0.63),(2.645,0.63),(2.645,0.3),(2.135,0.3)), + ((2.055,0.275),(2.055,0.605),(2.565,0.605),(2.565,0.275),(2.055,0.275)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -23708,312 +23428,312 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((1.585,1.19),(1.585,3.24),(2.085,3.24),(2.085,1.19),(1.585,1.19)), + ((1.17,0.785),(1.17,1.445),(1.67,1.445),(1.67,0.785),(1.17,0.785)), ) createRL( tech, net, 'nsdm', - ((1.12,0.76),(1.12,1.31),(1.62,1.31),(1.62,0.76),(1.12,0.76)), + ((1.675,1.19),(1.675,3.24),(2.575,3.24),(2.575,1.19),(1.675,1.19)), ) createRL( tech, net, 'nsdm', - ((2.05,0.76),(2.05,3.24),(2.55,3.24),(2.55,0.76),(2.05,0.76)), + ((0.57,1.245),(0.57,3.185),(0.86,3.185),(0.86,1.245),(0.57,1.245)), ) createRL( tech, net, 'nsdm', - ((0.545,1.245),(0.545,3.185),(0.835,3.185),(0.835,1.245),(0.545,1.245)), + ((1.98,1.245),(1.98,3.185),(2.27,3.185),(2.27,1.245),(1.98,1.245)), ) createRL( tech, net, 'nsdm', - ((1.905,1.245),(1.905,3.185),(2.195,3.185),(2.195,1.245),(1.905,1.245)), + ((2.15,0.785),(2.15,3.24),(2.65,3.24),(2.65,0.785),(2.15,0.785)), ) createRL( tech, net, 'nsdm', - ((1.97,9.26),(1.97,9.81),(2.81,9.81),(2.81,9.26),(1.97,9.26)), + ((1.81,9.31),(1.81,9.81),(2.81,9.81),(2.81,9.31),(1.81,9.31)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,3.24),(0.69,3.24),(0.69,0.76),(0.19,0.76)), + ((0.19,0.785),(0.19,3.24),(0.69,3.24),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((0.19,0.785),(0.19,1.445),(0.69,1.445),(0.69,0.785),(0.19,0.785)), ) createRL( tech, net, 'nsdm', - ((1.17,1.19),(1.17,3.24),(2.07,3.24),(2.07,1.19),(1.17,1.19)), + ((1.245,1.19),(1.245,3.24),(2.145,3.24),(2.145,1.19),(1.245,1.19)), ) createRL( tech, net, 'nsdm', - ((0.24,1.19),(0.24,3.24),(1.14,3.24),(1.14,1.19),(0.24,1.19)), + ((0.265,1.19),(0.265,3.24),(1.165,3.24),(1.165,1.19),(0.265,1.19)), ) createRL( tech, net, 'nsdm', - ((0.67,1.19),(0.67,3.24),(1.57,3.24),(1.57,1.19),(0.67,1.19)), + ((0.695,1.19),(0.695,3.24),(1.595,3.24),(1.595,1.19),(0.695,1.19)), ) createRL( tech, net, 'nsdm', - ((0.655,1.19),(0.655,3.24),(1.155,3.24),(1.155,1.19),(0.655,1.19)), + ((0.68,1.2),(0.68,3.23),(1.18,3.23),(1.18,1.2),(0.68,1.2)), ) createRL( tech, net, 'nsdm', - ((0.655,1.26),(0.655,3.17),(1.155,3.17),(1.155,1.26),(0.655,1.26)), + ((1.0,1.245),(1.0,3.185),(1.29,3.185),(1.29,1.245),(1.0,1.245)), ) createRL( tech, net, 'nsdm', - ((0.975,1.245),(0.975,3.185),(1.265,3.185),(1.265,1.245),(0.975,1.245)), + ((0.68,1.19),(0.68,3.24),(1.18,3.24),(1.18,1.19),(0.68,1.19)), ) createRL( tech, net, 'nsdm', - ((1.475,1.245),(1.475,3.185),(1.765,3.185),(1.765,1.245),(1.475,1.245)), + ((1.55,1.245),(1.55,3.185),(1.84,3.185),(1.84,1.245),(1.55,1.245)), ) createRL( tech, net, 'nsdm', - ((1.6,1.19),(1.6,3.24),(2.5,3.24),(2.5,1.19),(1.6,1.19)), + ((1.17,0.785),(1.17,3.24),(1.67,3.24),(1.67,0.785),(1.17,0.785)), ) createRL( tech, net, 'nsdm', - ((1.12,0.76),(1.12,3.24),(1.62,3.24),(1.62,0.76),(1.12,0.76)), + ((1.66,1.19),(1.66,3.24),(2.16,3.24),(2.16,1.19),(1.66,1.19)), ) createRL( tech, net, 'nsdm', - ((2.05,0.76),(2.05,1.31),(2.55,1.31),(2.55,0.76),(2.05,0.76)), + ((2.15,0.785),(2.15,1.445),(2.65,1.445),(2.65,0.785),(2.15,0.785)), ) createRL( tech, net, 'nsdm', - ((1.585,1.26),(1.585,3.17),(2.085,3.17),(2.085,1.26),(1.585,1.26)), + ((1.66,1.2),(1.66,3.23),(2.16,3.23),(2.16,1.2),(1.66,1.2)), ) createRL( tech, net, 'psdm', - ((0.545,5.06),(0.545,8.8),(0.835,8.8),(0.835,5.06),(0.545,5.06)), + ((0.57,5.06),(0.57,8.8),(0.86,8.8),(0.86,5.06),(0.57,5.06)), ) createRL( tech, net, 'psdm', - ((0.655,5.125),(0.655,8.735),(1.155,8.735),(1.155,5.125),(0.655,5.125)), + ((0.68,5.065),(0.68,8.795),(1.18,8.795),(1.18,5.065),(0.68,5.065)), ) createRL( tech, net, 'psdm', - ((0.24,5.005),(0.24,8.855),(1.14,8.855),(1.14,5.005),(0.24,5.005)), + ((0.265,5.005),(0.265,8.855),(1.165,8.855),(1.165,5.005),(0.265,5.005)), ) createRL( tech, net, 'psdm', - ((0.655,5.005),(0.655,8.855),(1.155,8.855),(1.155,5.005),(0.655,5.005)), + ((0.68,5.005),(0.68,8.855),(1.18,8.855),(1.18,5.005),(0.68,5.005)), ) createRL( tech, net, 'psdm', - ((0.975,5.06),(0.975,8.8),(1.265,8.8),(1.265,5.06),(0.975,5.06)), + ((1.0,5.06),(1.0,8.8),(1.29,8.8),(1.29,5.06),(1.0,5.06)), ) createRL( tech, net, 'psdm', - ((0.67,5.005),(0.67,8.855),(1.57,8.855),(1.57,5.005),(0.67,5.005)), + ((0.695,5.005),(0.695,8.855),(1.595,8.855),(1.595,5.005),(0.695,5.005)), ) createRL( tech, net, 'psdm', - ((1.475,5.06),(1.475,8.8),(1.765,8.8),(1.765,5.06),(1.475,5.06)), + ((1.55,5.06),(1.55,8.8),(1.84,8.8),(1.84,5.06),(1.55,5.06)), ) createRL( tech, net, 'psdm', - ((1.12,8.69),(1.12,9.24),(1.62,9.24),(1.62,8.69),(1.12,8.69)), + ((1.17,8.555),(1.17,9.215),(1.67,9.215),(1.67,8.555),(1.17,8.555)), ) createRL( tech, net, 'psdm', - ((1.905,5.06),(1.905,8.8),(2.195,8.8),(2.195,5.06),(1.905,5.06)), + ((1.245,5.005),(1.245,8.855),(2.145,8.855),(2.145,5.005),(1.245,5.005)), ) createRL( tech, net, 'psdm', - ((1.17,5.005),(1.17,8.855),(2.07,8.855),(2.07,5.005),(1.17,5.005)), + ((1.98,5.06),(1.98,8.8),(2.27,8.8),(2.27,5.06),(1.98,5.06)), ) createRL( tech, net, 'psdm', - ((1.585,5.125),(1.585,8.735),(2.085,8.735),(2.085,5.125),(1.585,5.125)), + ((1.66,5.005),(1.66,8.855),(2.16,8.855),(2.16,5.005),(1.66,5.005)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.555),(0.19,9.215),(0.69,9.215),(0.69,8.555),(0.19,8.555)), ) createRL( tech, net, 'psdm', - ((1.585,5.005),(1.585,8.855),(2.085,8.855),(2.085,5.005),(1.585,5.005)), + ((1.66,5.065),(1.66,8.795),(2.16,8.795),(2.16,5.065),(1.66,5.065)), ) createRL( tech, net, 'psdm', - ((1.6,5.005),(1.6,8.855),(2.5,8.855),(2.5,5.005),(1.6,5.005)), + ((1.675,5.005),(1.675,8.855),(2.575,8.855),(2.575,5.005),(1.675,5.005)), ) createRL( tech, net, 'psdm', - ((1.12,5.005),(1.12,9.24),(1.62,9.24),(1.62,5.005),(1.12,5.005)), + ((1.17,5.005),(1.17,9.215),(1.67,9.215),(1.67,5.005),(1.17,5.005)), ) createRL( tech, net, 'psdm', - ((1.97,0.19),(1.97,0.74),(2.81,0.74),(2.81,0.19),(1.97,0.19)), + ((1.81,0.19),(1.81,0.69),(2.81,0.69),(2.81,0.19),(1.81,0.19)), ) createRL( tech, net, 'psdm', - ((2.05,8.69),(2.05,9.24),(2.55,9.24),(2.55,8.69),(2.05,8.69)), + ((2.15,8.555),(2.15,9.215),(2.65,9.215),(2.65,8.555),(2.15,8.555)), ) createRL( tech, net, 'psdm', - ((0.19,5.005),(0.19,9.24),(0.69,9.24),(0.69,5.005),(0.19,5.005)), + ((0.19,5.005),(0.19,9.215),(0.69,9.215),(0.69,5.005),(0.19,5.005)), ) createRL( tech, net, 'psdm', - ((2.05,5.005),(2.05,9.24),(2.55,9.24),(2.55,5.005),(2.05,5.005)), + ((2.15,5.005),(2.15,9.215),(2.65,9.215),(2.65,5.005),(2.15,5.005)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((0.365,5.13),(0.365,8.73),(0.615,8.73),(0.615,5.13),(0.365,5.13)), + ((0.39,5.13),(0.39,8.73),(0.64,8.73),(0.64,5.13),(0.39,5.13)), ) createRL( tech, net, 'difftap', - ((0.615,5.13),(0.615,8.73),(0.765,8.73),(0.765,5.13),(0.615,5.13)), + ((0.64,5.13),(0.64,8.73),(0.79,8.73),(0.79,5.13),(0.64,5.13)), ) createRL( tech, net, 'difftap', - ((2.095,9.385),(2.095,9.685),(2.685,9.685),(2.685,9.385),(2.095,9.385)), + ((2.2,5.13),(2.2,8.73),(2.45,8.73),(2.45,5.13),(2.2,5.13)), ) createRL( tech, net, 'difftap', - ((2.125,5.13),(2.125,8.73),(2.375,8.73),(2.375,5.13),(2.125,5.13)), + ((2.05,5.13),(2.05,8.73),(2.2,8.73),(2.2,5.13),(2.05,5.13)), ) createRL( tech, net, 'difftap', - ((1.975,5.13),(1.975,8.73),(2.125,8.73),(2.125,5.13),(1.975,5.13)), + ((1.22,5.13),(1.22,8.73),(1.47,8.73),(1.47,5.13),(1.22,5.13)), ) createRL( tech, net, 'difftap', - ((1.195,5.13),(1.195,8.73),(1.445,8.73),(1.445,5.13),(1.195,5.13)), + ((1.07,5.13),(1.07,8.73),(1.22,8.73),(1.22,5.13),(1.07,5.13)), ) createRL( tech, net, 'difftap', - ((1.045,5.13),(1.045,8.73),(1.195,8.73),(1.195,5.13),(1.045,5.13)), + ((0.315,8.68),(0.315,9.09),(0.565,9.09),(0.565,8.68),(0.315,8.68)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,5.13),(0.315,9.09),(0.565,9.09),(0.565,5.13),(0.315,5.13)), ) createRL( tech, net, 'difftap', - ((0.315,5.13),(0.315,9.115),(0.565,9.115),(0.565,5.13),(0.315,5.13)), + ((1.62,5.13),(1.62,8.73),(1.77,8.73),(1.77,5.13),(1.62,5.13)), ) createRL( tech, net, 'difftap', - ((1.545,5.13),(1.545,8.73),(1.695,8.73),(1.695,5.13),(1.545,5.13)), + ((1.37,5.13),(1.37,8.73),(1.62,8.73),(1.62,5.13),(1.37,5.13)), ) createRL( tech, net, 'difftap', - ((1.295,5.13),(1.295,8.73),(1.545,8.73),(1.545,5.13),(1.295,5.13)), + ((1.935,9.435),(1.935,9.685),(2.685,9.685),(2.685,9.435),(1.935,9.435)), ) createRL( tech, net, 'difftap', - ((2.175,5.13),(2.175,9.115),(2.425,9.115),(2.425,5.13),(2.175,5.13)), + ((2.275,5.13),(2.275,9.09),(2.525,9.09),(2.525,5.13),(2.275,5.13)), ) createRL( tech, net, 'difftap', - ((1.245,8.815),(1.245,9.115),(1.495,9.115),(1.495,8.815),(1.245,8.815)), + ((1.295,8.68),(1.295,9.09),(1.545,9.09),(1.545,8.68),(1.295,8.68)), ) createRL( tech, net, 'difftap', - ((1.245,5.13),(1.245,9.115),(1.495,9.115),(1.495,5.13),(1.245,5.13)), + ((1.295,5.13),(1.295,9.09),(1.545,9.09),(1.545,5.13),(1.295,5.13)), ) createRL( tech, net, 'difftap', - ((2.175,8.815),(2.175,9.115),(2.425,9.115),(2.425,8.815),(2.175,8.815)), + ((2.275,8.68),(2.275,9.09),(2.525,9.09),(2.525,8.68),(2.275,8.68)), ) createRL( tech, net, 'licon', - ((1.285,8.88),(1.285,9.05),(1.455,9.05),(1.455,8.88),(1.285,8.88)), + ((1.335,8.8),(1.335,8.97),(1.505,8.97),(1.505,8.8),(1.335,8.8)), ) createRL( tech, net, 'licon', - ((0.355,8.88),(0.355,9.05),(0.525,9.05),(0.525,8.88),(0.355,8.88)), + ((2.055,9.475),(2.055,9.645),(2.225,9.645),(2.225,9.475),(2.055,9.475)), ) createRL( tech, net, 'licon', - ((2.135,9.45),(2.135,9.62),(2.305,9.62),(2.305,9.45),(2.135,9.45)), + ((2.395,9.475),(2.395,9.645),(2.565,9.645),(2.565,9.475),(2.395,9.475)), ) createRL( tech, net, 'licon', - ((2.475,9.45),(2.475,9.62),(2.645,9.62),(2.645,9.45),(2.475,9.45)), + ((0.355,8.8),(0.355,8.97),(0.525,8.97),(0.525,8.8),(0.355,8.8)), ) createRL( tech, net, 'licon', - ((2.215,8.88),(2.215,9.05),(2.385,9.05),(2.385,8.88),(2.215,8.88)), + ((2.315,8.8),(2.315,8.97),(2.485,8.97),(2.485,8.8),(2.315,8.8)), ) createRL( tech, net, 'li', - ((2.135,9.37),(2.135,9.7),(2.645,9.7),(2.645,9.37),(2.135,9.37)), + ((2.055,9.395),(2.055,9.725),(2.565,9.725),(2.565,9.395),(2.055,9.395)), ) createRL( tech, net, 'li', - ((0.355,8.8),(0.355,9.13),(0.525,9.13),(0.525,8.8),(0.355,8.8)), + ((0.275,8.8),(0.275,8.97),(0.605,8.97),(0.605,8.8),(0.275,8.8)), ) createRL( tech, net, 'li', - ((1.285,8.8),(1.285,9.13),(1.455,9.13),(1.455,8.8),(1.285,8.8)), + ((0.0,8.8),(0.0,10.0),(3.0,10.0),(3.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'li', - ((2.215,8.8),(2.215,9.13),(2.385,9.13),(2.385,8.8),(2.215,8.8)), + ((1.255,8.8),(1.255,8.97),(1.585,8.97),(1.585,8.8),(1.255,8.8)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(3.0,10.0),(3.0,8.8),(0.0,8.8)), + ((2.235,8.8),(2.235,8.97),(2.565,8.97),(2.565,8.8),(2.235,8.8)), ) createRL( tech, net, 'nwm', - ((0.185,4.95),(0.185,8.91),(1.195,8.91),(1.195,4.95),(0.185,4.95)), + ((0.21,4.95),(0.21,8.91),(1.22,8.91),(1.22,4.95),(0.21,4.95)), ) createRL( tech, net, 'nwm', - ((0.6,4.95),(0.6,8.91),(1.21,8.91),(1.21,4.95),(0.6,4.95)), + ((0.625,4.95),(0.625,8.91),(1.235,8.91),(1.235,4.95),(0.625,4.95)), ) createRL( tech, net, 'nwm', - ((1.115,4.95),(1.115,8.91),(2.125,8.91),(2.125,4.95),(1.115,4.95)), + ((1.19,4.95),(1.19,8.91),(2.2,8.91),(2.2,4.95),(1.19,4.95)), ) createRL( tech, net, 'nwm', - ((1.065,4.95),(1.065,9.295),(1.675,9.295),(1.675,4.95),(1.065,4.95)), + ((1.115,4.95),(1.115,9.27),(1.725,9.27),(1.725,4.95),(1.115,4.95)), ) createRL( tech, net, 'nwm', - ((0.615,4.95),(0.615,8.91),(1.625,8.91),(1.625,4.95),(0.615,4.95)), + ((0.64,4.95),(0.64,8.91),(1.65,8.91),(1.65,4.95),(0.64,4.95)), ) createRL( tech, net, 'nwm', - ((0.6,5.07),(0.6,8.79),(1.21,8.79),(1.21,5.07),(0.6,5.07)), + ((0.625,5.01),(0.625,8.85),(1.235,8.85),(1.235,5.01),(0.625,5.01)), ) createRL( tech, net, 'nwm', - ((1.53,5.07),(1.53,8.79),(2.14,8.79),(2.14,5.07),(1.53,5.07)), + ((1.605,5.01),(1.605,8.85),(2.215,8.85),(2.215,5.01),(1.605,5.01)), ) createRL( tech, net, 'nwm', - ((1.53,4.95),(1.53,8.91),(2.14,8.91),(2.14,4.95),(1.53,4.95)), + ((1.605,4.95),(1.605,8.91),(2.215,8.91),(2.215,4.95),(1.605,4.95)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.5),(0.135,9.27),(0.745,9.27),(0.745,8.5),(0.135,8.5)), ) createRL( tech, net, 'nwm', - ((1.545,4.95),(1.545,8.91),(2.555,8.91),(2.555,4.95),(1.545,4.95)), + ((1.62,4.95),(1.62,8.91),(2.63,8.91),(2.63,4.95),(1.62,4.95)), ) createRL( tech, net, 'nwm', - ((1.995,8.635),(1.995,9.295),(2.605,9.295),(2.605,8.635),(1.995,8.635)), + ((1.755,9.255),(1.755,9.865),(2.865,9.865),(2.865,9.255),(1.755,9.255)), ) createRL( tech, net, 'nwm', - ((1.995,4.95),(1.995,9.295),(2.605,9.295),(2.605,4.95),(1.995,4.95)), + ((1.115,8.5),(1.115,9.27),(1.725,9.27),(1.725,8.5),(1.115,8.5)), ) createRL( tech, net, 'nwm', - ((1.915,9.205),(1.915,9.865),(2.865,9.865),(2.865,9.205),(1.915,9.205)), + ((2.095,4.95),(2.095,9.27),(2.705,9.27),(2.705,4.95),(2.095,4.95)), ) createRL( tech, net, 'nwm', - ((1.065,8.635),(1.065,9.295),(1.675,9.295),(1.675,8.635),(1.065,8.635)), + ((2.095,8.5),(2.095,9.27),(2.705,9.27),(2.705,8.5),(2.095,8.5)), ) createRL( tech, net, 'nwm', @@ -24021,7 +23741,7 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.135,4.95),(0.135,9.295),(0.745,9.295),(0.745,4.95),(0.135,4.95)), + ((0.135,4.95),(0.135,9.27),(0.745,9.27),(0.745,4.95),(0.135,4.95)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -24036,223 +23756,223 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,5.25),(0.78,8.61),(1.03,8.61),(1.03,5.25),(0.78,5.25)), + ((0.805,5.19),(0.805,8.67),(1.055,8.67),(1.055,5.19),(0.805,5.19)), ) createRL( tech, net, 'difftap', - ((1.71,5.25),(1.71,8.61),(1.96,8.61),(1.96,5.25),(1.71,5.25)), + ((1.785,5.19),(1.785,8.67),(2.035,8.67),(2.035,5.19),(1.785,5.19)), ) createRL( tech, net, 'difftap', - ((1.71,5.13),(1.71,8.73),(1.96,8.73),(1.96,5.13),(1.71,5.13)), + ((1.785,5.13),(1.785,8.73),(2.035,8.73),(2.035,5.13),(1.785,5.13)), ) createRL( tech, net, 'difftap', - ((0.78,5.13),(0.78,8.73),(1.03,8.73),(1.03,5.13),(0.78,5.13)), + ((0.805,5.13),(0.805,8.73),(1.055,8.73),(1.055,5.13),(0.805,5.13)), ) createRL( tech, net, 'difftap', - ((0.765,5.13),(0.765,8.73),(1.015,8.73),(1.015,5.13),(0.765,5.13)), + ((0.805,1.315),(0.805,3.115),(1.055,3.115),(1.055,1.315),(0.805,1.315)), ) createRL( tech, net, 'difftap', - ((0.795,5.13),(0.795,8.73),(1.045,8.73),(1.045,5.13),(0.795,5.13)), + ((0.79,5.13),(0.79,8.73),(1.04,8.73),(1.04,5.13),(0.79,5.13)), ) createRL( tech, net, 'difftap', - ((0.78,1.385),(0.78,3.045),(1.03,3.045),(1.03,1.385),(0.78,1.385)), + ((0.82,5.13),(0.82,8.73),(1.07,8.73),(1.07,5.13),(0.82,5.13)), ) createRL( tech, net, 'difftap', - ((1.71,1.315),(1.71,3.115),(1.96,3.115),(1.96,1.315),(1.71,1.315)), + ((1.77,5.13),(1.77,8.73),(2.02,8.73),(2.02,5.13),(1.77,5.13)), ) createRL( tech, net, 'difftap', - ((0.765,1.315),(0.765,3.115),(1.015,3.115),(1.015,1.315),(0.765,1.315)), + ((0.805,1.325),(0.805,3.105),(1.055,3.105),(1.055,1.325),(0.805,1.325)), ) createRL( tech, net, 'difftap', - ((0.795,1.315),(0.795,3.115),(1.045,3.115),(1.045,1.315),(0.795,1.315)), + ((1.8,5.13),(1.8,8.73),(2.05,8.73),(2.05,5.13),(1.8,5.13)), ) createRL( tech, net, 'difftap', - ((1.695,5.13),(1.695,8.73),(1.945,8.73),(1.945,5.13),(1.695,5.13)), + ((0.79,1.315),(0.79,3.115),(1.04,3.115),(1.04,1.315),(0.79,1.315)), ) createRL( tech, net, 'difftap', - ((1.725,1.315),(1.725,3.115),(1.975,3.115),(1.975,1.315),(1.725,1.315)), + ((0.82,1.315),(0.82,3.115),(1.07,3.115),(1.07,1.315),(0.82,1.315)), ) createRL( tech, net, 'difftap', - ((1.725,5.13),(1.725,8.73),(1.975,8.73),(1.975,5.13),(1.725,5.13)), + ((1.77,1.315),(1.77,3.115),(2.02,3.115),(2.02,1.315),(1.77,1.315)), ) createRL( tech, net, 'difftap', - ((0.78,1.315),(0.78,3.115),(1.03,3.115),(1.03,1.315),(0.78,1.315)), + ((1.785,1.315),(1.785,3.115),(2.035,3.115),(2.035,1.315),(1.785,1.315)), ) createRL( tech, net, 'difftap', - ((1.695,1.315),(1.695,3.115),(1.945,3.115),(1.945,1.315),(1.695,1.315)), + ((1.8,1.315),(1.8,3.115),(2.05,3.115),(2.05,1.315),(1.8,1.315)), ) createRL( tech, net, 'difftap', - ((1.71,1.385),(1.71,3.045),(1.96,3.045),(1.96,1.385),(1.71,1.385)), + ((1.785,1.325),(1.785,3.105),(2.035,3.105),(2.035,1.325),(1.785,1.325)), ) createRL( tech, net, 'licon', - ((0.82,1.45),(0.82,1.62),(0.99,1.62),(0.99,1.45),(0.82,1.45)), + ((0.845,1.45),(0.845,1.62),(1.015,1.62),(1.015,1.45),(0.845,1.45)), ) createRL( tech, net, 'licon', - ((0.82,1.79),(0.82,1.96),(0.99,1.96),(0.99,1.79),(0.82,1.79)), + ((0.845,1.79),(0.845,1.96),(1.015,1.96),(1.015,1.79),(0.845,1.79)), ) createRL( tech, net, 'licon', - ((0.82,2.13),(0.82,2.3),(0.99,2.3),(0.99,2.13),(0.82,2.13)), + ((0.845,2.13),(0.845,2.3),(1.015,2.3),(1.015,2.13),(0.845,2.13)), ) createRL( tech, net, 'licon', - ((0.82,2.47),(0.82,2.64),(0.99,2.64),(0.99,2.47),(0.82,2.47)), + ((0.845,2.47),(0.845,2.64),(1.015,2.64),(1.015,2.47),(0.845,2.47)), ) createRL( tech, net, 'licon', - ((0.82,2.81),(0.82,2.98),(0.99,2.98),(0.99,2.81),(0.82,2.81)), + ((0.845,2.81),(0.845,2.98),(1.015,2.98),(1.015,2.81),(0.845,2.81)), ) createRL( tech, net, 'licon', - ((0.82,5.315),(0.82,5.485),(0.99,5.485),(0.99,5.315),(0.82,5.315)), + ((0.845,5.315),(0.845,5.485),(1.015,5.485),(1.015,5.315),(0.845,5.315)), ) createRL( tech, net, 'licon', - ((0.82,5.655),(0.82,5.825),(0.99,5.825),(0.99,5.655),(0.82,5.655)), + ((0.845,5.655),(0.845,5.825),(1.015,5.825),(1.015,5.655),(0.845,5.655)), ) createRL( tech, net, 'licon', - ((0.82,5.995),(0.82,6.165),(0.99,6.165),(0.99,5.995),(0.82,5.995)), + ((0.845,5.995),(0.845,6.165),(1.015,6.165),(1.015,5.995),(0.845,5.995)), ) createRL( tech, net, 'licon', - ((0.82,6.335),(0.82,6.505),(0.99,6.505),(0.99,6.335),(0.82,6.335)), + ((0.845,6.335),(0.845,6.505),(1.015,6.505),(1.015,6.335),(0.845,6.335)), ) createRL( tech, net, 'licon', - ((0.82,6.675),(0.82,6.845),(0.99,6.845),(0.99,6.675),(0.82,6.675)), + ((0.845,6.675),(0.845,6.845),(1.015,6.845),(1.015,6.675),(0.845,6.675)), ) createRL( tech, net, 'licon', - ((0.82,7.015),(0.82,7.185),(0.99,7.185),(0.99,7.015),(0.82,7.015)), + ((0.845,7.015),(0.845,7.185),(1.015,7.185),(1.015,7.015),(0.845,7.015)), ) createRL( tech, net, 'licon', - ((0.82,7.355),(0.82,7.525),(0.99,7.525),(0.99,7.355),(0.82,7.355)), + ((0.845,7.355),(0.845,7.525),(1.015,7.525),(1.015,7.355),(0.845,7.355)), ) createRL( tech, net, 'licon', - ((0.82,7.695),(0.82,7.865),(0.99,7.865),(0.99,7.695),(0.82,7.695)), + ((0.845,7.695),(0.845,7.865),(1.015,7.865),(1.015,7.695),(0.845,7.695)), ) createRL( tech, net, 'licon', - ((0.82,8.035),(0.82,8.205),(0.99,8.205),(0.99,8.035),(0.82,8.035)), + ((0.845,8.035),(0.845,8.205),(1.015,8.205),(1.015,8.035),(0.845,8.035)), ) createRL( tech, net, 'licon', - ((0.82,8.375),(0.82,8.545),(0.99,8.545),(0.99,8.375),(0.82,8.375)), + ((0.845,8.375),(0.845,8.545),(1.015,8.545),(1.015,8.375),(0.845,8.375)), ) createRL( tech, net, 'licon', - ((1.75,5.315),(1.75,5.485),(1.92,5.485),(1.92,5.315),(1.75,5.315)), + ((1.825,1.45),(1.825,1.62),(1.995,1.62),(1.995,1.45),(1.825,1.45)), ) createRL( tech, net, 'licon', - ((1.75,5.655),(1.75,5.825),(1.92,5.825),(1.92,5.655),(1.75,5.655)), + ((1.825,1.79),(1.825,1.96),(1.995,1.96),(1.995,1.79),(1.825,1.79)), ) createRL( tech, net, 'licon', - ((1.75,5.995),(1.75,6.165),(1.92,6.165),(1.92,5.995),(1.75,5.995)), + ((1.825,2.13),(1.825,2.3),(1.995,2.3),(1.995,2.13),(1.825,2.13)), ) createRL( tech, net, 'licon', - ((1.75,6.335),(1.75,6.505),(1.92,6.505),(1.92,6.335),(1.75,6.335)), + ((1.825,2.47),(1.825,2.64),(1.995,2.64),(1.995,2.47),(1.825,2.47)), ) createRL( tech, net, 'licon', - ((1.75,6.675),(1.75,6.845),(1.92,6.845),(1.92,6.675),(1.75,6.675)), + ((1.825,2.81),(1.825,2.98),(1.995,2.98),(1.995,2.81),(1.825,2.81)), ) createRL( tech, net, 'licon', - ((1.75,7.015),(1.75,7.185),(1.92,7.185),(1.92,7.015),(1.75,7.015)), + ((1.825,5.315),(1.825,5.485),(1.995,5.485),(1.995,5.315),(1.825,5.315)), ) createRL( tech, net, 'licon', - ((1.75,7.355),(1.75,7.525),(1.92,7.525),(1.92,7.355),(1.75,7.355)), + ((1.825,5.655),(1.825,5.825),(1.995,5.825),(1.995,5.655),(1.825,5.655)), ) createRL( tech, net, 'licon', - ((1.75,7.695),(1.75,7.865),(1.92,7.865),(1.92,7.695),(1.75,7.695)), + ((1.825,5.995),(1.825,6.165),(1.995,6.165),(1.995,5.995),(1.825,5.995)), ) createRL( tech, net, 'licon', - ((1.75,8.035),(1.75,8.205),(1.92,8.205),(1.92,8.035),(1.75,8.035)), + ((1.825,6.335),(1.825,6.505),(1.995,6.505),(1.995,6.335),(1.825,6.335)), ) createRL( tech, net, 'licon', - ((1.75,8.375),(1.75,8.545),(1.92,8.545),(1.92,8.375),(1.75,8.375)), + ((1.825,6.675),(1.825,6.845),(1.995,6.845),(1.995,6.675),(1.825,6.675)), ) createRL( tech, net, 'licon', - ((1.75,1.45),(1.75,1.62),(1.92,1.62),(1.92,1.45),(1.75,1.45)), + ((1.825,7.015),(1.825,7.185),(1.995,7.185),(1.995,7.015),(1.825,7.015)), ) createRL( tech, net, 'licon', - ((1.75,1.79),(1.75,1.96),(1.92,1.96),(1.92,1.79),(1.75,1.79)), + ((1.825,7.355),(1.825,7.525),(1.995,7.525),(1.995,7.355),(1.825,7.355)), ) createRL( tech, net, 'licon', - ((1.75,2.13),(1.75,2.3),(1.92,2.3),(1.92,2.13),(1.75,2.13)), + ((1.825,7.695),(1.825,7.865),(1.995,7.865),(1.995,7.695),(1.825,7.695)), ) createRL( tech, net, 'licon', - ((1.75,2.47),(1.75,2.64),(1.92,2.64),(1.92,2.47),(1.75,2.47)), + ((1.825,8.035),(1.825,8.205),(1.995,8.205),(1.995,8.035),(1.825,8.035)), ) createRL( tech, net, 'licon', - ((1.75,2.81),(1.75,2.98),(1.92,2.98),(1.92,2.81),(1.75,2.81)), + ((1.825,8.375),(1.825,8.545),(1.995,8.545),(1.995,8.375),(1.825,8.375)), ) createRL( tech, net, 'li', - ((0.82,5.23),(0.82,8.63),(0.99,8.63),(0.99,5.23),(0.82,5.23)), + ((0.845,5.23),(0.845,8.63),(1.015,8.63),(1.015,5.23),(0.845,5.23)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,3.06),(0.99,3.06),(0.99,1.37),(0.82,1.37)), + ((1.825,5.23),(1.825,8.63),(1.995,8.63),(1.995,5.23),(1.825,5.23)), ) createRL( tech, net, 'li', - ((0.82,1.37),(0.82,8.63),(0.99,8.63),(0.99,1.37),(0.82,1.37)), + ((1.825,1.37),(1.825,8.63),(1.995,8.63),(1.995,1.37),(1.825,1.37)), ) createRL( tech, net, 'li', - ((1.75,5.23),(1.75,8.63),(1.92,8.63),(1.92,5.23),(1.75,5.23)), + ((0.845,4.715),(0.845,4.885),(1.995,4.885),(1.995,4.715),(0.845,4.715)), ) createRL( tech, net, 'li', - ((1.75,1.37),(1.75,8.63),(1.92,8.63),(1.92,1.37),(1.75,1.37)), + ((0.845,1.37),(0.845,3.06),(1.015,3.06),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((0.82,4.715),(0.82,4.885),(1.92,4.885),(1.92,4.715),(0.82,4.715)), + ((0.845,1.37),(0.845,8.63),(1.015,8.63),(1.015,1.37),(0.845,1.37)), ) createRL( tech, net, 'li', - ((1.75,1.37),(1.75,3.06),(1.92,3.06),(1.92,1.37),(1.75,1.37)), + ((1.825,1.37),(1.825,3.06),(1.995,3.06),(1.995,1.37),(1.825,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.905), u(0.17), u(1.37), u(8.63), + u(0.93), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -24271,24 +23991,24 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['ni'] createRL( tech, net, 'difftap', - ((0.33,5.515),(0.33,6.515),(0.58,6.515),(0.58,5.515),(0.33,5.515)), + ((0.33,5.49),(0.33,6.49),(0.58,6.49),(0.58,5.49),(0.33,5.49)), ) createRL( tech, net, 'difftap', - ((0.315,2.185),(0.315,2.685),(0.565,2.685),(0.565,2.185),(0.315,2.185)), + ((0.315,2.21),(0.315,2.71),(0.565,2.71),(0.565,2.21),(0.315,2.21)), ) createRL( tech, net, 'difftap', - ((0.315,5.515),(0.315,6.515),(0.565,6.515),(0.565,5.515),(0.315,5.515)), + ((0.315,5.49),(0.315,6.49),(0.565,6.49),(0.565,5.49),(0.315,5.49)), ) createRL( tech, net, 'difftap', - ((0.33,2.185),(0.33,2.685),(0.58,2.685),(0.58,2.185),(0.33,2.185)), + ((0.33,2.21),(0.33,2.71),(0.58,2.71),(0.58,2.21),(0.33,2.21)), ) createRL( tech, net, 'licon', @@ -24296,15 +24016,15 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.355,2.35),(0.355,2.52),(0.525,2.52),(0.525,2.35),(0.355,2.35)), + ((0.355,5.735),(0.355,5.905),(0.525,5.905),(0.525,5.735),(0.355,5.735)), ) createRL( tech, net, 'licon', - ((0.355,5.76),(0.355,5.93),(0.525,5.93),(0.525,5.76),(0.355,5.76)), + ((0.355,6.075),(0.355,6.245),(0.525,6.245),(0.525,6.075),(0.355,6.075)), ) createRL( tech, net, 'licon', - ((0.355,6.1),(0.355,6.27),(0.525,6.27),(0.525,6.1),(0.355,6.1)), + ((0.355,2.375),(0.355,2.545),(0.525,2.545),(0.525,2.375),(0.355,2.375)), ) createRL( tech, net, 'li', @@ -24312,23 +24032,23 @@ def _load(): ) createRL( tech, net, 'li', - ((0.355,2.27),(0.355,2.6),(0.525,2.6),(0.525,2.27),(0.355,2.27)), + ((0.355,2.295),(0.355,2.625),(0.525,2.625),(0.525,2.295),(0.355,2.295)), ) createRL( tech, net, 'li', - ((0.355,5.68),(0.355,6.35),(0.525,6.35),(0.525,5.68),(0.355,5.68)), + ((0.355,5.655),(0.355,6.325),(0.525,6.325),(0.525,5.655),(0.355,5.655)), ) createRL( tech, net, 'li', - ((0.355,2.27),(0.355,6.35),(0.525,6.35),(0.525,2.27),(0.355,2.27)), + ((0.355,2.295),(0.355,6.325),(0.525,6.325),(0.525,2.295),(0.355,2.295)), ) createRL( tech, net, 'poly', - ((0.305,3.935),(0.305,4.265),(1.275,4.265),(1.275,3.935),(0.305,3.935)), + ((0.305,3.935),(0.305,4.265),(1.305,4.265),(1.305,3.935),(0.305,3.935)), ) createRL( tech, net, 'poly', - ((1.125,2.815),(1.125,5.385),(1.275,5.385),(1.275,2.815),(1.125,2.815)), + ((1.155,2.84),(1.155,5.36),(1.305,5.36),(1.305,2.84),(1.155,2.84)), ) createRL( tech, net, 'poly', @@ -24336,121 +24056,121 @@ def _load(): ) createRL( tech, net, 'poly', - ((1.125,5.385),(1.125,9.245),(1.275,9.245),(1.275,5.385),(1.125,5.385)), + ((1.155,5.36),(1.155,9.22),(1.305,9.22),(1.305,5.36),(1.155,5.36)), ) createRL( tech, net, 'poly', - ((1.125,0.755),(1.125,2.815),(1.275,2.815),(1.275,0.755),(1.125,0.755)), + ((1.155,0.78),(1.155,2.84),(1.305,2.84),(1.305,0.78),(1.155,0.78)), ) net = nets['*'] createRL( tech, net, 'nsdm', - ((1.165,0.76),(1.165,2.81),(1.665,2.81),(1.665,0.76),(1.165,0.76)), + ((1.195,0.785),(1.195,2.835),(1.695,2.835),(1.695,0.785),(1.195,0.785)), ) createRL( tech, net, 'nsdm', - ((0.19,9.26),(0.19,9.81),(1.81,9.81),(1.81,9.26),(0.19,9.26)), + ((0.19,2.085),(0.19,2.835),(0.69,2.835),(0.69,2.085),(0.19,2.085)), ) createRL( tech, net, 'nsdm', - ((0.655,0.76),(0.655,2.81),(1.155,2.81),(1.155,0.76),(0.655,0.76)), + ((0.19,9.31),(0.19,9.81),(1.81,9.81),(1.81,9.31),(0.19,9.31)), ) createRL( tech, net, 'nsdm', - ((0.19,2.06),(0.19,2.81),(0.69,2.81),(0.69,2.06),(0.19,2.06)), + ((0.68,0.785),(0.68,2.835),(1.18,2.835),(1.18,0.785),(0.68,0.785)), ) createRL( tech, net, 'nsdm', - ((0.205,2.06),(0.205,2.81),(1.105,2.81),(1.105,2.06),(0.205,2.06)), + ((0.205,2.085),(0.205,2.835),(1.105,2.835),(1.105,2.085),(0.205,2.085)), ) createRL( tech, net, 'nsdm', - ((0.655,0.76),(0.655,1.31),(1.155,1.31),(1.155,0.76),(0.655,0.76)), + ((0.51,2.14),(0.51,2.78),(0.8,2.78),(0.8,2.14),(0.51,2.14)), ) createRL( tech, net, 'nsdm', - ((1.165,1.25),(1.165,2.81),(1.665,2.81),(1.665,1.25),(1.165,1.25)), + ((0.68,0.785),(0.68,1.445),(1.18,1.445),(1.18,0.785),(0.68,0.785)), ) createRL( tech, net, 'nsdm', - ((1.055,0.815),(1.055,2.755),(1.345,2.755),(1.345,0.815),(1.055,0.815)), + ((1.195,1.255),(1.195,2.835),(1.695,2.835),(1.695,1.255),(1.195,1.255)), ) createRL( tech, net, 'nsdm', - ((0.75,0.76),(0.75,2.81),(1.65,2.81),(1.65,0.76),(0.75,0.76)), + ((1.085,0.84),(1.085,2.78),(1.375,2.78),(1.375,0.84),(1.085,0.84)), ) createRL( tech, net, 'nsdm', - ((0.51,2.115),(0.51,2.755),(0.8,2.755),(0.8,2.115),(0.51,2.115)), + ((0.78,0.785),(0.78,2.835),(1.68,2.835),(1.68,0.785),(0.78,0.785)), ) createRL( tech, net, 'psdm', - ((0.19,5.39),(0.19,6.64),(0.69,6.64),(0.69,5.39),(0.19,5.39)), + ((0.19,5.365),(0.19,6.615),(0.69,6.615),(0.69,5.365),(0.19,5.365)), ) createRL( tech, net, 'psdm', - ((0.51,5.445),(0.51,6.585),(0.8,6.585),(0.8,5.445),(0.51,5.445)), + ((0.51,5.42),(0.51,6.56),(0.8,6.56),(0.8,5.42),(0.51,5.42)), ) createRL( tech, net, 'psdm', - ((0.655,8.69),(0.655,9.24),(1.155,9.24),(1.155,8.69),(0.655,8.69)), + ((0.68,8.555),(0.68,9.215),(1.18,9.215),(1.18,8.555),(0.68,8.555)), ) createRL( tech, net, 'psdm', - ((1.165,5.39),(1.165,8.75),(1.665,8.75),(1.665,5.39),(1.165,5.39)), + ((1.195,5.365),(1.195,8.745),(1.695,8.745),(1.695,5.365),(1.195,5.365)), ) createRL( tech, net, 'psdm', - ((0.19,0.19),(0.19,0.74),(1.81,0.74),(1.81,0.19),(0.19,0.19)), + ((0.19,0.19),(0.19,0.69),(1.81,0.69),(1.81,0.19),(0.19,0.19)), ) createRL( tech, net, 'psdm', - ((0.205,5.39),(0.205,6.64),(1.105,6.64),(1.105,5.39),(0.205,5.39)), + ((1.085,5.42),(1.085,9.16),(1.375,9.16),(1.375,5.42),(1.085,5.42)), ) createRL( tech, net, 'psdm', - ((1.055,5.445),(1.055,9.185),(1.345,9.185),(1.345,5.445),(1.055,5.445)), + ((0.205,5.365),(0.205,6.615),(1.105,6.615),(1.105,5.365),(0.205,5.365)), ) createRL( tech, net, 'psdm', - ((1.165,5.39),(1.165,9.24),(1.665,9.24),(1.665,5.39),(1.165,5.39)), + ((1.195,5.365),(1.195,9.215),(1.695,9.215),(1.695,5.365),(1.195,5.365)), ) createRL( tech, net, 'psdm', - ((0.655,5.39),(0.655,9.24),(1.155,9.24),(1.155,5.39),(0.655,5.39)), + ((0.68,5.365),(0.68,9.215),(1.18,9.215),(1.18,5.365),(0.68,5.365)), ) createRL( tech, net, 'psdm', - ((0.75,5.39),(0.75,9.24),(1.65,9.24),(1.65,5.39),(0.75,5.39)), + ((0.78,5.365),(0.78,9.215),(1.68,9.215),(1.68,5.365),(0.78,5.365)), ) net = nets['vdd'] createRL( tech, net, 'nwm', - ((0.135,5.335),(0.135,6.695),(0.745,6.695),(0.745,5.335),(0.135,5.335)), + ((0.135,5.31),(0.135,6.67),(0.745,6.67),(0.745,5.31),(0.135,5.31)), ) createRL( tech, net, 'nwm', - ((1.11,5.335),(1.11,8.805),(1.72,8.805),(1.72,5.335),(1.11,5.335)), + ((1.14,5.31),(1.14,8.8),(1.75,8.8),(1.75,5.31),(1.14,5.31)), ) createRL( tech, net, 'nwm', - ((0.135,9.205),(0.135,9.865),(1.865,9.865),(1.865,9.205),(0.135,9.205)), + ((0.135,9.255),(0.135,9.865),(1.865,9.865),(1.865,9.255),(0.135,9.255)), ) createRL( tech, net, 'nwm', - ((0.15,5.335),(0.15,6.695),(1.16,6.695),(1.16,5.335),(0.15,5.335)), + ((0.725,5.31),(0.725,9.27),(1.735,9.27),(1.735,5.31),(0.725,5.31)), ) createRL( tech, net, 'nwm', - ((1.11,5.335),(1.11,9.295),(1.72,9.295),(1.72,5.335),(1.11,5.335)), + ((0.15,5.31),(0.15,6.67),(1.16,6.67),(1.16,5.31),(0.15,5.31)), ) createRL( tech, net, 'nwm', - ((0.695,5.335),(0.695,9.295),(1.705,9.295),(1.705,5.335),(0.695,5.335)), + ((1.14,5.31),(1.14,9.27),(1.75,9.27),(1.75,5.31),(1.14,5.31)), ) createRL( tech, net, 'nwm', - ((0.6,5.335),(0.6,9.295),(1.21,9.295),(1.21,5.335),(0.6,5.335)), + ((0.625,5.31),(0.625,9.27),(1.235,9.27),(1.235,5.31),(0.625,5.31)), ) createRL( tech, net, 'nwm', @@ -24458,55 +24178,51 @@ def _load(): ) createRL( tech, net, 'difftap', - ((0.58,5.515),(0.58,6.515),(0.73,6.515),(0.73,5.515),(0.58,5.515)), + ((0.58,5.49),(0.58,6.49),(0.73,6.49),(0.73,5.49),(0.58,5.49)), ) createRL( tech, net, 'difftap', - ((0.73,5.515),(0.73,6.515),(0.98,6.515),(0.98,5.515),(0.73,5.515)), + ((0.73,5.49),(0.73,6.49),(0.98,6.49),(0.98,5.49),(0.73,5.49)), ) createRL( tech, net, 'difftap', - ((0.78,8.815),(0.78,9.115),(1.03,9.115),(1.03,8.815),(0.78,8.815)), + ((0.805,8.68),(0.805,9.09),(1.055,9.09),(1.055,8.68),(0.805,8.68)), ) createRL( tech, net, 'difftap', - ((0.315,9.385),(0.315,9.685),(1.685,9.685),(1.685,9.385),(0.315,9.385)), + ((0.315,9.435),(0.315,9.685),(1.685,9.685),(1.685,9.435),(0.315,9.435)), ) createRL( tech, net, 'difftap', - ((1.125,5.515),(1.125,9.115),(1.275,9.115),(1.275,5.515),(1.125,5.515)), + ((1.155,5.49),(1.155,9.09),(1.305,9.09),(1.305,5.49),(1.155,5.49)), ) createRL( tech, net, 'difftap', - ((0.78,5.515),(0.78,9.115),(1.03,9.115),(1.03,5.515),(0.78,5.515)), + ((0.805,5.49),(0.805,9.09),(1.055,9.09),(1.055,5.49),(0.805,5.49)), ) createRL( tech, net, 'difftap', - ((0.875,5.515),(0.875,9.115),(1.125,9.115),(1.125,5.515),(0.875,5.515)), - ) - createRL( - tech, net, 'licon', - ((0.82,8.88),(0.82,9.05),(0.99,9.05),(0.99,8.88),(0.82,8.88)), + ((0.905,5.49),(0.905,9.09),(1.155,9.09),(1.155,5.49),(0.905,5.49)), ) createRL( tech, net, 'licon', - ((0.405,9.45),(0.405,9.62),(0.575,9.62),(0.575,9.45),(0.405,9.45)), + ((0.575,9.475),(0.575,9.645),(0.745,9.645),(0.745,9.475),(0.575,9.475)), ) createRL( tech, net, 'licon', - ((0.745,9.45),(0.745,9.62),(0.915,9.62),(0.915,9.45),(0.745,9.45)), + ((0.915,9.475),(0.915,9.645),(1.085,9.645),(1.085,9.475),(0.915,9.475)), ) createRL( tech, net, 'licon', - ((1.085,9.45),(1.085,9.62),(1.255,9.62),(1.255,9.45),(1.085,9.45)), + ((1.255,9.475),(1.255,9.645),(1.425,9.645),(1.425,9.475),(1.255,9.475)), ) createRL( tech, net, 'licon', - ((1.425,9.45),(1.425,9.62),(1.595,9.62),(1.595,9.45),(1.425,9.45)), + ((0.845,8.8),(0.845,8.97),(1.015,8.97),(1.015,8.8),(0.845,8.8)), ) createRL( tech, net, 'li', - ((0.82,8.8),(0.82,9.13),(0.99,9.13),(0.99,8.8),(0.82,8.8)), + ((0.575,9.395),(0.575,9.725),(1.425,9.725),(1.425,9.395),(0.575,9.395)), ) createRL( tech, net, 'li', @@ -24514,7 +24230,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.4,9.37),(0.4,9.7),(1.6,9.7),(1.6,9.37),(0.4,9.37)), + ((0.765,8.8),(0.765,8.97),(1.095,8.97),(1.095,8.8),(0.765,8.8)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -24529,51 +24245,47 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((0.315,0.315),(0.315,0.615),(1.685,0.615),(1.685,0.315),(0.315,0.315)), + ((0.905,0.91),(0.905,2.71),(1.155,2.71),(1.155,0.91),(0.905,0.91)), ) createRL( tech, net, 'difftap', - ((0.78,0.885),(0.78,1.185),(1.03,1.185),(1.03,0.885),(0.78,0.885)), + ((0.73,2.21),(0.73,2.71),(0.98,2.71),(0.98,2.21),(0.73,2.21)), ) createRL( tech, net, 'difftap', - ((0.78,0.885),(0.78,2.685),(1.03,2.685),(1.03,0.885),(0.78,0.885)), + ((0.315,0.315),(0.315,0.565),(1.685,0.565),(1.685,0.315),(0.315,0.315)), ) createRL( tech, net, 'difftap', - ((0.73,2.185),(0.73,2.685),(0.98,2.685),(0.98,2.185),(0.73,2.185)), + ((0.58,2.21),(0.58,2.71),(0.73,2.71),(0.73,2.21),(0.58,2.21)), ) createRL( tech, net, 'difftap', - ((0.58,2.185),(0.58,2.685),(0.73,2.685),(0.73,2.185),(0.58,2.185)), + ((0.805,0.91),(0.805,1.32),(1.055,1.32),(1.055,0.91),(0.805,0.91)), ) createRL( tech, net, 'difftap', - ((0.875,0.885),(0.875,2.685),(1.125,2.685),(1.125,0.885),(0.875,0.885)), + ((1.155,0.91),(1.155,2.71),(1.305,2.71),(1.305,0.91),(1.155,0.91)), ) createRL( tech, net, 'difftap', - ((1.125,0.885),(1.125,2.685),(1.275,2.685),(1.275,0.885),(1.125,0.885)), - ) - createRL( - tech, net, 'licon', - ((0.405,0.38),(0.405,0.55),(0.575,0.55),(0.575,0.38),(0.405,0.38)), + ((0.805,0.91),(0.805,2.71),(1.055,2.71),(1.055,0.91),(0.805,0.91)), ) createRL( tech, net, 'licon', - ((0.745,0.38),(0.745,0.55),(0.915,0.55),(0.915,0.38),(0.745,0.38)), + ((0.845,1.03),(0.845,1.2),(1.015,1.2),(1.015,1.03),(0.845,1.03)), ) createRL( tech, net, 'licon', - ((1.085,0.38),(1.085,0.55),(1.255,0.55),(1.255,0.38),(1.085,0.38)), + ((0.575,0.355),(0.575,0.525),(0.745,0.525),(0.745,0.355),(0.575,0.355)), ) createRL( tech, net, 'licon', - ((1.425,0.38),(1.425,0.55),(1.595,0.55),(1.595,0.38),(1.425,0.38)), + ((0.915,0.355),(0.915,0.525),(1.085,0.525),(1.085,0.355),(0.915,0.355)), ) createRL( tech, net, 'licon', - ((0.82,0.95),(0.82,1.12),(0.99,1.12),(0.99,0.95),(0.82,0.95)), + ((1.255,0.355),(1.255,0.525),(1.425,0.525),(1.425,0.355),(1.255,0.355)), ) createRL( tech, net, 'li', @@ -24581,11 +24293,11 @@ def _load(): ) createRL( tech, net, 'li', - ((0.82,0.87),(0.82,1.2),(0.99,1.2),(0.99,0.87),(0.82,0.87)), + ((0.765,1.03),(0.765,1.2),(1.095,1.2),(1.095,1.03),(0.765,1.03)), ) createRL( tech, net, 'li', - ((0.4,0.3),(0.4,0.63),(1.6,0.63),(1.6,0.3),(0.4,0.3)), + ((0.575,0.275),(0.575,0.605),(1.425,0.605),(1.425,0.275),(0.575,0.275)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -24600,39 +24312,47 @@ def _load(): net = nets['i'] createRL( tech, net, 'poly', - ((0.58,5.385),(0.58,6.645),(0.73,6.645),(0.73,5.385),(0.58,5.385)), + ((0.58,5.36),(0.58,6.62),(0.73,6.62),(0.73,5.36),(0.58,5.36)), ) createRL( tech, net, 'poly', - ((0.58,5.135),(0.58,5.465),(0.915,5.465),(0.915,5.135),(0.58,5.135)), + ((0.58,5.035),(0.58,6.62),(0.73,6.62),(0.73,5.035),(0.58,5.035)), ) createRL( tech, net, 'poly', - ((0.645,2.735),(0.645,3.065),(0.915,3.065),(0.915,2.735),(0.645,2.735)), + ((0.615,2.895),(0.615,3.165),(0.945,3.165),(0.945,2.895),(0.615,2.895)), ) createRL( tech, net, 'poly', - ((0.58,2.735),(0.58,3.065),(0.915,3.065),(0.915,2.735),(0.58,2.735)), + ((0.58,2.08),(0.58,3.165),(0.73,3.165),(0.73,2.08),(0.58,2.08)), ) createRL( tech, net, 'poly', - ((0.58,2.055),(0.58,2.815),(0.73,2.815),(0.73,2.055),(0.58,2.055)), + ((0.58,2.895),(0.58,3.165),(0.945,3.165),(0.945,2.895),(0.58,2.895)), ) createRL( tech, net, 'poly', - ((0.645,5.135),(0.645,5.465),(0.915,5.465),(0.915,5.135),(0.645,5.135)), + ((0.58,2.08),(0.58,2.84),(0.73,2.84),(0.73,2.08),(0.58,2.08)), + ) + createRL( + tech, net, 'poly', + ((0.58,5.035),(0.58,5.305),(0.945,5.305),(0.945,5.035),(0.58,5.035)), + ) + createRL( + tech, net, 'poly', + ((0.615,5.035),(0.615,5.305),(0.945,5.305),(0.945,5.035),(0.615,5.035)), ) createRL( tech, net, 'licon', - ((0.695,2.815),(0.695,2.985),(0.865,2.985),(0.865,2.815),(0.695,2.815)), + ((0.695,2.945),(0.695,3.115),(0.865,3.115),(0.865,2.945),(0.695,2.945)), ) createRL( tech, net, 'licon', - ((0.695,5.215),(0.695,5.385),(0.865,5.385),(0.865,5.215),(0.695,5.215)), + ((0.695,5.085),(0.695,5.255),(0.865,5.255),(0.865,5.085),(0.695,5.085)), ) createRL( tech, net, 'li', - ((0.695,2.735),(0.695,3.065),(0.865,3.065),(0.865,2.735),(0.695,2.735)), + ((0.695,2.865),(0.695,3.195),(0.865,3.195),(0.865,2.865),(0.695,2.865)), ) createRL( tech, net, 'li', @@ -24640,7 +24360,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.695,5.135),(0.695,5.465),(0.865,5.465),(0.865,5.135),(0.695,5.135)), + ((0.695,5.005),(0.695,5.335),(0.865,5.335),(0.865,5.005),(0.695,5.005)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -24655,100 +24375,100 @@ def _load(): net = nets['nwm'] createRL( tech, net, 'nwm', - ((0.6,8.635),(0.6,9.295),(1.21,9.295),(1.21,8.635),(0.6,8.635)), + ((0.625,8.5),(0.625,9.27),(1.235,9.27),(1.235,8.5),(0.625,8.5)), ) net = nets['q'] createRL( tech, net, 'difftap', - ((1.29,5.515),(1.29,8.625),(1.54,8.625),(1.54,5.515),(1.29,5.515)), + ((1.32,5.49),(1.32,8.62),(1.57,8.62),(1.57,5.49),(1.32,5.49)), ) createRL( tech, net, 'difftap', - ((1.275,5.515),(1.275,9.115),(1.525,9.115),(1.525,5.515),(1.275,5.515)), + ((1.305,5.49),(1.305,9.09),(1.555,9.09),(1.555,5.49),(1.305,5.49)), ) createRL( tech, net, 'difftap', - ((1.29,5.515),(1.29,9.115),(1.54,9.115),(1.54,5.515),(1.29,5.515)), + ((1.32,5.49),(1.32,9.09),(1.57,9.09),(1.57,5.49),(1.32,5.49)), ) createRL( tech, net, 'difftap', - ((1.29,1.375),(1.29,2.685),(1.54,2.685),(1.54,1.375),(1.29,1.375)), + ((1.32,1.38),(1.32,2.71),(1.57,2.71),(1.57,1.38),(1.32,1.38)), ) createRL( tech, net, 'difftap', - ((1.29,0.885),(1.29,2.685),(1.54,2.685),(1.54,0.885),(1.29,0.885)), + ((1.32,0.91),(1.32,2.71),(1.57,2.71),(1.57,0.91),(1.32,0.91)), ) createRL( tech, net, 'difftap', - ((1.275,0.885),(1.275,2.685),(1.525,2.685),(1.525,0.885),(1.275,0.885)), + ((1.305,0.91),(1.305,2.71),(1.555,2.71),(1.555,0.91),(1.305,0.91)), ) createRL( tech, net, 'licon', - ((1.33,5.625),(1.33,5.795),(1.5,5.795),(1.5,5.625),(1.33,5.625)), + ((1.36,1.62),(1.36,1.79),(1.53,1.79),(1.53,1.62),(1.36,1.62)), ) createRL( tech, net, 'licon', - ((1.33,5.965),(1.33,6.135),(1.5,6.135),(1.5,5.965),(1.33,5.965)), + ((1.36,1.96),(1.36,2.13),(1.53,2.13),(1.53,1.96),(1.36,1.96)), ) createRL( tech, net, 'licon', - ((1.33,6.305),(1.33,6.475),(1.5,6.475),(1.5,6.305),(1.33,6.305)), + ((1.36,2.3),(1.36,2.47),(1.53,2.47),(1.53,2.3),(1.36,2.3)), ) createRL( tech, net, 'licon', - ((1.33,6.645),(1.33,6.815),(1.5,6.815),(1.5,6.645),(1.33,6.645)), + ((1.36,5.61),(1.36,5.78),(1.53,5.78),(1.53,5.61),(1.36,5.61)), ) createRL( tech, net, 'licon', - ((1.33,6.985),(1.33,7.155),(1.5,7.155),(1.5,6.985),(1.33,6.985)), + ((1.36,5.95),(1.36,6.12),(1.53,6.12),(1.53,5.95),(1.36,5.95)), ) createRL( tech, net, 'licon', - ((1.33,7.325),(1.33,7.495),(1.5,7.495),(1.5,7.325),(1.33,7.325)), + ((1.36,6.29),(1.36,6.46),(1.53,6.46),(1.53,6.29),(1.36,6.29)), ) createRL( tech, net, 'licon', - ((1.33,7.665),(1.33,7.835),(1.5,7.835),(1.5,7.665),(1.33,7.665)), + ((1.36,6.63),(1.36,6.8),(1.53,6.8),(1.53,6.63),(1.36,6.63)), ) createRL( tech, net, 'licon', - ((1.33,8.005),(1.33,8.175),(1.5,8.175),(1.5,8.005),(1.33,8.005)), + ((1.36,6.97),(1.36,7.14),(1.53,7.14),(1.53,6.97),(1.36,6.97)), ) createRL( tech, net, 'licon', - ((1.33,8.345),(1.33,8.515),(1.5,8.515),(1.5,8.345),(1.33,8.345)), + ((1.36,7.31),(1.36,7.48),(1.53,7.48),(1.53,7.31),(1.36,7.31)), ) createRL( tech, net, 'licon', - ((1.33,1.605),(1.33,1.775),(1.5,1.775),(1.5,1.605),(1.33,1.605)), + ((1.36,7.65),(1.36,7.82),(1.53,7.82),(1.53,7.65),(1.36,7.65)), ) createRL( tech, net, 'licon', - ((1.33,1.945),(1.33,2.115),(1.5,2.115),(1.5,1.945),(1.33,1.945)), + ((1.36,7.99),(1.36,8.16),(1.53,8.16),(1.53,7.99),(1.36,7.99)), ) createRL( tech, net, 'licon', - ((1.33,2.285),(1.33,2.455),(1.5,2.455),(1.5,2.285),(1.33,2.285)), + ((1.36,8.33),(1.36,8.5),(1.53,8.5),(1.53,8.33),(1.36,8.33)), ) createRL( tech, net, 'li', - ((1.33,5.545),(1.33,8.595),(1.5,8.595),(1.5,5.545),(1.33,5.545)), + ((1.36,5.53),(1.36,8.58),(1.53,8.58),(1.53,5.53),(1.36,5.53)), ) createRL( tech, net, 'li', - ((1.33,1.525),(1.33,8.595),(1.5,8.595),(1.5,1.525),(1.33,1.525)), + ((1.36,1.54),(1.36,8.58),(1.53,8.58),(1.53,1.54),(1.36,1.54)), ) createRL( tech, net, 'li', - ((1.33,1.525),(1.33,2.535),(1.5,2.535),(1.5,1.525),(1.33,1.525)), + ((1.36,1.54),(1.36,2.55),(1.53,2.55),(1.53,1.54),(1.36,1.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.415), u(0.17), u(1.525), u(8.595), + u(1.445), u(0.17), u(1.54), u(8.58), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.415), u(0.17), u(1.525), u(8.595), + u(1.445), u(0.17), u(1.54), u(8.58), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -24767,24 +24487,24 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['ni'] createRL( tech, net, 'difftap', - ((0.33,5.515),(0.33,7.515),(0.58,7.515),(0.58,5.515),(0.33,5.515)), + ((0.33,5.49),(0.33,7.49),(0.58,7.49),(0.58,5.49),(0.33,5.49)), ) createRL( tech, net, 'difftap', - ((0.33,1.685),(0.33,2.685),(0.58,2.685),(0.58,1.685),(0.33,1.685)), + ((0.33,1.71),(0.33,2.71),(0.58,2.71),(0.58,1.71),(0.33,1.71)), ) createRL( tech, net, 'difftap', - ((0.315,1.685),(0.315,2.685),(0.565,2.685),(0.565,1.685),(0.315,1.685)), + ((0.315,1.71),(0.315,2.71),(0.565,2.71),(0.565,1.71),(0.315,1.71)), ) createRL( tech, net, 'difftap', - ((0.315,5.515),(0.315,7.515),(0.565,7.515),(0.565,5.515),(0.315,5.515)), + ((0.315,5.49),(0.315,7.49),(0.565,7.49),(0.565,5.49),(0.315,5.49)), ) createRL( tech, net, 'licon', @@ -24792,31 +24512,31 @@ def _load(): ) createRL( tech, net, 'licon', - ((0.355,5.75),(0.355,5.92),(0.525,5.92),(0.525,5.75),(0.355,5.75)), + ((0.355,1.955),(0.355,2.125),(0.525,2.125),(0.525,1.955),(0.355,1.955)), ) createRL( tech, net, 'licon', - ((0.355,6.09),(0.355,6.26),(0.525,6.26),(0.525,6.09),(0.355,6.09)), + ((0.355,2.295),(0.355,2.465),(0.525,2.465),(0.525,2.295),(0.355,2.295)), ) createRL( tech, net, 'licon', - ((0.355,6.43),(0.355,6.6),(0.525,6.6),(0.525,6.43),(0.355,6.43)), + ((0.355,5.725),(0.355,5.895),(0.525,5.895),(0.525,5.725),(0.355,5.725)), ) createRL( tech, net, 'licon', - ((0.355,6.77),(0.355,6.94),(0.525,6.94),(0.525,6.77),(0.355,6.77)), + ((0.355,6.065),(0.355,6.235),(0.525,6.235),(0.525,6.065),(0.355,6.065)), ) createRL( tech, net, 'licon', - ((0.355,7.11),(0.355,7.28),(0.525,7.28),(0.525,7.11),(0.355,7.11)), + ((0.355,6.405),(0.355,6.575),(0.525,6.575),(0.525,6.405),(0.355,6.405)), ) createRL( tech, net, 'licon', - ((0.355,1.93),(0.355,2.1),(0.525,2.1),(0.525,1.93),(0.355,1.93)), + ((0.355,6.745),(0.355,6.915),(0.525,6.915),(0.525,6.745),(0.355,6.745)), ) createRL( tech, net, 'licon', - ((0.355,2.27),(0.355,2.44),(0.525,2.44),(0.525,2.27),(0.355,2.27)), + ((0.355,7.085),(0.355,7.255),(0.525,7.255),(0.525,7.085),(0.355,7.085)), ) createRL( tech, net, 'li', @@ -24824,27 +24544,27 @@ def _load(): ) createRL( tech, net, 'li', - ((0.355,1.85),(0.355,7.36),(0.525,7.36),(0.525,1.85),(0.355,1.85)), + ((0.355,1.875),(0.355,7.335),(0.525,7.335),(0.525,1.875),(0.355,1.875)), ) createRL( tech, net, 'li', - ((0.355,1.85),(0.355,2.52),(0.525,2.52),(0.525,1.85),(0.355,1.85)), + ((0.355,1.875),(0.355,2.545),(0.525,2.545),(0.525,1.875),(0.355,1.875)), ) createRL( tech, net, 'li', - ((0.355,5.67),(0.355,7.36),(0.525,7.36),(0.525,5.67),(0.355,5.67)), + ((0.355,5.645),(0.355,7.335),(0.525,7.335),(0.525,5.645),(0.355,5.645)), ) createRL( tech, net, 'poly', - ((0.305,3.935),(0.305,4.265),(1.705,4.265),(1.705,3.935),(0.305,3.935)), + ((0.305,3.935),(0.305,4.265),(1.735,4.265),(1.735,3.935),(0.305,3.935)), ) createRL( tech, net, 'poly', - ((1.125,2.815),(1.125,5.385),(1.275,5.385),(1.275,2.815),(1.125,2.815)), + ((1.155,2.84),(1.155,5.36),(1.305,5.36),(1.305,2.84),(1.155,2.84)), ) createRL( tech, net, 'poly', - ((1.555,2.815),(1.555,5.385),(1.705,5.385),(1.705,2.815),(1.555,2.815)), + ((1.585,2.84),(1.585,5.36),(1.735,5.36),(1.735,2.84),(1.585,2.84)), ) createRL( tech, net, 'poly', @@ -24852,289 +24572,285 @@ def _load(): ) createRL( tech, net, 'poly', - ((1.125,5.385),(1.125,9.245),(1.275,9.245),(1.275,5.385),(1.125,5.385)), + ((1.155,5.36),(1.155,9.22),(1.305,9.22),(1.305,5.36),(1.155,5.36)), ) createRL( tech, net, 'poly', - ((1.555,5.385),(1.555,9.245),(1.705,9.245),(1.705,5.385),(1.555,5.385)), + ((1.585,5.36),(1.585,9.22),(1.735,9.22),(1.735,5.36),(1.585,5.36)), ) createRL( tech, net, 'poly', - ((1.125,0.755),(1.125,2.815),(1.275,2.815),(1.275,0.755),(1.125,0.755)), + ((1.155,0.78),(1.155,2.84),(1.305,2.84),(1.305,0.78),(1.155,0.78)), ) createRL( tech, net, 'poly', - ((1.555,0.755),(1.555,2.815),(1.705,2.815),(1.705,0.755),(1.555,0.755)), + ((1.585,0.78),(1.585,2.84),(1.735,2.84),(1.735,0.78),(1.585,0.78)), ) net = nets['*'] createRL( tech, net, 'nsdm', - ((0.205,1.56),(0.205,2.81),(1.105,2.81),(1.105,1.56),(0.205,1.56)), + ((0.205,1.585),(0.205,2.835),(1.105,2.835),(1.105,1.585),(0.205,1.585)), ) createRL( tech, net, 'nsdm', - ((1.595,0.76),(1.595,2.81),(2.095,2.81),(2.095,0.76),(1.595,0.76)), + ((1.195,0.785),(1.195,2.835),(1.695,2.835),(1.695,0.785),(1.195,0.785)), ) createRL( tech, net, 'nsdm', - ((1.165,0.76),(1.165,2.81),(1.665,2.81),(1.665,0.76),(1.165,0.76)), + ((0.51,1.64),(0.51,2.78),(0.8,2.78),(0.8,1.64),(0.51,1.64)), ) createRL( tech, net, 'nsdm', - ((0.51,1.615),(0.51,2.755),(0.8,2.755),(0.8,1.615),(0.51,1.615)), + ((0.19,9.31),(0.19,9.81),(2.81,9.81),(2.81,9.31),(0.19,9.31)), ) createRL( tech, net, 'nsdm', - ((0.19,9.26),(0.19,9.81),(2.81,9.81),(2.81,9.26),(0.19,9.26)), + ((0.68,0.785),(0.68,2.835),(1.18,2.835),(1.18,0.785),(0.68,0.785)), ) createRL( tech, net, 'nsdm', - ((0.655,0.76),(0.655,2.81),(1.155,2.81),(1.155,0.76),(0.655,0.76)), + ((0.78,0.785),(0.78,2.835),(1.68,2.835),(1.68,0.785),(0.78,0.785)), ) createRL( tech, net, 'nsdm', - ((0.75,0.76),(0.75,2.81),(1.65,2.81),(1.65,0.76),(0.75,0.76)), + ((1.515,0.84),(1.515,2.78),(1.805,2.78),(1.805,0.84),(1.515,0.84)), ) createRL( tech, net, 'nsdm', - ((0.19,1.56),(0.19,2.81),(0.69,2.81),(0.69,1.56),(0.19,1.56)), + ((1.195,1.255),(1.195,2.835),(1.695,2.835),(1.695,1.255),(1.195,1.255)), ) createRL( tech, net, 'nsdm', - ((1.055,0.815),(1.055,2.755),(1.345,2.755),(1.345,0.815),(1.055,0.815)), + ((0.68,0.785),(0.68,1.445),(1.18,1.445),(1.18,0.785),(0.68,0.785)), ) createRL( tech, net, 'nsdm', - ((1.165,1.25),(1.165,2.81),(1.665,2.81),(1.665,1.25),(1.165,1.25)), + ((1.21,0.785),(1.21,2.835),(2.11,2.835),(2.11,0.785),(1.21,0.785)), ) createRL( tech, net, 'nsdm', - ((0.655,0.76),(0.655,1.31),(1.155,1.31),(1.155,0.76),(0.655,0.76)), + ((1.085,0.84),(1.085,2.78),(1.375,2.78),(1.375,0.84),(1.085,0.84)), ) createRL( tech, net, 'nsdm', - ((1.485,0.815),(1.485,2.755),(1.775,2.755),(1.775,0.815),(1.485,0.815)), + ((1.625,0.785),(1.625,2.835),(2.125,2.835),(2.125,0.785),(1.625,0.785)), ) createRL( tech, net, 'nsdm', - ((1.18,0.76),(1.18,2.81),(2.08,2.81),(2.08,0.76),(1.18,0.76)), + ((0.19,1.585),(0.19,2.835),(0.69,2.835),(0.69,1.585),(0.19,1.585)), ) createRL( tech, net, 'psdm', - ((0.655,8.69),(0.655,9.24),(1.155,9.24),(1.155,8.69),(0.655,8.69)), + ((1.625,5.365),(1.625,9.215),(2.125,9.215),(2.125,5.365),(1.625,5.365)), ) createRL( tech, net, 'psdm', - ((0.205,5.39),(0.205,7.64),(1.105,7.64),(1.105,5.39),(0.205,5.39)), + ((0.68,8.555),(0.68,9.215),(1.18,9.215),(1.18,8.555),(0.68,8.555)), ) createRL( tech, net, 'psdm', - ((1.165,5.39),(1.165,8.75),(1.665,8.75),(1.665,5.39),(1.165,5.39)), + ((0.205,5.365),(0.205,7.615),(1.105,7.615),(1.105,5.365),(0.205,5.365)), ) createRL( tech, net, 'psdm', - ((0.19,0.19),(0.19,0.74),(2.81,0.74),(2.81,0.19),(0.19,0.19)), + ((1.195,5.365),(1.195,8.745),(1.695,8.745),(1.695,5.365),(1.195,5.365)), ) createRL( tech, net, 'psdm', - ((0.19,5.39),(0.19,7.64),(0.69,7.64),(0.69,5.39),(0.19,5.39)), + ((0.19,0.19),(0.19,0.69),(2.81,0.69),(2.81,0.19),(0.19,0.19)), ) createRL( tech, net, 'psdm', - ((0.51,5.445),(0.51,7.585),(0.8,7.585),(0.8,5.445),(0.51,5.445)), + ((0.51,5.42),(0.51,7.56),(0.8,7.56),(0.8,5.42),(0.51,5.42)), ) createRL( tech, net, 'psdm', - ((1.055,5.445),(1.055,9.185),(1.345,9.185),(1.345,5.445),(1.055,5.445)), + ((0.19,5.365),(0.19,7.615),(0.69,7.615),(0.69,5.365),(0.19,5.365)), ) createRL( tech, net, 'psdm', - ((1.165,5.39),(1.165,9.24),(1.665,9.24),(1.665,5.39),(1.165,5.39)), + ((1.085,5.42),(1.085,9.16),(1.375,9.16),(1.375,5.42),(1.085,5.42)), ) createRL( tech, net, 'psdm', - ((1.485,5.445),(1.485,9.185),(1.775,9.185),(1.775,5.445),(1.485,5.445)), + ((1.195,5.365),(1.195,9.215),(1.695,9.215),(1.695,5.365),(1.195,5.365)), ) createRL( tech, net, 'psdm', - ((1.595,5.39),(1.595,9.24),(2.095,9.24),(2.095,5.39),(1.595,5.39)), + ((1.515,5.42),(1.515,9.16),(1.805,9.16),(1.805,5.42),(1.515,5.42)), ) createRL( tech, net, 'psdm', - ((0.655,5.39),(0.655,9.24),(1.155,9.24),(1.155,5.39),(0.655,5.39)), + ((0.68,5.365),(0.68,9.215),(1.18,9.215),(1.18,5.365),(0.68,5.365)), ) createRL( tech, net, 'psdm', - ((0.75,5.39),(0.75,9.24),(1.65,9.24),(1.65,5.39),(0.75,5.39)), + ((0.78,5.365),(0.78,9.215),(1.68,9.215),(1.68,5.365),(0.78,5.365)), ) createRL( tech, net, 'psdm', - ((1.18,5.39),(1.18,9.24),(2.08,9.24),(2.08,5.39),(1.18,5.39)), + ((1.21,5.365),(1.21,9.215),(2.11,9.215),(2.11,5.365),(1.21,5.365)), ) net = nets['vdd'] createRL( tech, net, 'nwm', - ((1.125,5.335),(1.125,9.295),(2.135,9.295),(2.135,5.335),(1.125,5.335)), + ((1.155,5.31),(1.155,9.27),(2.165,9.27),(2.165,5.31),(1.155,5.31)), ) createRL( tech, net, 'nwm', - ((0.15,5.335),(0.15,7.695),(1.16,7.695),(1.16,5.335),(0.15,5.335)), + ((0.15,5.31),(0.15,7.67),(1.16,7.67),(1.16,5.31),(0.15,5.31)), ) createRL( tech, net, 'nwm', - ((1.11,5.335),(1.11,8.805),(1.72,8.805),(1.72,5.335),(1.11,5.335)), + ((1.14,5.31),(1.14,8.8),(1.75,8.8),(1.75,5.31),(1.14,5.31)), ) createRL( tech, net, 'nwm', - ((0.135,5.335),(0.135,7.695),(0.745,7.695),(0.745,5.335),(0.135,5.335)), + ((0.135,5.31),(0.135,7.67),(0.745,7.67),(0.745,5.31),(0.135,5.31)), ) createRL( tech, net, 'nwm', - ((0.135,9.205),(0.135,9.865),(2.865,9.865),(2.865,9.205),(0.135,9.205)), + ((0.135,9.255),(0.135,9.865),(2.865,9.865),(2.865,9.255),(0.135,9.255)), ) createRL( tech, net, 'nwm', - ((1.11,5.335),(1.11,9.295),(1.72,9.295),(1.72,5.335),(1.11,5.335)), + ((1.14,5.31),(1.14,9.27),(1.75,9.27),(1.75,5.31),(1.14,5.31)), ) createRL( tech, net, 'nwm', - ((0.6,5.335),(0.6,9.295),(1.21,9.295),(1.21,5.335),(0.6,5.335)), + ((1.57,5.31),(1.57,9.27),(2.18,9.27),(2.18,5.31),(1.57,5.31)), ) createRL( tech, net, 'nwm', - ((-0.18,4.8),(-0.18,10.18),(3.18,10.18),(3.18,4.8),(-0.18,4.8)), + ((0.625,5.31),(0.625,9.27),(1.235,9.27),(1.235,5.31),(0.625,5.31)), ) createRL( tech, net, 'nwm', - ((0.695,5.335),(0.695,9.295),(1.705,9.295),(1.705,5.335),(0.695,5.335)), + ((-0.18,4.8),(-0.18,10.18),(3.18,10.18),(3.18,4.8),(-0.18,4.8)), ) createRL( tech, net, 'nwm', - ((1.54,5.335),(1.54,9.295),(2.15,9.295),(2.15,5.335),(1.54,5.335)), + ((0.725,5.31),(0.725,9.27),(1.735,9.27),(1.735,5.31),(0.725,5.31)), ) createRL( tech, net, 'difftap', - ((0.78,8.815),(0.78,9.115),(1.03,9.115),(1.03,8.815),(0.78,8.815)), + ((0.805,8.68),(0.805,9.09),(1.055,9.09),(1.055,8.68),(0.805,8.68)), ) createRL( tech, net, 'difftap', - ((0.73,5.515),(0.73,7.515),(0.98,7.515),(0.98,5.515),(0.73,5.515)), + ((0.73,5.49),(0.73,7.49),(0.98,7.49),(0.98,5.49),(0.73,5.49)), ) createRL( tech, net, 'difftap', - ((0.58,5.515),(0.58,7.515),(0.73,7.515),(0.73,5.515),(0.58,5.515)), + ((0.58,5.49),(0.58,7.49),(0.73,7.49),(0.73,5.49),(0.58,5.49)), ) createRL( tech, net, 'difftap', - ((0.315,9.385),(0.315,9.685),(2.685,9.685),(2.685,9.385),(0.315,9.385)), + ((0.315,9.435),(0.315,9.685),(2.685,9.685),(2.685,9.435),(0.315,9.435)), ) createRL( tech, net, 'difftap', - ((1.125,5.515),(1.125,9.115),(1.275,9.115),(1.275,5.515),(1.125,5.515)), + ((1.155,5.49),(1.155,9.09),(1.305,9.09),(1.305,5.49),(1.155,5.49)), ) createRL( tech, net, 'difftap', - ((1.705,5.515),(1.705,9.115),(1.955,9.115),(1.955,5.515),(1.705,5.515)), + ((1.735,5.49),(1.735,9.09),(1.985,9.09),(1.985,5.49),(1.735,5.49)), ) createRL( tech, net, 'difftap', - ((1.555,5.515),(1.555,9.115),(1.705,9.115),(1.705,5.515),(1.555,5.515)), + ((1.585,5.49),(1.585,9.09),(1.735,9.09),(1.735,5.49),(1.585,5.49)), ) createRL( tech, net, 'difftap', - ((1.72,5.515),(1.72,9.115),(1.97,9.115),(1.97,5.515),(1.72,5.515)), + ((1.75,5.49),(1.75,9.09),(2.0,9.09),(2.0,5.49),(1.75,5.49)), ) createRL( tech, net, 'difftap', - ((0.875,5.515),(0.875,9.115),(1.125,9.115),(1.125,5.515),(0.875,5.515)), + ((0.905,5.49),(0.905,9.09),(1.155,9.09),(1.155,5.49),(0.905,5.49)), ) createRL( tech, net, 'difftap', - ((0.78,5.515),(0.78,9.115),(1.03,9.115),(1.03,5.515),(0.78,5.515)), - ) - createRL( - tech, net, 'licon', - ((1.76,5.7),(1.76,5.87),(1.93,5.87),(1.93,5.7),(1.76,5.7)), + ((0.805,5.49),(0.805,9.09),(1.055,9.09),(1.055,5.49),(0.805,5.49)), ) createRL( tech, net, 'licon', - ((1.76,6.04),(1.76,6.21),(1.93,6.21),(1.93,6.04),(1.76,6.04)), + ((1.79,5.675),(1.79,5.845),(1.96,5.845),(1.96,5.675),(1.79,5.675)), ) createRL( tech, net, 'licon', - ((1.76,6.38),(1.76,6.55),(1.93,6.55),(1.93,6.38),(1.76,6.38)), + ((1.79,6.015),(1.79,6.185),(1.96,6.185),(1.96,6.015),(1.79,6.015)), ) createRL( tech, net, 'licon', - ((1.76,6.72),(1.76,6.89),(1.93,6.89),(1.93,6.72),(1.76,6.72)), + ((1.79,6.355),(1.79,6.525),(1.96,6.525),(1.96,6.355),(1.79,6.355)), ) createRL( tech, net, 'licon', - ((1.76,7.06),(1.76,7.23),(1.93,7.23),(1.93,7.06),(1.76,7.06)), + ((1.79,6.695),(1.79,6.865),(1.96,6.865),(1.96,6.695),(1.79,6.695)), ) createRL( tech, net, 'licon', - ((1.76,7.4),(1.76,7.57),(1.93,7.57),(1.93,7.4),(1.76,7.4)), + ((1.79,7.035),(1.79,7.205),(1.96,7.205),(1.96,7.035),(1.79,7.035)), ) createRL( tech, net, 'licon', - ((1.76,7.74),(1.76,7.91),(1.93,7.91),(1.93,7.74),(1.76,7.74)), + ((1.79,7.375),(1.79,7.545),(1.96,7.545),(1.96,7.375),(1.79,7.375)), ) createRL( tech, net, 'licon', - ((1.76,8.08),(1.76,8.25),(1.93,8.25),(1.93,8.08),(1.76,8.08)), + ((1.79,7.715),(1.79,7.885),(1.96,7.885),(1.96,7.715),(1.79,7.715)), ) createRL( tech, net, 'licon', - ((1.76,8.42),(1.76,8.59),(1.93,8.59),(1.93,8.42),(1.76,8.42)), + ((1.79,8.055),(1.79,8.225),(1.96,8.225),(1.96,8.055),(1.79,8.055)), ) createRL( tech, net, 'licon', - ((1.76,8.76),(1.76,8.93),(1.93,8.93),(1.93,8.76),(1.76,8.76)), + ((1.79,8.395),(1.79,8.565),(1.96,8.565),(1.96,8.395),(1.79,8.395)), ) createRL( tech, net, 'licon', - ((0.82,8.88),(0.82,9.05),(0.99,9.05),(0.99,8.88),(0.82,8.88)), + ((1.79,8.735),(1.79,8.905),(1.96,8.905),(1.96,8.735),(1.79,8.735)), ) createRL( tech, net, 'licon', - ((0.395,9.45),(0.395,9.62),(0.565,9.62),(0.565,9.45),(0.395,9.45)), + ((0.565,9.475),(0.565,9.645),(0.735,9.645),(0.735,9.475),(0.565,9.475)), ) createRL( tech, net, 'licon', - ((0.735,9.45),(0.735,9.62),(0.905,9.62),(0.905,9.45),(0.735,9.45)), + ((0.905,9.475),(0.905,9.645),(1.075,9.645),(1.075,9.475),(0.905,9.475)), ) createRL( tech, net, 'licon', - ((1.075,9.45),(1.075,9.62),(1.245,9.62),(1.245,9.45),(1.075,9.45)), + ((1.245,9.475),(1.245,9.645),(1.415,9.645),(1.415,9.475),(1.245,9.475)), ) createRL( tech, net, 'licon', - ((1.415,9.45),(1.415,9.62),(1.585,9.62),(1.585,9.45),(1.415,9.45)), + ((1.585,9.475),(1.585,9.645),(1.755,9.645),(1.755,9.475),(1.585,9.475)), ) createRL( tech, net, 'licon', - ((1.755,9.45),(1.755,9.62),(1.925,9.62),(1.925,9.45),(1.755,9.45)), + ((1.925,9.475),(1.925,9.645),(2.095,9.645),(2.095,9.475),(1.925,9.475)), ) createRL( tech, net, 'licon', - ((2.095,9.45),(2.095,9.62),(2.265,9.62),(2.265,9.45),(2.095,9.45)), + ((2.265,9.475),(2.265,9.645),(2.435,9.645),(2.435,9.475),(2.265,9.475)), ) createRL( tech, net, 'licon', - ((2.435,9.45),(2.435,9.62),(2.605,9.62),(2.605,9.45),(2.435,9.45)), + ((0.845,8.8),(0.845,8.97),(1.015,8.97),(1.015,8.8),(0.845,8.8)), ) createRL( tech, net, 'li', - ((1.76,5.615),(1.76,9.015),(1.93,9.015),(1.93,5.615),(1.76,5.615)), + ((1.79,5.59),(1.79,8.99),(1.96,8.99),(1.96,5.59),(1.79,5.59)), ) createRL( tech, net, 'li', - ((0.82,8.8),(0.82,9.13),(0.99,9.13),(0.99,8.8),(0.82,8.8)), + ((0.565,9.395),(0.565,9.725),(2.435,9.725),(2.435,9.395),(0.565,9.395)), ) createRL( tech, net, 'li', - ((0.39,9.37),(0.39,9.7),(2.61,9.7),(2.61,9.37),(0.39,9.37)), + ((0.765,8.8),(0.765,8.97),(1.095,8.97),(1.095,8.8),(0.765,8.8)), ) createRL( tech, net, 'li', @@ -25153,111 +24869,107 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((1.705,0.885),(1.705,2.685),(1.955,2.685),(1.955,0.885),(1.705,0.885)), + ((1.75,0.91),(1.75,2.71),(2.0,2.71),(2.0,0.91),(1.75,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.315),(0.315,0.615),(2.685,0.615),(2.685,0.315),(0.315,0.315)), + ((0.315,0.315),(0.315,0.565),(2.685,0.565),(2.685,0.315),(0.315,0.315)), ) createRL( tech, net, 'difftap', - ((0.78,0.885),(0.78,2.685),(1.03,2.685),(1.03,0.885),(0.78,0.885)), + ((1.75,0.91),(1.75,2.71),(2.0,2.71),(2.0,0.91),(1.75,0.91)), ) createRL( tech, net, 'difftap', - ((0.58,1.685),(0.58,2.685),(0.73,2.685),(0.73,1.685),(0.58,1.685)), + ((1.155,0.91),(1.155,2.71),(1.305,2.71),(1.305,0.91),(1.155,0.91)), ) createRL( tech, net, 'difftap', - ((1.125,0.885),(1.125,2.685),(1.275,2.685),(1.275,0.885),(1.125,0.885)), + ((0.805,0.91),(0.805,2.71),(1.055,2.71),(1.055,0.91),(0.805,0.91)), ) createRL( tech, net, 'difftap', - ((0.78,0.885),(0.78,1.185),(1.03,1.185),(1.03,0.885),(0.78,0.885)), + ((0.805,0.91),(0.805,1.32),(1.055,1.32),(1.055,0.91),(0.805,0.91)), ) createRL( tech, net, 'difftap', - ((0.73,1.685),(0.73,2.685),(0.98,2.685),(0.98,1.685),(0.73,1.685)), + ((0.73,1.71),(0.73,2.71),(0.98,2.71),(0.98,1.71),(0.73,1.71)), ) createRL( tech, net, 'difftap', - ((1.72,0.885),(1.72,2.685),(1.97,2.685),(1.97,0.885),(1.72,0.885)), + ((1.585,0.91),(1.585,2.71),(1.735,2.71),(1.735,0.91),(1.585,0.91)), ) createRL( tech, net, 'difftap', - ((1.72,0.885),(1.72,2.685),(1.97,2.685),(1.97,0.885),(1.72,0.885)), + ((0.905,0.91),(0.905,2.71),(1.155,2.71),(1.155,0.91),(0.905,0.91)), ) createRL( tech, net, 'difftap', - ((0.875,0.885),(0.875,2.685),(1.125,2.685),(1.125,0.885),(0.875,0.885)), + ((0.58,1.71),(0.58,2.71),(0.73,2.71),(0.73,1.71),(0.58,1.71)), ) createRL( tech, net, 'difftap', - ((1.555,0.885),(1.555,2.685),(1.705,2.685),(1.705,0.885),(1.555,0.885)), - ) - createRL( - tech, net, 'licon', - ((0.395,0.38),(0.395,0.55),(0.565,0.55),(0.565,0.38),(0.395,0.38)), + ((1.735,0.91),(1.735,2.71),(1.985,2.71),(1.985,0.91),(1.735,0.91)), ) createRL( tech, net, 'licon', - ((0.735,0.38),(0.735,0.55),(0.905,0.55),(0.905,0.38),(0.735,0.38)), + ((0.845,1.03),(0.845,1.2),(1.015,1.2),(1.015,1.03),(0.845,1.03)), ) createRL( tech, net, 'licon', - ((1.075,0.38),(1.075,0.55),(1.245,0.55),(1.245,0.38),(1.075,0.38)), + ((0.565,0.355),(0.565,0.525),(0.735,0.525),(0.735,0.355),(0.565,0.355)), ) createRL( tech, net, 'licon', - ((1.415,0.38),(1.415,0.55),(1.585,0.55),(1.585,0.38),(1.415,0.38)), + ((0.905,0.355),(0.905,0.525),(1.075,0.525),(1.075,0.355),(0.905,0.355)), ) createRL( tech, net, 'licon', - ((1.755,0.38),(1.755,0.55),(1.925,0.55),(1.925,0.38),(1.755,0.38)), + ((1.245,0.355),(1.245,0.525),(1.415,0.525),(1.415,0.355),(1.245,0.355)), ) createRL( tech, net, 'licon', - ((2.095,0.38),(2.095,0.55),(2.265,0.55),(2.265,0.38),(2.095,0.38)), + ((1.585,0.355),(1.585,0.525),(1.755,0.525),(1.755,0.355),(1.585,0.355)), ) createRL( tech, net, 'licon', - ((2.435,0.38),(2.435,0.55),(2.605,0.55),(2.605,0.38),(2.435,0.38)), + ((1.925,0.355),(1.925,0.525),(2.095,0.525),(2.095,0.355),(1.925,0.355)), ) createRL( tech, net, 'licon', - ((1.76,1.02),(1.76,1.19),(1.93,1.19),(1.93,1.02),(1.76,1.02)), + ((2.265,0.355),(2.265,0.525),(2.435,0.525),(2.435,0.355),(2.265,0.355)), ) createRL( tech, net, 'licon', - ((1.76,1.36),(1.76,1.53),(1.93,1.53),(1.93,1.36),(1.76,1.36)), + ((1.79,1.045),(1.79,1.215),(1.96,1.215),(1.96,1.045),(1.79,1.045)), ) createRL( tech, net, 'licon', - ((1.76,1.7),(1.76,1.87),(1.93,1.87),(1.93,1.7),(1.76,1.7)), + ((1.79,1.385),(1.79,1.555),(1.96,1.555),(1.96,1.385),(1.79,1.385)), ) createRL( tech, net, 'licon', - ((1.76,2.04),(1.76,2.21),(1.93,2.21),(1.93,2.04),(1.76,2.04)), + ((1.79,1.725),(1.79,1.895),(1.96,1.895),(1.96,1.725),(1.79,1.725)), ) createRL( tech, net, 'licon', - ((1.76,2.38),(1.76,2.55),(1.93,2.55),(1.93,2.38),(1.76,2.38)), + ((1.79,2.065),(1.79,2.235),(1.96,2.235),(1.96,2.065),(1.79,2.065)), ) createRL( tech, net, 'licon', - ((0.82,0.95),(0.82,1.12),(0.99,1.12),(0.99,0.95),(0.82,0.95)), + ((1.79,2.405),(1.79,2.575),(1.96,2.575),(1.96,2.405),(1.79,2.405)), ) createRL( tech, net, 'li', - ((0.39,0.3),(0.39,0.63),(2.61,0.63),(2.61,0.3),(0.39,0.3)), + ((0.565,0.275),(0.565,0.605),(2.435,0.605),(2.435,0.275),(0.565,0.275)), ) createRL( tech, net, 'li', - ((0.82,0.87),(0.82,1.2),(0.99,1.2),(0.99,0.87),(0.82,0.87)), + ((0.765,1.03),(0.765,1.2),(1.095,1.2),(1.095,1.03),(0.765,1.03)), ) createRL( tech, net, 'li', - ((1.76,0.94),(1.76,2.63),(1.93,2.63),(1.93,0.94),(1.76,0.94)), + ((1.79,0.965),(1.79,2.655),(1.96,2.655),(1.96,0.965),(1.79,0.965)), ) createRL( tech, net, 'li', @@ -25276,39 +24988,47 @@ def _load(): net = nets['i'] createRL( tech, net, 'poly', - ((0.58,5.385),(0.58,7.645),(0.73,7.645),(0.73,5.385),(0.58,5.385)), + ((0.58,1.58),(0.58,3.165),(0.73,3.165),(0.73,1.58),(0.58,1.58)), ) createRL( tech, net, 'poly', - ((0.58,5.135),(0.58,5.465),(0.915,5.465),(0.915,5.135),(0.58,5.135)), + ((0.58,5.36),(0.58,7.62),(0.73,7.62),(0.73,5.36),(0.58,5.36)), ) createRL( tech, net, 'poly', - ((0.645,2.735),(0.645,3.065),(0.915,3.065),(0.915,2.735),(0.645,2.735)), + ((0.58,5.035),(0.58,7.62),(0.73,7.62),(0.73,5.035),(0.58,5.035)), ) createRL( tech, net, 'poly', - ((0.58,2.735),(0.58,3.065),(0.915,3.065),(0.915,2.735),(0.58,2.735)), + ((0.615,2.895),(0.615,3.165),(0.945,3.165),(0.945,2.895),(0.615,2.895)), ) createRL( tech, net, 'poly', - ((0.58,1.555),(0.58,2.815),(0.73,2.815),(0.73,1.555),(0.58,1.555)), + ((0.58,2.895),(0.58,3.165),(0.945,3.165),(0.945,2.895),(0.58,2.895)), ) createRL( tech, net, 'poly', - ((0.645,5.135),(0.645,5.465),(0.915,5.465),(0.915,5.135),(0.645,5.135)), + ((0.58,1.58),(0.58,2.84),(0.73,2.84),(0.73,1.58),(0.58,1.58)), + ) + createRL( + tech, net, 'poly', + ((0.58,5.035),(0.58,5.305),(0.945,5.305),(0.945,5.035),(0.58,5.035)), + ) + createRL( + tech, net, 'poly', + ((0.615,5.035),(0.615,5.305),(0.945,5.305),(0.945,5.035),(0.615,5.035)), ) createRL( tech, net, 'licon', - ((0.695,2.815),(0.695,2.985),(0.865,2.985),(0.865,2.815),(0.695,2.815)), + ((0.695,2.945),(0.695,3.115),(0.865,3.115),(0.865,2.945),(0.695,2.945)), ) createRL( tech, net, 'licon', - ((0.695,5.215),(0.695,5.385),(0.865,5.385),(0.865,5.215),(0.695,5.215)), + ((0.695,5.085),(0.695,5.255),(0.865,5.255),(0.865,5.085),(0.695,5.085)), ) createRL( tech, net, 'li', - ((0.695,2.735),(0.695,3.065),(0.865,3.065),(0.865,2.735),(0.695,2.735)), + ((0.695,2.865),(0.695,3.195),(0.865,3.195),(0.865,2.865),(0.695,2.865)), ) createRL( tech, net, 'li', @@ -25316,7 +25036,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.695,5.135),(0.695,5.465),(0.865,5.465),(0.865,5.135),(0.695,5.135)), + ((0.695,5.005),(0.695,5.335),(0.865,5.335),(0.865,5.005),(0.695,5.005)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -25331,108 +25051,108 @@ def _load(): net = nets['nwm'] createRL( tech, net, 'nwm', - ((0.6,8.635),(0.6,9.295),(1.21,9.295),(1.21,8.635),(0.6,8.635)), + ((0.625,8.5),(0.625,9.27),(1.235,9.27),(1.235,8.5),(0.625,8.5)), ) net = nets['q'] createRL( tech, net, 'difftap', - ((1.305,0.885),(1.305,2.685),(1.555,2.685),(1.555,0.885),(1.305,0.885)), + ((1.335,0.91),(1.335,2.71),(1.585,2.71),(1.585,0.91),(1.335,0.91)), ) createRL( tech, net, 'difftap', - ((1.29,5.515),(1.29,8.625),(1.54,8.625),(1.54,5.515),(1.29,5.515)), + ((1.32,5.49),(1.32,8.62),(1.57,8.62),(1.57,5.49),(1.32,5.49)), ) createRL( tech, net, 'difftap', - ((1.275,5.515),(1.275,9.115),(1.525,9.115),(1.525,5.515),(1.275,5.515)), + ((1.305,5.49),(1.305,9.09),(1.555,9.09),(1.555,5.49),(1.305,5.49)), ) createRL( tech, net, 'difftap', - ((1.29,5.515),(1.29,9.115),(1.54,9.115),(1.54,5.515),(1.29,5.515)), + ((1.32,5.49),(1.32,9.09),(1.57,9.09),(1.57,5.49),(1.32,5.49)), ) createRL( tech, net, 'difftap', - ((1.29,1.375),(1.29,2.685),(1.54,2.685),(1.54,1.375),(1.29,1.375)), + ((1.32,1.38),(1.32,2.71),(1.57,2.71),(1.57,1.38),(1.32,1.38)), ) createRL( tech, net, 'difftap', - ((1.29,0.885),(1.29,2.685),(1.54,2.685),(1.54,0.885),(1.29,0.885)), + ((1.32,0.91),(1.32,2.71),(1.57,2.71),(1.57,0.91),(1.32,0.91)), ) createRL( tech, net, 'difftap', - ((1.275,0.885),(1.275,2.685),(1.525,2.685),(1.525,0.885),(1.275,0.885)), + ((1.305,0.91),(1.305,2.71),(1.555,2.71),(1.555,0.91),(1.305,0.91)), ) createRL( tech, net, 'difftap', - ((1.305,5.515),(1.305,9.115),(1.555,9.115),(1.555,5.515),(1.305,5.515)), + ((1.335,5.49),(1.335,9.09),(1.585,9.09),(1.585,5.49),(1.335,5.49)), ) createRL( tech, net, 'licon', - ((1.33,5.625),(1.33,5.795),(1.5,5.795),(1.5,5.625),(1.33,5.625)), + ((1.36,1.62),(1.36,1.79),(1.53,1.79),(1.53,1.62),(1.36,1.62)), ) createRL( tech, net, 'licon', - ((1.33,5.965),(1.33,6.135),(1.5,6.135),(1.5,5.965),(1.33,5.965)), + ((1.36,1.96),(1.36,2.13),(1.53,2.13),(1.53,1.96),(1.36,1.96)), ) createRL( tech, net, 'licon', - ((1.33,6.305),(1.33,6.475),(1.5,6.475),(1.5,6.305),(1.33,6.305)), + ((1.36,2.3),(1.36,2.47),(1.53,2.47),(1.53,2.3),(1.36,2.3)), ) createRL( tech, net, 'licon', - ((1.33,6.645),(1.33,6.815),(1.5,6.815),(1.5,6.645),(1.33,6.645)), + ((1.36,5.61),(1.36,5.78),(1.53,5.78),(1.53,5.61),(1.36,5.61)), ) createRL( tech, net, 'licon', - ((1.33,6.985),(1.33,7.155),(1.5,7.155),(1.5,6.985),(1.33,6.985)), + ((1.36,5.95),(1.36,6.12),(1.53,6.12),(1.53,5.95),(1.36,5.95)), ) createRL( tech, net, 'licon', - ((1.33,7.325),(1.33,7.495),(1.5,7.495),(1.5,7.325),(1.33,7.325)), + ((1.36,6.29),(1.36,6.46),(1.53,6.46),(1.53,6.29),(1.36,6.29)), ) createRL( tech, net, 'licon', - ((1.33,7.665),(1.33,7.835),(1.5,7.835),(1.5,7.665),(1.33,7.665)), + ((1.36,6.63),(1.36,6.8),(1.53,6.8),(1.53,6.63),(1.36,6.63)), ) createRL( tech, net, 'licon', - ((1.33,8.005),(1.33,8.175),(1.5,8.175),(1.5,8.005),(1.33,8.005)), + ((1.36,6.97),(1.36,7.14),(1.53,7.14),(1.53,6.97),(1.36,6.97)), ) createRL( tech, net, 'licon', - ((1.33,8.345),(1.33,8.515),(1.5,8.515),(1.5,8.345),(1.33,8.345)), + ((1.36,7.31),(1.36,7.48),(1.53,7.48),(1.53,7.31),(1.36,7.31)), ) createRL( tech, net, 'licon', - ((1.33,1.605),(1.33,1.775),(1.5,1.775),(1.5,1.605),(1.33,1.605)), + ((1.36,7.65),(1.36,7.82),(1.53,7.82),(1.53,7.65),(1.36,7.65)), ) createRL( tech, net, 'licon', - ((1.33,1.945),(1.33,2.115),(1.5,2.115),(1.5,1.945),(1.33,1.945)), + ((1.36,7.99),(1.36,8.16),(1.53,8.16),(1.53,7.99),(1.36,7.99)), ) createRL( tech, net, 'licon', - ((1.33,2.285),(1.33,2.455),(1.5,2.455),(1.5,2.285),(1.33,2.285)), + ((1.36,8.33),(1.36,8.5),(1.53,8.5),(1.53,8.33),(1.36,8.33)), ) createRL( tech, net, 'li', - ((1.33,5.545),(1.33,8.595),(1.5,8.595),(1.5,5.545),(1.33,5.545)), + ((1.36,5.53),(1.36,8.58),(1.53,8.58),(1.53,5.53),(1.36,5.53)), ) createRL( tech, net, 'li', - ((1.33,1.525),(1.33,8.595),(1.5,8.595),(1.5,1.525),(1.33,1.525)), + ((1.36,1.54),(1.36,8.58),(1.53,8.58),(1.53,1.54),(1.36,1.54)), ) createRL( tech, net, 'li', - ((1.33,1.525),(1.33,2.535),(1.5,2.535),(1.5,1.525),(1.33,1.525)), + ((1.36,1.54),(1.36,2.55),(1.53,2.55),(1.53,1.54),(1.36,1.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.415), u(0.17), u(1.525), u(8.595), + u(1.445), u(0.17), u(1.54), u(8.58), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.415), u(0.17), u(1.525), u(8.595), + u(1.445), u(0.17), u(1.54), u(8.58), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -25451,76 +25171,76 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['ni'] createRL( tech, net, 'difftap', - ((0.315,5.515),(0.315,8.625),(0.565,8.625),(0.565,5.515),(0.315,5.515)), + ((0.315,5.49),(0.315,8.62),(0.565,8.62),(0.565,5.49),(0.315,5.49)), ) createRL( tech, net, 'difftap', - ((0.315,1.375),(0.315,2.685),(0.565,2.685),(0.565,1.375),(0.315,1.375)), + ((0.315,1.38),(0.315,2.71),(0.565,2.71),(0.565,1.38),(0.315,1.38)), ) createRL( tech, net, 'difftap', - ((0.33,0.885),(0.33,2.685),(0.58,2.685),(0.58,0.885),(0.33,0.885)), + ((0.33,0.91),(0.33,2.71),(0.58,2.71),(0.58,0.91),(0.33,0.91)), ) createRL( tech, net, 'difftap', - ((0.33,5.515),(0.33,9.115),(0.58,9.115),(0.58,5.515),(0.33,5.515)), + ((0.33,5.49),(0.33,9.09),(0.58,9.09),(0.58,5.49),(0.33,5.49)), ) createRL( tech, net, 'licon', - ((0.355,5.625),(0.355,5.795),(0.525,5.795),(0.525,5.625),(0.355,5.625)), + ((0.355,4.015),(0.355,4.185),(0.525,4.185),(0.525,4.015),(0.355,4.015)), ) createRL( tech, net, 'licon', - ((0.355,5.965),(0.355,6.135),(0.525,6.135),(0.525,5.965),(0.355,5.965)), + ((0.355,5.61),(0.355,5.78),(0.525,5.78),(0.525,5.61),(0.355,5.61)), ) createRL( tech, net, 'licon', - ((0.355,6.305),(0.355,6.475),(0.525,6.475),(0.525,6.305),(0.355,6.305)), + ((0.355,5.95),(0.355,6.12),(0.525,6.12),(0.525,5.95),(0.355,5.95)), ) createRL( tech, net, 'licon', - ((0.355,6.645),(0.355,6.815),(0.525,6.815),(0.525,6.645),(0.355,6.645)), + ((0.355,6.29),(0.355,6.46),(0.525,6.46),(0.525,6.29),(0.355,6.29)), ) createRL( tech, net, 'licon', - ((0.355,6.985),(0.355,7.155),(0.525,7.155),(0.525,6.985),(0.355,6.985)), + ((0.355,6.63),(0.355,6.8),(0.525,6.8),(0.525,6.63),(0.355,6.63)), ) createRL( tech, net, 'licon', - ((0.355,7.325),(0.355,7.495),(0.525,7.495),(0.525,7.325),(0.355,7.325)), + ((0.355,6.97),(0.355,7.14),(0.525,7.14),(0.525,6.97),(0.355,6.97)), ) createRL( tech, net, 'licon', - ((0.355,7.665),(0.355,7.835),(0.525,7.835),(0.525,7.665),(0.355,7.665)), + ((0.355,7.31),(0.355,7.48),(0.525,7.48),(0.525,7.31),(0.355,7.31)), ) createRL( tech, net, 'licon', - ((0.355,8.005),(0.355,8.175),(0.525,8.175),(0.525,8.005),(0.355,8.005)), + ((0.355,7.65),(0.355,7.82),(0.525,7.82),(0.525,7.65),(0.355,7.65)), ) createRL( tech, net, 'licon', - ((0.355,8.345),(0.355,8.515),(0.525,8.515),(0.525,8.345),(0.355,8.345)), + ((0.355,7.99),(0.355,8.16),(0.525,8.16),(0.525,7.99),(0.355,7.99)), ) createRL( tech, net, 'licon', - ((0.355,4.015),(0.355,4.185),(0.525,4.185),(0.525,4.015),(0.355,4.015)), + ((0.355,8.33),(0.355,8.5),(0.525,8.5),(0.525,8.33),(0.355,8.33)), ) createRL( tech, net, 'licon', - ((0.355,1.605),(0.355,1.775),(0.525,1.775),(0.525,1.605),(0.355,1.605)), + ((0.355,1.62),(0.355,1.79),(0.525,1.79),(0.525,1.62),(0.355,1.62)), ) createRL( tech, net, 'licon', - ((0.355,1.945),(0.355,2.115),(0.525,2.115),(0.525,1.945),(0.355,1.945)), + ((0.355,1.96),(0.355,2.13),(0.525,2.13),(0.525,1.96),(0.355,1.96)), ) createRL( tech, net, 'licon', - ((0.355,2.285),(0.355,2.455),(0.525,2.455),(0.525,2.285),(0.355,2.285)), + ((0.355,2.3),(0.355,2.47),(0.525,2.47),(0.525,2.3),(0.355,2.3)), ) createRL( tech, net, 'li', @@ -25528,23 +25248,23 @@ def _load(): ) createRL( tech, net, 'li', - ((0.355,5.545),(0.355,8.595),(0.525,8.595),(0.525,5.545),(0.355,5.545)), + ((0.355,5.53),(0.355,8.58),(0.525,8.58),(0.525,5.53),(0.355,5.53)), ) createRL( tech, net, 'li', - ((0.355,1.525),(0.355,2.535),(0.525,2.535),(0.525,1.525),(0.355,1.525)), + ((0.355,1.54),(0.355,2.55),(0.525,2.55),(0.525,1.54),(0.355,1.54)), ) createRL( tech, net, 'li', - ((0.355,1.525),(0.355,8.595),(0.525,8.595),(0.525,1.525),(0.355,1.525)), + ((0.355,1.54),(0.355,8.58),(0.525,8.58),(0.525,1.54),(0.355,1.54)), ) createRL( tech, net, 'poly', - ((1.125,2.815),(1.125,5.385),(1.275,5.385),(1.275,2.815),(1.125,2.815)), + ((1.155,2.84),(1.155,5.36),(1.305,5.36),(1.305,2.84),(1.155,2.84)), ) createRL( tech, net, 'poly', - ((1.555,2.815),(1.555,5.385),(1.705,5.385),(1.705,2.815),(1.555,2.815)), + ((1.585,2.84),(1.585,5.36),(1.735,5.36),(1.735,2.84),(1.585,2.84)), ) createRL( tech, net, 'poly', @@ -25552,473 +25272,469 @@ def _load(): ) createRL( tech, net, 'poly', - ((2.415,0.755),(2.415,2.815),(2.565,2.815),(2.565,0.755),(2.415,0.755)), + ((2.015,0.78),(2.015,2.84),(2.165,2.84),(2.165,0.78),(2.015,0.78)), ) createRL( tech, net, 'poly', - ((2.415,5.385),(2.415,9.245),(2.565,9.245),(2.565,5.385),(2.415,5.385)), + ((2.445,0.78),(2.445,2.84),(2.595,2.84),(2.595,0.78),(2.445,0.78)), ) createRL( tech, net, 'poly', - ((2.415,2.815),(2.415,5.385),(2.565,5.385),(2.565,2.815),(2.415,2.815)), + ((2.015,5.36),(2.015,9.22),(2.165,9.22),(2.165,5.36),(2.015,5.36)), ) createRL( tech, net, 'poly', - ((1.985,2.815),(1.985,5.385),(2.135,5.385),(2.135,2.815),(1.985,2.815)), + ((2.015,2.84),(2.015,5.36),(2.165,5.36),(2.165,2.84),(2.015,2.84)), ) createRL( tech, net, 'poly', - ((1.125,5.385),(1.125,9.245),(1.275,9.245),(1.275,5.385),(1.125,5.385)), + ((1.155,5.36),(1.155,9.22),(1.305,9.22),(1.305,5.36),(1.155,5.36)), ) createRL( tech, net, 'poly', - ((1.555,5.385),(1.555,9.245),(1.705,9.245),(1.705,5.385),(1.555,5.385)), + ((1.585,5.36),(1.585,9.22),(1.735,9.22),(1.735,5.36),(1.585,5.36)), ) createRL( tech, net, 'poly', - ((1.125,0.755),(1.125,2.815),(1.275,2.815),(1.275,0.755),(1.125,0.755)), + ((2.445,5.36),(2.445,9.22),(2.595,9.22),(2.595,5.36),(2.445,5.36)), ) createRL( tech, net, 'poly', - ((0.305,3.935),(0.305,4.265),(2.565,4.265),(2.565,3.935),(0.305,3.935)), + ((2.445,2.84),(2.445,5.36),(2.595,5.36),(2.595,2.84),(2.445,2.84)), ) createRL( tech, net, 'poly', - ((1.555,0.755),(1.555,2.815),(1.705,2.815),(1.705,0.755),(1.555,0.755)), + ((1.155,0.78),(1.155,2.84),(1.305,2.84),(1.305,0.78),(1.155,0.78)), ) createRL( tech, net, 'poly', - ((1.985,0.755),(1.985,2.815),(2.135,2.815),(2.135,0.755),(1.985,0.755)), + ((0.305,3.935),(0.305,4.265),(2.595,4.265),(2.595,3.935),(0.305,3.935)), ) createRL( tech, net, 'poly', - ((1.985,5.385),(1.985,9.245),(2.135,9.245),(2.135,5.385),(1.985,5.385)), + ((1.585,0.78),(1.585,2.84),(1.735,2.84),(1.735,0.78),(1.585,0.78)), ) net = nets['*'] createRL( tech, net, 'nsdm', - ((0.19,1.25),(0.19,2.81),(0.69,2.81),(0.69,1.25),(0.19,1.25)), + ((0.19,9.31),(0.19,9.81),(3.81,9.81),(3.81,9.31),(0.19,9.31)), ) createRL( tech, net, 'nsdm', - ((0.19,9.26),(0.19,9.81),(3.81,9.81),(3.81,9.26),(0.19,9.26)), + ((0.68,0.785),(0.68,1.445),(1.18,1.445),(1.18,0.785),(0.68,0.785)), ) createRL( tech, net, 'nsdm', - ((0.655,0.76),(0.655,1.31),(1.155,1.31),(1.155,0.76),(0.655,0.76)), + ((1.195,0.785),(1.195,2.835),(1.695,2.835),(1.695,0.785),(1.195,0.785)), ) createRL( tech, net, 'nsdm', - ((1.165,0.76),(1.165,2.81),(1.665,2.81),(1.665,0.76),(1.165,0.76)), + ((0.205,0.785),(0.205,2.835),(1.105,2.835),(1.105,0.785),(0.205,0.785)), ) createRL( tech, net, 'nsdm', - ((0.205,0.76),(0.205,2.81),(1.105,2.81),(1.105,0.76),(0.205,0.76)), + ((0.78,0.785),(0.78,2.835),(1.68,2.835),(1.68,0.785),(0.78,0.785)), ) createRL( tech, net, 'nsdm', - ((1.61,0.76),(1.61,2.81),(2.51,2.81),(2.51,0.76),(1.61,0.76)), + ((1.085,0.84),(1.085,2.78),(1.375,2.78),(1.375,0.84),(1.085,0.84)), ) createRL( tech, net, 'nsdm', - ((0.655,0.76),(0.655,2.81),(1.155,2.81),(1.155,0.76),(0.655,0.76)), + ((1.21,0.785),(1.21,2.835),(2.11,2.835),(2.11,0.785),(1.21,0.785)), ) createRL( tech, net, 'nsdm', - ((0.75,0.76),(0.75,2.81),(1.65,2.81),(1.65,0.76),(0.75,0.76)), + ((1.515,0.84),(1.515,2.78),(1.805,2.78),(1.805,0.84),(1.515,0.84)), ) createRL( tech, net, 'nsdm', - ((1.485,0.815),(1.485,2.755),(1.775,2.755),(1.775,0.815),(1.485,0.815)), + ((0.51,0.84),(0.51,2.78),(0.8,2.78),(0.8,0.84),(0.51,0.84)), ) createRL( tech, net, 'nsdm', - ((0.51,0.815),(0.51,2.755),(0.8,2.755),(0.8,0.815),(0.51,0.815)), + ((0.68,0.785),(0.68,2.835),(1.18,2.835),(1.18,0.785),(0.68,0.785)), ) createRL( tech, net, 'nsdm', - ((1.055,0.815),(1.055,2.755),(1.345,2.755),(1.345,0.815),(1.055,0.815)), + ((2.055,1.255),(2.055,2.835),(2.555,2.835),(2.555,1.255),(2.055,1.255)), ) createRL( tech, net, 'nsdm', - ((2.025,1.25),(2.025,2.81),(2.525,2.81),(2.525,1.25),(2.025,1.25)), + ((1.195,1.255),(1.195,2.835),(1.695,2.835),(1.695,1.255),(1.195,1.255)), ) createRL( tech, net, 'nsdm', - ((1.165,1.25),(1.165,2.81),(1.665,2.81),(1.665,1.25),(1.165,1.25)), + ((2.055,0.785),(2.055,2.835),(2.555,2.835),(2.555,0.785),(2.055,0.785)), ) createRL( tech, net, 'nsdm', - ((1.18,0.76),(1.18,2.81),(2.08,2.81),(2.08,0.76),(1.18,0.76)), + ((2.375,0.84),(2.375,2.78),(2.665,2.78),(2.665,0.84),(2.375,0.84)), ) createRL( tech, net, 'nsdm', - ((2.025,0.76),(2.025,2.81),(2.525,2.81),(2.525,0.76),(2.025,0.76)), + ((2.07,0.785),(2.07,2.835),(2.97,2.835),(2.97,0.785),(2.07,0.785)), ) createRL( tech, net, 'nsdm', - ((2.345,0.815),(2.345,2.755),(2.635,2.755),(2.635,0.815),(2.345,0.815)), + ((2.485,0.785),(2.485,2.835),(2.985,2.835),(2.985,0.785),(2.485,0.785)), ) createRL( tech, net, 'nsdm', - ((2.04,0.76),(2.04,2.81),(2.94,2.81),(2.94,0.76),(2.04,0.76)), + ((1.64,0.785),(1.64,2.835),(2.54,2.835),(2.54,0.785),(1.64,0.785)), ) createRL( tech, net, 'nsdm', - ((2.455,0.76),(2.455,2.81),(2.955,2.81),(2.955,0.76),(2.455,0.76)), + ((1.625,0.785),(1.625,2.835),(2.125,2.835),(2.125,0.785),(1.625,0.785)), ) createRL( tech, net, 'nsdm', - ((1.915,0.815),(1.915,2.755),(2.205,2.755),(2.205,0.815),(1.915,0.815)), + ((1.945,0.84),(1.945,2.78),(2.235,2.78),(2.235,0.84),(1.945,0.84)), ) createRL( tech, net, 'nsdm', - ((1.595,0.76),(1.595,2.81),(2.095,2.81),(2.095,0.76),(1.595,0.76)), + ((0.19,1.255),(0.19,2.835),(0.69,2.835),(0.69,1.255),(0.19,1.255)), ) createRL( tech, net, 'psdm', - ((0.19,5.39),(0.19,8.75),(0.69,8.75),(0.69,5.39),(0.19,5.39)), + ((0.19,5.365),(0.19,8.745),(0.69,8.745),(0.69,5.365),(0.19,5.365)), ) createRL( tech, net, 'psdm', - ((1.18,5.39),(1.18,9.24),(2.08,9.24),(2.08,5.39),(1.18,5.39)), + ((0.68,8.555),(0.68,9.215),(1.18,9.215),(1.18,8.555),(0.68,8.555)), ) createRL( tech, net, 'psdm', - ((0.655,8.69),(0.655,9.24),(1.155,9.24),(1.155,8.69),(0.655,8.69)), + ((1.195,5.365),(1.195,8.745),(1.695,8.745),(1.695,5.365),(1.195,5.365)), ) createRL( tech, net, 'psdm', - ((1.165,5.39),(1.165,8.75),(1.665,8.75),(1.665,5.39),(1.165,5.39)), + ((1.945,5.42),(1.945,9.16),(2.235,9.16),(2.235,5.42),(1.945,5.42)), ) createRL( tech, net, 'psdm', - ((0.51,5.445),(0.51,9.185),(0.8,9.185),(0.8,5.445),(0.51,5.445)), + ((0.51,5.42),(0.51,9.16),(0.8,9.16),(0.8,5.42),(0.51,5.42)), ) createRL( tech, net, 'psdm', - ((1.055,5.445),(1.055,9.185),(1.345,9.185),(1.345,5.445),(1.055,5.445)), + ((1.085,5.42),(1.085,9.16),(1.375,9.16),(1.375,5.42),(1.085,5.42)), ) createRL( tech, net, 'psdm', - ((1.165,5.39),(1.165,9.24),(1.665,9.24),(1.665,5.39),(1.165,5.39)), + ((1.195,5.365),(1.195,9.215),(1.695,9.215),(1.695,5.365),(1.195,5.365)), ) createRL( tech, net, 'psdm', - ((1.485,5.445),(1.485,9.185),(1.775,9.185),(1.775,5.445),(1.485,5.445)), + ((1.515,5.42),(1.515,9.16),(1.805,9.16),(1.805,5.42),(1.515,5.42)), ) createRL( tech, net, 'psdm', - ((2.025,5.39),(2.025,8.75),(2.525,8.75),(2.525,5.39),(2.025,5.39)), + ((2.055,5.365),(2.055,8.745),(2.555,8.745),(2.555,5.365),(2.055,5.365)), ) createRL( tech, net, 'psdm', - ((1.61,5.39),(1.61,9.24),(2.51,9.24),(2.51,5.39),(1.61,5.39)), + ((1.64,5.365),(1.64,9.215),(2.54,9.215),(2.54,5.365),(1.64,5.365)), ) createRL( tech, net, 'psdm', - ((0.655,5.39),(0.655,9.24),(1.155,9.24),(1.155,5.39),(0.655,5.39)), + ((1.21,5.365),(1.21,9.215),(2.11,9.215),(2.11,5.365),(1.21,5.365)), ) createRL( tech, net, 'psdm', - ((0.75,5.39),(0.75,9.24),(1.65,9.24),(1.65,5.39),(0.75,5.39)), + ((0.68,5.365),(0.68,9.215),(1.18,9.215),(1.18,5.365),(0.68,5.365)), ) createRL( tech, net, 'psdm', - ((0.205,5.39),(0.205,9.24),(1.105,9.24),(1.105,5.39),(0.205,5.39)), + ((0.78,5.365),(0.78,9.215),(1.68,9.215),(1.68,5.365),(0.78,5.365)), ) createRL( tech, net, 'psdm', - ((0.19,0.19),(0.19,0.74),(3.81,0.74),(3.81,0.19),(0.19,0.19)), + ((0.205,5.365),(0.205,9.215),(1.105,9.215),(1.105,5.365),(0.205,5.365)), ) createRL( tech, net, 'psdm', - ((2.025,5.39),(2.025,9.24),(2.525,9.24),(2.525,5.39),(2.025,5.39)), + ((0.19,0.19),(0.19,0.69),(3.81,0.69),(3.81,0.19),(0.19,0.19)), ) createRL( tech, net, 'psdm', - ((2.345,5.445),(2.345,9.185),(2.635,9.185),(2.635,5.445),(2.345,5.445)), + ((2.07,5.365),(2.07,9.215),(2.97,9.215),(2.97,5.365),(2.07,5.365)), ) createRL( tech, net, 'psdm', - ((2.455,5.39),(2.455,9.24),(2.955,9.24),(2.955,5.39),(2.455,5.39)), + ((2.055,5.365),(2.055,9.215),(2.555,9.215),(2.555,5.365),(2.055,5.365)), ) createRL( tech, net, 'psdm', - ((2.04,5.39),(2.04,9.24),(2.94,9.24),(2.94,5.39),(2.04,5.39)), + ((2.375,5.42),(2.375,9.16),(2.665,9.16),(2.665,5.42),(2.375,5.42)), ) createRL( tech, net, 'psdm', - ((1.595,5.39),(1.595,9.24),(2.095,9.24),(2.095,5.39),(1.595,5.39)), + ((2.485,5.365),(2.485,9.215),(2.985,9.215),(2.985,5.365),(2.485,5.365)), ) createRL( tech, net, 'psdm', - ((1.915,5.445),(1.915,9.185),(2.205,9.185),(2.205,5.445),(1.915,5.445)), + ((1.625,5.365),(1.625,9.215),(2.125,9.215),(2.125,5.365),(1.625,5.365)), ) net = nets['vdd'] createRL( tech, net, 'nwm', - ((0.135,5.335),(0.135,8.805),(0.745,8.805),(0.745,5.335),(0.135,5.335)), + ((0.135,5.31),(0.135,8.8),(0.745,8.8),(0.745,5.31),(0.135,5.31)), ) createRL( tech, net, 'nwm', - ((1.54,5.335),(1.54,9.295),(2.15,9.295),(2.15,5.335),(1.54,5.335)), + ((1.155,5.31),(1.155,9.27),(2.165,9.27),(2.165,5.31),(1.155,5.31)), ) createRL( tech, net, 'nwm', - ((1.125,5.335),(1.125,9.295),(2.135,9.295),(2.135,5.335),(1.125,5.335)), + ((2.0,5.31),(2.0,8.8),(2.61,8.8),(2.61,5.31),(2.0,5.31)), ) createRL( tech, net, 'nwm', - ((0.695,5.335),(0.695,9.295),(1.705,9.295),(1.705,5.335),(0.695,5.335)), + ((1.14,5.31),(1.14,8.8),(1.75,8.8),(1.75,5.31),(1.14,5.31)), ) createRL( tech, net, 'nwm', - ((1.985,5.335),(1.985,9.295),(2.995,9.295),(2.995,5.335),(1.985,5.335)), + ((-0.18,4.8),(-0.18,10.18),(4.18,10.18),(4.18,4.8),(-0.18,4.8)), ) createRL( tech, net, 'nwm', - ((1.97,5.335),(1.97,8.805),(2.58,8.805),(2.58,5.335),(1.97,5.335)), + ((0.725,5.31),(0.725,9.27),(1.735,9.27),(1.735,5.31),(0.725,5.31)), ) createRL( tech, net, 'nwm', - ((1.11,5.335),(1.11,8.805),(1.72,8.805),(1.72,5.335),(1.11,5.335)), + ((2.0,5.31),(2.0,9.27),(2.61,9.27),(2.61,5.31),(2.0,5.31)), ) createRL( tech, net, 'nwm', - ((-0.18,4.8),(-0.18,10.18),(4.18,10.18),(4.18,4.8),(-0.18,4.8)), + ((0.135,9.255),(0.135,9.865),(3.865,9.865),(3.865,9.255),(0.135,9.255)), ) createRL( tech, net, 'nwm', - ((0.135,9.205),(0.135,9.865),(3.865,9.865),(3.865,9.205),(0.135,9.205)), + ((1.14,5.31),(1.14,9.27),(1.75,9.27),(1.75,5.31),(1.14,5.31)), ) createRL( tech, net, 'nwm', - ((1.11,5.335),(1.11,9.295),(1.72,9.295),(1.72,5.335),(1.11,5.335)), + ((1.57,5.31),(1.57,9.27),(2.18,9.27),(2.18,5.31),(1.57,5.31)), ) createRL( tech, net, 'nwm', - ((1.97,5.335),(1.97,9.295),(2.58,9.295),(2.58,5.335),(1.97,5.335)), + ((2.015,5.31),(2.015,9.27),(3.025,9.27),(3.025,5.31),(2.015,5.31)), ) createRL( tech, net, 'nwm', - ((2.4,5.335),(2.4,9.295),(3.01,9.295),(3.01,5.335),(2.4,5.335)), + ((2.43,5.31),(2.43,9.27),(3.04,9.27),(3.04,5.31),(2.43,5.31)), ) createRL( tech, net, 'nwm', - ((0.6,5.335),(0.6,9.295),(1.21,9.295),(1.21,5.335),(0.6,5.335)), + ((0.625,5.31),(0.625,9.27),(1.235,9.27),(1.235,5.31),(0.625,5.31)), ) createRL( tech, net, 'nwm', - ((0.15,5.335),(0.15,9.295),(1.16,9.295),(1.16,5.335),(0.15,5.335)), + ((0.15,5.31),(0.15,9.27),(1.16,9.27),(1.16,5.31),(0.15,5.31)), ) createRL( tech, net, 'nwm', - ((1.555,5.335),(1.555,9.295),(2.565,9.295),(2.565,5.335),(1.555,5.335)), + ((1.585,5.31),(1.585,9.27),(2.595,9.27),(2.595,5.31),(1.585,5.31)), ) createRL( tech, net, 'difftap', - ((0.78,8.815),(0.78,9.115),(1.03,9.115),(1.03,8.815),(0.78,8.815)), + ((0.805,8.68),(0.805,9.09),(1.055,9.09),(1.055,8.68),(0.805,8.68)), ) createRL( tech, net, 'difftap', - ((0.73,5.515),(0.73,9.115),(0.98,9.115),(0.98,5.515),(0.73,5.515)), + ((0.73,5.49),(0.73,9.09),(0.98,9.09),(0.98,5.49),(0.73,5.49)), ) createRL( tech, net, 'difftap', - ((0.58,5.515),(0.58,9.115),(0.73,9.115),(0.73,5.515),(0.58,5.515)), + ((0.58,5.49),(0.58,9.09),(0.73,9.09),(0.73,5.49),(0.58,5.49)), ) createRL( tech, net, 'difftap', - ((2.415,5.515),(2.415,9.115),(2.565,9.115),(2.565,5.515),(2.415,5.515)), + ((2.015,5.49),(2.015,9.09),(2.165,9.09),(2.165,5.49),(2.015,5.49)), ) createRL( tech, net, 'difftap', - ((2.565,5.515),(2.565,9.115),(2.815,9.115),(2.815,5.515),(2.565,5.515)), + ((2.445,5.49),(2.445,9.09),(2.595,9.09),(2.595,5.49),(2.445,5.49)), ) createRL( tech, net, 'difftap', - ((1.125,5.515),(1.125,9.115),(1.275,9.115),(1.275,5.515),(1.125,5.515)), + ((1.155,5.49),(1.155,9.09),(1.305,9.09),(1.305,5.49),(1.155,5.49)), ) createRL( tech, net, 'difftap', - ((1.705,5.515),(1.705,9.115),(1.955,9.115),(1.955,5.515),(1.705,5.515)), + ((1.735,5.49),(1.735,9.09),(1.985,9.09),(1.985,5.49),(1.735,5.49)), ) createRL( tech, net, 'difftap', - ((1.555,5.515),(1.555,9.115),(1.705,9.115),(1.705,5.515),(1.555,5.515)), + ((1.585,5.49),(1.585,9.09),(1.735,9.09),(1.735,5.49),(1.585,5.49)), ) createRL( tech, net, 'difftap', - ((1.72,5.515),(1.72,9.115),(1.97,9.115),(1.97,5.515),(1.72,5.515)), + ((1.75,5.49),(1.75,9.09),(2.0,9.09),(2.0,5.49),(1.75,5.49)), ) createRL( tech, net, 'difftap', - ((1.735,5.515),(1.735,9.115),(1.985,9.115),(1.985,5.515),(1.735,5.515)), + ((2.595,5.49),(2.595,9.09),(2.845,9.09),(2.845,5.49),(2.595,5.49)), ) createRL( tech, net, 'difftap', - ((2.58,5.515),(2.58,9.115),(2.83,9.115),(2.83,5.515),(2.58,5.515)), + ((2.61,5.49),(2.61,9.09),(2.86,9.09),(2.86,5.49),(2.61,5.49)), ) createRL( tech, net, 'difftap', - ((1.985,5.515),(1.985,9.115),(2.135,9.115),(2.135,5.515),(1.985,5.515)), + ((1.765,5.49),(1.765,9.09),(2.015,9.09),(2.015,5.49),(1.765,5.49)), ) createRL( tech, net, 'difftap', - ((0.78,5.515),(0.78,9.115),(1.03,9.115),(1.03,5.515),(0.78,5.515)), + ((0.805,5.49),(0.805,9.09),(1.055,9.09),(1.055,5.49),(0.805,5.49)), ) createRL( tech, net, 'difftap', - ((0.315,9.385),(0.315,9.685),(3.685,9.685),(3.685,9.385),(0.315,9.385)), + ((0.315,9.435),(0.315,9.685),(3.685,9.685),(3.685,9.435),(0.315,9.435)), ) createRL( tech, net, 'difftap', - ((0.875,5.515),(0.875,9.115),(1.125,9.115),(1.125,5.515),(0.875,5.515)), + ((0.905,5.49),(0.905,9.09),(1.155,9.09),(1.155,5.49),(0.905,5.49)), ) createRL( tech, net, 'licon', - ((1.76,5.7),(1.76,5.87),(1.93,5.87),(1.93,5.7),(1.76,5.7)), + ((1.79,5.675),(1.79,5.845),(1.96,5.845),(1.96,5.675),(1.79,5.675)), ) createRL( tech, net, 'licon', - ((1.76,6.04),(1.76,6.21),(1.93,6.21),(1.93,6.04),(1.76,6.04)), + ((1.79,6.015),(1.79,6.185),(1.96,6.185),(1.96,6.015),(1.79,6.015)), ) createRL( tech, net, 'licon', - ((1.76,6.38),(1.76,6.55),(1.93,6.55),(1.93,6.38),(1.76,6.38)), + ((1.79,6.355),(1.79,6.525),(1.96,6.525),(1.96,6.355),(1.79,6.355)), ) createRL( tech, net, 'licon', - ((1.76,6.72),(1.76,6.89),(1.93,6.89),(1.93,6.72),(1.76,6.72)), + ((1.79,6.695),(1.79,6.865),(1.96,6.865),(1.96,6.695),(1.79,6.695)), ) createRL( tech, net, 'licon', - ((1.76,7.06),(1.76,7.23),(1.93,7.23),(1.93,7.06),(1.76,7.06)), + ((1.79,7.035),(1.79,7.205),(1.96,7.205),(1.96,7.035),(1.79,7.035)), ) createRL( tech, net, 'licon', - ((1.76,7.4),(1.76,7.57),(1.93,7.57),(1.93,7.4),(1.76,7.4)), + ((1.79,7.375),(1.79,7.545),(1.96,7.545),(1.96,7.375),(1.79,7.375)), ) createRL( tech, net, 'licon', - ((1.76,7.74),(1.76,7.91),(1.93,7.91),(1.93,7.74),(1.76,7.74)), + ((1.79,7.715),(1.79,7.885),(1.96,7.885),(1.96,7.715),(1.79,7.715)), ) createRL( tech, net, 'licon', - ((1.76,8.08),(1.76,8.25),(1.93,8.25),(1.93,8.08),(1.76,8.08)), + ((1.79,8.055),(1.79,8.225),(1.96,8.225),(1.96,8.055),(1.79,8.055)), ) createRL( tech, net, 'licon', - ((1.76,8.42),(1.76,8.59),(1.93,8.59),(1.93,8.42),(1.76,8.42)), + ((1.79,8.395),(1.79,8.565),(1.96,8.565),(1.96,8.395),(1.79,8.395)), ) createRL( tech, net, 'licon', - ((1.76,8.76),(1.76,8.93),(1.93,8.93),(1.93,8.76),(1.76,8.76)), + ((1.79,8.735),(1.79,8.905),(1.96,8.905),(1.96,8.735),(1.79,8.735)), ) createRL( tech, net, 'licon', - ((0.385,9.45),(0.385,9.62),(0.555,9.62),(0.555,9.45),(0.385,9.45)), + ((2.65,5.675),(2.65,5.845),(2.82,5.845),(2.82,5.675),(2.65,5.675)), ) createRL( tech, net, 'licon', - ((0.725,9.45),(0.725,9.62),(0.895,9.62),(0.895,9.45),(0.725,9.45)), + ((2.65,6.015),(2.65,6.185),(2.82,6.185),(2.82,6.015),(2.65,6.015)), ) createRL( tech, net, 'licon', - ((1.065,9.45),(1.065,9.62),(1.235,9.62),(1.235,9.45),(1.065,9.45)), + ((2.65,6.355),(2.65,6.525),(2.82,6.525),(2.82,6.355),(2.65,6.355)), ) createRL( tech, net, 'licon', - ((1.405,9.45),(1.405,9.62),(1.575,9.62),(1.575,9.45),(1.405,9.45)), + ((2.65,6.695),(2.65,6.865),(2.82,6.865),(2.82,6.695),(2.65,6.695)), ) createRL( tech, net, 'licon', - ((1.745,9.45),(1.745,9.62),(1.915,9.62),(1.915,9.45),(1.745,9.45)), + ((2.65,7.035),(2.65,7.205),(2.82,7.205),(2.82,7.035),(2.65,7.035)), ) createRL( tech, net, 'licon', - ((2.085,9.45),(2.085,9.62),(2.255,9.62),(2.255,9.45),(2.085,9.45)), + ((2.65,7.375),(2.65,7.545),(2.82,7.545),(2.82,7.375),(2.65,7.375)), ) createRL( tech, net, 'licon', - ((2.425,9.45),(2.425,9.62),(2.595,9.62),(2.595,9.45),(2.425,9.45)), + ((2.65,7.715),(2.65,7.885),(2.82,7.885),(2.82,7.715),(2.65,7.715)), ) createRL( tech, net, 'licon', - ((2.765,9.45),(2.765,9.62),(2.935,9.62),(2.935,9.45),(2.765,9.45)), + ((2.65,8.055),(2.65,8.225),(2.82,8.225),(2.82,8.055),(2.65,8.055)), ) createRL( tech, net, 'licon', - ((3.105,9.45),(3.105,9.62),(3.275,9.62),(3.275,9.45),(3.105,9.45)), + ((2.65,8.395),(2.65,8.565),(2.82,8.565),(2.82,8.395),(2.65,8.395)), ) createRL( tech, net, 'licon', - ((3.445,9.45),(3.445,9.62),(3.615,9.62),(3.615,9.45),(3.445,9.45)), + ((2.65,8.735),(2.65,8.905),(2.82,8.905),(2.82,8.735),(2.65,8.735)), ) createRL( tech, net, 'licon', - ((0.82,8.88),(0.82,9.05),(0.99,9.05),(0.99,8.88),(0.82,8.88)), + ((0.555,9.475),(0.555,9.645),(0.725,9.645),(0.725,9.475),(0.555,9.475)), ) createRL( tech, net, 'licon', - ((2.62,5.7),(2.62,5.87),(2.79,5.87),(2.79,5.7),(2.62,5.7)), + ((0.895,9.475),(0.895,9.645),(1.065,9.645),(1.065,9.475),(0.895,9.475)), ) createRL( tech, net, 'licon', - ((2.62,6.04),(2.62,6.21),(2.79,6.21),(2.79,6.04),(2.62,6.04)), + ((1.235,9.475),(1.235,9.645),(1.405,9.645),(1.405,9.475),(1.235,9.475)), ) createRL( tech, net, 'licon', - ((2.62,6.38),(2.62,6.55),(2.79,6.55),(2.79,6.38),(2.62,6.38)), + ((1.575,9.475),(1.575,9.645),(1.745,9.645),(1.745,9.475),(1.575,9.475)), ) createRL( tech, net, 'licon', - ((2.62,6.72),(2.62,6.89),(2.79,6.89),(2.79,6.72),(2.62,6.72)), + ((1.915,9.475),(1.915,9.645),(2.085,9.645),(2.085,9.475),(1.915,9.475)), ) createRL( tech, net, 'licon', - ((2.62,7.06),(2.62,7.23),(2.79,7.23),(2.79,7.06),(2.62,7.06)), + ((2.255,9.475),(2.255,9.645),(2.425,9.645),(2.425,9.475),(2.255,9.475)), ) createRL( tech, net, 'licon', - ((2.62,7.4),(2.62,7.57),(2.79,7.57),(2.79,7.4),(2.62,7.4)), + ((2.595,9.475),(2.595,9.645),(2.765,9.645),(2.765,9.475),(2.595,9.475)), ) createRL( tech, net, 'licon', - ((2.62,7.74),(2.62,7.91),(2.79,7.91),(2.79,7.74),(2.62,7.74)), + ((2.935,9.475),(2.935,9.645),(3.105,9.645),(3.105,9.475),(2.935,9.475)), ) createRL( tech, net, 'licon', - ((2.62,8.08),(2.62,8.25),(2.79,8.25),(2.79,8.08),(2.62,8.08)), + ((3.275,9.475),(3.275,9.645),(3.445,9.645),(3.445,9.475),(3.275,9.475)), ) createRL( tech, net, 'licon', - ((2.62,8.42),(2.62,8.59),(2.79,8.59),(2.79,8.42),(2.62,8.42)), - ) - createRL( - tech, net, 'licon', - ((2.62,8.76),(2.62,8.93),(2.79,8.93),(2.79,8.76),(2.62,8.76)), + ((0.845,8.8),(0.845,8.97),(1.015,8.97),(1.015,8.8),(0.845,8.8)), ) createRL( tech, net, 'li', - ((0.82,8.8),(0.82,9.13),(0.99,9.13),(0.99,8.8),(0.82,8.8)), + ((2.65,5.59),(2.65,8.99),(2.82,8.99),(2.82,5.59),(2.65,5.59)), ) createRL( tech, net, 'li', - ((0.0,8.8),(0.0,10.0),(4.0,10.0),(4.0,8.8),(0.0,8.8)), + ((1.79,5.59),(1.79,8.99),(1.96,8.99),(1.96,5.59),(1.79,5.59)), ) createRL( tech, net, 'li', - ((2.62,5.615),(2.62,9.015),(2.79,9.015),(2.79,5.615),(2.62,5.615)), + ((0.0,8.8),(0.0,10.0),(4.0,10.0),(4.0,8.8),(0.0,8.8)), ) createRL( tech, net, 'li', - ((0.38,9.37),(0.38,9.7),(3.62,9.7),(3.62,9.37),(0.38,9.37)), + ((0.555,9.395),(0.555,9.725),(3.445,9.725),(3.445,9.395),(0.555,9.395)), ) createRL( tech, net, 'li', - ((1.76,5.615),(1.76,9.015),(1.93,9.015),(1.93,5.615),(1.76,5.615)), + ((0.765,8.8),(0.765,8.97),(1.095,8.97),(1.095,8.8),(0.765,8.8)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -26033,167 +25749,163 @@ def _load(): net = nets['vss'] createRL( tech, net, 'difftap', - ((0.73,0.885),(0.73,2.685),(0.98,2.685),(0.98,0.885),(0.73,0.885)), + ((0.73,0.91),(0.73,2.71),(0.98,2.71),(0.98,0.91),(0.73,0.91)), ) createRL( tech, net, 'difftap', - ((0.58,0.885),(0.58,2.685),(0.73,2.685),(0.73,0.885),(0.58,0.885)), + ((0.58,0.91),(0.58,2.71),(0.73,2.71),(0.73,0.91),(0.58,0.91)), ) createRL( tech, net, 'difftap', - ((1.735,0.885),(1.735,2.685),(1.985,2.685),(1.985,0.885),(1.735,0.885)), + ((1.75,0.91),(1.75,2.71),(2.0,2.71),(2.0,0.91),(1.75,0.91)), ) createRL( tech, net, 'difftap', - ((0.315,0.315),(0.315,0.615),(3.685,0.615),(3.685,0.315),(0.315,0.315)), + ((0.315,0.315),(0.315,0.565),(3.685,0.565),(3.685,0.315),(0.315,0.315)), ) createRL( tech, net, 'difftap', - ((0.875,0.885),(0.875,2.685),(1.125,2.685),(1.125,0.885),(0.875,0.885)), + ((0.905,0.91),(0.905,2.71),(1.155,2.71),(1.155,0.91),(0.905,0.91)), ) createRL( tech, net, 'difftap', - ((1.555,0.885),(1.555,2.685),(1.705,2.685),(1.705,0.885),(1.555,0.885)), + ((2.015,0.91),(2.015,2.71),(2.165,2.71),(2.165,0.91),(2.015,0.91)), ) createRL( tech, net, 'difftap', - ((2.415,0.885),(2.415,2.685),(2.565,2.685),(2.565,0.885),(2.415,0.885)), + ((2.445,0.91),(2.445,2.71),(2.595,2.71),(2.595,0.91),(2.445,0.91)), ) createRL( tech, net, 'difftap', - ((2.565,0.885),(2.565,2.685),(2.815,2.685),(2.815,0.885),(2.565,0.885)), + ((2.595,0.91),(2.595,2.71),(2.845,2.71),(2.845,0.91),(2.595,0.91)), ) createRL( tech, net, 'difftap', - ((2.58,0.885),(2.58,2.685),(2.83,2.685),(2.83,0.885),(2.58,0.885)), + ((2.61,0.91),(2.61,2.71),(2.86,2.71),(2.86,0.91),(2.61,0.91)), ) createRL( tech, net, 'difftap', - ((2.58,0.885),(2.58,2.685),(2.83,2.685),(2.83,0.885),(2.58,0.885)), + ((0.805,0.91),(0.805,2.71),(1.055,2.71),(1.055,0.91),(0.805,0.91)), ) createRL( tech, net, 'difftap', - ((0.78,0.885),(0.78,2.685),(1.03,2.685),(1.03,0.885),(0.78,0.885)), + ((1.155,0.91),(1.155,2.71),(1.305,2.71),(1.305,0.91),(1.155,0.91)), ) createRL( tech, net, 'difftap', - ((1.985,0.885),(1.985,2.685),(2.135,2.685),(2.135,0.885),(1.985,0.885)), + ((2.61,0.91),(2.61,2.71),(2.86,2.71),(2.86,0.91),(2.61,0.91)), ) createRL( tech, net, 'difftap', - ((0.78,0.885),(0.78,1.185),(1.03,1.185),(1.03,0.885),(0.78,0.885)), + ((1.765,0.91),(1.765,2.71),(2.015,2.71),(2.015,0.91),(1.765,0.91)), ) createRL( tech, net, 'difftap', - ((1.72,0.885),(1.72,2.685),(1.97,2.685),(1.97,0.885),(1.72,0.885)), + ((0.805,0.91),(0.805,1.32),(1.055,1.32),(1.055,0.91),(0.805,0.91)), ) createRL( tech, net, 'difftap', - ((1.72,0.885),(1.72,2.685),(1.97,2.685),(1.97,0.885),(1.72,0.885)), + ((1.75,0.91),(1.75,2.71),(2.0,2.71),(2.0,0.91),(1.75,0.91)), ) createRL( tech, net, 'difftap', - ((1.705,0.885),(1.705,2.685),(1.955,2.685),(1.955,0.885),(1.705,0.885)), + ((1.585,0.91),(1.585,2.71),(1.735,2.71),(1.735,0.91),(1.585,0.91)), ) createRL( tech, net, 'difftap', - ((1.125,0.885),(1.125,2.685),(1.275,2.685),(1.275,0.885),(1.125,0.885)), - ) - createRL( - tech, net, 'licon', - ((1.76,1.02),(1.76,1.19),(1.93,1.19),(1.93,1.02),(1.76,1.02)), + ((1.735,0.91),(1.735,2.71),(1.985,2.71),(1.985,0.91),(1.735,0.91)), ) createRL( tech, net, 'licon', - ((1.76,1.36),(1.76,1.53),(1.93,1.53),(1.93,1.36),(1.76,1.36)), + ((2.65,1.045),(2.65,1.215),(2.82,1.215),(2.82,1.045),(2.65,1.045)), ) createRL( tech, net, 'licon', - ((1.76,1.7),(1.76,1.87),(1.93,1.87),(1.93,1.7),(1.76,1.7)), + ((2.65,1.385),(2.65,1.555),(2.82,1.555),(2.82,1.385),(2.65,1.385)), ) createRL( tech, net, 'licon', - ((1.76,2.04),(1.76,2.21),(1.93,2.21),(1.93,2.04),(1.76,2.04)), + ((2.65,1.725),(2.65,1.895),(2.82,1.895),(2.82,1.725),(2.65,1.725)), ) createRL( tech, net, 'licon', - ((1.76,2.38),(1.76,2.55),(1.93,2.55),(1.93,2.38),(1.76,2.38)), + ((2.65,2.065),(2.65,2.235),(2.82,2.235),(2.82,2.065),(2.65,2.065)), ) createRL( tech, net, 'licon', - ((0.82,0.95),(0.82,1.12),(0.99,1.12),(0.99,0.95),(0.82,0.95)), + ((2.65,2.405),(2.65,2.575),(2.82,2.575),(2.82,2.405),(2.65,2.405)), ) createRL( tech, net, 'licon', - ((0.385,0.38),(0.385,0.55),(0.555,0.55),(0.555,0.38),(0.385,0.38)), + ((0.845,1.03),(0.845,1.2),(1.015,1.2),(1.015,1.03),(0.845,1.03)), ) createRL( tech, net, 'licon', - ((0.725,0.38),(0.725,0.55),(0.895,0.55),(0.895,0.38),(0.725,0.38)), + ((1.79,1.045),(1.79,1.215),(1.96,1.215),(1.96,1.045),(1.79,1.045)), ) createRL( tech, net, 'licon', - ((1.065,0.38),(1.065,0.55),(1.235,0.55),(1.235,0.38),(1.065,0.38)), + ((1.79,1.385),(1.79,1.555),(1.96,1.555),(1.96,1.385),(1.79,1.385)), ) createRL( tech, net, 'licon', - ((1.405,0.38),(1.405,0.55),(1.575,0.55),(1.575,0.38),(1.405,0.38)), + ((1.79,1.725),(1.79,1.895),(1.96,1.895),(1.96,1.725),(1.79,1.725)), ) createRL( tech, net, 'licon', - ((1.745,0.38),(1.745,0.55),(1.915,0.55),(1.915,0.38),(1.745,0.38)), + ((1.79,2.065),(1.79,2.235),(1.96,2.235),(1.96,2.065),(1.79,2.065)), ) createRL( tech, net, 'licon', - ((2.085,0.38),(2.085,0.55),(2.255,0.55),(2.255,0.38),(2.085,0.38)), + ((1.79,2.405),(1.79,2.575),(1.96,2.575),(1.96,2.405),(1.79,2.405)), ) createRL( tech, net, 'licon', - ((2.425,0.38),(2.425,0.55),(2.595,0.55),(2.595,0.38),(2.425,0.38)), + ((0.555,0.355),(0.555,0.525),(0.725,0.525),(0.725,0.355),(0.555,0.355)), ) createRL( tech, net, 'licon', - ((2.765,0.38),(2.765,0.55),(2.935,0.55),(2.935,0.38),(2.765,0.38)), + ((0.895,0.355),(0.895,0.525),(1.065,0.525),(1.065,0.355),(0.895,0.355)), ) createRL( tech, net, 'licon', - ((3.105,0.38),(3.105,0.55),(3.275,0.55),(3.275,0.38),(3.105,0.38)), + ((1.235,0.355),(1.235,0.525),(1.405,0.525),(1.405,0.355),(1.235,0.355)), ) createRL( tech, net, 'licon', - ((3.445,0.38),(3.445,0.55),(3.615,0.55),(3.615,0.38),(3.445,0.38)), + ((1.575,0.355),(1.575,0.525),(1.745,0.525),(1.745,0.355),(1.575,0.355)), ) createRL( tech, net, 'licon', - ((2.62,1.02),(2.62,1.19),(2.79,1.19),(2.79,1.02),(2.62,1.02)), + ((1.915,0.355),(1.915,0.525),(2.085,0.525),(2.085,0.355),(1.915,0.355)), ) createRL( tech, net, 'licon', - ((2.62,1.36),(2.62,1.53),(2.79,1.53),(2.79,1.36),(2.62,1.36)), + ((2.255,0.355),(2.255,0.525),(2.425,0.525),(2.425,0.355),(2.255,0.355)), ) createRL( tech, net, 'licon', - ((2.62,1.7),(2.62,1.87),(2.79,1.87),(2.79,1.7),(2.62,1.7)), + ((2.595,0.355),(2.595,0.525),(2.765,0.525),(2.765,0.355),(2.595,0.355)), ) createRL( tech, net, 'licon', - ((2.62,2.04),(2.62,2.21),(2.79,2.21),(2.79,2.04),(2.62,2.04)), + ((2.935,0.355),(2.935,0.525),(3.105,0.525),(3.105,0.355),(2.935,0.355)), ) createRL( tech, net, 'licon', - ((2.62,2.38),(2.62,2.55),(2.79,2.55),(2.79,2.38),(2.62,2.38)), + ((3.275,0.355),(3.275,0.525),(3.445,0.525),(3.445,0.355),(3.275,0.355)), ) createRL( tech, net, 'li', - ((0.38,0.3),(0.38,0.63),(3.62,0.63),(3.62,0.3),(0.38,0.3)), + ((0.555,0.275),(0.555,0.605),(3.445,0.605),(3.445,0.275),(0.555,0.275)), ) createRL( tech, net, 'li', - ((0.82,0.87),(0.82,1.2),(0.99,1.2),(0.99,0.87),(0.82,0.87)), + ((0.765,1.03),(0.765,1.2),(1.095,1.2),(1.095,1.03),(0.765,1.03)), ) createRL( tech, net, 'li', - ((2.62,0.94),(2.62,2.63),(2.79,2.63),(2.79,0.94),(2.62,0.94)), + ((2.65,0.965),(2.65,2.655),(2.82,2.655),(2.82,0.965),(2.65,0.965)), ) createRL( tech, net, 'li', @@ -26201,7 +25913,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.76,0.94),(1.76,2.63),(1.93,2.63),(1.93,0.94),(1.76,0.94)), + ((1.79,0.965),(1.79,2.655),(1.96,2.655),(1.96,0.965),(1.79,0.965)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -26216,39 +25928,47 @@ def _load(): net = nets['i'] createRL( tech, net, 'poly', - ((0.58,0.755),(0.58,2.815),(0.73,2.815),(0.73,0.755),(0.58,0.755)), + ((0.58,0.78),(0.58,2.84),(0.73,2.84),(0.73,0.78),(0.58,0.78)), + ) + createRL( + tech, net, 'poly', + ((0.58,5.36),(0.58,9.22),(0.73,9.22),(0.73,5.36),(0.58,5.36)), + ) + createRL( + tech, net, 'poly', + ((0.58,5.035),(0.58,9.22),(0.73,9.22),(0.73,5.035),(0.58,5.035)), ) createRL( tech, net, 'poly', - ((0.58,5.385),(0.58,9.245),(0.73,9.245),(0.73,5.385),(0.58,5.385)), + ((0.615,2.895),(0.615,3.165),(0.945,3.165),(0.945,2.895),(0.615,2.895)), ) createRL( tech, net, 'poly', - ((0.58,5.135),(0.58,5.465),(0.915,5.465),(0.915,5.135),(0.58,5.135)), + ((0.58,2.895),(0.58,3.165),(0.945,3.165),(0.945,2.895),(0.58,2.895)), ) createRL( tech, net, 'poly', - ((0.645,2.735),(0.645,3.065),(0.915,3.065),(0.915,2.735),(0.645,2.735)), + ((0.58,0.78),(0.58,3.165),(0.73,3.165),(0.73,0.78),(0.58,0.78)), ) createRL( tech, net, 'poly', - ((0.58,2.735),(0.58,3.065),(0.915,3.065),(0.915,2.735),(0.58,2.735)), + ((0.58,5.035),(0.58,5.305),(0.945,5.305),(0.945,5.035),(0.58,5.035)), ) createRL( tech, net, 'poly', - ((0.645,5.135),(0.645,5.465),(0.915,5.465),(0.915,5.135),(0.645,5.135)), + ((0.615,5.035),(0.615,5.305),(0.945,5.305),(0.945,5.035),(0.615,5.035)), ) createRL( tech, net, 'licon', - ((0.695,2.815),(0.695,2.985),(0.865,2.985),(0.865,2.815),(0.695,2.815)), + ((0.695,2.945),(0.695,3.115),(0.865,3.115),(0.865,2.945),(0.695,2.945)), ) createRL( tech, net, 'licon', - ((0.695,5.215),(0.695,5.385),(0.865,5.385),(0.865,5.215),(0.695,5.215)), + ((0.695,5.085),(0.695,5.255),(0.865,5.255),(0.865,5.085),(0.695,5.085)), ) createRL( tech, net, 'li', - ((0.695,2.735),(0.695,3.065),(0.865,3.065),(0.865,2.735),(0.695,2.735)), + ((0.695,2.865),(0.695,3.195),(0.865,3.195),(0.865,2.865),(0.695,2.865)), ) createRL( tech, net, 'li', @@ -26256,7 +25976,7 @@ def _load(): ) createRL( tech, net, 'li', - ((0.695,5.135),(0.695,5.465),(0.865,5.465),(0.865,5.135),(0.695,5.135)), + ((0.695,5.005),(0.695,5.335),(0.865,5.335),(0.865,5.005),(0.695,5.005)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -26271,204 +25991,204 @@ def _load(): net = nets['nwm'] createRL( tech, net, 'nwm', - ((0.6,8.635),(0.6,9.295),(1.21,9.295),(1.21,8.635),(0.6,8.635)), + ((0.625,8.5),(0.625,9.27),(1.235,9.27),(1.235,8.5),(0.625,8.5)), ) net = nets['q'] createRL( tech, net, 'difftap', - ((2.165,5.515),(2.165,9.115),(2.415,9.115),(2.415,5.515),(2.165,5.515)), + ((2.195,5.49),(2.195,9.09),(2.445,9.09),(2.445,5.49),(2.195,5.49)), ) createRL( tech, net, 'difftap', - ((2.165,0.885),(2.165,2.685),(2.415,2.685),(2.415,0.885),(2.165,0.885)), + ((2.195,0.91),(2.195,2.71),(2.445,2.71),(2.445,0.91),(2.195,0.91)), ) createRL( tech, net, 'difftap', - ((1.305,0.885),(1.305,2.685),(1.555,2.685),(1.555,0.885),(1.305,0.885)), + ((1.335,0.91),(1.335,2.71),(1.585,2.71),(1.585,0.91),(1.335,0.91)), ) createRL( tech, net, 'difftap', - ((2.15,5.515),(2.15,8.625),(2.4,8.625),(2.4,5.515),(2.15,5.515)), + ((2.18,5.49),(2.18,8.62),(2.43,8.62),(2.43,5.49),(2.18,5.49)), ) createRL( tech, net, 'difftap', - ((1.29,5.515),(1.29,8.625),(1.54,8.625),(1.54,5.515),(1.29,5.515)), + ((1.32,5.49),(1.32,8.62),(1.57,8.62),(1.57,5.49),(1.32,5.49)), ) createRL( tech, net, 'difftap', - ((2.15,1.375),(2.15,2.685),(2.4,2.685),(2.4,1.375),(2.15,1.375)), + ((2.18,1.38),(2.18,2.71),(2.43,2.71),(2.43,1.38),(2.18,1.38)), ) createRL( tech, net, 'difftap', - ((2.135,5.515),(2.135,9.115),(2.385,9.115),(2.385,5.515),(2.135,5.515)), + ((2.165,5.49),(2.165,9.09),(2.415,9.09),(2.415,5.49),(2.165,5.49)), ) createRL( tech, net, 'difftap', - ((1.275,5.515),(1.275,9.115),(1.525,9.115),(1.525,5.515),(1.275,5.515)), + ((1.305,5.49),(1.305,9.09),(1.555,9.09),(1.555,5.49),(1.305,5.49)), ) createRL( tech, net, 'difftap', - ((2.15,0.885),(2.15,2.685),(2.4,2.685),(2.4,0.885),(2.15,0.885)), + ((2.18,0.91),(2.18,2.71),(2.43,2.71),(2.43,0.91),(2.18,0.91)), ) createRL( tech, net, 'difftap', - ((2.15,5.515),(2.15,9.115),(2.4,9.115),(2.4,5.515),(2.15,5.515)), + ((2.18,5.49),(2.18,9.09),(2.43,9.09),(2.43,5.49),(2.18,5.49)), ) createRL( tech, net, 'difftap', - ((1.29,5.515),(1.29,9.115),(1.54,9.115),(1.54,5.515),(1.29,5.515)), + ((1.32,5.49),(1.32,9.09),(1.57,9.09),(1.57,5.49),(1.32,5.49)), ) createRL( tech, net, 'difftap', - ((2.135,0.885),(2.135,2.685),(2.385,2.685),(2.385,0.885),(2.135,0.885)), + ((2.165,0.91),(2.165,2.71),(2.415,2.71),(2.415,0.91),(2.165,0.91)), ) createRL( tech, net, 'difftap', - ((1.29,1.375),(1.29,2.685),(1.54,2.685),(1.54,1.375),(1.29,1.375)), + ((1.32,1.38),(1.32,2.71),(1.57,2.71),(1.57,1.38),(1.32,1.38)), ) createRL( tech, net, 'difftap', - ((1.29,0.885),(1.29,2.685),(1.54,2.685),(1.54,0.885),(1.29,0.885)), + ((1.32,0.91),(1.32,2.71),(1.57,2.71),(1.57,0.91),(1.32,0.91)), ) createRL( tech, net, 'difftap', - ((1.275,0.885),(1.275,2.685),(1.525,2.685),(1.525,0.885),(1.275,0.885)), + ((1.305,0.91),(1.305,2.71),(1.555,2.71),(1.555,0.91),(1.305,0.91)), ) createRL( tech, net, 'difftap', - ((1.305,5.515),(1.305,9.115),(1.555,9.115),(1.555,5.515),(1.305,5.515)), + ((1.335,5.49),(1.335,9.09),(1.585,9.09),(1.585,5.49),(1.335,5.49)), ) createRL( tech, net, 'licon', - ((2.19,5.625),(2.19,5.795),(2.36,5.795),(2.36,5.625),(2.19,5.625)), + ((2.22,5.61),(2.22,5.78),(2.39,5.78),(2.39,5.61),(2.22,5.61)), ) createRL( tech, net, 'licon', - ((2.19,5.965),(2.19,6.135),(2.36,6.135),(2.36,5.965),(2.19,5.965)), + ((2.22,5.95),(2.22,6.12),(2.39,6.12),(2.39,5.95),(2.22,5.95)), ) createRL( tech, net, 'licon', - ((2.19,6.305),(2.19,6.475),(2.36,6.475),(2.36,6.305),(2.19,6.305)), + ((2.22,6.29),(2.22,6.46),(2.39,6.46),(2.39,6.29),(2.22,6.29)), ) createRL( tech, net, 'licon', - ((2.19,6.645),(2.19,6.815),(2.36,6.815),(2.36,6.645),(2.19,6.645)), + ((2.22,6.63),(2.22,6.8),(2.39,6.8),(2.39,6.63),(2.22,6.63)), ) createRL( tech, net, 'licon', - ((2.19,6.985),(2.19,7.155),(2.36,7.155),(2.36,6.985),(2.19,6.985)), + ((2.22,6.97),(2.22,7.14),(2.39,7.14),(2.39,6.97),(2.22,6.97)), ) createRL( tech, net, 'licon', - ((2.19,7.325),(2.19,7.495),(2.36,7.495),(2.36,7.325),(2.19,7.325)), + ((2.22,7.31),(2.22,7.48),(2.39,7.48),(2.39,7.31),(2.22,7.31)), ) createRL( tech, net, 'licon', - ((2.19,7.665),(2.19,7.835),(2.36,7.835),(2.36,7.665),(2.19,7.665)), + ((2.22,7.65),(2.22,7.82),(2.39,7.82),(2.39,7.65),(2.22,7.65)), ) createRL( tech, net, 'licon', - ((2.19,8.005),(2.19,8.175),(2.36,8.175),(2.36,8.005),(2.19,8.005)), + ((2.22,7.99),(2.22,8.16),(2.39,8.16),(2.39,7.99),(2.22,7.99)), ) createRL( tech, net, 'licon', - ((2.19,8.345),(2.19,8.515),(2.36,8.515),(2.36,8.345),(2.19,8.345)), + ((2.22,8.33),(2.22,8.5),(2.39,8.5),(2.39,8.33),(2.22,8.33)), ) createRL( tech, net, 'licon', - ((2.19,1.605),(2.19,1.775),(2.36,1.775),(2.36,1.605),(2.19,1.605)), + ((1.36,1.62),(1.36,1.79),(1.53,1.79),(1.53,1.62),(1.36,1.62)), ) createRL( tech, net, 'licon', - ((2.19,1.945),(2.19,2.115),(2.36,2.115),(2.36,1.945),(2.19,1.945)), + ((1.36,1.96),(1.36,2.13),(1.53,2.13),(1.53,1.96),(1.36,1.96)), ) createRL( tech, net, 'licon', - ((2.19,2.285),(2.19,2.455),(2.36,2.455),(2.36,2.285),(2.19,2.285)), + ((1.36,2.3),(1.36,2.47),(1.53,2.47),(1.53,2.3),(1.36,2.3)), ) createRL( tech, net, 'licon', - ((1.33,5.625),(1.33,5.795),(1.5,5.795),(1.5,5.625),(1.33,5.625)), + ((1.36,5.61),(1.36,5.78),(1.53,5.78),(1.53,5.61),(1.36,5.61)), ) createRL( tech, net, 'licon', - ((1.33,5.965),(1.33,6.135),(1.5,6.135),(1.5,5.965),(1.33,5.965)), + ((1.36,5.95),(1.36,6.12),(1.53,6.12),(1.53,5.95),(1.36,5.95)), ) createRL( tech, net, 'licon', - ((1.33,6.305),(1.33,6.475),(1.5,6.475),(1.5,6.305),(1.33,6.305)), + ((1.36,6.29),(1.36,6.46),(1.53,6.46),(1.53,6.29),(1.36,6.29)), ) createRL( tech, net, 'licon', - ((1.33,6.645),(1.33,6.815),(1.5,6.815),(1.5,6.645),(1.33,6.645)), + ((1.36,6.63),(1.36,6.8),(1.53,6.8),(1.53,6.63),(1.36,6.63)), ) createRL( tech, net, 'licon', - ((1.33,6.985),(1.33,7.155),(1.5,7.155),(1.5,6.985),(1.33,6.985)), + ((1.36,6.97),(1.36,7.14),(1.53,7.14),(1.53,6.97),(1.36,6.97)), ) createRL( tech, net, 'licon', - ((1.33,7.325),(1.33,7.495),(1.5,7.495),(1.5,7.325),(1.33,7.325)), + ((1.36,7.31),(1.36,7.48),(1.53,7.48),(1.53,7.31),(1.36,7.31)), ) createRL( tech, net, 'licon', - ((1.33,7.665),(1.33,7.835),(1.5,7.835),(1.5,7.665),(1.33,7.665)), + ((1.36,7.65),(1.36,7.82),(1.53,7.82),(1.53,7.65),(1.36,7.65)), ) createRL( tech, net, 'licon', - ((1.33,8.005),(1.33,8.175),(1.5,8.175),(1.5,8.005),(1.33,8.005)), + ((1.36,7.99),(1.36,8.16),(1.53,8.16),(1.53,7.99),(1.36,7.99)), ) createRL( tech, net, 'licon', - ((1.33,8.345),(1.33,8.515),(1.5,8.515),(1.5,8.345),(1.33,8.345)), + ((1.36,8.33),(1.36,8.5),(1.53,8.5),(1.53,8.33),(1.36,8.33)), ) createRL( tech, net, 'licon', - ((1.33,1.605),(1.33,1.775),(1.5,1.775),(1.5,1.605),(1.33,1.605)), + ((2.22,1.62),(2.22,1.79),(2.39,1.79),(2.39,1.62),(2.22,1.62)), ) createRL( tech, net, 'licon', - ((1.33,1.945),(1.33,2.115),(1.5,2.115),(1.5,1.945),(1.33,1.945)), + ((2.22,1.96),(2.22,2.13),(2.39,2.13),(2.39,1.96),(2.22,1.96)), ) createRL( tech, net, 'licon', - ((1.33,2.285),(1.33,2.455),(1.5,2.455),(1.5,2.285),(1.33,2.285)), + ((2.22,2.3),(2.22,2.47),(2.39,2.47),(2.39,2.3),(2.22,2.3)), ) createRL( tech, net, 'li', - ((2.19,1.525),(2.19,8.595),(2.36,8.595),(2.36,1.525),(2.19,1.525)), + ((2.22,1.54),(2.22,8.58),(2.39,8.58),(2.39,1.54),(2.22,1.54)), ) createRL( tech, net, 'li', - ((2.19,5.545),(2.19,8.595),(2.36,8.595),(2.36,5.545),(2.19,5.545)), + ((2.22,5.53),(2.22,8.58),(2.39,8.58),(2.39,5.53),(2.22,5.53)), ) createRL( tech, net, 'li', - ((1.33,5.545),(1.33,8.595),(1.5,8.595),(1.5,5.545),(1.33,5.545)), + ((1.36,5.53),(1.36,8.58),(1.53,8.58),(1.53,5.53),(1.36,5.53)), ) createRL( tech, net, 'li', - ((2.19,1.525),(2.19,2.535),(2.36,2.535),(2.36,1.525),(2.19,1.525)), + ((2.22,1.54),(2.22,2.55),(2.39,2.55),(2.39,1.54),(2.22,1.54)), ) createRL( tech, net, 'li', - ((1.33,1.525),(1.33,8.595),(1.5,8.595),(1.5,1.525),(1.33,1.525)), + ((1.36,1.54),(1.36,8.58),(1.53,8.58),(1.53,1.54),(1.36,1.54)), ) createRL( tech, net, 'li', - ((1.33,2.8),(1.33,5.345),(2.36,5.345),(2.36,2.8),(1.33,2.8)), + ((1.36,2.825),(1.36,5.32),(2.39,5.32),(2.39,2.825),(1.36,2.825)), ) createRL( tech, net, 'li', - ((1.33,1.525),(1.33,2.535),(1.5,2.535),(1.5,1.525),(1.33,1.525)), + ((1.36,1.54),(1.36,2.55),(1.53,2.55),(1.53,1.54),(1.36,1.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.415), u(0.17), u(1.525), u(8.595), + u(1.445), u(0.17), u(1.54), u(8.58), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.415), u(0.17), u(1.525), u(8.595), + u(1.445), u(0.17), u(1.54), u(8.58), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -26488,28 +26208,28 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', - ((0.615,1.37),(0.615,3.37),(0.765,3.37),(0.765,1.37),(0.615,1.37)), + ((0.64,1.37),(0.64,3.37),(0.79,3.37),(0.79,1.37),(0.64,1.37)), ) createRL( tech, net, 'difftap', - ((0.365,1.37),(0.365,3.37),(0.615,3.37),(0.615,1.37),(0.365,1.37)), + ((0.39,1.37),(0.39,3.37),(0.64,3.37),(0.64,1.37),(0.39,1.37)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,1.24),(0.565,1.24),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((1.245,1.37),(1.245,3.37),(1.395,3.37),(1.395,1.37),(1.245,1.37)), + ((1.195,1.37),(1.195,3.37),(1.345,3.37),(1.345,1.37),(1.195,1.37)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,3.37),(0.565,3.37),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,3.37),(0.565,3.37),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'licon', @@ -26536,104 +26256,104 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((0.24,1.245),(0.24,3.495),(1.14,3.495),(1.14,1.245),(0.24,1.245)), + ((0.265,1.245),(0.265,3.495),(1.165,3.495),(1.165,1.245),(0.265,1.245)), ) createRL( tech, net, 'nsdm', - ((0.545,1.3),(0.545,3.44),(0.835,3.44),(0.835,1.3),(0.545,1.3)), + ((0.57,1.3),(0.57,3.44),(0.86,3.44),(0.86,1.3),(0.57,1.3)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((0.19,0.705),(0.19,1.365),(0.69,1.365),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,3.495),(0.69,3.495),(0.69,0.76),(0.19,0.76)), + ((1.235,1.245),(1.235,3.495),(1.735,3.495),(1.735,1.245),(1.235,1.245)), ) createRL( tech, net, 'nsdm', - ((1.285,1.245),(1.285,3.495),(1.785,3.495),(1.785,1.245),(1.285,1.245)), + ((0.82,1.245),(0.82,3.495),(1.72,3.495),(1.72,1.245),(0.82,1.245)), ) createRL( tech, net, 'nsdm', - ((0.87,1.245),(0.87,3.495),(1.77,3.495),(1.77,1.245),(0.87,1.245)), + ((0.19,0.705),(0.19,3.495),(0.69,3.495),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((1.175,1.3),(1.175,3.44),(1.465,3.44),(1.465,1.3),(1.175,1.3)), + ((1.125,1.3),(1.125,3.44),(1.415,3.44),(1.415,1.3),(1.125,1.3)), ) createRL( tech, net, 'psdm', - ((0.19,6.505),(0.19,9.24),(0.69,9.24),(0.69,6.505),(0.19,6.505)), + ((0.19,6.505),(0.19,9.295),(0.69,9.295),(0.69,6.505),(0.19,6.505)), ) createRL( tech, net, 'psdm', - ((1.175,6.56),(1.175,8.7),(1.465,8.7),(1.465,6.56),(1.175,6.56)), + ((1.125,6.56),(1.125,8.7),(1.415,8.7),(1.415,6.56),(1.125,6.56)), ) createRL( tech, net, 'psdm', - ((0.24,6.505),(0.24,8.755),(1.14,8.755),(1.14,6.505),(0.24,6.505)), + ((0.265,6.505),(0.265,8.755),(1.165,8.755),(1.165,6.505),(0.265,6.505)), ) createRL( tech, net, 'psdm', - ((0.655,6.505),(0.655,8.755),(1.155,8.755),(1.155,6.505),(0.655,6.505)), + ((0.68,6.505),(0.68,8.755),(1.18,8.755),(1.18,6.505),(0.68,6.505)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.635),(0.19,9.295),(0.69,9.295),(0.69,8.635),(0.19,8.635)), ) createRL( tech, net, 'psdm', - ((0.87,6.505),(0.87,8.755),(1.77,8.755),(1.77,6.505),(0.87,6.505)), + ((0.82,6.505),(0.82,8.755),(1.72,8.755),(1.72,6.505),(0.82,6.505)), ) createRL( tech, net, 'psdm', - ((0.545,6.56),(0.545,8.7),(0.835,8.7),(0.835,6.56),(0.545,6.56)), + ((0.57,6.56),(0.57,8.7),(0.86,8.7),(0.86,6.56),(0.57,6.56)), ) createRL( tech, net, 'psdm', - ((1.32,8.69),(1.32,9.24),(1.82,9.24),(1.82,8.69),(1.32,8.69)), + ((1.295,8.635),(1.295,9.295),(1.795,9.295),(1.795,8.635),(1.295,8.635)), ) createRL( tech, net, 'psdm', - ((1.32,6.505),(1.32,9.24),(1.82,9.24),(1.82,6.505),(1.32,6.505)), + ((1.295,6.505),(1.295,9.295),(1.795,9.295),(1.795,6.505),(1.295,6.505)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((0.315,6.63),(0.315,9.115),(0.565,9.115),(0.565,6.63),(0.315,6.63)), + ((0.315,6.63),(0.315,9.17),(0.565,9.17),(0.565,6.63),(0.315,6.63)), ) createRL( tech, net, 'difftap', - ((1.245,6.63),(1.245,8.63),(1.395,8.63),(1.395,6.63),(1.245,6.63)), + ((1.195,6.63),(1.195,8.63),(1.345,8.63),(1.345,6.63),(1.195,6.63)), ) createRL( tech, net, 'difftap', - ((1.395,6.63),(1.395,8.63),(1.645,8.63),(1.645,6.63),(1.395,6.63)), + ((1.345,6.63),(1.345,8.63),(1.595,8.63),(1.595,6.63),(1.345,6.63)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.76),(0.315,9.17),(0.565,9.17),(0.565,8.76),(0.315,8.76)), ) createRL( tech, net, 'difftap', - ((0.615,6.63),(0.615,8.63),(0.765,8.63),(0.765,6.63),(0.615,6.63)), + ((0.64,6.63),(0.64,8.63),(0.79,8.63),(0.79,6.63),(0.64,6.63)), ) createRL( tech, net, 'difftap', - ((0.365,6.63),(0.365,8.63),(0.615,8.63),(0.615,6.63),(0.365,6.63)), + ((0.39,6.63),(0.39,8.63),(0.64,8.63),(0.64,6.63),(0.39,6.63)), ) createRL( tech, net, 'difftap', - ((1.445,8.815),(1.445,9.115),(1.695,9.115),(1.695,8.815),(1.445,8.815)), + ((1.42,8.76),(1.42,9.17),(1.67,9.17),(1.67,8.76),(1.42,8.76)), ) createRL( tech, net, 'difftap', - ((1.445,6.63),(1.445,9.115),(1.695,9.115),(1.695,6.63),(1.445,6.63)), + ((1.42,6.63),(1.42,9.17),(1.67,9.17),(1.67,6.63),(1.42,6.63)), ) createRL( tech, net, 'licon', - ((1.485,8.88),(1.485,9.05),(1.655,9.05),(1.655,8.88),(1.485,8.88)), + ((1.46,8.88),(1.46,9.05),(1.63,9.05),(1.63,8.88),(1.46,8.88)), ) createRL( tech, net, 'licon', @@ -26641,7 +26361,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.485,8.8),(1.485,9.13),(1.655,9.13),(1.655,8.8),(1.485,8.8)), + ((1.46,8.8),(1.46,9.13),(1.63,9.13),(1.63,8.8),(1.46,8.8)), ) createRL( tech, net, 'li', @@ -26653,27 +26373,27 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.135,6.45),(0.135,9.295),(0.745,9.295),(0.745,6.45),(0.135,6.45)), + ((0.135,6.45),(0.135,9.35),(0.745,9.35),(0.745,6.45),(0.135,6.45)), ) createRL( tech, net, 'nwm', - ((0.185,6.45),(0.185,8.81),(1.195,8.81),(1.195,6.45),(0.185,6.45)), + ((0.21,6.45),(0.21,8.81),(1.22,8.81),(1.22,6.45),(0.21,6.45)), ) createRL( tech, net, 'nwm', - ((0.815,6.45),(0.815,8.81),(1.825,8.81),(1.825,6.45),(0.815,6.45)), + ((0.765,6.45),(0.765,8.81),(1.775,8.81),(1.775,6.45),(0.765,6.45)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.58),(0.135,9.35),(0.745,9.35),(0.745,8.58),(0.135,8.58)), ) createRL( tech, net, 'nwm', - ((1.265,8.635),(1.265,9.295),(1.875,9.295),(1.875,8.635),(1.265,8.635)), + ((1.24,8.58),(1.24,9.35),(1.85,9.35),(1.85,8.58),(1.24,8.58)), ) createRL( tech, net, 'nwm', - ((1.265,6.45),(1.265,9.295),(1.875,9.295),(1.875,6.45),(1.265,6.45)), + ((1.24,6.45),(1.24,9.35),(1.85,9.35),(1.85,6.45),(1.24,6.45)), ) createRL( tech, net, 'nwm', @@ -26692,179 +26412,179 @@ def _load(): net = nets['int0'] createRL( tech, net, 'difftap', - ((0.995,1.37),(0.995,3.37),(1.245,3.37),(1.245,1.37),(0.995,1.37)), + ((0.945,1.37),(0.945,3.37),(1.195,3.37),(1.195,1.37),(0.945,1.37)), ) createRL( tech, net, 'difftap', - ((0.765,1.37),(0.765,3.37),(1.015,3.37),(1.015,1.37),(0.765,1.37)), + ((0.79,1.37),(0.79,3.37),(1.04,3.37),(1.04,1.37),(0.79,1.37)), ) net = nets['i0'] createRL( tech, net, 'poly', - ((0.615,6.5),(0.615,8.76),(0.765,8.76),(0.765,6.5),(0.615,6.5)), + ((0.64,6.5),(0.64,8.76),(0.79,8.76),(0.79,6.5),(0.64,6.5)), ) createRL( tech, net, 'poly', - ((0.615,3.5),(0.615,6.5),(0.765,6.5),(0.765,3.5),(0.615,3.5)), + ((0.64,3.5),(0.64,6.5),(0.79,6.5),(0.79,3.5),(0.64,3.5)), ) createRL( tech, net, 'poly', - ((0.345,4.635),(0.345,4.965),(0.615,4.965),(0.615,4.635),(0.345,4.635)), + ((0.445,4.635),(0.445,4.965),(0.715,4.965),(0.715,4.635),(0.445,4.635)), ) createRL( tech, net, 'poly', - ((0.615,1.24),(0.615,3.5),(0.765,3.5),(0.765,1.24),(0.615,1.24)), + ((0.64,1.24),(0.64,3.5),(0.79,3.5),(0.79,1.24),(0.64,1.24)), ) createRL( tech, net, 'licon', - ((0.395,4.715),(0.395,4.885),(0.565,4.885),(0.565,4.715),(0.395,4.715)), + ((0.495,4.715),(0.495,4.885),(0.665,4.885),(0.665,4.715),(0.495,4.715)), ) createRL( tech, net, 'li', - ((0.395,4.635),(0.395,4.965),(0.565,4.965),(0.565,4.635),(0.395,4.635)), + ((0.495,4.635),(0.495,4.965),(0.665,4.965),(0.665,4.635),(0.495,4.635)), ) createRL( tech, net, 'li', - ((0.395,1.37),(0.395,8.63),(0.565,8.63),(0.565,1.37),(0.395,1.37)), + ((0.495,1.37),(0.495,8.63),(0.665,8.63),(0.665,1.37),(0.495,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,6.63),(0.78,8.63),(1.03,8.63),(1.03,6.63),(0.78,6.63)), + ((0.805,6.63),(0.805,8.63),(1.055,8.63),(1.055,6.63),(0.805,6.63)), ) createRL( tech, net, 'difftap', - ((0.765,6.63),(0.765,8.63),(1.015,8.63),(1.015,6.63),(0.765,6.63)), + ((0.79,6.63),(0.79,8.63),(1.04,8.63),(1.04,6.63),(0.79,6.63)), ) createRL( tech, net, 'difftap', - ((1.395,1.37),(1.395,3.37),(1.645,3.37),(1.645,1.37),(1.395,1.37)), + ((1.345,1.37),(1.345,3.37),(1.595,3.37),(1.595,1.37),(1.345,1.37)), ) createRL( tech, net, 'difftap', - ((0.995,6.63),(0.995,8.63),(1.245,8.63),(1.245,6.63),(0.995,6.63)), + ((0.945,6.63),(0.945,8.63),(1.195,8.63),(1.195,6.63),(0.945,6.63)), ) createRL( tech, net, 'difftap', - ((1.41,1.37),(1.41,3.37),(1.66,3.37),(1.66,1.37),(1.41,1.37)), + ((1.36,1.37),(1.36,3.37),(1.61,3.37),(1.61,1.37),(1.36,1.37)), ) createRL( tech, net, 'licon', - ((1.45,1.605),(1.45,1.775),(1.62,1.775),(1.62,1.605),(1.45,1.605)), + ((1.4,1.605),(1.4,1.775),(1.57,1.775),(1.57,1.605),(1.4,1.605)), ) createRL( tech, net, 'licon', - ((1.45,1.945),(1.45,2.115),(1.62,2.115),(1.62,1.945),(1.45,1.945)), + ((1.4,1.945),(1.4,2.115),(1.57,2.115),(1.57,1.945),(1.4,1.945)), ) createRL( tech, net, 'licon', - ((1.45,2.285),(1.45,2.455),(1.62,2.455),(1.62,2.285),(1.45,2.285)), + ((1.4,2.285),(1.4,2.455),(1.57,2.455),(1.57,2.285),(1.4,2.285)), ) createRL( tech, net, 'licon', - ((1.45,2.625),(1.45,2.795),(1.62,2.795),(1.62,2.625),(1.45,2.625)), + ((1.4,2.625),(1.4,2.795),(1.57,2.795),(1.57,2.625),(1.4,2.625)), ) createRL( tech, net, 'licon', - ((1.45,2.965),(1.45,3.135),(1.62,3.135),(1.62,2.965),(1.45,2.965)), + ((1.4,2.965),(1.4,3.135),(1.57,3.135),(1.57,2.965),(1.4,2.965)), ) createRL( tech, net, 'licon', - ((0.82,6.865),(0.82,7.035),(0.99,7.035),(0.99,6.865),(0.82,6.865)), + ((0.845,6.865),(0.845,7.035),(1.015,7.035),(1.015,6.865),(0.845,6.865)), ) createRL( tech, net, 'licon', - ((0.82,7.205),(0.82,7.375),(0.99,7.375),(0.99,7.205),(0.82,7.205)), + ((0.845,7.205),(0.845,7.375),(1.015,7.375),(1.015,7.205),(0.845,7.205)), ) createRL( tech, net, 'licon', - ((0.82,7.545),(0.82,7.715),(0.99,7.715),(0.99,7.545),(0.82,7.545)), + ((0.845,7.545),(0.845,7.715),(1.015,7.715),(1.015,7.545),(0.845,7.545)), ) createRL( tech, net, 'licon', - ((0.82,7.885),(0.82,8.055),(0.99,8.055),(0.99,7.885),(0.82,7.885)), + ((0.845,7.885),(0.845,8.055),(1.015,8.055),(1.015,7.885),(0.845,7.885)), ) createRL( tech, net, 'licon', - ((0.82,8.225),(0.82,8.395),(0.99,8.395),(0.99,8.225),(0.82,8.225)), + ((0.845,8.225),(0.845,8.395),(1.015,8.395),(1.015,8.225),(0.845,8.225)), ) createRL( tech, net, 'li', - ((0.82,6.785),(0.82,8.475),(1.62,8.475),(1.62,6.785),(0.82,6.785)), + ((0.845,6.785),(0.845,8.475),(1.015,8.475),(1.015,6.785),(0.845,6.785)), ) createRL( tech, net, 'li', - ((1.45,1.525),(1.45,8.63),(1.62,8.63),(1.62,1.525),(1.45,1.525)), + ((0.845,6.785),(0.845,8.475),(1.57,8.475),(1.57,6.785),(0.845,6.785)), ) createRL( tech, net, 'li', - ((0.82,6.785),(0.82,8.475),(0.99,8.475),(0.99,6.785),(0.82,6.785)), + ((1.4,1.525),(1.4,8.63),(1.57,8.63),(1.57,1.525),(1.4,1.525)), ) createRL( tech, net, 'li', - ((1.45,1.525),(1.45,3.215),(1.62,3.215),(1.62,1.525),(1.45,1.525)), + ((1.4,1.525),(1.4,3.215),(1.57,3.215),(1.57,1.525),(1.4,1.525)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.535), u(0.17), u(1.525), u(8.63), + u(1.485), u(0.17), u(1.525), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.535), u(0.17), u(1.525), u(8.63), + u(1.485), u(0.17), u(1.525), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['nwm'] createRL( tech, net, 'nwm', - ((0.6,6.45),(0.6,8.81),(1.21,8.81),(1.21,6.45),(0.6,6.45)), + ((0.625,6.45),(0.625,8.81),(1.235,8.81),(1.235,6.45),(0.625,6.45)), ) net = nets['i1'] createRL( tech, net, 'poly', - ((1.245,3.5),(1.245,6.5),(1.395,6.5),(1.395,3.5),(1.245,3.5)), + ((1.195,3.5),(1.195,6.5),(1.345,6.5),(1.345,3.5),(1.195,3.5)), ) createRL( tech, net, 'poly', - ((0.975,4.635),(0.975,4.965),(1.245,4.965),(1.245,4.635),(0.975,4.635)), + ((1.0,4.635),(1.0,4.965),(1.27,4.965),(1.27,4.635),(1.0,4.635)), ) createRL( tech, net, 'poly', - ((1.245,6.5),(1.245,8.76),(1.395,8.76),(1.395,6.5),(1.245,6.5)), + ((1.195,6.5),(1.195,8.76),(1.345,8.76),(1.345,6.5),(1.195,6.5)), ) createRL( tech, net, 'poly', - ((1.245,1.24),(1.245,3.5),(1.395,3.5),(1.395,1.24),(1.245,1.24)), + ((1.195,1.24),(1.195,3.5),(1.345,3.5),(1.345,1.24),(1.195,1.24)), ) createRL( tech, net, 'licon', - ((1.025,4.715),(1.025,4.885),(1.195,4.885),(1.195,4.715),(1.025,4.715)), + ((1.05,4.715),(1.05,4.885),(1.22,4.885),(1.22,4.715),(1.05,4.715)), ) createRL( tech, net, 'li', - ((1.025,4.635),(1.025,4.965),(1.195,4.965),(1.195,4.635),(1.025,4.635)), + ((1.05,4.635),(1.05,4.965),(1.22,4.965),(1.22,4.635),(1.05,4.635)), ) createRL( tech, net, 'li', - ((1.025,1.37),(1.025,6.46),(1.195,6.46),(1.195,1.37),(1.025,1.37)), + ((1.05,1.37),(1.05,6.46),(1.22,6.46),(1.22,1.37),(1.05,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.11), u(0.17), u(1.37), u(6.46), + u(1.135), u(0.17), u(1.37), u(6.46), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.11), u(0.17), u(1.37), u(6.46), + u(1.135), u(0.17), u(1.37), u(6.46), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -26886,32 +26606,32 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', - ((0.615,1.37),(0.615,3.87),(0.765,3.87),(0.765,1.37),(0.615,1.37)), + ((0.64,1.37),(0.64,3.87),(0.79,3.87),(0.79,1.37),(0.64,1.37)), ) createRL( tech, net, 'difftap', - ((0.365,1.37),(0.365,3.87),(0.615,3.87),(0.615,1.37),(0.365,1.37)), + ((0.39,1.37),(0.39,3.87),(0.64,3.87),(0.64,1.37),(0.39,1.37)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,1.24),(0.565,1.24),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((1.875,1.37),(1.875,3.87),(2.025,3.87),(2.025,1.37),(1.875,1.37)), + ((1.195,1.37),(1.195,3.87),(1.345,3.87),(1.345,1.37),(1.195,1.37)), ) createRL( tech, net, 'difftap', - ((1.245,1.37),(1.245,3.87),(1.395,3.87),(1.395,1.37),(1.245,1.37)), + ((1.75,1.37),(1.75,3.87),(1.9,3.87),(1.9,1.37),(1.75,1.37)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,3.87),(0.565,3.87),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,3.87),(0.565,3.87),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'licon', @@ -26938,132 +26658,132 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((1.805,1.3),(1.805,3.94),(2.095,3.94),(2.095,1.3),(1.805,1.3)), + ((1.375,1.245),(1.375,3.995),(2.275,3.995),(2.275,1.245),(1.375,1.245)), ) createRL( tech, net, 'nsdm', - ((1.5,1.245),(1.5,3.995),(2.4,3.995),(2.4,1.245),(1.5,1.245)), + ((0.57,1.3),(0.57,3.94),(0.86,3.94),(0.86,1.3),(0.57,1.3)), ) createRL( tech, net, 'nsdm', - ((0.545,1.3),(0.545,3.94),(0.835,3.94),(0.835,1.3),(0.545,1.3)), + ((0.82,1.245),(0.82,3.995),(1.72,3.995),(1.72,1.245),(0.82,1.245)), ) createRL( tech, net, 'nsdm', - ((0.87,1.245),(0.87,3.995),(1.77,3.995),(1.77,1.245),(0.87,1.245)), + ((0.19,0.705),(0.19,1.365),(0.69,1.365),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((1.79,1.245),(1.79,3.995),(2.29,3.995),(2.29,1.245),(1.79,1.245)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,3.995),(0.69,3.995),(0.69,0.76),(0.19,0.76)), + ((0.265,1.245),(0.265,3.995),(1.165,3.995),(1.165,1.245),(0.265,1.245)), ) createRL( tech, net, 'nsdm', - ((1.915,1.245),(1.915,3.995),(2.415,3.995),(2.415,1.245),(1.915,1.245)), + ((1.125,1.3),(1.125,3.94),(1.415,3.94),(1.415,1.3),(1.125,1.3)), ) createRL( tech, net, 'nsdm', - ((0.24,1.245),(0.24,3.995),(1.14,3.995),(1.14,1.245),(0.24,1.245)), + ((0.19,0.705),(0.19,3.995),(0.69,3.995),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((1.175,1.3),(1.175,3.94),(1.465,3.94),(1.465,1.3),(1.175,1.3)), + ((1.68,1.3),(1.68,3.94),(1.97,3.94),(1.97,1.3),(1.68,1.3)), ) createRL( tech, net, 'psdm', - ((0.19,6.005),(0.19,9.24),(0.69,9.24),(0.69,6.005),(0.19,6.005)), + ((0.19,6.005),(0.19,9.295),(0.69,9.295),(0.69,6.005),(0.19,6.005)), ) createRL( tech, net, 'psdm', - ((1.175,6.06),(1.175,8.7),(1.465,8.7),(1.465,6.06),(1.175,6.06)), + ((1.125,6.06),(1.125,8.7),(1.415,8.7),(1.415,6.06),(1.125,6.06)), ) createRL( tech, net, 'psdm', - ((0.24,6.005),(0.24,8.755),(1.14,8.755),(1.14,6.005),(0.24,6.005)), + ((0.265,6.005),(0.265,8.755),(1.165,8.755),(1.165,6.005),(0.265,6.005)), ) createRL( tech, net, 'psdm', - ((0.655,6.005),(0.655,8.755),(1.155,8.755),(1.155,6.005),(0.655,6.005)), + ((0.68,6.005),(0.68,8.755),(1.18,8.755),(1.18,6.005),(0.68,6.005)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.635),(0.19,9.295),(0.69,9.295),(0.69,8.635),(0.19,8.635)), ) createRL( tech, net, 'psdm', - ((0.87,6.005),(0.87,8.755),(1.77,8.755),(1.77,6.005),(0.87,6.005)), + ((0.82,6.005),(0.82,8.755),(1.72,8.755),(1.72,6.005),(0.82,6.005)), ) createRL( tech, net, 'psdm', - ((1.5,6.005),(1.5,8.755),(2.4,8.755),(2.4,6.005),(1.5,6.005)), + ((1.375,6.005),(1.375,8.755),(2.275,8.755),(2.275,6.005),(1.375,6.005)), ) createRL( tech, net, 'psdm', - ((0.545,6.06),(0.545,8.7),(0.835,8.7),(0.835,6.06),(0.545,6.06)), + ((0.57,6.06),(0.57,8.7),(0.86,8.7),(0.86,6.06),(0.57,6.06)), ) createRL( tech, net, 'psdm', - ((1.805,6.06),(1.805,8.7),(2.095,8.7),(2.095,6.06),(1.805,6.06)), + ((1.68,6.06),(1.68,8.7),(1.97,8.7),(1.97,6.06),(1.68,6.06)), ) createRL( tech, net, 'psdm', - ((1.915,6.005),(1.915,8.755),(2.415,8.755),(2.415,6.005),(1.915,6.005)), + ((1.79,6.005),(1.79,8.755),(2.29,8.755),(2.29,6.005),(1.79,6.005)), ) createRL( tech, net, 'psdm', - ((1.32,8.69),(1.32,9.24),(1.82,9.24),(1.82,8.69),(1.32,8.69)), + ((1.295,8.635),(1.295,9.295),(1.795,9.295),(1.795,8.635),(1.295,8.635)), ) createRL( tech, net, 'psdm', - ((1.32,6.005),(1.32,9.24),(1.82,9.24),(1.82,6.005),(1.32,6.005)), + ((1.295,6.005),(1.295,9.295),(1.795,9.295),(1.795,6.005),(1.295,6.005)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((0.315,6.13),(0.315,9.115),(0.565,9.115),(0.565,6.13),(0.315,6.13)), + ((0.315,6.13),(0.315,9.17),(0.565,9.17),(0.565,6.13),(0.315,6.13)), ) createRL( tech, net, 'difftap', - ((1.395,6.13),(1.395,8.63),(1.645,8.63),(1.645,6.13),(1.395,6.13)), + ((1.345,6.13),(1.345,8.63),(1.595,8.63),(1.595,6.13),(1.345,6.13)), ) createRL( tech, net, 'difftap', - ((1.245,6.13),(1.245,8.63),(1.395,8.63),(1.395,6.13),(1.245,6.13)), + ((1.195,6.13),(1.195,8.63),(1.345,8.63),(1.345,6.13),(1.195,6.13)), ) createRL( tech, net, 'difftap', - ((1.875,6.13),(1.875,8.63),(2.025,8.63),(2.025,6.13),(1.875,6.13)), + ((1.5,6.13),(1.5,8.63),(1.75,8.63),(1.75,6.13),(1.5,6.13)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.76),(0.315,9.17),(0.565,9.17),(0.565,8.76),(0.315,8.76)), ) createRL( tech, net, 'difftap', - ((1.625,6.13),(1.625,8.63),(1.875,8.63),(1.875,6.13),(1.625,6.13)), + ((1.75,6.13),(1.75,8.63),(1.9,8.63),(1.9,6.13),(1.75,6.13)), ) createRL( tech, net, 'difftap', - ((0.615,6.13),(0.615,8.63),(0.765,8.63),(0.765,6.13),(0.615,6.13)), + ((0.64,6.13),(0.64,8.63),(0.79,8.63),(0.79,6.13),(0.64,6.13)), ) createRL( tech, net, 'difftap', - ((0.365,6.13),(0.365,8.63),(0.615,8.63),(0.615,6.13),(0.365,6.13)), + ((0.39,6.13),(0.39,8.63),(0.64,8.63),(0.64,6.13),(0.39,6.13)), ) createRL( tech, net, 'difftap', - ((1.445,8.815),(1.445,9.115),(1.695,9.115),(1.695,8.815),(1.445,8.815)), + ((1.42,8.76),(1.42,9.17),(1.67,9.17),(1.67,8.76),(1.42,8.76)), ) createRL( tech, net, 'difftap', - ((1.445,6.13),(1.445,9.115),(1.695,9.115),(1.695,6.13),(1.445,6.13)), + ((1.42,6.13),(1.42,9.17),(1.67,9.17),(1.67,6.13),(1.42,6.13)), ) createRL( tech, net, 'licon', - ((1.485,8.88),(1.485,9.05),(1.655,9.05),(1.655,8.88),(1.485,8.88)), + ((1.46,8.88),(1.46,9.05),(1.63,9.05),(1.63,8.88),(1.46,8.88)), ) createRL( tech, net, 'licon', @@ -27071,7 +26791,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.485,8.8),(1.485,9.13),(1.655,9.13),(1.655,8.8),(1.485,8.8)), + ((1.46,8.8),(1.46,9.13),(1.63,9.13),(1.63,8.8),(1.46,8.8)), ) createRL( tech, net, 'li', @@ -27083,31 +26803,31 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.815,5.95),(0.815,8.81),(1.825,8.81),(1.825,5.95),(0.815,5.95)), + ((0.765,5.95),(0.765,8.81),(1.775,8.81),(1.775,5.95),(0.765,5.95)), ) createRL( tech, net, 'nwm', - ((1.445,5.95),(1.445,8.81),(2.455,8.81),(2.455,5.95),(1.445,5.95)), + ((1.32,5.95),(1.32,8.81),(2.33,8.81),(2.33,5.95),(1.32,5.95)), ) createRL( tech, net, 'nwm', - ((0.185,5.95),(0.185,8.81),(1.195,8.81),(1.195,5.95),(0.185,5.95)), + ((0.21,5.95),(0.21,8.81),(1.22,8.81),(1.22,5.95),(0.21,5.95)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.58),(0.135,9.35),(0.745,9.35),(0.745,8.58),(0.135,8.58)), ) createRL( tech, net, 'nwm', - ((0.135,5.95),(0.135,9.295),(0.745,9.295),(0.745,5.95),(0.135,5.95)), + ((0.135,5.95),(0.135,9.35),(0.745,9.35),(0.745,5.95),(0.135,5.95)), ) createRL( tech, net, 'nwm', - ((1.265,8.635),(1.265,9.295),(1.875,9.295),(1.875,8.635),(1.265,8.635)), + ((1.24,8.58),(1.24,9.35),(1.85,9.35),(1.85,8.58),(1.24,8.58)), ) createRL( tech, net, 'nwm', - ((1.265,5.95),(1.265,9.295),(1.875,9.295),(1.875,5.95),(1.265,5.95)), + ((1.24,5.95),(1.24,9.35),(1.85,9.35),(1.85,5.95),(1.24,5.95)), ) createRL( tech, net, 'nwm', @@ -27126,287 +26846,287 @@ def _load(): net = nets['int0'] createRL( tech, net, 'difftap', - ((0.995,1.37),(0.995,3.87),(1.245,3.87),(1.245,1.37),(0.995,1.37)), + ((0.945,1.37),(0.945,3.87),(1.195,3.87),(1.195,1.37),(0.945,1.37)), ) createRL( tech, net, 'difftap', - ((0.765,1.37),(0.765,3.87),(1.015,3.87),(1.015,1.37),(0.765,1.37)), + ((0.79,1.37),(0.79,3.87),(1.04,3.87),(1.04,1.37),(0.79,1.37)), ) net = nets['i0'] createRL( tech, net, 'poly', - ((0.615,4.0),(0.615,6.0),(0.765,6.0),(0.765,4.0),(0.615,4.0)), + ((0.64,4.0),(0.64,6.0),(0.79,6.0),(0.79,4.0),(0.64,4.0)), ) createRL( tech, net, 'poly', - ((0.615,1.24),(0.615,4.0),(0.765,4.0),(0.765,1.24),(0.615,1.24)), + ((0.64,1.24),(0.64,4.0),(0.79,4.0),(0.79,1.24),(0.64,1.24)), ) createRL( tech, net, 'poly', - ((0.345,4.635),(0.345,4.965),(0.615,4.965),(0.615,4.635),(0.345,4.635)), + ((0.445,4.635),(0.445,4.965),(0.715,4.965),(0.715,4.635),(0.445,4.635)), ) createRL( tech, net, 'poly', - ((0.615,6.0),(0.615,8.76),(0.765,8.76),(0.765,6.0),(0.615,6.0)), + ((0.64,6.0),(0.64,8.76),(0.79,8.76),(0.79,6.0),(0.64,6.0)), ) createRL( tech, net, 'licon', - ((0.395,4.715),(0.395,4.885),(0.565,4.885),(0.565,4.715),(0.395,4.715)), + ((0.495,4.715),(0.495,4.885),(0.665,4.885),(0.665,4.715),(0.495,4.715)), ) createRL( tech, net, 'li', - ((0.395,4.635),(0.395,4.965),(0.565,4.965),(0.565,4.635),(0.395,4.635)), + ((0.495,4.635),(0.495,4.965),(0.665,4.965),(0.665,4.635),(0.495,4.635)), ) createRL( tech, net, 'li', - ((0.395,1.37),(0.395,8.63),(0.565,8.63),(0.565,1.37),(0.395,1.37)), + ((0.495,1.37),(0.495,8.63),(0.665,8.63),(0.665,1.37),(0.495,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['nq'] createRL( tech, net, 'difftap', - ((2.04,6.13),(2.04,8.63),(2.29,8.63),(2.29,6.13),(2.04,6.13)), + ((0.805,6.13),(0.805,8.63),(1.055,8.63),(1.055,6.13),(0.805,6.13)), ) createRL( tech, net, 'difftap', - ((0.78,6.13),(0.78,8.63),(1.03,8.63),(1.03,6.13),(0.78,6.13)), + ((1.915,6.13),(1.915,8.63),(2.165,8.63),(2.165,6.13),(1.915,6.13)), ) createRL( tech, net, 'difftap', - ((2.04,1.37),(2.04,3.87),(2.29,3.87),(2.29,1.37),(2.04,1.37)), + ((1.9,6.13),(1.9,8.63),(2.15,8.63),(2.15,6.13),(1.9,6.13)), ) createRL( tech, net, 'difftap', - ((2.025,1.37),(2.025,3.87),(2.275,3.87),(2.275,1.37),(2.025,1.37)), + ((0.945,6.13),(0.945,8.63),(1.195,8.63),(1.195,6.13),(0.945,6.13)), ) createRL( tech, net, 'difftap', - ((0.765,6.13),(0.765,8.63),(1.015,8.63),(1.015,6.13),(0.765,6.13)), + ((1.9,1.37),(1.9,3.87),(2.15,3.87),(2.15,1.37),(1.9,1.37)), ) createRL( tech, net, 'difftap', - ((2.025,6.13),(2.025,8.63),(2.275,8.63),(2.275,6.13),(2.025,6.13)), + ((0.79,6.13),(0.79,8.63),(1.04,8.63),(1.04,6.13),(0.79,6.13)), ) createRL( tech, net, 'difftap', - ((0.995,6.13),(0.995,8.63),(1.245,8.63),(1.245,6.13),(0.995,6.13)), + ((1.915,1.37),(1.915,3.87),(2.165,3.87),(2.165,1.37),(1.915,1.37)), ) createRL( tech, net, 'licon', - ((2.08,6.275),(2.08,6.445),(2.25,6.445),(2.25,6.275),(2.08,6.275)), + ((0.845,6.275),(0.845,6.445),(1.015,6.445),(1.015,6.275),(0.845,6.275)), ) createRL( tech, net, 'licon', - ((2.08,6.615),(2.08,6.785),(2.25,6.785),(2.25,6.615),(2.08,6.615)), + ((0.845,6.615),(0.845,6.785),(1.015,6.785),(1.015,6.615),(0.845,6.615)), ) createRL( tech, net, 'licon', - ((2.08,6.955),(2.08,7.125),(2.25,7.125),(2.25,6.955),(2.08,6.955)), + ((0.845,6.955),(0.845,7.125),(1.015,7.125),(1.015,6.955),(0.845,6.955)), ) createRL( tech, net, 'licon', - ((2.08,7.295),(2.08,7.465),(2.25,7.465),(2.25,7.295),(2.08,7.295)), + ((0.845,7.295),(0.845,7.465),(1.015,7.465),(1.015,7.295),(0.845,7.295)), ) createRL( tech, net, 'licon', - ((2.08,7.635),(2.08,7.805),(2.25,7.805),(2.25,7.635),(2.08,7.635)), + ((0.845,7.635),(0.845,7.805),(1.015,7.805),(1.015,7.635),(0.845,7.635)), ) createRL( tech, net, 'licon', - ((2.08,7.975),(2.08,8.145),(2.25,8.145),(2.25,7.975),(2.08,7.975)), + ((0.845,7.975),(0.845,8.145),(1.015,8.145),(1.015,7.975),(0.845,7.975)), ) createRL( tech, net, 'licon', - ((2.08,8.315),(2.08,8.485),(2.25,8.485),(2.25,8.315),(2.08,8.315)), + ((0.845,8.315),(0.845,8.485),(1.015,8.485),(1.015,8.315),(0.845,8.315)), ) createRL( tech, net, 'licon', - ((2.08,1.515),(2.08,1.685),(2.25,1.685),(2.25,1.515),(2.08,1.515)), + ((1.955,1.515),(1.955,1.685),(2.125,1.685),(2.125,1.515),(1.955,1.515)), ) createRL( tech, net, 'licon', - ((2.08,1.855),(2.08,2.025),(2.25,2.025),(2.25,1.855),(2.08,1.855)), + ((1.955,1.855),(1.955,2.025),(2.125,2.025),(2.125,1.855),(1.955,1.855)), ) createRL( tech, net, 'licon', - ((2.08,2.195),(2.08,2.365),(2.25,2.365),(2.25,2.195),(2.08,2.195)), + ((1.955,2.195),(1.955,2.365),(2.125,2.365),(2.125,2.195),(1.955,2.195)), ) createRL( tech, net, 'licon', - ((2.08,2.535),(2.08,2.705),(2.25,2.705),(2.25,2.535),(2.08,2.535)), + ((1.955,2.535),(1.955,2.705),(2.125,2.705),(2.125,2.535),(1.955,2.535)), ) createRL( tech, net, 'licon', - ((2.08,2.875),(2.08,3.045),(2.25,3.045),(2.25,2.875),(2.08,2.875)), + ((1.955,2.875),(1.955,3.045),(2.125,3.045),(2.125,2.875),(1.955,2.875)), ) createRL( tech, net, 'licon', - ((2.08,3.215),(2.08,3.385),(2.25,3.385),(2.25,3.215),(2.08,3.215)), + ((1.955,3.215),(1.955,3.385),(2.125,3.385),(2.125,3.215),(1.955,3.215)), ) createRL( tech, net, 'licon', - ((2.08,3.555),(2.08,3.725),(2.25,3.725),(2.25,3.555),(2.08,3.555)), + ((1.955,3.555),(1.955,3.725),(2.125,3.725),(2.125,3.555),(1.955,3.555)), ) createRL( tech, net, 'licon', - ((0.82,6.275),(0.82,6.445),(0.99,6.445),(0.99,6.275),(0.82,6.275)), + ((1.955,6.275),(1.955,6.445),(2.125,6.445),(2.125,6.275),(1.955,6.275)), ) createRL( tech, net, 'licon', - ((0.82,6.615),(0.82,6.785),(0.99,6.785),(0.99,6.615),(0.82,6.615)), + ((1.955,6.615),(1.955,6.785),(2.125,6.785),(2.125,6.615),(1.955,6.615)), ) createRL( tech, net, 'licon', - ((0.82,6.955),(0.82,7.125),(0.99,7.125),(0.99,6.955),(0.82,6.955)), + ((1.955,6.955),(1.955,7.125),(2.125,7.125),(2.125,6.955),(1.955,6.955)), ) createRL( tech, net, 'licon', - ((0.82,7.295),(0.82,7.465),(0.99,7.465),(0.99,7.295),(0.82,7.295)), + ((1.955,7.295),(1.955,7.465),(2.125,7.465),(2.125,7.295),(1.955,7.295)), ) createRL( tech, net, 'licon', - ((0.82,7.635),(0.82,7.805),(0.99,7.805),(0.99,7.635),(0.82,7.635)), + ((1.955,7.635),(1.955,7.805),(2.125,7.805),(2.125,7.635),(1.955,7.635)), ) createRL( tech, net, 'licon', - ((0.82,7.975),(0.82,8.145),(0.99,8.145),(0.99,7.975),(0.82,7.975)), + ((1.955,7.975),(1.955,8.145),(2.125,8.145),(2.125,7.975),(1.955,7.975)), ) createRL( tech, net, 'licon', - ((0.82,8.315),(0.82,8.485),(0.99,8.485),(0.99,8.315),(0.82,8.315)), + ((1.955,8.315),(1.955,8.485),(2.125,8.485),(2.125,8.315),(1.955,8.315)), ) createRL( tech, net, 'li', - ((2.08,6.19),(2.08,8.57),(2.25,8.57),(2.25,6.19),(2.08,6.19)), + ((0.845,6.19),(0.845,8.57),(2.125,8.57),(2.125,6.19),(0.845,6.19)), ) createRL( tech, net, 'li', - ((2.08,1.43),(2.08,8.63),(2.25,8.63),(2.25,1.43),(2.08,1.43)), + ((0.845,6.19),(0.845,8.57),(1.015,8.57),(1.015,6.19),(0.845,6.19)), ) createRL( tech, net, 'li', - ((0.82,6.19),(0.82,8.57),(2.25,8.57),(2.25,6.19),(0.82,6.19)), + ((1.955,6.19),(1.955,8.57),(2.125,8.57),(2.125,6.19),(1.955,6.19)), ) createRL( tech, net, 'li', - ((0.82,6.19),(0.82,8.57),(0.99,8.57),(0.99,6.19),(0.82,6.19)), + ((1.955,1.43),(1.955,3.81),(2.125,3.81),(2.125,1.43),(1.955,1.43)), ) createRL( tech, net, 'li', - ((2.08,1.43),(2.08,3.81),(2.25,3.81),(2.25,1.43),(2.08,1.43)), + ((1.955,1.43),(1.955,8.63),(2.125,8.63),(2.125,1.43),(1.955,1.43)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.165), u(0.17), u(1.43), u(8.63), + u(2.04), u(0.17), u(1.43), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.165), u(0.17), u(1.43), u(8.63), + u(2.04), u(0.17), u(1.43), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['nwm'] createRL( tech, net, 'nwm', - ((1.86,5.95),(1.86,8.81),(2.47,8.81),(2.47,5.95),(1.86,5.95)), + ((1.735,5.95),(1.735,8.81),(2.345,8.81),(2.345,5.95),(1.735,5.95)), ) createRL( tech, net, 'nwm', - ((0.6,5.95),(0.6,8.81),(1.21,8.81),(1.21,5.95),(0.6,5.95)), + ((0.625,5.95),(0.625,8.81),(1.235,8.81),(1.235,5.95),(0.625,5.95)), ) net = nets['int1'] createRL( tech, net, 'difftap', - ((1.395,1.37),(1.395,3.87),(1.645,3.87),(1.645,1.37),(1.395,1.37)), + ((1.345,1.37),(1.345,3.87),(1.595,3.87),(1.595,1.37),(1.345,1.37)), ) createRL( tech, net, 'difftap', - ((1.625,1.37),(1.625,3.87),(1.875,3.87),(1.875,1.37),(1.625,1.37)), + ((1.5,1.37),(1.5,3.87),(1.75,3.87),(1.75,1.37),(1.5,1.37)), ) net = nets['i1'] createRL( tech, net, 'poly', - ((1.245,1.24),(1.245,4.0),(1.395,4.0),(1.395,1.24),(1.245,1.24)), + ((1.195,1.24),(1.195,4.0),(1.345,4.0),(1.345,1.24),(1.195,1.24)), ) createRL( tech, net, 'poly', - ((1.245,4.0),(1.245,6.0),(1.395,6.0),(1.395,4.0),(1.245,4.0)), + ((1.195,4.0),(1.195,6.0),(1.345,6.0),(1.345,4.0),(1.195,4.0)), ) createRL( tech, net, 'poly', - ((0.975,4.635),(0.975,4.965),(1.245,4.965),(1.245,4.635),(0.975,4.635)), + ((1.0,4.635),(1.0,4.965),(1.27,4.965),(1.27,4.635),(1.0,4.635)), ) createRL( tech, net, 'poly', - ((1.245,6.0),(1.245,8.76),(1.395,8.76),(1.395,6.0),(1.245,6.0)), + ((1.195,6.0),(1.195,8.76),(1.345,8.76),(1.345,6.0),(1.195,6.0)), ) createRL( tech, net, 'licon', - ((1.025,4.715),(1.025,4.885),(1.195,4.885),(1.195,4.715),(1.025,4.715)), + ((1.05,4.715),(1.05,4.885),(1.22,4.885),(1.22,4.715),(1.05,4.715)), ) createRL( tech, net, 'li', - ((1.025,4.635),(1.025,4.965),(1.195,4.965),(1.195,4.635),(1.025,4.635)), + ((1.05,4.635),(1.05,4.965),(1.22,4.965),(1.22,4.635),(1.05,4.635)), ) createRL( tech, net, 'li', - ((1.025,1.37),(1.025,5.96),(1.195,5.96),(1.195,1.37),(1.025,1.37)), + ((1.05,1.37),(1.05,5.96),(1.22,5.96),(1.22,1.37),(1.05,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.11), u(0.17), u(1.37), u(5.96), + u(1.135), u(0.17), u(1.37), u(5.96), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.11), u(0.17), u(1.37), u(5.96), + u(1.135), u(0.17), u(1.37), u(5.96), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['i2'] createRL( tech, net, 'poly', - ((1.875,6.0),(1.875,8.76),(2.025,8.76),(2.025,6.0),(1.875,6.0)), + ((1.75,1.24),(1.75,4.0),(1.9,4.0),(1.9,1.24),(1.75,1.24)), ) createRL( tech, net, 'poly', - ((1.605,4.635),(1.605,4.965),(1.875,4.965),(1.875,4.635),(1.605,4.635)), + ((1.555,4.635),(1.555,4.965),(1.825,4.965),(1.825,4.635),(1.555,4.635)), ) createRL( tech, net, 'poly', - ((1.875,4.0),(1.875,6.0),(2.025,6.0),(2.025,4.0),(1.875,4.0)), + ((1.75,4.0),(1.75,6.0),(1.9,6.0),(1.9,4.0),(1.75,4.0)), ) createRL( tech, net, 'poly', - ((1.875,1.24),(1.875,4.0),(2.025,4.0),(2.025,1.24),(1.875,1.24)), + ((1.75,6.0),(1.75,8.76),(1.9,8.76),(1.9,6.0),(1.75,6.0)), ) createRL( tech, net, 'licon', - ((1.655,4.715),(1.655,4.885),(1.825,4.885),(1.825,4.715),(1.655,4.715)), + ((1.605,4.715),(1.605,4.885),(1.775,4.885),(1.775,4.715),(1.605,4.715)), ) createRL( tech, net, 'li', - ((1.655,4.635),(1.655,4.965),(1.825,4.965),(1.825,4.635),(1.655,4.635)), + ((1.605,4.635),(1.605,4.965),(1.775,4.965),(1.775,4.635),(1.605,4.635)), ) createRL( tech, net, 'li', - ((1.655,1.37),(1.655,5.96),(1.825,5.96),(1.825,1.37),(1.655,1.37)), + ((1.605,1.37),(1.605,5.96),(1.775,5.96),(1.775,1.37),(1.605,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.74), u(0.17), u(1.37), u(5.96), + u(1.69), u(0.17), u(1.37), u(5.96), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.74), u(0.17), u(1.37), u(5.96), + u(1.69), u(0.17), u(1.37), u(5.96), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -27430,36 +27150,36 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', - ((0.615,1.37),(0.615,3.87),(0.765,3.87),(0.765,1.37),(0.615,1.37)), + ((0.64,1.37),(0.64,3.87),(0.79,3.87),(0.79,1.37),(0.64,1.37)), ) createRL( tech, net, 'difftap', - ((0.365,1.37),(0.365,3.87),(0.615,3.87),(0.615,1.37),(0.365,1.37)), + ((0.39,1.37),(0.39,3.87),(0.64,3.87),(0.64,1.37),(0.39,1.37)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,1.24),(0.565,1.24),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((1.875,1.37),(1.875,3.87),(2.025,3.87),(2.025,1.37),(1.875,1.37)), + ((1.195,1.37),(1.195,3.87),(1.345,3.87),(1.345,1.37),(1.195,1.37)), ) createRL( tech, net, 'difftap', - ((1.245,1.37),(1.245,3.87),(1.395,3.87),(1.395,1.37),(1.245,1.37)), + ((1.75,1.37),(1.75,3.87),(1.9,3.87),(1.9,1.37),(1.75,1.37)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,3.87),(0.565,3.87),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,3.87),(0.565,3.87),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((2.505,1.37),(2.505,3.87),(2.655,3.87),(2.655,1.37),(2.505,1.37)), + ((2.305,1.37),(2.305,3.87),(2.455,3.87),(2.455,1.37),(2.305,1.37)), ) createRL( tech, net, 'licon', @@ -27486,172 +27206,172 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((0.24,1.245),(0.24,3.995),(1.14,3.995),(1.14,1.245),(0.24,1.245)), + ((0.265,1.245),(0.265,3.995),(1.165,3.995),(1.165,1.245),(0.265,1.245)), ) createRL( tech, net, 'nsdm', - ((2.13,1.245),(2.13,3.995),(3.03,3.995),(3.03,1.245),(2.13,1.245)), + ((1.93,1.245),(1.93,3.995),(2.83,3.995),(2.83,1.245),(1.93,1.245)), ) createRL( tech, net, 'nsdm', - ((1.5,1.245),(1.5,3.995),(2.4,3.995),(2.4,1.245),(1.5,1.245)), + ((0.57,1.3),(0.57,3.94),(0.86,3.94),(0.86,1.3),(0.57,1.3)), ) createRL( tech, net, 'nsdm', - ((0.545,1.3),(0.545,3.94),(0.835,3.94),(0.835,1.3),(0.545,1.3)), + ((1.68,1.3),(1.68,3.94),(1.97,3.94),(1.97,1.3),(1.68,1.3)), ) createRL( tech, net, 'nsdm', - ((0.87,1.245),(0.87,3.995),(1.77,3.995),(1.77,1.245),(0.87,1.245)), + ((0.82,1.245),(0.82,3.995),(1.72,3.995),(1.72,1.245),(0.82,1.245)), ) createRL( tech, net, 'nsdm', - ((2.545,1.245),(2.545,3.995),(3.045,3.995),(3.045,1.245),(2.545,1.245)), + ((0.19,0.705),(0.19,1.365),(0.69,1.365),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((2.235,1.3),(2.235,3.94),(2.525,3.94),(2.525,1.3),(2.235,1.3)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,3.995),(0.69,3.995),(0.69,0.76),(0.19,0.76)), + ((2.345,1.245),(2.345,3.995),(2.845,3.995),(2.845,1.245),(2.345,1.245)), ) createRL( tech, net, 'nsdm', - ((2.435,1.3),(2.435,3.94),(2.725,3.94),(2.725,1.3),(2.435,1.3)), + ((1.375,1.245),(1.375,3.995),(2.275,3.995),(2.275,1.245),(1.375,1.245)), ) createRL( tech, net, 'nsdm', - ((1.805,1.3),(1.805,3.94),(2.095,3.94),(2.095,1.3),(1.805,1.3)), + ((0.19,0.705),(0.19,3.995),(0.69,3.995),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((1.175,1.3),(1.175,3.94),(1.465,3.94),(1.465,1.3),(1.175,1.3)), + ((1.125,1.3),(1.125,3.94),(1.415,3.94),(1.415,1.3),(1.125,1.3)), ) createRL( tech, net, 'psdm', - ((2.435,6.06),(2.435,8.7),(2.725,8.7),(2.725,6.06),(2.435,6.06)), + ((2.235,6.06),(2.235,8.7),(2.525,8.7),(2.525,6.06),(2.235,6.06)), ) createRL( tech, net, 'psdm', - ((2.58,8.69),(2.58,9.24),(3.08,9.24),(3.08,8.69),(2.58,8.69)), + ((0.19,6.005),(0.19,9.295),(0.69,9.295),(0.69,6.005),(0.19,6.005)), ) createRL( tech, net, 'psdm', - ((0.19,6.005),(0.19,9.24),(0.69,9.24),(0.69,6.005),(0.19,6.005)), + ((1.125,6.06),(1.125,8.7),(1.415,8.7),(1.415,6.06),(1.125,6.06)), ) createRL( tech, net, 'psdm', - ((1.175,6.06),(1.175,8.7),(1.465,8.7),(1.465,6.06),(1.175,6.06)), + ((0.265,6.005),(0.265,8.755),(1.165,8.755),(1.165,6.005),(0.265,6.005)), ) createRL( tech, net, 'psdm', - ((0.24,6.005),(0.24,8.755),(1.14,8.755),(1.14,6.005),(0.24,6.005)), + ((0.68,6.005),(0.68,8.755),(1.18,8.755),(1.18,6.005),(0.68,6.005)), ) createRL( tech, net, 'psdm', - ((0.655,6.005),(0.655,8.755),(1.155,8.755),(1.155,6.005),(0.655,6.005)), + ((0.19,8.635),(0.19,9.295),(0.69,9.295),(0.69,8.635),(0.19,8.635)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.82,6.005),(0.82,8.755),(1.72,8.755),(1.72,6.005),(0.82,6.005)), ) createRL( tech, net, 'psdm', - ((0.87,6.005),(0.87,8.755),(1.77,8.755),(1.77,6.005),(0.87,6.005)), + ((1.375,6.005),(1.375,8.755),(2.275,8.755),(2.275,6.005),(1.375,6.005)), ) createRL( tech, net, 'psdm', - ((1.5,6.005),(1.5,8.755),(2.4,8.755),(2.4,6.005),(1.5,6.005)), + ((0.57,6.06),(0.57,8.7),(0.86,8.7),(0.86,6.06),(0.57,6.06)), ) createRL( tech, net, 'psdm', - ((0.545,6.06),(0.545,8.7),(0.835,8.7),(0.835,6.06),(0.545,6.06)), + ((1.68,6.06),(1.68,8.7),(1.97,8.7),(1.97,6.06),(1.68,6.06)), ) createRL( tech, net, 'psdm', - ((1.805,6.06),(1.805,8.7),(2.095,8.7),(2.095,6.06),(1.805,6.06)), + ((1.79,6.005),(1.79,8.755),(2.29,8.755),(2.29,6.005),(1.79,6.005)), ) createRL( tech, net, 'psdm', - ((1.915,6.005),(1.915,8.755),(2.415,8.755),(2.415,6.005),(1.915,6.005)), + ((1.295,8.635),(1.295,9.295),(1.795,9.295),(1.795,8.635),(1.295,8.635)), ) createRL( tech, net, 'psdm', - ((1.32,8.69),(1.32,9.24),(1.82,9.24),(1.82,8.69),(1.32,8.69)), + ((1.93,6.005),(1.93,8.755),(2.83,8.755),(2.83,6.005),(1.93,6.005)), ) createRL( tech, net, 'psdm', - ((2.13,6.005),(2.13,8.755),(3.03,8.755),(3.03,6.005),(2.13,6.005)), + ((2.405,8.635),(2.405,9.295),(2.905,9.295),(2.905,8.635),(2.405,8.635)), ) createRL( tech, net, 'psdm', - ((2.58,6.005),(2.58,9.24),(3.08,9.24),(3.08,6.005),(2.58,6.005)), + ((2.405,6.005),(2.405,9.295),(2.905,9.295),(2.905,6.005),(2.405,6.005)), ) createRL( tech, net, 'psdm', - ((1.32,6.005),(1.32,9.24),(1.82,9.24),(1.82,6.005),(1.32,6.005)), + ((1.295,6.005),(1.295,9.295),(1.795,9.295),(1.795,6.005),(1.295,6.005)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((2.655,6.13),(2.655,8.63),(2.905,8.63),(2.905,6.13),(2.655,6.13)), + ((2.455,6.13),(2.455,8.63),(2.705,8.63),(2.705,6.13),(2.455,6.13)), ) createRL( tech, net, 'difftap', - ((2.505,6.13),(2.505,8.63),(2.655,8.63),(2.655,6.13),(2.505,6.13)), + ((2.305,6.13),(2.305,8.63),(2.455,8.63),(2.455,6.13),(2.305,6.13)), ) createRL( tech, net, 'difftap', - ((0.315,6.13),(0.315,9.115),(0.565,9.115),(0.565,6.13),(0.315,6.13)), + ((0.315,6.13),(0.315,9.17),(0.565,9.17),(0.565,6.13),(0.315,6.13)), ) createRL( tech, net, 'difftap', - ((1.245,6.13),(1.245,8.63),(1.395,8.63),(1.395,6.13),(1.245,6.13)), + ((1.5,6.13),(1.5,8.63),(1.75,8.63),(1.75,6.13),(1.5,6.13)), ) createRL( tech, net, 'difftap', - ((1.875,6.13),(1.875,8.63),(2.025,8.63),(2.025,6.13),(1.875,6.13)), + ((1.195,6.13),(1.195,8.63),(1.345,8.63),(1.345,6.13),(1.195,6.13)), ) createRL( tech, net, 'difftap', - ((1.395,6.13),(1.395,8.63),(1.645,8.63),(1.645,6.13),(1.395,6.13)), + ((1.345,6.13),(1.345,8.63),(1.595,8.63),(1.595,6.13),(1.345,6.13)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.76),(0.315,9.17),(0.565,9.17),(0.565,8.76),(0.315,8.76)), ) createRL( tech, net, 'difftap', - ((1.625,6.13),(1.625,8.63),(1.875,8.63),(1.875,6.13),(1.625,6.13)), + ((1.75,6.13),(1.75,8.63),(1.9,8.63),(1.9,6.13),(1.75,6.13)), ) createRL( tech, net, 'difftap', - ((0.615,6.13),(0.615,8.63),(0.765,8.63),(0.765,6.13),(0.615,6.13)), + ((0.64,6.13),(0.64,8.63),(0.79,8.63),(0.79,6.13),(0.64,6.13)), ) createRL( tech, net, 'difftap', - ((0.365,6.13),(0.365,8.63),(0.615,8.63),(0.615,6.13),(0.365,6.13)), + ((0.39,6.13),(0.39,8.63),(0.64,8.63),(0.64,6.13),(0.39,6.13)), ) createRL( tech, net, 'difftap', - ((1.445,8.815),(1.445,9.115),(1.695,9.115),(1.695,8.815),(1.445,8.815)), + ((1.42,8.76),(1.42,9.17),(1.67,9.17),(1.67,8.76),(1.42,8.76)), ) createRL( tech, net, 'difftap', - ((2.705,8.815),(2.705,9.115),(2.955,9.115),(2.955,8.815),(2.705,8.815)), + ((2.53,8.76),(2.53,9.17),(2.78,9.17),(2.78,8.76),(2.53,8.76)), ) createRL( tech, net, 'difftap', - ((2.705,6.13),(2.705,9.115),(2.955,9.115),(2.955,6.13),(2.705,6.13)), + ((2.53,6.13),(2.53,9.17),(2.78,9.17),(2.78,6.13),(2.53,6.13)), ) createRL( tech, net, 'difftap', - ((1.445,6.13),(1.445,9.115),(1.695,9.115),(1.695,6.13),(1.445,6.13)), + ((1.42,6.13),(1.42,9.17),(1.67,9.17),(1.67,6.13),(1.42,6.13)), ) createRL( tech, net, 'licon', - ((1.485,8.88),(1.485,9.05),(1.655,9.05),(1.655,8.88),(1.485,8.88)), + ((1.46,8.88),(1.46,9.05),(1.63,9.05),(1.63,8.88),(1.46,8.88)), ) createRL( tech, net, 'licon', @@ -27659,11 +27379,11 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.745,8.88),(2.745,9.05),(2.915,9.05),(2.915,8.88),(2.745,8.88)), + ((2.57,8.88),(2.57,9.05),(2.74,9.05),(2.74,8.88),(2.57,8.88)), ) createRL( tech, net, 'li', - ((1.485,8.8),(1.485,9.13),(1.655,9.13),(1.655,8.8),(1.485,8.8)), + ((1.46,8.8),(1.46,9.13),(1.63,9.13),(1.63,8.8),(1.46,8.8)), ) createRL( tech, net, 'li', @@ -27675,31 +27395,31 @@ def _load(): ) createRL( tech, net, 'li', - ((2.745,8.8),(2.745,9.13),(2.915,9.13),(2.915,8.8),(2.745,8.8)), + ((2.57,8.8),(2.57,9.13),(2.74,9.13),(2.74,8.8),(2.57,8.8)), ) createRL( tech, net, 'nwm', - ((2.525,8.635),(2.525,9.295),(3.135,9.295),(3.135,8.635),(2.525,8.635)), + ((0.21,5.95),(0.21,8.81),(1.22,8.81),(1.22,5.95),(0.21,5.95)), ) createRL( tech, net, 'nwm', - ((0.185,5.95),(0.185,8.81),(1.195,8.81),(1.195,5.95),(0.185,5.95)), + ((1.32,5.95),(1.32,8.81),(2.33,8.81),(2.33,5.95),(1.32,5.95)), ) createRL( tech, net, 'nwm', - ((1.445,5.95),(1.445,8.81),(2.455,8.81),(2.455,5.95),(1.445,5.95)), + ((0.765,5.95),(0.765,8.81),(1.775,8.81),(1.775,5.95),(0.765,5.95)), ) createRL( tech, net, 'nwm', - ((0.815,5.95),(0.815,8.81),(1.825,8.81),(1.825,5.95),(0.815,5.95)), + ((0.135,8.58),(0.135,9.35),(0.745,9.35),(0.745,8.58),(0.135,8.58)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,5.95),(0.135,9.35),(0.745,9.35),(0.745,5.95),(0.135,5.95)), ) createRL( tech, net, 'nwm', - ((0.135,5.95),(0.135,9.295),(0.745,9.295),(0.745,5.95),(0.135,5.95)), + ((1.875,5.95),(1.875,8.81),(2.885,8.81),(2.885,5.95),(1.875,5.95)), ) createRL( tech, net, 'nwm', @@ -27707,19 +27427,19 @@ def _load(): ) createRL( tech, net, 'nwm', - ((1.265,8.635),(1.265,9.295),(1.875,9.295),(1.875,8.635),(1.265,8.635)), + ((2.35,5.95),(2.35,9.35),(2.96,9.35),(2.96,5.95),(2.35,5.95)), ) createRL( tech, net, 'nwm', - ((1.265,5.95),(1.265,9.295),(1.875,9.295),(1.875,5.95),(1.265,5.95)), + ((1.24,8.58),(1.24,9.35),(1.85,9.35),(1.85,8.58),(1.24,8.58)), ) createRL( tech, net, 'nwm', - ((2.525,5.95),(2.525,9.295),(3.135,9.295),(3.135,5.95),(2.525,5.95)), + ((1.24,5.95),(1.24,9.35),(1.85,9.35),(1.85,5.95),(1.24,5.95)), ) createRL( tech, net, 'nwm', - ((2.075,5.95),(2.075,8.81),(3.085,8.81),(3.085,5.95),(2.075,5.95)), + ((2.35,8.58),(2.35,9.35),(2.96,9.35),(2.96,8.58),(2.35,8.58)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -27734,339 +27454,339 @@ def _load(): net = nets['int0'] createRL( tech, net, 'difftap', - ((0.995,1.37),(0.995,3.87),(1.245,3.87),(1.245,1.37),(0.995,1.37)), + ((0.945,1.37),(0.945,3.87),(1.195,3.87),(1.195,1.37),(0.945,1.37)), ) createRL( tech, net, 'difftap', - ((0.765,1.37),(0.765,3.87),(1.015,3.87),(1.015,1.37),(0.765,1.37)), + ((0.79,1.37),(0.79,3.87),(1.04,3.87),(1.04,1.37),(0.79,1.37)), ) net = nets['i0'] createRL( tech, net, 'poly', - ((0.615,4.0),(0.615,6.0),(0.765,6.0),(0.765,4.0),(0.615,4.0)), + ((0.64,4.0),(0.64,6.0),(0.79,6.0),(0.79,4.0),(0.64,4.0)), ) createRL( tech, net, 'poly', - ((0.615,1.24),(0.615,4.0),(0.765,4.0),(0.765,1.24),(0.615,1.24)), + ((0.64,1.24),(0.64,4.0),(0.79,4.0),(0.79,1.24),(0.64,1.24)), ) createRL( tech, net, 'poly', - ((0.345,4.635),(0.345,4.965),(0.615,4.965),(0.615,4.635),(0.345,4.635)), + ((0.445,4.635),(0.445,4.965),(0.715,4.965),(0.715,4.635),(0.445,4.635)), ) createRL( tech, net, 'poly', - ((0.615,6.0),(0.615,8.76),(0.765,8.76),(0.765,6.0),(0.615,6.0)), + ((0.64,6.0),(0.64,8.76),(0.79,8.76),(0.79,6.0),(0.64,6.0)), ) createRL( tech, net, 'licon', - ((0.395,4.715),(0.395,4.885),(0.565,4.885),(0.565,4.715),(0.395,4.715)), + ((0.495,4.715),(0.495,4.885),(0.665,4.885),(0.665,4.715),(0.495,4.715)), ) createRL( tech, net, 'li', - ((0.395,4.635),(0.395,4.965),(0.565,4.965),(0.565,4.635),(0.395,4.635)), + ((0.495,4.635),(0.495,4.965),(0.665,4.965),(0.665,4.635),(0.495,4.635)), ) createRL( tech, net, 'li', - ((0.395,1.37),(0.395,8.63),(0.565,8.63),(0.565,1.37),(0.395,1.37)), + ((0.495,1.37),(0.495,8.63),(0.665,8.63),(0.665,1.37),(0.495,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['nq'] createRL( tech, net, 'difftap', - ((2.04,6.13),(2.04,8.63),(2.29,8.63),(2.29,6.13),(2.04,6.13)), + ((0.805,6.13),(0.805,8.63),(1.055,8.63),(1.055,6.13),(0.805,6.13)), ) createRL( tech, net, 'difftap', - ((0.78,6.13),(0.78,8.63),(1.03,8.63),(1.03,6.13),(0.78,6.13)), + ((1.915,6.13),(1.915,8.63),(2.165,8.63),(2.165,6.13),(1.915,6.13)), ) createRL( tech, net, 'difftap', - ((2.67,1.37),(2.67,3.87),(2.92,3.87),(2.92,1.37),(2.67,1.37)), + ((2.47,1.37),(2.47,3.87),(2.72,3.87),(2.72,1.37),(2.47,1.37)), ) createRL( tech, net, 'difftap', - ((2.025,6.13),(2.025,8.63),(2.275,8.63),(2.275,6.13),(2.025,6.13)), + ((1.9,6.13),(1.9,8.63),(2.15,8.63),(2.15,6.13),(1.9,6.13)), ) createRL( tech, net, 'difftap', - ((0.765,6.13),(0.765,8.63),(1.015,8.63),(1.015,6.13),(0.765,6.13)), + ((0.79,6.13),(0.79,8.63),(1.04,8.63),(1.04,6.13),(0.79,6.13)), ) createRL( tech, net, 'difftap', - ((0.995,6.13),(0.995,8.63),(1.245,8.63),(1.245,6.13),(0.995,6.13)), + ((0.945,6.13),(0.945,8.63),(1.195,8.63),(1.195,6.13),(0.945,6.13)), ) createRL( tech, net, 'difftap', - ((2.655,1.37),(2.655,3.87),(2.905,3.87),(2.905,1.37),(2.655,1.37)), + ((2.455,1.37),(2.455,3.87),(2.705,3.87),(2.705,1.37),(2.455,1.37)), ) createRL( tech, net, 'difftap', - ((2.255,6.13),(2.255,8.63),(2.505,8.63),(2.505,6.13),(2.255,6.13)), + ((2.055,6.13),(2.055,8.63),(2.305,8.63),(2.305,6.13),(2.055,6.13)), ) createRL( tech, net, 'licon', - ((2.71,1.515),(2.71,1.685),(2.88,1.685),(2.88,1.515),(2.71,1.515)), + ((0.845,6.275),(0.845,6.445),(1.015,6.445),(1.015,6.275),(0.845,6.275)), ) createRL( tech, net, 'licon', - ((2.71,1.855),(2.71,2.025),(2.88,2.025),(2.88,1.855),(2.71,1.855)), + ((0.845,6.615),(0.845,6.785),(1.015,6.785),(1.015,6.615),(0.845,6.615)), ) createRL( tech, net, 'licon', - ((2.71,2.195),(2.71,2.365),(2.88,2.365),(2.88,2.195),(2.71,2.195)), + ((0.845,6.955),(0.845,7.125),(1.015,7.125),(1.015,6.955),(0.845,6.955)), ) createRL( tech, net, 'licon', - ((2.71,2.535),(2.71,2.705),(2.88,2.705),(2.88,2.535),(2.71,2.535)), + ((0.845,7.295),(0.845,7.465),(1.015,7.465),(1.015,7.295),(0.845,7.295)), ) createRL( tech, net, 'licon', - ((2.71,2.875),(2.71,3.045),(2.88,3.045),(2.88,2.875),(2.71,2.875)), + ((0.845,7.635),(0.845,7.805),(1.015,7.805),(1.015,7.635),(0.845,7.635)), ) createRL( tech, net, 'licon', - ((2.71,3.215),(2.71,3.385),(2.88,3.385),(2.88,3.215),(2.71,3.215)), + ((0.845,7.975),(0.845,8.145),(1.015,8.145),(1.015,7.975),(0.845,7.975)), ) createRL( tech, net, 'licon', - ((2.71,3.555),(2.71,3.725),(2.88,3.725),(2.88,3.555),(2.71,3.555)), + ((0.845,8.315),(0.845,8.485),(1.015,8.485),(1.015,8.315),(0.845,8.315)), ) createRL( tech, net, 'licon', - ((2.08,6.275),(2.08,6.445),(2.25,6.445),(2.25,6.275),(2.08,6.275)), + ((2.51,1.515),(2.51,1.685),(2.68,1.685),(2.68,1.515),(2.51,1.515)), ) createRL( tech, net, 'licon', - ((2.08,6.615),(2.08,6.785),(2.25,6.785),(2.25,6.615),(2.08,6.615)), + ((2.51,1.855),(2.51,2.025),(2.68,2.025),(2.68,1.855),(2.51,1.855)), ) createRL( tech, net, 'licon', - ((2.08,6.955),(2.08,7.125),(2.25,7.125),(2.25,6.955),(2.08,6.955)), + ((2.51,2.195),(2.51,2.365),(2.68,2.365),(2.68,2.195),(2.51,2.195)), ) createRL( tech, net, 'licon', - ((2.08,7.295),(2.08,7.465),(2.25,7.465),(2.25,7.295),(2.08,7.295)), + ((2.51,2.535),(2.51,2.705),(2.68,2.705),(2.68,2.535),(2.51,2.535)), ) createRL( tech, net, 'licon', - ((2.08,7.635),(2.08,7.805),(2.25,7.805),(2.25,7.635),(2.08,7.635)), + ((2.51,2.875),(2.51,3.045),(2.68,3.045),(2.68,2.875),(2.51,2.875)), ) createRL( tech, net, 'licon', - ((2.08,7.975),(2.08,8.145),(2.25,8.145),(2.25,7.975),(2.08,7.975)), + ((2.51,3.215),(2.51,3.385),(2.68,3.385),(2.68,3.215),(2.51,3.215)), ) createRL( tech, net, 'licon', - ((2.08,8.315),(2.08,8.485),(2.25,8.485),(2.25,8.315),(2.08,8.315)), + ((2.51,3.555),(2.51,3.725),(2.68,3.725),(2.68,3.555),(2.51,3.555)), ) createRL( tech, net, 'licon', - ((0.82,6.275),(0.82,6.445),(0.99,6.445),(0.99,6.275),(0.82,6.275)), + ((1.955,6.275),(1.955,6.445),(2.125,6.445),(2.125,6.275),(1.955,6.275)), ) createRL( tech, net, 'licon', - ((0.82,6.615),(0.82,6.785),(0.99,6.785),(0.99,6.615),(0.82,6.615)), + ((1.955,6.615),(1.955,6.785),(2.125,6.785),(2.125,6.615),(1.955,6.615)), ) createRL( tech, net, 'licon', - ((0.82,6.955),(0.82,7.125),(0.99,7.125),(0.99,6.955),(0.82,6.955)), + ((1.955,6.955),(1.955,7.125),(2.125,7.125),(2.125,6.955),(1.955,6.955)), ) createRL( tech, net, 'licon', - ((0.82,7.295),(0.82,7.465),(0.99,7.465),(0.99,7.295),(0.82,7.295)), + ((1.955,7.295),(1.955,7.465),(2.125,7.465),(2.125,7.295),(1.955,7.295)), ) createRL( tech, net, 'licon', - ((0.82,7.635),(0.82,7.805),(0.99,7.805),(0.99,7.635),(0.82,7.635)), + ((1.955,7.635),(1.955,7.805),(2.125,7.805),(2.125,7.635),(1.955,7.635)), ) createRL( tech, net, 'licon', - ((0.82,7.975),(0.82,8.145),(0.99,8.145),(0.99,7.975),(0.82,7.975)), + ((1.955,7.975),(1.955,8.145),(2.125,8.145),(2.125,7.975),(1.955,7.975)), ) createRL( tech, net, 'licon', - ((0.82,8.315),(0.82,8.485),(0.99,8.485),(0.99,8.315),(0.82,8.315)), + ((1.955,8.315),(1.955,8.485),(2.125,8.485),(2.125,8.315),(1.955,8.315)), ) createRL( tech, net, 'li', - ((2.08,6.19),(2.08,8.57),(2.25,8.57),(2.25,6.19),(2.08,6.19)), + ((2.51,1.43),(2.51,8.63),(2.68,8.63),(2.68,1.43),(2.51,1.43)), ) createRL( tech, net, 'li', - ((2.71,1.43),(2.71,8.63),(2.88,8.63),(2.88,1.43),(2.71,1.43)), + ((0.845,6.19),(0.845,8.57),(2.68,8.57),(2.68,6.19),(0.845,6.19)), ) createRL( tech, net, 'li', - ((0.82,6.19),(0.82,8.57),(2.88,8.57),(2.88,6.19),(0.82,6.19)), + ((0.845,6.19),(0.845,8.57),(1.015,8.57),(1.015,6.19),(0.845,6.19)), ) createRL( tech, net, 'li', - ((0.82,6.19),(0.82,8.57),(0.99,8.57),(0.99,6.19),(0.82,6.19)), + ((1.955,6.19),(1.955,8.57),(2.125,8.57),(2.125,6.19),(1.955,6.19)), ) createRL( tech, net, 'li', - ((2.71,1.43),(2.71,3.81),(2.88,3.81),(2.88,1.43),(2.71,1.43)), + ((2.51,1.43),(2.51,3.81),(2.68,3.81),(2.68,1.43),(2.51,1.43)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.795), u(0.17), u(1.43), u(8.63), + u(2.595), u(0.17), u(1.43), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.795), u(0.17), u(1.43), u(8.63), + u(2.595), u(0.17), u(1.43), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['nwm'] createRL( tech, net, 'nwm', - ((1.86,5.95),(1.86,8.81),(2.47,8.81),(2.47,5.95),(1.86,5.95)), + ((1.735,5.95),(1.735,8.81),(2.345,8.81),(2.345,5.95),(1.735,5.95)), ) createRL( tech, net, 'nwm', - ((0.6,5.95),(0.6,8.81),(1.21,8.81),(1.21,5.95),(0.6,5.95)), + ((0.625,5.95),(0.625,8.81),(1.235,8.81),(1.235,5.95),(0.625,5.95)), ) net = nets['int1'] createRL( tech, net, 'difftap', - ((1.395,1.37),(1.395,3.87),(1.645,3.87),(1.645,1.37),(1.395,1.37)), + ((1.345,1.37),(1.345,3.87),(1.595,3.87),(1.595,1.37),(1.345,1.37)), ) createRL( tech, net, 'difftap', - ((1.625,1.37),(1.625,3.87),(1.875,3.87),(1.875,1.37),(1.625,1.37)), + ((1.5,1.37),(1.5,3.87),(1.75,3.87),(1.75,1.37),(1.5,1.37)), ) net = nets['i1'] createRL( tech, net, 'poly', - ((1.245,1.24),(1.245,4.0),(1.395,4.0),(1.395,1.24),(1.245,1.24)), + ((1.195,1.24),(1.195,4.0),(1.345,4.0),(1.345,1.24),(1.195,1.24)), ) createRL( tech, net, 'poly', - ((1.245,4.0),(1.245,6.0),(1.395,6.0),(1.395,4.0),(1.245,4.0)), + ((1.195,4.0),(1.195,6.0),(1.345,6.0),(1.345,4.0),(1.195,4.0)), ) createRL( tech, net, 'poly', - ((0.975,4.635),(0.975,4.965),(1.245,4.965),(1.245,4.635),(0.975,4.635)), + ((1.0,4.635),(1.0,4.965),(1.27,4.965),(1.27,4.635),(1.0,4.635)), ) createRL( tech, net, 'poly', - ((1.245,6.0),(1.245,8.76),(1.395,8.76),(1.395,6.0),(1.245,6.0)), + ((1.195,6.0),(1.195,8.76),(1.345,8.76),(1.345,6.0),(1.195,6.0)), ) createRL( tech, net, 'licon', - ((1.025,4.715),(1.025,4.885),(1.195,4.885),(1.195,4.715),(1.025,4.715)), + ((1.05,4.715),(1.05,4.885),(1.22,4.885),(1.22,4.715),(1.05,4.715)), ) createRL( tech, net, 'li', - ((1.025,4.635),(1.025,4.965),(1.195,4.965),(1.195,4.635),(1.025,4.635)), + ((1.05,4.635),(1.05,4.965),(1.22,4.965),(1.22,4.635),(1.05,4.635)), ) createRL( tech, net, 'li', - ((1.025,1.37),(1.025,5.96),(1.195,5.96),(1.195,1.37),(1.025,1.37)), + ((1.05,1.37),(1.05,5.96),(1.22,5.96),(1.22,1.37),(1.05,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.11), u(0.17), u(1.37), u(5.96), + u(1.135), u(0.17), u(1.37), u(5.96), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.11), u(0.17), u(1.37), u(5.96), + u(1.135), u(0.17), u(1.37), u(5.96), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int2'] createRL( tech, net, 'difftap', - ((2.025,1.37),(2.025,3.87),(2.275,3.87),(2.275,1.37),(2.025,1.37)), + ((1.9,1.37),(1.9,3.87),(2.15,3.87),(2.15,1.37),(1.9,1.37)), ) createRL( tech, net, 'difftap', - ((2.255,1.37),(2.255,3.87),(2.505,3.87),(2.505,1.37),(2.255,1.37)), + ((2.055,1.37),(2.055,3.87),(2.305,3.87),(2.305,1.37),(2.055,1.37)), ) net = nets['i2'] createRL( tech, net, 'poly', - ((1.875,6.0),(1.875,8.76),(2.025,8.76),(2.025,6.0),(1.875,6.0)), + ((1.75,1.24),(1.75,4.0),(1.9,4.0),(1.9,1.24),(1.75,1.24)), ) createRL( tech, net, 'poly', - ((1.605,4.635),(1.605,4.965),(1.875,4.965),(1.875,4.635),(1.605,4.635)), + ((1.555,4.635),(1.555,4.965),(1.825,4.965),(1.825,4.635),(1.555,4.635)), ) createRL( tech, net, 'poly', - ((1.875,4.0),(1.875,6.0),(2.025,6.0),(2.025,4.0),(1.875,4.0)), + ((1.75,4.0),(1.75,6.0),(1.9,6.0),(1.9,4.0),(1.75,4.0)), ) createRL( tech, net, 'poly', - ((1.875,1.24),(1.875,4.0),(2.025,4.0),(2.025,1.24),(1.875,1.24)), + ((1.75,6.0),(1.75,8.76),(1.9,8.76),(1.9,6.0),(1.75,6.0)), ) createRL( tech, net, 'licon', - ((1.655,4.715),(1.655,4.885),(1.825,4.885),(1.825,4.715),(1.655,4.715)), + ((1.605,4.715),(1.605,4.885),(1.775,4.885),(1.775,4.715),(1.605,4.715)), ) createRL( tech, net, 'li', - ((1.655,4.635),(1.655,4.965),(1.825,4.965),(1.825,4.635),(1.655,4.635)), + ((1.605,4.635),(1.605,4.965),(1.775,4.965),(1.775,4.635),(1.605,4.635)), ) createRL( tech, net, 'li', - ((1.655,1.37),(1.655,5.96),(1.825,5.96),(1.825,1.37),(1.655,1.37)), + ((1.605,1.37),(1.605,5.96),(1.775,5.96),(1.775,1.37),(1.605,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.74), u(0.17), u(1.37), u(5.96), + u(1.69), u(0.17), u(1.37), u(5.96), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.74), u(0.17), u(1.37), u(5.96), + u(1.69), u(0.17), u(1.37), u(5.96), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['i3'] createRL( tech, net, 'poly', - ((2.505,6.0),(2.505,8.76),(2.655,8.76),(2.655,6.0),(2.505,6.0)), + ((2.305,6.0),(2.305,8.76),(2.455,8.76),(2.455,6.0),(2.305,6.0)), ) createRL( tech, net, 'poly', - ((2.505,4.0),(2.505,6.0),(2.655,6.0),(2.655,4.0),(2.505,4.0)), + ((2.305,4.0),(2.305,6.0),(2.455,6.0),(2.455,4.0),(2.305,4.0)), ) createRL( tech, net, 'poly', - ((2.505,1.24),(2.505,4.0),(2.655,4.0),(2.655,1.24),(2.505,1.24)), + ((2.305,1.24),(2.305,4.0),(2.455,4.0),(2.455,1.24),(2.305,1.24)), ) createRL( tech, net, 'poly', - ((2.235,4.635),(2.235,4.965),(2.505,4.965),(2.505,4.635),(2.235,4.635)), + ((2.11,4.635),(2.11,4.965),(2.38,4.965),(2.38,4.635),(2.11,4.635)), ) createRL( tech, net, 'licon', - ((2.285,4.715),(2.285,4.885),(2.455,4.885),(2.455,4.715),(2.285,4.715)), + ((2.16,4.715),(2.16,4.885),(2.33,4.885),(2.33,4.715),(2.16,4.715)), ) createRL( tech, net, 'li', - ((2.285,1.37),(2.285,5.96),(2.455,5.96),(2.455,1.37),(2.285,1.37)), + ((2.16,1.37),(2.16,5.96),(2.33,5.96),(2.33,1.37),(2.16,1.37)), ) createRL( tech, net, 'li', - ((2.285,4.635),(2.285,4.965),(2.455,4.965),(2.455,4.635),(2.285,4.635)), + ((2.16,4.635),(2.16,4.965),(2.33,4.965),(2.33,4.635),(2.16,4.635)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.37), u(0.17), u(1.37), u(5.96), + u(2.245), u(0.17), u(1.37), u(5.96), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.37), u(0.17), u(1.37), u(5.96), + u(2.245), u(0.17), u(1.37), u(5.96), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -28085,32 +27805,32 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,2.37),(0.565,2.37),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,2.37),(0.565,2.37),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,1.24),(0.565,1.24),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((0.365,1.37),(0.365,2.37),(0.615,2.37),(0.615,1.37),(0.365,1.37)), + ((0.39,1.37),(0.39,2.37),(0.64,2.37),(0.64,1.37),(0.39,1.37)), ) createRL( tech, net, 'difftap', - ((1.245,1.37),(1.245,2.37),(1.395,2.37),(1.395,1.37),(1.245,1.37)), + ((1.195,1.37),(1.195,2.37),(1.345,2.37),(1.345,1.37),(1.195,1.37)), ) createRL( tech, net, 'difftap', - ((1.395,1.37),(1.395,2.37),(1.645,2.37),(1.645,1.37),(1.395,1.37)), + ((1.345,1.37),(1.345,2.37),(1.595,2.37),(1.595,1.37),(1.345,1.37)), ) createRL( tech, net, 'difftap', - ((0.615,1.37),(0.615,2.37),(0.765,2.37),(0.765,1.37),(0.615,1.37)), + ((0.64,1.37),(0.64,2.37),(0.79,2.37),(0.79,1.37),(0.64,1.37)), ) createRL( tech, net, 'licon', @@ -28137,100 +27857,100 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((1.32,0.76),(1.32,1.31),(1.82,1.31),(1.82,0.76),(1.32,0.76)), + ((1.295,0.705),(1.295,1.365),(1.795,1.365),(1.795,0.705),(1.295,0.705)), ) createRL( tech, net, 'nsdm', - ((0.87,1.245),(0.87,2.495),(1.77,2.495),(1.77,1.245),(0.87,1.245)), + ((0.265,1.245),(0.265,2.495),(1.165,2.495),(1.165,1.245),(0.265,1.245)), ) createRL( tech, net, 'nsdm', - ((0.655,1.245),(0.655,2.495),(1.155,2.495),(1.155,1.245),(0.655,1.245)), + ((0.68,1.245),(0.68,2.495),(1.18,2.495),(1.18,1.245),(0.68,1.245)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,2.495),(0.69,2.495),(0.69,0.76),(0.19,0.76)), + ((0.19,0.705),(0.19,2.495),(0.69,2.495),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.24,1.245),(0.24,2.495),(1.14,2.495),(1.14,1.245),(0.24,1.245)), + ((0.82,1.245),(0.82,2.495),(1.72,2.495),(1.72,1.245),(0.82,1.245)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((0.19,0.705),(0.19,1.365),(0.69,1.365),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((1.175,1.3),(1.175,2.44),(1.465,2.44),(1.465,1.3),(1.175,1.3)), + ((1.125,1.3),(1.125,2.44),(1.415,2.44),(1.415,1.3),(1.125,1.3)), ) createRL( tech, net, 'nsdm', - ((1.32,0.76),(1.32,2.495),(1.82,2.495),(1.82,0.76),(1.32,0.76)), + ((1.295,0.705),(1.295,2.495),(1.795,2.495),(1.795,0.705),(1.295,0.705)), ) createRL( tech, net, 'nsdm', - ((0.545,1.3),(0.545,2.44),(0.835,2.44),(0.835,1.3),(0.545,1.3)), + ((0.57,1.3),(0.57,2.44),(0.86,2.44),(0.86,1.3),(0.57,1.3)), ) createRL( tech, net, 'psdm', - ((0.545,5.56),(0.545,8.7),(0.835,8.7),(0.835,5.56),(0.545,5.56)), + ((0.57,5.56),(0.57,8.7),(0.86,8.7),(0.86,5.56),(0.57,5.56)), ) createRL( tech, net, 'psdm', - ((0.87,5.505),(0.87,8.755),(1.77,8.755),(1.77,5.505),(0.87,5.505)), + ((0.82,5.505),(0.82,8.755),(1.72,8.755),(1.72,5.505),(0.82,5.505)), ) createRL( tech, net, 'psdm', - ((1.175,5.56),(1.175,8.7),(1.465,8.7),(1.465,5.56),(1.175,5.56)), + ((1.125,5.56),(1.125,8.7),(1.415,8.7),(1.415,5.56),(1.125,5.56)), ) createRL( tech, net, 'psdm', - ((0.24,5.505),(0.24,8.755),(1.14,8.755),(1.14,5.505),(0.24,5.505)), + ((0.265,5.505),(0.265,8.755),(1.165,8.755),(1.165,5.505),(0.265,5.505)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.635),(0.19,9.295),(0.69,9.295),(0.69,8.635),(0.19,8.635)), ) createRL( tech, net, 'psdm', - ((0.19,5.505),(0.19,9.24),(0.69,9.24),(0.69,5.505),(0.19,5.505)), + ((0.19,5.505),(0.19,9.295),(0.69,9.295),(0.69,5.505),(0.19,5.505)), ) createRL( tech, net, 'psdm', - ((1.285,5.505),(1.285,8.755),(1.785,8.755),(1.785,5.505),(1.285,5.505)), + ((1.235,5.505),(1.235,8.755),(1.735,8.755),(1.735,5.505),(1.235,5.505)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((1.445,0.885),(1.445,1.185),(1.695,1.185),(1.695,0.885),(1.445,0.885)), + ((1.42,0.83),(1.42,1.24),(1.67,1.24),(1.67,0.83),(1.42,0.83)), ) createRL( tech, net, 'difftap', - ((0.365,5.63),(0.365,8.63),(0.615,8.63),(0.615,5.63),(0.365,5.63)), + ((0.64,5.63),(0.64,8.63),(0.79,8.63),(0.79,5.63),(0.64,5.63)), ) createRL( tech, net, 'difftap', - ((0.615,5.63),(0.615,8.63),(0.765,8.63),(0.765,5.63),(0.615,5.63)), + ((0.39,5.63),(0.39,8.63),(0.64,8.63),(0.64,5.63),(0.39,5.63)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.76),(0.315,9.17),(0.565,9.17),(0.565,8.76),(0.315,8.76)), ) createRL( tech, net, 'difftap', - ((0.315,5.63),(0.315,9.115),(0.565,9.115),(0.565,5.63),(0.315,5.63)), + ((0.315,5.63),(0.315,9.17),(0.565,9.17),(0.565,5.63),(0.315,5.63)), ) createRL( tech, net, 'difftap', - ((1.245,5.63),(1.245,8.63),(1.395,8.63),(1.395,5.63),(1.245,5.63)), + ((1.195,5.63),(1.195,8.63),(1.345,8.63),(1.345,5.63),(1.195,5.63)), ) createRL( tech, net, 'difftap', - ((1.445,0.885),(1.445,2.37),(1.695,2.37),(1.695,0.885),(1.445,0.885)), + ((1.42,0.83),(1.42,2.37),(1.67,2.37),(1.67,0.83),(1.42,0.83)), ) createRL( tech, net, 'licon', - ((1.485,0.95),(1.485,1.12),(1.655,1.12),(1.655,0.95),(1.485,0.95)), + ((1.46,0.95),(1.46,1.12),(1.63,1.12),(1.63,0.95),(1.46,0.95)), ) createRL( tech, net, 'licon', @@ -28238,7 +27958,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.485,0.87),(1.485,1.2),(1.655,1.2),(1.655,0.87),(1.485,0.87)), + ((1.46,0.87),(1.46,1.2),(1.63,1.2),(1.63,0.87),(1.46,0.87)), ) createRL( tech, net, 'li', @@ -28250,23 +27970,23 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.815,5.45),(0.815,8.81),(1.825,8.81),(1.825,5.45),(0.815,5.45)), + ((0.765,5.45),(0.765,8.81),(1.775,8.81),(1.775,5.45),(0.765,5.45)), ) createRL( tech, net, 'nwm', - ((1.23,5.45),(1.23,8.81),(1.84,8.81),(1.84,5.45),(1.23,5.45)), + ((1.18,5.45),(1.18,8.81),(1.79,8.81),(1.79,5.45),(1.18,5.45)), ) createRL( tech, net, 'nwm', - ((0.185,5.45),(0.185,8.81),(1.195,8.81),(1.195,5.45),(0.185,5.45)), + ((0.21,5.45),(0.21,8.81),(1.22,8.81),(1.22,5.45),(0.21,5.45)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.58),(0.135,9.35),(0.745,9.35),(0.745,8.58),(0.135,8.58)), ) createRL( tech, net, 'nwm', - ((0.135,5.45),(0.135,9.295),(0.745,9.295),(0.745,5.45),(0.135,5.45)), + ((0.135,5.45),(0.135,9.35),(0.745,9.35),(0.745,5.45),(0.135,5.45)), ) createRL( tech, net, 'nwm', @@ -28285,174 +28005,174 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,1.37),(0.78,2.37),(1.03,2.37),(1.03,1.37),(0.78,1.37)), + ((0.805,1.37),(0.805,2.37),(1.055,2.37),(1.055,1.37),(0.805,1.37)), ) createRL( tech, net, 'difftap', - ((1.41,5.63),(1.41,8.63),(1.66,8.63),(1.66,5.63),(1.41,5.63)), + ((1.36,5.63),(1.36,8.63),(1.61,8.63),(1.61,5.63),(1.36,5.63)), ) createRL( tech, net, 'difftap', - ((0.765,1.37),(0.765,2.37),(1.015,2.37),(1.015,1.37),(0.765,1.37)), + ((0.79,1.37),(0.79,2.37),(1.04,2.37),(1.04,1.37),(0.79,1.37)), ) createRL( tech, net, 'difftap', - ((1.395,5.63),(1.395,8.63),(1.645,8.63),(1.645,5.63),(1.395,5.63)), + ((1.345,5.63),(1.345,8.63),(1.595,8.63),(1.595,5.63),(1.345,5.63)), ) createRL( tech, net, 'difftap', - ((0.995,1.37),(0.995,2.37),(1.245,2.37),(1.245,1.37),(0.995,1.37)), + ((0.945,1.37),(0.945,2.37),(1.195,2.37),(1.195,1.37),(0.945,1.37)), ) createRL( tech, net, 'licon', - ((0.82,1.615),(0.82,1.785),(0.99,1.785),(0.99,1.615),(0.82,1.615)), + ((0.845,1.615),(0.845,1.785),(1.015,1.785),(1.015,1.615),(0.845,1.615)), ) createRL( tech, net, 'licon', - ((0.82,1.955),(0.82,2.125),(0.99,2.125),(0.99,1.955),(0.82,1.955)), + ((0.845,1.955),(0.845,2.125),(1.015,2.125),(1.015,1.955),(0.845,1.955)), ) createRL( tech, net, 'licon', - ((1.45,5.855),(1.45,6.025),(1.62,6.025),(1.62,5.855),(1.45,5.855)), + ((1.4,5.855),(1.4,6.025),(1.57,6.025),(1.57,5.855),(1.4,5.855)), ) createRL( tech, net, 'licon', - ((1.45,6.195),(1.45,6.365),(1.62,6.365),(1.62,6.195),(1.45,6.195)), + ((1.4,6.195),(1.4,6.365),(1.57,6.365),(1.57,6.195),(1.4,6.195)), ) createRL( tech, net, 'licon', - ((1.45,6.535),(1.45,6.705),(1.62,6.705),(1.62,6.535),(1.45,6.535)), + ((1.4,6.535),(1.4,6.705),(1.57,6.705),(1.57,6.535),(1.4,6.535)), ) createRL( tech, net, 'licon', - ((1.45,6.875),(1.45,7.045),(1.62,7.045),(1.62,6.875),(1.45,6.875)), + ((1.4,6.875),(1.4,7.045),(1.57,7.045),(1.57,6.875),(1.4,6.875)), ) createRL( tech, net, 'licon', - ((1.45,7.215),(1.45,7.385),(1.62,7.385),(1.62,7.215),(1.45,7.215)), + ((1.4,7.215),(1.4,7.385),(1.57,7.385),(1.57,7.215),(1.4,7.215)), ) createRL( tech, net, 'licon', - ((1.45,7.555),(1.45,7.725),(1.62,7.725),(1.62,7.555),(1.45,7.555)), + ((1.4,7.555),(1.4,7.725),(1.57,7.725),(1.57,7.555),(1.4,7.555)), ) createRL( tech, net, 'licon', - ((1.45,7.895),(1.45,8.065),(1.62,8.065),(1.62,7.895),(1.45,7.895)), + ((1.4,7.895),(1.4,8.065),(1.57,8.065),(1.57,7.895),(1.4,7.895)), ) createRL( tech, net, 'licon', - ((1.45,8.235),(1.45,8.405),(1.62,8.405),(1.62,8.235),(1.45,8.235)), + ((1.4,8.235),(1.4,8.405),(1.57,8.405),(1.57,8.235),(1.4,8.235)), ) createRL( tech, net, 'li', - ((1.45,5.77),(1.45,8.49),(1.62,8.49),(1.62,5.77),(1.45,5.77)), + ((1.4,5.77),(1.4,8.49),(1.57,8.49),(1.57,5.77),(1.4,5.77)), ) createRL( tech, net, 'li', - ((0.82,1.535),(0.82,2.205),(1.62,2.205),(1.62,1.535),(0.82,1.535)), + ((0.845,1.535),(0.845,2.205),(1.015,2.205),(1.015,1.535),(0.845,1.535)), ) createRL( tech, net, 'li', - ((0.82,1.535),(0.82,2.205),(0.99,2.205),(0.99,1.535),(0.82,1.535)), + ((0.845,1.535),(0.845,2.205),(1.57,2.205),(1.57,1.535),(0.845,1.535)), ) createRL( tech, net, 'li', - ((1.45,1.37),(1.45,8.49),(1.62,8.49),(1.62,1.37),(1.45,1.37)), + ((1.4,1.37),(1.4,8.49),(1.57,8.49),(1.57,1.37),(1.4,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.535), u(0.17), u(1.37), u(8.49), + u(1.485), u(0.17), u(1.37), u(8.49), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.535), u(0.17), u(1.37), u(8.49), + u(1.485), u(0.17), u(1.37), u(8.49), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['i0'] createRL( tech, net, 'poly', - ((0.615,5.5),(0.615,8.76),(0.765,8.76),(0.765,5.5),(0.615,5.5)), + ((0.64,5.5),(0.64,8.76),(0.79,8.76),(0.79,5.5),(0.64,5.5)), ) createRL( tech, net, 'poly', - ((0.345,4.635),(0.345,4.965),(0.615,4.965),(0.615,4.635),(0.345,4.635)), + ((0.445,4.635),(0.445,4.965),(0.715,4.965),(0.715,4.635),(0.445,4.635)), ) createRL( tech, net, 'poly', - ((0.615,1.24),(0.615,2.5),(0.765,2.5),(0.765,1.24),(0.615,1.24)), + ((0.64,1.24),(0.64,2.5),(0.79,2.5),(0.79,1.24),(0.64,1.24)), ) createRL( tech, net, 'poly', - ((0.615,2.5),(0.615,5.5),(0.765,5.5),(0.765,2.5),(0.615,2.5)), + ((0.64,2.5),(0.64,5.5),(0.79,5.5),(0.79,2.5),(0.64,2.5)), ) createRL( tech, net, 'licon', - ((0.395,4.715),(0.395,4.885),(0.565,4.885),(0.565,4.715),(0.395,4.715)), + ((0.495,4.715),(0.495,4.885),(0.665,4.885),(0.665,4.715),(0.495,4.715)), ) createRL( tech, net, 'li', - ((0.395,4.635),(0.395,4.965),(0.565,4.965),(0.565,4.635),(0.395,4.635)), + ((0.495,4.635),(0.495,4.965),(0.665,4.965),(0.665,4.635),(0.495,4.635)), ) createRL( tech, net, 'li', - ((0.395,1.37),(0.395,8.63),(0.565,8.63),(0.565,1.37),(0.395,1.37)), + ((0.495,1.37),(0.495,8.63),(0.665,8.63),(0.665,1.37),(0.495,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int0'] createRL( tech, net, 'difftap', - ((0.765,5.63),(0.765,8.63),(1.015,8.63),(1.015,5.63),(0.765,5.63)), + ((0.79,5.63),(0.79,8.63),(1.04,8.63),(1.04,5.63),(0.79,5.63)), ) createRL( tech, net, 'difftap', - ((0.995,5.63),(0.995,8.63),(1.245,8.63),(1.245,5.63),(0.995,5.63)), + ((0.945,5.63),(0.945,8.63),(1.195,8.63),(1.195,5.63),(0.945,5.63)), ) net = nets['i1'] createRL( tech, net, 'poly', - ((1.245,5.5),(1.245,8.76),(1.395,8.76),(1.395,5.5),(1.245,5.5)), + ((1.195,5.5),(1.195,8.76),(1.345,8.76),(1.345,5.5),(1.195,5.5)), ) createRL( tech, net, 'poly', - ((0.975,4.635),(0.975,4.965),(1.245,4.965),(1.245,4.635),(0.975,4.635)), + ((1.0,4.635),(1.0,4.965),(1.27,4.965),(1.27,4.635),(1.0,4.635)), ) createRL( tech, net, 'poly', - ((1.245,1.24),(1.245,2.5),(1.395,2.5),(1.395,1.24),(1.245,1.24)), + ((1.195,1.24),(1.195,2.5),(1.345,2.5),(1.345,1.24),(1.195,1.24)), ) createRL( tech, net, 'poly', - ((1.245,2.5),(1.245,5.5),(1.395,5.5),(1.395,2.5),(1.245,2.5)), + ((1.195,2.5),(1.195,5.5),(1.345,5.5),(1.345,2.5),(1.195,2.5)), ) createRL( tech, net, 'licon', - ((1.025,4.715),(1.025,4.885),(1.195,4.885),(1.195,4.715),(1.025,4.715)), + ((1.05,4.715),(1.05,4.885),(1.22,4.885),(1.22,4.715),(1.05,4.715)), ) createRL( tech, net, 'li', - ((1.025,4.635),(1.025,4.965),(1.195,4.965),(1.195,4.635),(1.025,4.635)), + ((1.05,4.635),(1.05,4.965),(1.22,4.965),(1.22,4.635),(1.05,4.635)), ) createRL( tech, net, 'li', - ((1.025,2.54),(1.025,8.63),(1.195,8.63),(1.195,2.54),(1.025,2.54)), + ((1.05,2.54),(1.05,8.63),(1.22,8.63),(1.22,2.54),(1.05,2.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.11), u(0.17), u(2.54), u(8.63), + u(1.135), u(0.17), u(2.54), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.11), u(0.17), u(2.54), u(8.63), + u(1.135), u(0.17), u(2.54), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -28473,40 +28193,40 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,2.37),(0.565,2.37),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,2.37),(0.565,2.37),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((1.875,1.37),(1.875,2.37),(2.025,2.37),(2.025,1.37),(1.875,1.37)), + ((0.315,0.83),(0.315,1.24),(0.565,1.24),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((1.345,1.37),(1.345,2.37),(1.595,2.37),(1.595,1.37),(1.345,1.37)), ) createRL( tech, net, 'difftap', - ((1.395,1.37),(1.395,2.37),(1.645,2.37),(1.645,1.37),(1.395,1.37)), + ((1.195,1.37),(1.195,2.37),(1.345,2.37),(1.345,1.37),(1.195,1.37)), ) createRL( tech, net, 'difftap', - ((1.245,1.37),(1.245,2.37),(1.395,2.37),(1.395,1.37),(1.245,1.37)), + ((0.64,1.37),(0.64,2.37),(0.79,2.37),(0.79,1.37),(0.64,1.37)), ) createRL( tech, net, 'difftap', - ((0.615,1.37),(0.615,2.37),(0.765,2.37),(0.765,1.37),(0.615,1.37)), + ((1.5,1.37),(1.5,2.37),(1.75,2.37),(1.75,1.37),(1.5,1.37)), ) createRL( tech, net, 'difftap', - ((1.625,1.37),(1.625,2.37),(1.875,2.37),(1.875,1.37),(1.625,1.37)), + ((1.75,1.37),(1.75,2.37),(1.9,2.37),(1.9,1.37),(1.75,1.37)), ) createRL( tech, net, 'difftap', - ((0.365,1.37),(0.365,2.37),(0.615,2.37),(0.615,1.37),(0.365,1.37)), + ((0.39,1.37),(0.39,2.37),(0.64,2.37),(0.64,1.37),(0.39,1.37)), ) createRL( tech, net, 'licon', @@ -28533,124 +28253,124 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((1.32,0.76),(1.32,1.31),(1.82,1.31),(1.82,0.76),(1.32,0.76)), + ((1.295,0.705),(1.295,1.365),(1.795,1.365),(1.795,0.705),(1.295,0.705)), ) createRL( tech, net, 'nsdm', - ((0.87,1.245),(0.87,2.495),(1.77,2.495),(1.77,1.245),(0.87,1.245)), + ((0.265,1.245),(0.265,2.495),(1.165,2.495),(1.165,1.245),(0.265,1.245)), ) createRL( tech, net, 'nsdm', - ((0.655,1.245),(0.655,2.495),(1.155,2.495),(1.155,1.245),(0.655,1.245)), + ((0.68,1.245),(0.68,2.495),(1.18,2.495),(1.18,1.245),(0.68,1.245)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,2.495),(0.69,2.495),(0.69,0.76),(0.19,0.76)), + ((0.19,0.705),(0.19,2.495),(0.69,2.495),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.24,1.245),(0.24,2.495),(1.14,2.495),(1.14,1.245),(0.24,1.245)), + ((0.82,1.245),(0.82,2.495),(1.72,2.495),(1.72,1.245),(0.82,1.245)), ) createRL( tech, net, 'nsdm', - ((1.5,1.245),(1.5,2.495),(2.4,2.495),(2.4,1.245),(1.5,1.245)), + ((1.375,1.245),(1.375,2.495),(2.275,2.495),(2.275,1.245),(1.375,1.245)), ) createRL( tech, net, 'nsdm', - ((1.805,1.3),(1.805,2.44),(2.095,2.44),(2.095,1.3),(1.805,1.3)), + ((1.79,1.245),(1.79,2.495),(2.29,2.495),(2.29,1.245),(1.79,1.245)), ) createRL( tech, net, 'nsdm', - ((1.915,1.245),(1.915,2.495),(2.415,2.495),(2.415,1.245),(1.915,1.245)), + ((0.19,0.705),(0.19,1.365),(0.69,1.365),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((1.125,1.3),(1.125,2.44),(1.415,2.44),(1.415,1.3),(1.125,1.3)), ) createRL( tech, net, 'nsdm', - ((1.175,1.3),(1.175,2.44),(1.465,2.44),(1.465,1.3),(1.175,1.3)), + ((1.68,1.3),(1.68,2.44),(1.97,2.44),(1.97,1.3),(1.68,1.3)), ) createRL( tech, net, 'nsdm', - ((1.32,0.76),(1.32,2.495),(1.82,2.495),(1.82,0.76),(1.32,0.76)), + ((1.295,0.705),(1.295,2.495),(1.795,2.495),(1.795,0.705),(1.295,0.705)), ) createRL( tech, net, 'nsdm', - ((0.545,1.3),(0.545,2.44),(0.835,2.44),(0.835,1.3),(0.545,1.3)), + ((0.57,1.3),(0.57,2.44),(0.86,2.44),(0.86,1.3),(0.57,1.3)), ) createRL( tech, net, 'psdm', - ((0.545,5.56),(0.545,8.7),(0.835,8.7),(0.835,5.56),(0.545,5.56)), + ((0.57,5.56),(0.57,8.7),(0.86,8.7),(0.86,5.56),(0.57,5.56)), ) createRL( tech, net, 'psdm', - ((0.24,5.505),(0.24,8.755),(1.14,8.755),(1.14,5.505),(0.24,5.505)), + ((0.265,5.505),(0.265,8.755),(1.165,8.755),(1.165,5.505),(0.265,5.505)), ) createRL( tech, net, 'psdm', - ((1.175,5.56),(1.175,8.7),(1.465,8.7),(1.465,5.56),(1.175,5.56)), + ((1.125,5.56),(1.125,8.7),(1.415,8.7),(1.415,5.56),(1.125,5.56)), ) createRL( tech, net, 'psdm', - ((0.87,5.505),(0.87,8.755),(1.77,8.755),(1.77,5.505),(0.87,5.505)), + ((0.82,5.505),(0.82,8.755),(1.72,8.755),(1.72,5.505),(0.82,5.505)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.635),(0.19,9.295),(0.69,9.295),(0.69,8.635),(0.19,8.635)), ) createRL( tech, net, 'psdm', - ((0.19,5.505),(0.19,9.24),(0.69,9.24),(0.69,5.505),(0.19,5.505)), + ((0.19,5.505),(0.19,9.295),(0.69,9.295),(0.69,5.505),(0.19,5.505)), ) createRL( tech, net, 'psdm', - ((1.805,5.56),(1.805,8.7),(2.095,8.7),(2.095,5.56),(1.805,5.56)), + ((1.68,5.56),(1.68,8.7),(1.97,8.7),(1.97,5.56),(1.68,5.56)), ) createRL( tech, net, 'psdm', - ((1.5,5.505),(1.5,8.755),(2.4,8.755),(2.4,5.505),(1.5,5.505)), + ((1.375,5.505),(1.375,8.755),(2.275,8.755),(2.275,5.505),(1.375,5.505)), ) createRL( tech, net, 'psdm', - ((1.915,5.505),(1.915,8.755),(2.415,8.755),(2.415,5.505),(1.915,5.505)), + ((1.79,5.505),(1.79,8.755),(2.29,8.755),(2.29,5.505),(1.79,5.505)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((1.445,0.885),(1.445,1.185),(1.695,1.185),(1.695,0.885),(1.445,0.885)), + ((1.42,0.83),(1.42,1.24),(1.67,1.24),(1.67,0.83),(1.42,0.83)), ) createRL( tech, net, 'difftap', - ((0.365,5.63),(0.365,8.63),(0.615,8.63),(0.615,5.63),(0.365,5.63)), + ((0.64,5.63),(0.64,8.63),(0.79,8.63),(0.79,5.63),(0.64,5.63)), ) createRL( tech, net, 'difftap', - ((0.615,5.63),(0.615,8.63),(0.765,8.63),(0.765,5.63),(0.615,5.63)), + ((0.39,5.63),(0.39,8.63),(0.64,8.63),(0.64,5.63),(0.39,5.63)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.76),(0.315,9.17),(0.565,9.17),(0.565,8.76),(0.315,8.76)), ) createRL( tech, net, 'difftap', - ((0.315,5.63),(0.315,9.115),(0.565,9.115),(0.565,5.63),(0.315,5.63)), + ((0.315,5.63),(0.315,9.17),(0.565,9.17),(0.565,5.63),(0.315,5.63)), ) createRL( tech, net, 'difftap', - ((1.875,5.63),(1.875,8.63),(2.025,8.63),(2.025,5.63),(1.875,5.63)), + ((1.195,5.63),(1.195,8.63),(1.345,8.63),(1.345,5.63),(1.195,5.63)), ) createRL( tech, net, 'difftap', - ((1.245,5.63),(1.245,8.63),(1.395,8.63),(1.395,5.63),(1.245,5.63)), + ((1.75,5.63),(1.75,8.63),(1.9,8.63),(1.9,5.63),(1.75,5.63)), ) createRL( tech, net, 'difftap', - ((1.445,0.885),(1.445,2.37),(1.695,2.37),(1.695,0.885),(1.445,0.885)), + ((1.42,0.83),(1.42,2.37),(1.67,2.37),(1.67,0.83),(1.42,0.83)), ) createRL( tech, net, 'licon', - ((1.485,0.95),(1.485,1.12),(1.655,1.12),(1.655,0.95),(1.485,0.95)), + ((1.46,0.95),(1.46,1.12),(1.63,1.12),(1.63,0.95),(1.46,0.95)), ) createRL( tech, net, 'licon', @@ -28658,7 +28378,7 @@ def _load(): ) createRL( tech, net, 'li', - ((1.485,0.87),(1.485,1.2),(1.655,1.2),(1.655,0.87),(1.485,0.87)), + ((1.46,0.87),(1.46,1.2),(1.63,1.2),(1.63,0.87),(1.46,0.87)), ) createRL( tech, net, 'li', @@ -28670,27 +28390,27 @@ def _load(): ) createRL( tech, net, 'nwm', - ((0.185,5.45),(0.185,8.81),(1.195,8.81),(1.195,5.45),(0.185,5.45)), + ((0.21,5.45),(0.21,8.81),(1.22,8.81),(1.22,5.45),(0.21,5.45)), ) createRL( tech, net, 'nwm', - ((1.445,5.45),(1.445,8.81),(2.455,8.81),(2.455,5.45),(1.445,5.45)), + ((1.32,5.45),(1.32,8.81),(2.33,8.81),(2.33,5.45),(1.32,5.45)), ) createRL( tech, net, 'nwm', - ((0.815,5.45),(0.815,8.81),(1.825,8.81),(1.825,5.45),(0.815,5.45)), + ((0.765,5.45),(0.765,8.81),(1.775,8.81),(1.775,5.45),(0.765,5.45)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.135,8.58),(0.135,9.35),(0.745,9.35),(0.745,8.58),(0.135,8.58)), ) createRL( tech, net, 'nwm', - ((0.135,5.45),(0.135,9.295),(0.745,9.295),(0.745,5.45),(0.135,5.45)), + ((0.135,5.45),(0.135,9.35),(0.745,9.35),(0.745,5.45),(0.135,5.45)), ) createRL( tech, net, 'nwm', - ((1.86,5.45),(1.86,8.81),(2.47,8.81),(2.47,5.45),(1.86,5.45)), + ((1.735,5.45),(1.735,8.81),(2.345,8.81),(2.345,5.45),(1.735,5.45)), ) createRL( tech, net, 'nwm', @@ -28709,242 +28429,242 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,1.37),(0.78,2.37),(1.03,2.37),(1.03,1.37),(0.78,1.37)), + ((0.805,1.37),(0.805,2.37),(1.055,2.37),(1.055,1.37),(0.805,1.37)), ) createRL( tech, net, 'difftap', - ((0.995,1.37),(0.995,2.37),(1.245,2.37),(1.245,1.37),(0.995,1.37)), + ((1.915,1.37),(1.915,2.37),(2.165,2.37),(2.165,1.37),(1.915,1.37)), ) createRL( tech, net, 'difftap', - ((2.025,5.63),(2.025,8.63),(2.275,8.63),(2.275,5.63),(2.025,5.63)), + ((1.915,5.63),(1.915,8.63),(2.165,8.63),(2.165,5.63),(1.915,5.63)), ) createRL( tech, net, 'difftap', - ((2.04,5.63),(2.04,8.63),(2.29,8.63),(2.29,5.63),(2.04,5.63)), + ((1.9,5.63),(1.9,8.63),(2.15,8.63),(2.15,5.63),(1.9,5.63)), ) createRL( tech, net, 'difftap', - ((2.025,1.37),(2.025,2.37),(2.275,2.37),(2.275,1.37),(2.025,1.37)), + ((0.79,1.37),(0.79,2.37),(1.04,2.37),(1.04,1.37),(0.79,1.37)), ) createRL( tech, net, 'difftap', - ((2.04,1.37),(2.04,2.37),(2.29,2.37),(2.29,1.37),(2.04,1.37)), + ((1.9,1.37),(1.9,2.37),(2.15,2.37),(2.15,1.37),(1.9,1.37)), ) createRL( tech, net, 'difftap', - ((0.765,1.37),(0.765,2.37),(1.015,2.37),(1.015,1.37),(0.765,1.37)), + ((0.945,1.37),(0.945,2.37),(1.195,2.37),(1.195,1.37),(0.945,1.37)), ) createRL( tech, net, 'licon', - ((0.82,1.615),(0.82,1.785),(0.99,1.785),(0.99,1.615),(0.82,1.615)), + ((1.955,1.615),(1.955,1.785),(2.125,1.785),(2.125,1.615),(1.955,1.615)), ) createRL( tech, net, 'licon', - ((0.82,1.955),(0.82,2.125),(0.99,2.125),(0.99,1.955),(0.82,1.955)), + ((1.955,1.955),(1.955,2.125),(2.125,2.125),(2.125,1.955),(1.955,1.955)), ) createRL( tech, net, 'licon', - ((2.08,1.615),(2.08,1.785),(2.25,1.785),(2.25,1.615),(2.08,1.615)), + ((0.845,1.615),(0.845,1.785),(1.015,1.785),(1.015,1.615),(0.845,1.615)), ) createRL( tech, net, 'licon', - ((2.08,1.955),(2.08,2.125),(2.25,2.125),(2.25,1.955),(2.08,1.955)), + ((0.845,1.955),(0.845,2.125),(1.015,2.125),(1.015,1.955),(0.845,1.955)), ) createRL( tech, net, 'licon', - ((2.08,5.855),(2.08,6.025),(2.25,6.025),(2.25,5.855),(2.08,5.855)), + ((1.955,5.855),(1.955,6.025),(2.125,6.025),(2.125,5.855),(1.955,5.855)), ) createRL( tech, net, 'licon', - ((2.08,6.195),(2.08,6.365),(2.25,6.365),(2.25,6.195),(2.08,6.195)), + ((1.955,6.195),(1.955,6.365),(2.125,6.365),(2.125,6.195),(1.955,6.195)), ) createRL( tech, net, 'licon', - ((2.08,6.535),(2.08,6.705),(2.25,6.705),(2.25,6.535),(2.08,6.535)), + ((1.955,6.535),(1.955,6.705),(2.125,6.705),(2.125,6.535),(1.955,6.535)), ) createRL( tech, net, 'licon', - ((2.08,6.875),(2.08,7.045),(2.25,7.045),(2.25,6.875),(2.08,6.875)), + ((1.955,6.875),(1.955,7.045),(2.125,7.045),(2.125,6.875),(1.955,6.875)), ) createRL( tech, net, 'licon', - ((2.08,7.215),(2.08,7.385),(2.25,7.385),(2.25,7.215),(2.08,7.215)), + ((1.955,7.215),(1.955,7.385),(2.125,7.385),(2.125,7.215),(1.955,7.215)), ) createRL( tech, net, 'licon', - ((2.08,7.555),(2.08,7.725),(2.25,7.725),(2.25,7.555),(2.08,7.555)), + ((1.955,7.555),(1.955,7.725),(2.125,7.725),(2.125,7.555),(1.955,7.555)), ) createRL( tech, net, 'licon', - ((2.08,7.895),(2.08,8.065),(2.25,8.065),(2.25,7.895),(2.08,7.895)), + ((1.955,7.895),(1.955,8.065),(2.125,8.065),(2.125,7.895),(1.955,7.895)), ) createRL( tech, net, 'licon', - ((2.08,8.235),(2.08,8.405),(2.25,8.405),(2.25,8.235),(2.08,8.235)), + ((1.955,8.235),(1.955,8.405),(2.125,8.405),(2.125,8.235),(1.955,8.235)), ) createRL( tech, net, 'li', - ((2.08,1.37),(2.08,8.49),(2.25,8.49),(2.25,1.37),(2.08,1.37)), + ((0.845,1.535),(0.845,2.205),(1.015,2.205),(1.015,1.535),(0.845,1.535)), ) createRL( tech, net, 'li', - ((2.08,5.77),(2.08,8.49),(2.25,8.49),(2.25,5.77),(2.08,5.77)), + ((1.955,1.535),(1.955,2.205),(2.125,2.205),(2.125,1.535),(1.955,1.535)), ) createRL( tech, net, 'li', - ((2.08,1.535),(2.08,2.205),(2.25,2.205),(2.25,1.535),(2.08,1.535)), + ((1.955,5.77),(1.955,8.49),(2.125,8.49),(2.125,5.77),(1.955,5.77)), ) createRL( tech, net, 'li', - ((0.82,1.535),(0.82,2.205),(2.25,2.205),(2.25,1.535),(0.82,1.535)), + ((0.845,1.535),(0.845,2.205),(2.125,2.205),(2.125,1.535),(0.845,1.535)), ) createRL( tech, net, 'li', - ((0.82,1.535),(0.82,2.205),(0.99,2.205),(0.99,1.535),(0.82,1.535)), + ((1.955,1.37),(1.955,8.49),(2.125,8.49),(2.125,1.37),(1.955,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.165), u(0.17), u(1.37), u(8.49), + u(2.04), u(0.17), u(1.37), u(8.49), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.165), u(0.17), u(1.37), u(8.49), + u(2.04), u(0.17), u(1.37), u(8.49), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['i0'] createRL( tech, net, 'poly', - ((0.615,5.5),(0.615,8.76),(0.765,8.76),(0.765,5.5),(0.615,5.5)), + ((0.64,5.5),(0.64,8.76),(0.79,8.76),(0.79,5.5),(0.64,5.5)), ) createRL( tech, net, 'poly', - ((0.345,4.635),(0.345,4.965),(0.615,4.965),(0.615,4.635),(0.345,4.635)), + ((0.445,4.635),(0.445,4.965),(0.715,4.965),(0.715,4.635),(0.445,4.635)), ) createRL( tech, net, 'poly', - ((0.615,1.24),(0.615,2.5),(0.765,2.5),(0.765,1.24),(0.615,1.24)), + ((0.64,1.24),(0.64,2.5),(0.79,2.5),(0.79,1.24),(0.64,1.24)), ) createRL( tech, net, 'poly', - ((0.615,2.5),(0.615,5.5),(0.765,5.5),(0.765,2.5),(0.615,2.5)), + ((0.64,2.5),(0.64,5.5),(0.79,5.5),(0.79,2.5),(0.64,2.5)), ) createRL( tech, net, 'licon', - ((0.395,4.715),(0.395,4.885),(0.565,4.885),(0.565,4.715),(0.395,4.715)), + ((0.495,4.715),(0.495,4.885),(0.665,4.885),(0.665,4.715),(0.495,4.715)), ) createRL( tech, net, 'li', - ((0.395,4.635),(0.395,4.965),(0.565,4.965),(0.565,4.635),(0.395,4.635)), + ((0.495,4.635),(0.495,4.965),(0.665,4.965),(0.665,4.635),(0.495,4.635)), ) createRL( tech, net, 'li', - ((0.395,1.37),(0.395,8.63),(0.565,8.63),(0.565,1.37),(0.395,1.37)), + ((0.495,1.37),(0.495,8.63),(0.665,8.63),(0.665,1.37),(0.495,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int0'] createRL( tech, net, 'difftap', - ((0.765,5.63),(0.765,8.63),(1.015,8.63),(1.015,5.63),(0.765,5.63)), + ((0.79,5.63),(0.79,8.63),(1.04,8.63),(1.04,5.63),(0.79,5.63)), ) createRL( tech, net, 'difftap', - ((0.995,5.63),(0.995,8.63),(1.245,8.63),(1.245,5.63),(0.995,5.63)), + ((0.945,5.63),(0.945,8.63),(1.195,8.63),(1.195,5.63),(0.945,5.63)), ) net = nets['i1'] createRL( tech, net, 'poly', - ((1.245,5.5),(1.245,8.76),(1.395,8.76),(1.395,5.5),(1.245,5.5)), + ((1.195,5.5),(1.195,8.76),(1.345,8.76),(1.345,5.5),(1.195,5.5)), ) createRL( tech, net, 'poly', - ((0.975,4.635),(0.975,4.965),(1.245,4.965),(1.245,4.635),(0.975,4.635)), + ((1.0,4.635),(1.0,4.965),(1.27,4.965),(1.27,4.635),(1.0,4.635)), ) createRL( tech, net, 'poly', - ((1.245,1.24),(1.245,2.5),(1.395,2.5),(1.395,1.24),(1.245,1.24)), + ((1.195,1.24),(1.195,2.5),(1.345,2.5),(1.345,1.24),(1.195,1.24)), ) createRL( tech, net, 'poly', - ((1.245,2.5),(1.245,5.5),(1.395,5.5),(1.395,2.5),(1.245,2.5)), + ((1.195,2.5),(1.195,5.5),(1.345,5.5),(1.345,2.5),(1.195,2.5)), ) createRL( tech, net, 'licon', - ((1.025,4.715),(1.025,4.885),(1.195,4.885),(1.195,4.715),(1.025,4.715)), + ((1.05,4.715),(1.05,4.885),(1.22,4.885),(1.22,4.715),(1.05,4.715)), ) createRL( tech, net, 'li', - ((1.025,4.635),(1.025,4.965),(1.195,4.965),(1.195,4.635),(1.025,4.635)), + ((1.05,4.635),(1.05,4.965),(1.22,4.965),(1.22,4.635),(1.05,4.635)), ) createRL( tech, net, 'li', - ((1.025,2.54),(1.025,8.63),(1.195,8.63),(1.195,2.54),(1.025,2.54)), + ((1.05,2.54),(1.05,8.63),(1.22,8.63),(1.22,2.54),(1.05,2.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.11), u(0.17), u(2.54), u(8.63), + u(1.135), u(0.17), u(2.54), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.11), u(0.17), u(2.54), u(8.63), + u(1.135), u(0.17), u(2.54), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int1'] createRL( tech, net, 'difftap', - ((1.625,5.63),(1.625,8.63),(1.875,8.63),(1.875,5.63),(1.625,5.63)), + ((1.5,5.63),(1.5,8.63),(1.75,8.63),(1.75,5.63),(1.5,5.63)), ) createRL( tech, net, 'difftap', - ((1.395,5.63),(1.395,8.63),(1.645,8.63),(1.645,5.63),(1.395,5.63)), + ((1.345,5.63),(1.345,8.63),(1.595,8.63),(1.595,5.63),(1.345,5.63)), ) net = nets['i2'] createRL( tech, net, 'poly', - ((1.605,4.635),(1.605,4.965),(1.875,4.965),(1.875,4.635),(1.605,4.635)), + ((1.75,5.5),(1.75,8.76),(1.9,8.76),(1.9,5.5),(1.75,5.5)), ) createRL( tech, net, 'poly', - ((1.875,1.24),(1.875,2.5),(2.025,2.5),(2.025,1.24),(1.875,1.24)), + ((1.555,4.635),(1.555,4.965),(1.825,4.965),(1.825,4.635),(1.555,4.635)), ) createRL( tech, net, 'poly', - ((1.875,2.5),(1.875,5.5),(2.025,5.5),(2.025,2.5),(1.875,2.5)), + ((1.75,1.24),(1.75,2.5),(1.9,2.5),(1.9,1.24),(1.75,1.24)), ) createRL( tech, net, 'poly', - ((1.875,5.5),(1.875,8.76),(2.025,8.76),(2.025,5.5),(1.875,5.5)), + ((1.75,2.5),(1.75,5.5),(1.9,5.5),(1.9,2.5),(1.75,2.5)), ) createRL( tech, net, 'licon', - ((1.655,4.715),(1.655,4.885),(1.825,4.885),(1.825,4.715),(1.655,4.715)), + ((1.605,4.715),(1.605,4.885),(1.775,4.885),(1.775,4.715),(1.605,4.715)), ) createRL( tech, net, 'li', - ((1.655,4.635),(1.655,4.965),(1.825,4.965),(1.825,4.635),(1.655,4.635)), + ((1.605,4.635),(1.605,4.965),(1.775,4.965),(1.775,4.635),(1.605,4.635)), ) createRL( tech, net, 'li', - ((1.655,2.54),(1.655,8.63),(1.825,8.63),(1.825,2.54),(1.655,2.54)), + ((1.605,2.54),(1.605,8.63),(1.775,8.63),(1.775,2.54),(1.605,2.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.74), u(0.17), u(2.54), u(8.63), + u(1.69), u(0.17), u(2.54), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.74), u(0.17), u(2.54), u(8.63), + u(1.69), u(0.17), u(2.54), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) @@ -28967,48 +28687,48 @@ def _load(): 'vdd': Net.create(cell, 'vdd'), 'vss': Net.create(cell, 'vss'), } - nets['vss'].setGlobal(True) nets['vdd'].setGlobal(True) + nets['vss'].setGlobal(True) net = nets['vss'] createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,2.37),(0.565,2.37),(0.565,0.885),(0.315,0.885)), + ((0.315,0.83),(0.315,2.37),(0.565,2.37),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((1.875,1.37),(1.875,2.37),(2.025,2.37),(2.025,1.37),(1.875,1.37)), + ((2.455,1.37),(2.455,2.37),(2.705,2.37),(2.705,1.37),(2.455,1.37)), ) createRL( tech, net, 'difftap', - ((2.655,1.37),(2.655,2.37),(2.905,2.37),(2.905,1.37),(2.655,1.37)), + ((2.305,1.37),(2.305,2.37),(2.455,2.37),(2.455,1.37),(2.305,1.37)), ) createRL( tech, net, 'difftap', - ((2.505,1.37),(2.505,2.37),(2.655,2.37),(2.655,1.37),(2.505,1.37)), + ((0.315,0.83),(0.315,1.24),(0.565,1.24),(0.565,0.83),(0.315,0.83)), ) createRL( tech, net, 'difftap', - ((0.315,0.885),(0.315,1.185),(0.565,1.185),(0.565,0.885),(0.315,0.885)), + ((0.39,1.37),(0.39,2.37),(0.64,2.37),(0.64,1.37),(0.39,1.37)), ) createRL( tech, net, 'difftap', - ((0.365,1.37),(0.365,2.37),(0.615,2.37),(0.615,1.37),(0.365,1.37)), + ((1.195,1.37),(1.195,2.37),(1.345,2.37),(1.345,1.37),(1.195,1.37)), ) createRL( tech, net, 'difftap', - ((1.245,1.37),(1.245,2.37),(1.395,2.37),(1.395,1.37),(1.245,1.37)), + ((1.345,1.37),(1.345,2.37),(1.595,2.37),(1.595,1.37),(1.345,1.37)), ) createRL( tech, net, 'difftap', - ((1.395,1.37),(1.395,2.37),(1.645,2.37),(1.645,1.37),(1.395,1.37)), + ((1.5,1.37),(1.5,2.37),(1.75,2.37),(1.75,1.37),(1.5,1.37)), ) createRL( tech, net, 'difftap', - ((1.625,1.37),(1.625,2.37),(1.875,2.37),(1.875,1.37),(1.625,1.37)), + ((1.75,1.37),(1.75,2.37),(1.9,2.37),(1.9,1.37),(1.75,1.37)), ) createRL( tech, net, 'difftap', - ((0.615,1.37),(0.615,2.37),(0.765,2.37),(0.765,1.37),(0.615,1.37)), + ((0.64,1.37),(0.64,2.37),(0.79,2.37),(0.79,1.37),(0.64,1.37)), ) createRL( tech, net, 'licon', @@ -29035,160 +28755,160 @@ def _load(): net = nets['*'] createRL( tech, net, 'nsdm', - ((1.32,0.76),(1.32,1.31),(1.82,1.31),(1.82,0.76),(1.32,0.76)), + ((1.295,0.705),(1.295,1.365),(1.795,1.365),(1.795,0.705),(1.295,0.705)), ) createRL( tech, net, 'nsdm', - ((0.87,1.245),(0.87,2.495),(1.77,2.495),(1.77,1.245),(0.87,1.245)), + ((0.265,1.245),(0.265,2.495),(1.165,2.495),(1.165,1.245),(0.265,1.245)), ) createRL( tech, net, 'nsdm', - ((0.655,1.245),(0.655,2.495),(1.155,2.495),(1.155,1.245),(0.655,1.245)), + ((0.68,1.245),(0.68,2.495),(1.18,2.495),(1.18,1.245),(0.68,1.245)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,2.495),(0.69,2.495),(0.69,0.76),(0.19,0.76)), + ((0.19,0.705),(0.19,2.495),(0.69,2.495),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.24,1.245),(0.24,2.495),(1.14,2.495),(1.14,1.245),(0.24,1.245)), + ((0.82,1.245),(0.82,2.495),(1.72,2.495),(1.72,1.245),(0.82,1.245)), ) createRL( tech, net, 'nsdm', - ((1.5,1.245),(1.5,2.495),(2.4,2.495),(2.4,1.245),(1.5,1.245)), + ((1.375,1.245),(1.375,2.495),(2.275,2.495),(2.275,1.245),(1.375,1.245)), ) createRL( tech, net, 'nsdm', - ((1.805,1.3),(1.805,2.44),(2.095,2.44),(2.095,1.3),(1.805,1.3)), + ((1.79,1.245),(1.79,2.495),(2.29,2.495),(2.29,1.245),(1.79,1.245)), ) createRL( tech, net, 'nsdm', - ((1.915,1.245),(1.915,2.495),(2.415,2.495),(2.415,1.245),(1.915,1.245)), + ((1.93,1.245),(1.93,2.495),(2.83,2.495),(2.83,1.245),(1.93,1.245)), ) createRL( tech, net, 'nsdm', - ((2.435,1.3),(2.435,2.44),(2.725,2.44),(2.725,1.3),(2.435,1.3)), + ((2.235,1.3),(2.235,2.44),(2.525,2.44),(2.525,1.3),(2.235,1.3)), ) createRL( tech, net, 'nsdm', - ((2.58,0.76),(2.58,1.31),(3.08,1.31),(3.08,0.76),(2.58,0.76)), + ((0.19,0.705),(0.19,1.365),(0.69,1.365),(0.69,0.705),(0.19,0.705)), ) createRL( tech, net, 'nsdm', - ((0.19,0.76),(0.19,1.31),(0.69,1.31),(0.69,0.76),(0.19,0.76)), + ((2.405,0.705),(2.405,2.495),(2.905,2.495),(2.905,0.705),(2.405,0.705)), ) createRL( tech, net, 'nsdm', - ((2.58,0.76),(2.58,2.495),(3.08,2.495),(3.08,0.76),(2.58,0.76)), + ((1.125,1.3),(1.125,2.44),(1.415,2.44),(1.415,1.3),(1.125,1.3)), ) createRL( tech, net, 'nsdm', - ((2.13,1.245),(2.13,2.495),(3.03,2.495),(3.03,1.245),(2.13,1.245)), + ((1.68,1.3),(1.68,2.44),(1.97,2.44),(1.97,1.3),(1.68,1.3)), ) createRL( tech, net, 'nsdm', - ((1.175,1.3),(1.175,2.44),(1.465,2.44),(1.465,1.3),(1.175,1.3)), + ((2.405,0.705),(2.405,1.365),(2.905,1.365),(2.905,0.705),(2.405,0.705)), ) createRL( tech, net, 'nsdm', - ((1.32,0.76),(1.32,2.495),(1.82,2.495),(1.82,0.76),(1.32,0.76)), + ((1.295,0.705),(1.295,2.495),(1.795,2.495),(1.795,0.705),(1.295,0.705)), ) createRL( tech, net, 'nsdm', - ((0.545,1.3),(0.545,2.44),(0.835,2.44),(0.835,1.3),(0.545,1.3)), + ((0.57,1.3),(0.57,2.44),(0.86,2.44),(0.86,1.3),(0.57,1.3)), ) createRL( tech, net, 'psdm', - ((0.545,5.56),(0.545,8.7),(0.835,8.7),(0.835,5.56),(0.545,5.56)), + ((0.57,5.56),(0.57,8.7),(0.86,8.7),(0.86,5.56),(0.57,5.56)), ) createRL( tech, net, 'psdm', - ((2.435,5.56),(2.435,8.7),(2.725,8.7),(2.725,5.56),(2.435,5.56)), + ((2.235,5.56),(2.235,8.7),(2.525,8.7),(2.525,5.56),(2.235,5.56)), ) createRL( tech, net, 'psdm', - ((0.87,5.505),(0.87,8.755),(1.77,8.755),(1.77,5.505),(0.87,5.505)), + ((0.82,5.505),(0.82,8.755),(1.72,8.755),(1.72,5.505),(0.82,5.505)), ) createRL( tech, net, 'psdm', - ((1.175,5.56),(1.175,8.7),(1.465,8.7),(1.465,5.56),(1.175,5.56)), + ((1.125,5.56),(1.125,8.7),(1.415,8.7),(1.415,5.56),(1.125,5.56)), ) createRL( tech, net, 'psdm', - ((0.24,5.505),(0.24,8.755),(1.14,8.755),(1.14,5.505),(0.24,5.505)), + ((0.265,5.505),(0.265,8.755),(1.165,8.755),(1.165,5.505),(0.265,5.505)), ) createRL( tech, net, 'psdm', - ((0.19,8.69),(0.19,9.24),(0.69,9.24),(0.69,8.69),(0.19,8.69)), + ((0.19,8.635),(0.19,9.295),(0.69,9.295),(0.69,8.635),(0.19,8.635)), ) createRL( tech, net, 'psdm', - ((0.19,5.505),(0.19,9.24),(0.69,9.24),(0.69,5.505),(0.19,5.505)), + ((0.19,5.505),(0.19,9.295),(0.69,9.295),(0.69,5.505),(0.19,5.505)), ) createRL( tech, net, 'psdm', - ((1.805,5.56),(1.805,8.7),(2.095,8.7),(2.095,5.56),(1.805,5.56)), + ((1.68,5.56),(1.68,8.7),(1.97,8.7),(1.97,5.56),(1.68,5.56)), ) createRL( tech, net, 'psdm', - ((1.5,5.505),(1.5,8.755),(2.4,8.755),(2.4,5.505),(1.5,5.505)), + ((1.375,5.505),(1.375,8.755),(2.275,8.755),(2.275,5.505),(1.375,5.505)), ) createRL( tech, net, 'psdm', - ((2.545,5.505),(2.545,8.755),(3.045,8.755),(3.045,5.505),(2.545,5.505)), + ((1.93,5.505),(1.93,8.755),(2.83,8.755),(2.83,5.505),(1.93,5.505)), ) createRL( tech, net, 'psdm', - ((2.13,5.505),(2.13,8.755),(3.03,8.755),(3.03,5.505),(2.13,5.505)), + ((2.345,5.505),(2.345,8.755),(2.845,8.755),(2.845,5.505),(2.345,5.505)), ) net = nets['vdd'] createRL( tech, net, 'difftap', - ((1.445,0.885),(1.445,1.185),(1.695,1.185),(1.695,0.885),(1.445,0.885)), + ((1.42,0.83),(1.42,1.24),(1.67,1.24),(1.67,0.83),(1.42,0.83)), ) createRL( tech, net, 'difftap', - ((0.365,5.63),(0.365,8.63),(0.615,8.63),(0.615,5.63),(0.365,5.63)), + ((0.64,5.63),(0.64,8.63),(0.79,8.63),(0.79,5.63),(0.64,5.63)), ) createRL( tech, net, 'difftap', - ((0.615,5.63),(0.615,8.63),(0.765,8.63),(0.765,5.63),(0.615,5.63)), + ((0.39,5.63),(0.39,8.63),(0.64,8.63),(0.64,5.63),(0.39,5.63)), ) createRL( tech, net, 'difftap', - ((2.505,5.63),(2.505,8.63),(2.655,8.63),(2.655,5.63),(2.505,5.63)), + ((2.305,5.63),(2.305,8.63),(2.455,8.63),(2.455,5.63),(2.305,5.63)), ) createRL( tech, net, 'difftap', - ((0.315,8.815),(0.315,9.115),(0.565,9.115),(0.565,8.815),(0.315,8.815)), + ((0.315,8.76),(0.315,9.17),(0.565,9.17),(0.565,8.76),(0.315,8.76)), ) createRL( tech, net, 'difftap', - ((0.315,5.63),(0.315,9.115),(0.565,9.115),(0.565,5.63),(0.315,5.63)), + ((0.315,5.63),(0.315,9.17),(0.565,9.17),(0.565,5.63),(0.315,5.63)), ) createRL( tech, net, 'difftap', - ((1.875,5.63),(1.875,8.63),(2.025,8.63),(2.025,5.63),(1.875,5.63)), + ((2.53,0.83),(2.53,2.37),(2.78,2.37),(2.78,0.83),(2.53,0.83)), ) createRL( tech, net, 'difftap', - ((2.705,0.885),(2.705,2.37),(2.955,2.37),(2.955,0.885),(2.705,0.885)), + ((1.195,5.63),(1.195,8.63),(1.345,8.63),(1.345,5.63),(1.195,5.63)), ) createRL( tech, net, 'difftap', - ((1.245,5.63),(1.245,8.63),(1.395,8.63),(1.395,5.63),(1.245,5.63)), + ((1.75,5.63),(1.75,8.63),(1.9,8.63),(1.9,5.63),(1.75,5.63)), ) createRL( tech, net, 'difftap', - ((2.705,0.885),(2.705,1.185),(2.955,1.185),(2.955,0.885),(2.705,0.885)), + ((2.53,0.83),(2.53,1.24),(2.78,1.24),(2.78,0.83),(2.53,0.83)), ) createRL( tech, net, 'difftap', - ((1.445,0.885),(1.445,2.37),(1.695,2.37),(1.695,0.885),(1.445,0.885)), + ((1.42,0.83),(1.42,2.37),(1.67,2.37),(1.67,0.83),(1.42,0.83)), ) createRL( tech, net, 'licon', - ((1.485,0.95),(1.485,1.12),(1.655,1.12),(1.655,0.95),(1.485,0.95)), + ((1.46,0.95),(1.46,1.12),(1.63,1.12),(1.63,0.95),(1.46,0.95)), ) createRL( tech, net, 'licon', @@ -29196,11 +28916,11 @@ def _load(): ) createRL( tech, net, 'licon', - ((2.745,0.95),(2.745,1.12),(2.915,1.12),(2.915,0.95),(2.745,0.95)), + ((2.57,0.95),(2.57,1.12),(2.74,1.12),(2.74,0.95),(2.57,0.95)), ) createRL( tech, net, 'li', - ((1.485,0.87),(1.485,1.2),(1.655,1.2),(1.655,0.87),(1.485,0.87)), + ((1.46,0.87),(1.46,1.2),(1.63,1.2),(1.63,0.87),(1.46,0.87)), ) createRL( tech, net, 'li', @@ -29212,39 +28932,39 @@ def _load(): ) createRL( tech, net, 'li', - ((2.745,0.87),(2.745,1.2),(2.915,1.2),(2.915,0.87),(2.745,0.87)), + ((2.57,0.87),(2.57,1.2),(2.74,1.2),(2.74,0.87),(2.57,0.87)), ) createRL( tech, net, 'nwm', - ((0.815,5.45),(0.815,8.81),(1.825,8.81),(1.825,5.45),(0.815,5.45)), + ((2.29,5.45),(2.29,8.81),(2.9,8.81),(2.9,5.45),(2.29,5.45)), ) createRL( tech, net, 'nwm', - ((1.445,5.45),(1.445,8.81),(2.455,8.81),(2.455,5.45),(1.445,5.45)), + ((0.765,5.45),(0.765,8.81),(1.775,8.81),(1.775,5.45),(0.765,5.45)), ) createRL( tech, net, 'nwm', - ((0.185,5.45),(0.185,8.81),(1.195,8.81),(1.195,5.45),(0.185,5.45)), + ((1.32,5.45),(1.32,8.81),(2.33,8.81),(2.33,5.45),(1.32,5.45)), ) createRL( tech, net, 'nwm', - ((0.135,8.635),(0.135,9.295),(0.745,9.295),(0.745,8.635),(0.135,8.635)), + ((0.21,5.45),(0.21,8.81),(1.22,8.81),(1.22,5.45),(0.21,5.45)), ) createRL( tech, net, 'nwm', - ((0.135,5.45),(0.135,9.295),(0.745,9.295),(0.745,5.45),(0.135,5.45)), + ((0.135,8.58),(0.135,9.35),(0.745,9.35),(0.745,8.58),(0.135,8.58)), ) createRL( tech, net, 'nwm', - ((-0.18,4.8),(-0.18,10.18),(4.18,10.18),(4.18,4.8),(-0.18,4.8)), + ((0.135,5.45),(0.135,9.35),(0.745,9.35),(0.745,5.45),(0.135,5.45)), ) createRL( tech, net, 'nwm', - ((2.075,5.45),(2.075,8.81),(3.085,8.81),(3.085,5.45),(2.075,5.45)), + ((1.875,5.45),(1.875,8.81),(2.885,8.81),(2.885,5.45),(1.875,5.45)), ) createRL( tech, net, 'nwm', - ((2.49,5.45),(2.49,8.81),(3.1,8.81),(3.1,5.45),(2.49,5.45)), + ((-0.18,4.8),(-0.18,10.18),(4.18,10.18),(4.18,4.8),(-0.18,4.8)), ) Vertical.create( net, tech.getLayer('li.pin'), @@ -29259,294 +28979,294 @@ def _load(): net = nets['nq'] createRL( tech, net, 'difftap', - ((0.78,1.37),(0.78,2.37),(1.03,2.37),(1.03,1.37),(0.78,1.37)), + ((1.915,1.37),(1.915,2.37),(2.165,2.37),(2.165,1.37),(1.915,1.37)), ) createRL( tech, net, 'difftap', - ((2.67,5.63),(2.67,8.63),(2.92,8.63),(2.92,5.63),(2.67,5.63)), + ((0.805,1.37),(0.805,2.37),(1.055,2.37),(1.055,1.37),(0.805,1.37)), ) createRL( tech, net, 'difftap', - ((2.655,5.63),(2.655,8.63),(2.905,8.63),(2.905,5.63),(2.655,5.63)), + ((0.945,1.37),(0.945,2.37),(1.195,2.37),(1.195,1.37),(0.945,1.37)), ) createRL( tech, net, 'difftap', - ((2.025,1.37),(2.025,2.37),(2.275,2.37),(2.275,1.37),(2.025,1.37)), + ((2.47,5.63),(2.47,8.63),(2.72,8.63),(2.72,5.63),(2.47,5.63)), ) createRL( tech, net, 'difftap', - ((2.04,1.37),(2.04,2.37),(2.29,2.37),(2.29,1.37),(2.04,1.37)), + ((2.455,5.63),(2.455,8.63),(2.705,8.63),(2.705,5.63),(2.455,5.63)), ) createRL( tech, net, 'difftap', - ((0.765,1.37),(0.765,2.37),(1.015,2.37),(1.015,1.37),(0.765,1.37)), + ((2.055,1.37),(2.055,2.37),(2.305,2.37),(2.305,1.37),(2.055,1.37)), ) createRL( tech, net, 'difftap', - ((2.255,1.37),(2.255,2.37),(2.505,2.37),(2.505,1.37),(2.255,1.37)), + ((1.9,1.37),(1.9,2.37),(2.15,2.37),(2.15,1.37),(1.9,1.37)), ) createRL( tech, net, 'difftap', - ((0.995,1.37),(0.995,2.37),(1.245,2.37),(1.245,1.37),(0.995,1.37)), + ((0.79,1.37),(0.79,2.37),(1.04,2.37),(1.04,1.37),(0.79,1.37)), ) createRL( tech, net, 'licon', - ((0.82,1.615),(0.82,1.785),(0.99,1.785),(0.99,1.615),(0.82,1.615)), + ((1.955,1.615),(1.955,1.785),(2.125,1.785),(2.125,1.615),(1.955,1.615)), ) createRL( tech, net, 'licon', - ((0.82,1.955),(0.82,2.125),(0.99,2.125),(0.99,1.955),(0.82,1.955)), + ((1.955,1.955),(1.955,2.125),(2.125,2.125),(2.125,1.955),(1.955,1.955)), ) createRL( tech, net, 'licon', - ((2.08,1.615),(2.08,1.785),(2.25,1.785),(2.25,1.615),(2.08,1.615)), + ((0.845,1.615),(0.845,1.785),(1.015,1.785),(1.015,1.615),(0.845,1.615)), ) createRL( tech, net, 'licon', - ((2.08,1.955),(2.08,2.125),(2.25,2.125),(2.25,1.955),(2.08,1.955)), + ((0.845,1.955),(0.845,2.125),(1.015,2.125),(1.015,1.955),(0.845,1.955)), ) createRL( tech, net, 'licon', - ((2.71,5.855),(2.71,6.025),(2.88,6.025),(2.88,5.855),(2.71,5.855)), + ((2.51,5.855),(2.51,6.025),(2.68,6.025),(2.68,5.855),(2.51,5.855)), ) createRL( tech, net, 'licon', - ((2.71,6.195),(2.71,6.365),(2.88,6.365),(2.88,6.195),(2.71,6.195)), + ((2.51,6.195),(2.51,6.365),(2.68,6.365),(2.68,6.195),(2.51,6.195)), ) createRL( tech, net, 'licon', - ((2.71,6.535),(2.71,6.705),(2.88,6.705),(2.88,6.535),(2.71,6.535)), + ((2.51,6.535),(2.51,6.705),(2.68,6.705),(2.68,6.535),(2.51,6.535)), ) createRL( tech, net, 'licon', - ((2.71,6.875),(2.71,7.045),(2.88,7.045),(2.88,6.875),(2.71,6.875)), + ((2.51,6.875),(2.51,7.045),(2.68,7.045),(2.68,6.875),(2.51,6.875)), ) createRL( tech, net, 'licon', - ((2.71,7.215),(2.71,7.385),(2.88,7.385),(2.88,7.215),(2.71,7.215)), + ((2.51,7.215),(2.51,7.385),(2.68,7.385),(2.68,7.215),(2.51,7.215)), ) createRL( tech, net, 'licon', - ((2.71,7.555),(2.71,7.725),(2.88,7.725),(2.88,7.555),(2.71,7.555)), + ((2.51,7.555),(2.51,7.725),(2.68,7.725),(2.68,7.555),(2.51,7.555)), ) createRL( tech, net, 'licon', - ((2.71,7.895),(2.71,8.065),(2.88,8.065),(2.88,7.895),(2.71,7.895)), + ((2.51,7.895),(2.51,8.065),(2.68,8.065),(2.68,7.895),(2.51,7.895)), ) createRL( tech, net, 'licon', - ((2.71,8.235),(2.71,8.405),(2.88,8.405),(2.88,8.235),(2.71,8.235)), + ((2.51,8.235),(2.51,8.405),(2.68,8.405),(2.68,8.235),(2.51,8.235)), ) createRL( tech, net, 'li', - ((2.71,1.37),(2.71,8.49),(2.88,8.49),(2.88,1.37),(2.71,1.37)), + ((0.845,1.535),(0.845,2.205),(1.015,2.205),(1.015,1.535),(0.845,1.535)), ) createRL( tech, net, 'li', - ((2.71,5.77),(2.71,8.49),(2.88,8.49),(2.88,5.77),(2.71,5.77)), + ((2.51,1.37),(2.51,8.49),(2.68,8.49),(2.68,1.37),(2.51,1.37)), ) createRL( tech, net, 'li', - ((2.08,1.535),(2.08,2.205),(2.25,2.205),(2.25,1.535),(2.08,1.535)), + ((1.955,1.535),(1.955,2.205),(2.125,2.205),(2.125,1.535),(1.955,1.535)), ) createRL( tech, net, 'li', - ((0.82,1.535),(0.82,2.205),(2.88,2.205),(2.88,1.535),(0.82,1.535)), + ((2.51,5.77),(2.51,8.49),(2.68,8.49),(2.68,5.77),(2.51,5.77)), ) createRL( tech, net, 'li', - ((0.82,1.535),(0.82,2.205),(0.99,2.205),(0.99,1.535),(0.82,1.535)), + ((0.845,1.535),(0.845,2.205),(2.68,2.205),(2.68,1.535),(0.845,1.535)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.795), u(0.17), u(1.37), u(8.49), + u(2.595), u(0.17), u(1.37), u(8.49), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.795), u(0.17), u(1.37), u(8.49), + u(2.595), u(0.17), u(1.37), u(8.49), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['i0'] createRL( tech, net, 'poly', - ((0.615,5.5),(0.615,8.76),(0.765,8.76),(0.765,5.5),(0.615,5.5)), + ((0.64,5.5),(0.64,8.76),(0.79,8.76),(0.79,5.5),(0.64,5.5)), ) createRL( tech, net, 'poly', - ((0.345,4.635),(0.345,4.965),(0.615,4.965),(0.615,4.635),(0.345,4.635)), + ((0.445,4.635),(0.445,4.965),(0.715,4.965),(0.715,4.635),(0.445,4.635)), ) createRL( tech, net, 'poly', - ((0.615,1.24),(0.615,2.5),(0.765,2.5),(0.765,1.24),(0.615,1.24)), + ((0.64,1.24),(0.64,2.5),(0.79,2.5),(0.79,1.24),(0.64,1.24)), ) createRL( tech, net, 'poly', - ((0.615,2.5),(0.615,5.5),(0.765,5.5),(0.765,2.5),(0.615,2.5)), + ((0.64,2.5),(0.64,5.5),(0.79,5.5),(0.79,2.5),(0.64,2.5)), ) createRL( tech, net, 'licon', - ((0.395,4.715),(0.395,4.885),(0.565,4.885),(0.565,4.715),(0.395,4.715)), + ((0.495,4.715),(0.495,4.885),(0.665,4.885),(0.665,4.715),(0.495,4.715)), ) createRL( tech, net, 'li', - ((0.395,4.635),(0.395,4.965),(0.565,4.965),(0.565,4.635),(0.395,4.635)), + ((0.495,4.635),(0.495,4.965),(0.665,4.965),(0.665,4.635),(0.495,4.635)), ) createRL( tech, net, 'li', - ((0.395,1.37),(0.395,8.63),(0.565,8.63),(0.565,1.37),(0.395,1.37)), + ((0.495,1.37),(0.495,8.63),(0.665,8.63),(0.665,1.37),(0.495,1.37)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(0.48), u(0.17), u(1.37), u(8.63), + u(0.58), u(0.17), u(1.37), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int0'] createRL( tech, net, 'difftap', - ((0.765,5.63),(0.765,8.63),(1.015,8.63),(1.015,5.63),(0.765,5.63)), + ((0.79,5.63),(0.79,8.63),(1.04,8.63),(1.04,5.63),(0.79,5.63)), ) createRL( tech, net, 'difftap', - ((0.995,5.63),(0.995,8.63),(1.245,8.63),(1.245,5.63),(0.995,5.63)), + ((0.945,5.63),(0.945,8.63),(1.195,8.63),(1.195,5.63),(0.945,5.63)), ) net = nets['i1'] createRL( tech, net, 'poly', - ((1.245,5.5),(1.245,8.76),(1.395,8.76),(1.395,5.5),(1.245,5.5)), + ((1.195,5.5),(1.195,8.76),(1.345,8.76),(1.345,5.5),(1.195,5.5)), ) createRL( tech, net, 'poly', - ((0.975,4.635),(0.975,4.965),(1.245,4.965),(1.245,4.635),(0.975,4.635)), + ((1.0,4.635),(1.0,4.965),(1.27,4.965),(1.27,4.635),(1.0,4.635)), ) createRL( tech, net, 'poly', - ((1.245,1.24),(1.245,2.5),(1.395,2.5),(1.395,1.24),(1.245,1.24)), + ((1.195,1.24),(1.195,2.5),(1.345,2.5),(1.345,1.24),(1.195,1.24)), ) createRL( tech, net, 'poly', - ((1.245,2.5),(1.245,5.5),(1.395,5.5),(1.395,2.5),(1.245,2.5)), + ((1.195,2.5),(1.195,5.5),(1.345,5.5),(1.345,2.5),(1.195,2.5)), ) createRL( tech, net, 'licon', - ((1.025,4.715),(1.025,4.885),(1.195,4.885),(1.195,4.715),(1.025,4.715)), + ((1.05,4.715),(1.05,4.885),(1.22,4.885),(1.22,4.715),(1.05,4.715)), ) createRL( tech, net, 'li', - ((1.025,4.635),(1.025,4.965),(1.195,4.965),(1.195,4.635),(1.025,4.635)), + ((1.05,4.635),(1.05,4.965),(1.22,4.965),(1.22,4.635),(1.05,4.635)), ) createRL( tech, net, 'li', - ((1.025,2.54),(1.025,8.63),(1.195,8.63),(1.195,2.54),(1.025,2.54)), + ((1.05,2.54),(1.05,8.63),(1.22,8.63),(1.22,2.54),(1.05,2.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.11), u(0.17), u(2.54), u(8.63), + u(1.135), u(0.17), u(2.54), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.11), u(0.17), u(2.54), u(8.63), + u(1.135), u(0.17), u(2.54), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int1'] createRL( tech, net, 'difftap', - ((1.625,5.63),(1.625,8.63),(1.875,8.63),(1.875,5.63),(1.625,5.63)), + ((1.5,5.63),(1.5,8.63),(1.75,8.63),(1.75,5.63),(1.5,5.63)), ) createRL( tech, net, 'difftap', - ((1.395,5.63),(1.395,8.63),(1.645,8.63),(1.645,5.63),(1.395,5.63)), + ((1.345,5.63),(1.345,8.63),(1.595,8.63),(1.595,5.63),(1.345,5.63)), ) net = nets['i2'] createRL( tech, net, 'poly', - ((1.605,4.635),(1.605,4.965),(1.875,4.965),(1.875,4.635),(1.605,4.635)), + ((1.75,5.5),(1.75,8.76),(1.9,8.76),(1.9,5.5),(1.75,5.5)), ) createRL( tech, net, 'poly', - ((1.875,1.24),(1.875,2.5),(2.025,2.5),(2.025,1.24),(1.875,1.24)), + ((1.555,4.635),(1.555,4.965),(1.825,4.965),(1.825,4.635),(1.555,4.635)), ) createRL( tech, net, 'poly', - ((1.875,2.5),(1.875,5.5),(2.025,5.5),(2.025,2.5),(1.875,2.5)), + ((1.75,1.24),(1.75,2.5),(1.9,2.5),(1.9,1.24),(1.75,1.24)), ) createRL( tech, net, 'poly', - ((1.875,5.5),(1.875,8.76),(2.025,8.76),(2.025,5.5),(1.875,5.5)), + ((1.75,2.5),(1.75,5.5),(1.9,5.5),(1.9,2.5),(1.75,2.5)), ) createRL( tech, net, 'licon', - ((1.655,4.715),(1.655,4.885),(1.825,4.885),(1.825,4.715),(1.655,4.715)), + ((1.605,4.715),(1.605,4.885),(1.775,4.885),(1.775,4.715),(1.605,4.715)), ) createRL( tech, net, 'li', - ((1.655,4.635),(1.655,4.965),(1.825,4.965),(1.825,4.635),(1.655,4.635)), + ((1.605,4.635),(1.605,4.965),(1.775,4.965),(1.775,4.635),(1.605,4.635)), ) createRL( tech, net, 'li', - ((1.655,2.54),(1.655,8.63),(1.825,8.63),(1.825,2.54),(1.655,2.54)), + ((1.605,2.54),(1.605,8.63),(1.775,8.63),(1.775,2.54),(1.605,2.54)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(1.74), u(0.17), u(2.54), u(8.63), + u(1.69), u(0.17), u(2.54), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(1.74), u(0.17), u(2.54), u(8.63), + u(1.69), u(0.17), u(2.54), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) net = nets['int2'] createRL( tech, net, 'difftap', - ((2.025,5.63),(2.025,8.63),(2.275,8.63),(2.275,5.63),(2.025,5.63)), + ((1.9,5.63),(1.9,8.63),(2.15,8.63),(2.15,5.63),(1.9,5.63)), ) createRL( tech, net, 'difftap', - ((2.255,5.63),(2.255,8.63),(2.505,8.63),(2.505,5.63),(2.255,5.63)), + ((2.055,5.63),(2.055,8.63),(2.305,8.63),(2.305,5.63),(2.055,5.63)), ) net = nets['i3'] createRL( tech, net, 'poly', - ((2.505,1.24),(2.505,2.5),(2.655,2.5),(2.655,1.24),(2.505,1.24)), + ((2.305,1.24),(2.305,2.5),(2.455,2.5),(2.455,1.24),(2.305,1.24)), ) createRL( tech, net, 'poly', - ((2.235,4.635),(2.235,4.965),(2.505,4.965),(2.505,4.635),(2.235,4.635)), + ((2.11,4.635),(2.11,4.965),(2.38,4.965),(2.38,4.635),(2.11,4.635)), ) createRL( tech, net, 'poly', - ((2.505,5.5),(2.505,8.76),(2.655,8.76),(2.655,5.5),(2.505,5.5)), + ((2.305,5.5),(2.305,8.76),(2.455,8.76),(2.455,5.5),(2.305,5.5)), ) createRL( tech, net, 'poly', - ((2.505,2.5),(2.505,5.5),(2.655,5.5),(2.655,2.5),(2.505,2.5)), + ((2.305,2.5),(2.305,5.5),(2.455,5.5),(2.455,2.5),(2.305,2.5)), ) createRL( tech, net, 'licon', - ((2.285,4.715),(2.285,4.885),(2.455,4.885),(2.455,4.715),(2.285,4.715)), + ((2.16,4.715),(2.16,4.885),(2.33,4.885),(2.33,4.715),(2.16,4.715)), ) createRL( tech, net, 'li', - ((2.285,2.54),(2.285,8.63),(2.455,8.63),(2.455,2.54),(2.285,2.54)), + ((2.16,2.54),(2.16,8.63),(2.33,8.63),(2.33,2.54),(2.16,2.54)), ) createRL( tech, net, 'li', - ((2.285,4.635),(2.285,4.965),(2.455,4.965),(2.455,4.635),(2.285,4.635)), + ((2.16,4.635),(2.16,4.965),(2.33,4.965),(2.33,4.635),(2.16,4.635)), ) Vertical.create( net, tech.getLayer('li.pin'), - u(2.37), u(0.17), u(2.54), u(8.63), + u(2.245), u(0.17), u(2.54), u(8.63), ) pin = Vertical.create( net, tech.getLayer('li'), - u(2.37), u(0.17), u(2.54), u(8.63), + u(2.245), u(0.17), u(2.54), u(8.63), ) net.setExternal(True) NetExternalComponents.setExternal(pin) diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/techno.py b/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/techno.py index 116bae6..101908c 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/techno.py +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/coriolis/techno/etc/coriolis2/node130/sky130/techno.py @@ -61,7 +61,7 @@ ('minWidth', 'licon', 0.17, Length, ''), ('maxWidth', 'licon', 0.17, Length, ''), ('minSpacing', 'licon', 0.17, Length, ''), - ('minEnclosure', 'difftap', 'licon', (0.04, 0.06), Length|Asymmetric, ''), + ('minEnclosure', 'difftap', 'licon', (0.04, 0.12), Length|Asymmetric, ''), ('minEnclosure', 'poly', 'licon', (0.05, 0.08), Length|Asymmetric, ''), ('minEnclosure', 'li', 'licon', (0.0, 0.08), Length|Asymmetric, ''), ('minWidth', 'mcon', 0.17, Length, ''), @@ -116,22 +116,22 @@ ('minWidth', 'pad', 40.0, Length, ''), ('minSpacing', 'pad', 1.27, Length, ''), ('minEnclosure', 'm5', 'pad', 1.0, Length|Asymmetric, ''), - # ('minWidth', 'active_res', 0.15, Length, ''), - # ('minSpacing', 'active_res', 0.27, Length, ''), - # ('minEnclosure', 'diffres', 'difftap', 0.005, Length|Asymmetric, ''), # ('minWidth', 'poly_res', 0.15, Length, ''), # ('minSpacing', 'poly_res', 0.21, Length, ''), # ('minEnclosure', 'polyres', 'poly', 0.005, Length|Asymmetric, ''), - # ('minWidth', 'ndiode', 0.15, Length, ''), - # ('minSpacing', 'ndiode', 0.27, Length, ''), - # ('minEnclosure', 'areaid_diode', 'difftap', 0.005, Length|Asymmetric, ''), + # ('minWidth', 'active_res', 0.15, Length, ''), + # ('minSpacing', 'active_res', 0.27, Length, ''), + # ('minEnclosure', 'diffres', 'difftap', 0.005, Length|Asymmetric, ''), # ('minWidth', 'pdiode', 0.15, Length, ''), # ('minSpacing', 'pdiode', 0.27, Length, ''), # ('minEnclosure', 'areaid_diode', 'difftap', 0.005, Length|Asymmetric, ''), + # ('minWidth', 'ndiode', 0.15, Length, ''), + # ('minSpacing', 'ndiode', 0.27, Length, ''), + # ('minEnclosure', 'areaid_diode', 'difftap', 0.005, Length|Asymmetric, ''), + ('minSpacing', 'difftap', 'poly', 0.075, Length|Asymmetric, ''), + ('minSpacing', 'licon', 'difftap', 0.19, Length|Asymmetric, ''), ('minSpacing', 'difftap', 'hvi', 0.18, Length|Asymmetric, ''), - ('minSpacing', 'difftap', 'poly', 0.05, Length|Asymmetric, ''), ('minSpacing', 'difftap', 'nwm', 0.34, Length|Asymmetric, ''), - ('minSpacing', 'intersect(licon,poly)', 'poly', 0.19, Length|Asymmetric, ''), ) def _setup_techno(): @@ -323,16 +323,16 @@ def _setup_techno(): size=u(40.0), spacing=u(1.27), gds2Layer=76, gds2DataType=20, ) createBL( - tech, 'areaid_diode', BasicLayer.Material.other, - gds2Layer=81, gds2DataType=23, + tech, 'polyres', BasicLayer.Material.other, + gds2Layer=66, gds2DataType=13, ) createBL( tech, 'diffres', BasicLayer.Material.other, gds2Layer=65, gds2DataType=13, ) createBL( - tech, 'polyres', BasicLayer.Material.other, - gds2Layer=66, gds2DataType=13, + tech, 'areaid_diode', BasicLayer.Material.other, + gds2Layer=81, gds2DataType=23, ) # ViaLayers @@ -430,8 +430,8 @@ def _setup_techno(): ) # Resistors - # ResistorLayer.create(tech, 'active_res', 'difftap', 'diffres') # ResistorLayer.create(tech, 'poly_res', 'poly', 'polyres') + # ResistorLayer.create(tech, 'active_res', 'difftap', 'diffres') # Transistors # GateLayer.create(tech, 'hvmosgate', 'difftap', 'poly', 'hvi') diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.drc b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.drc index 5c26389..7b5a9da 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.drc +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.drc @@ -86,9 +86,9 @@ via4 = input(71, 44) hvtp = input(78, 44) lvtn = input(125, 44) pad = input(76, 20) -areaid_diode = input(81, 23) -diffres = input(65, 13) polyres = input(66, 13) +diffres = input(65, 13) +areaid_diode = input(81, 23) # Grid check nwm.ongrid(0.005) @@ -134,15 +134,15 @@ via4.ongrid(0.005) hvtp.ongrid(0.005) lvtn.ongrid(0.005) pad.ongrid(0.005) -areaid_diode.ongrid(0.005) -diffres.ongrid(0.005) polyres.ongrid(0.005) +diffres.ongrid(0.005) +areaid_diode.ongrid(0.005) # Derived layers # wafer.remove(nwm).alias(substrate:Sky130) substrate__Sky130 = (extent-nwm) -# difftap.remove(join(poly,diffres)).alias(difftap__conn) -difftap__conn = (difftap-(poly+diffres)) +# difftap.remove(join(diffres,poly)).alias(difftap__conn) +difftap__conn = (difftap-(diffres+poly)) # intersect(difftap__conn,nsdm).alias(difftap__conn:nsdm) difftap__conn__nsdm = (difftap__conn&nsdm) # intersect(difftap__conn,psdm).alias(difftap__conn:psdm) @@ -167,14 +167,14 @@ gate__mosfet__pfet_01v8_hvt = (gate__mosgate&nwm&psdm&hvtp) gate__mosfet__pfet_01v8_lvt = (gate__mosgate&nwm&psdm&lvtn) # intersect(gate:hvmosgate,nwm,psdm).alias(gate:mosfet:pfet_g5v0d10v5) gate__mosfet__pfet_g5v0d10v5 = (gate__hvmosgate&nwm&psdm) -# intersect(difftap,diffres).alias(resistor:active_res) -resistor__active_res = (difftap&diffres) # intersect(poly,polyres).alias(resistor:poly_res) resistor__poly_res = (poly&polyres) -# intersect(difftap,areaid_diode,nsdm).alias(diode:ndiode) -diode__ndiode = (difftap&areaid_diode&nsdm) +# intersect(difftap,diffres).alias(resistor:active_res) +resistor__active_res = (difftap&diffres) # intersect(difftap,areaid_diode,psdm).alias(diode:pdiode) diode__pdiode = (difftap&areaid_diode&psdm) +# intersect(difftap,areaid_diode,nsdm).alias(diode:ndiode) +diode__ndiode = (difftap&areaid_diode&nsdm) # Connectivity # connect(substrate:Sky130,wafer) @@ -406,10 +406,10 @@ width_check(licon, 0.17).output( licon.space(0.17).output( "licon space", "licon minimum space: 0.17µm" ) -# licon.enclosed_by(difftap) >= Enclosure((0.04,0.06)) -oppenc_check(licon, difftap, 0.04, 0.06).output( +# licon.enclosed_by(difftap) >= Enclosure((0.04,0.12)) +oppenc_check(licon, difftap, 0.04, 0.12).output( "difftap:licon asymmetric enclosure", - "Minimum enclosure of difftap around licon: 0.04µm minimum, 0.06µm opposite" + "Minimum enclosure of difftap around licon: 0.04µm minimum, 0.12µm opposite" ) # licon.enclosed_by(poly) >= Enclosure((0.05,0.08)) oppenc_check(licon, poly, 0.05, 0.08).output( @@ -638,14 +638,14 @@ m5.enclosing(pad, 1.0).output( "m5:pad enclosure", "Minimum enclosure of m5 around pad: 1.0µm" ) -# difftap.remove(diffres).width >= 0.005 -(difftap-diffres).width(0.005).output( - "(difftap-diffres) width", "(difftap-diffres) minimum width: 0.005µm" -) # poly.remove(polyres).width >= 0.005 (poly-polyres).width(0.005).output( "(poly-polyres) width", "(poly-polyres) minimum width: 0.005µm" ) +# difftap.remove(diffres).width >= 0.005 +(difftap-diffres).width(0.005).output( + "(difftap-diffres) width", "(difftap-diffres) minimum width: 0.005µm" +) # difftap.enclosed_by(areaid_diode) >= Enclosure(0.005) areaid_diode.enclosing(difftap, 0.005).output( "areaid_diode:difftap enclosure", @@ -656,23 +656,23 @@ areaid_diode.enclosing(difftap, 0.005).output( "areaid_diode:difftap enclosure", "Minimum enclosure of areaid_diode around difftap: 0.005µm" ) +# space(difftap,poly) >= 0.075 +difftap.separation(poly, 0.075, square).output( + "difftap:poly spacing", + "Minimum spacing between difftap and poly: 0.075µm" +) +# space(licon,difftap) >= 0.19 +licon.separation(difftap, 0.19, square).output( + "licon:difftap spacing", + "Minimum spacing between licon and difftap: 0.19µm" +) # space(difftap,hvi) >= 0.18 difftap.separation(hvi, 0.18, square).output( "difftap:hvi spacing", "Minimum spacing between difftap and hvi: 0.18µm" ) -# space(difftap,poly) >= 0.05 -difftap.separation(poly, 0.05, square).output( - "difftap:poly spacing", - "Minimum spacing between difftap and poly: 0.05µm" -) # space(difftap,nwm) >= 0.34 difftap.separation(nwm, 0.34, square).output( "difftap:nwm spacing", "Minimum spacing between difftap and nwm: 0.34µm" ) -# space(intersect(licon,poly),poly) >= 0.19 -(licon&poly).separation(poly, 0.19, square).output( - "(licon&poly):poly spacing", - "Minimum spacing between (licon&poly) and poly: 0.19µm" -) diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.lvs b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.lvs index ee5d0d4..f25cefb 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.lvs +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130.lvs @@ -50,11 +50,11 @@ via4 = input(71, 44) hvtp = input(78, 44) lvtn = input(125, 44) pad = input(76, 20) -areaid_diode = input(81, 23) -diffres = input(65, 13) polyres = input(66, 13) +diffres = input(65, 13) +areaid_diode = input(81, 23) substrate__Sky130 = (extent-nwm) -difftap__conn = (difftap-(poly+diffres)) +difftap__conn = (difftap-(diffres+poly)) difftap__conn__nsdm = (difftap__conn&nsdm) difftap__conn__psdm = (difftap__conn&psdm) poly__conn = (poly-polyres) @@ -67,10 +67,10 @@ gate__mosfet__pfet_01v8 = (gate__mosgate&nwm&psdm) gate__mosfet__pfet_01v8_hvt = (gate__mosgate&nwm&psdm&hvtp) gate__mosfet__pfet_01v8_lvt = (gate__mosgate&nwm&psdm&lvtn) gate__mosfet__pfet_g5v0d10v5 = (gate__hvmosgate&nwm&psdm) -resistor__active_res = (difftap&diffres) resistor__poly_res = (poly&polyres) -diode__ndiode = (difftap&areaid_diode&nsdm) +resistor__active_res = (difftap&diffres) diode__pdiode = (difftap&areaid_diode&psdm) +diode__ndiode = (difftap&areaid_diode&nsdm) # Connectivity # connect(substrate:Sky130,wafer) @@ -126,26 +126,26 @@ connect(m4, via4) connect(via4, m5) # Resistors -# active_res -extract_devices(resistor("active_res", 200.0), { - "R" => resistor__active_res, "C" => difftap__conn, -}) -same_device_classes("active_res", "RES") # poly_res extract_devices(resistor("poly_res", 300.0), { "R" => resistor__poly_res, "C" => poly__conn, }) same_device_classes("poly_res", "RES") +# active_res +extract_devices(resistor("active_res", 200.0), { + "R" => resistor__active_res, "C" => difftap__conn, +}) +same_device_classes("active_res", "RES") # Diodes -# ndiode -extract_devices(diode("None"), { - "P" => substrate__Sky130, "N" => diode__ndiode, "tC" => difftap__conn -}) # pdiode extract_devices(diode("None"), { "P" => diode__pdiode, "N" => substrate__Sky130, "tA" => difftap__conn }) +# ndiode +extract_devices(diode("None"), { + "P" => substrate__Sky130, "N" => diode__ndiode, "tC" => difftap__conn +}) # Transistors # nfet_01v8 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130_extract.lvs b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130_extract.lvs index ba9a897..a174c1d 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130_extract.lvs +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/share/Sky130_extract.lvs @@ -49,11 +49,11 @@ via4 = input(71, 44) hvtp = input(78, 44) lvtn = input(125, 44) pad = input(76, 20) -areaid_diode = input(81, 23) -diffres = input(65, 13) polyres = input(66, 13) +diffres = input(65, 13) +areaid_diode = input(81, 23) substrate__Sky130 = (extent-nwm) -difftap__conn = (difftap-(poly+diffres)) +difftap__conn = (difftap-(diffres+poly)) difftap__conn__nsdm = (difftap__conn&nsdm) difftap__conn__psdm = (difftap__conn&psdm) poly__conn = (poly-polyres) @@ -66,10 +66,10 @@ gate__mosfet__pfet_01v8 = (gate__mosgate&nwm&psdm) gate__mosfet__pfet_01v8_hvt = (gate__mosgate&nwm&psdm&hvtp) gate__mosfet__pfet_01v8_lvt = (gate__mosgate&nwm&psdm&lvtn) gate__mosfet__pfet_g5v0d10v5 = (gate__hvmosgate&nwm&psdm) -resistor__active_res = (difftap&diffres) resistor__poly_res = (poly&polyres) -diode__ndiode = (difftap&areaid_diode&nsdm) +resistor__active_res = (difftap&diffres) diode__pdiode = (difftap&areaid_diode&psdm) +diode__ndiode = (difftap&areaid_diode&nsdm) # Connectivity # connect(substrate:Sky130,wafer) @@ -125,26 +125,26 @@ connect(m4, via4) connect(via4, m5) # Resistors -# active_res -extract_devices(resistor("active_res", 200.0), { - "R" => resistor__active_res, "C" => difftap__conn, -}) -same_device_classes("active_res", "RES") # poly_res extract_devices(resistor("poly_res", 300.0), { "R" => resistor__poly_res, "C" => poly__conn, }) same_device_classes("poly_res", "RES") +# active_res +extract_devices(resistor("active_res", 200.0), { + "R" => resistor__active_res, "C" => difftap__conn, +}) +same_device_classes("active_res", "RES") # Diodes -# ndiode -extract_devices(diode("None"), { - "P" => substrate__Sky130, "N" => diode__ndiode, "tC" => difftap__conn -}) # pdiode extract_devices(diode("None"), { "P" => diode__pdiode, "N" => substrate__Sky130, "tA" => difftap__conn }) +# ndiode +extract_devices(diode("None"), { + "P" => substrate__Sky130, "N" => diode__ndiode, "tC" => difftap__conn +}) # Transistors # nfet_01v8 diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/C4M.Sky130.lyt b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/C4M.Sky130.lyt index 9a76d7a..8775fe1 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/C4M.Sky130.lyt +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/C4M.Sky130.lyt @@ -1,2 +1,2 @@ -C4M.Sky130KLayout generated from Sky130 PDKMaster technology0.001truetruelayer_map('64/20 : nwm';'93/44 : nsdm';'94/20 : psdm';'75/20 : hvi';'65/16 : difftap.pin';'100/10 : difftap.block';'65/20 : difftap';'66/16 : poly.pin';'100/20 : poly.block';'66/20 : poly';'67/16 : li.pin';'100/40 : li.block';'67/20 : li';'68/16 : m1.pin';'100/60 : m1.block';'68/20 : m1';'69/16 : m2.pin';'100/80 : m2.block';'69/20 : m2';'70/16 : m3.pin';'100/100 : m3.block';'70/20 : m3';'71/16 : m4.pin';'100/120 : m4.block';'71/20 : m4';'72/16 : m5.pin';'100/140 : m5.block';'72/20 : m5';'100/30 : licon.block';'100/50 : mcon.block';'100/70 : via.block';'100/90 : via2.block';'100/110 : via3.block';'100/130 : via4.block';'66/44 : licon';'67/44 : mcon';'68/44 : via';'69/44 : via2';'70/44 : via3';'71/44 : via4';'78/44 : hvtp';'125/44 : lvtn';'66/13 : polyres';'76/20 : pad';'81/23 : areaid_diode';'65/13 : diffres') \ No newline at end of file +C4M.Sky130KLayout generated from Sky130 PDKMaster technology0.001truetruelayer_map('64/20 : nwm';'93/44 : nsdm';'94/20 : psdm';'75/20 : hvi';'65/16 : difftap.pin';'100/10 : difftap.block';'65/20 : difftap';'66/16 : poly.pin';'100/20 : poly.block';'66/20 : poly';'67/16 : li.pin';'100/40 : li.block';'67/20 : li';'68/16 : m1.pin';'100/60 : m1.block';'68/20 : m1';'69/16 : m2.pin';'100/80 : m2.block';'69/20 : m2';'70/16 : m3.pin';'100/100 : m3.block';'70/20 : m3';'71/16 : m4.pin';'100/120 : m4.block';'71/20 : m4';'72/16 : m5.pin';'100/140 : m5.block';'72/20 : m5';'100/30 : licon.block';'100/50 : mcon.block';'100/70 : via.block';'100/90 : via2.block';'100/110 : via3.block';'100/130 : via4.block';'66/44 : licon';'67/44 : mcon';'68/44 : via';'69/44 : via2';'70/44 : via3';'71/44 : via4';'78/44 : hvtp';'125/44 : lvtn';'66/13 : polyres';'76/20 : pad';'65/13 : diffres';'81/23 : areaid_diode') \ No newline at end of file diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/drc/DRC.lydrc b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/drc/DRC.lydrc index 2459b13..d1b278f 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/drc/DRC.lydrc +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/drc/DRC.lydrc @@ -86,9 +86,9 @@ via4 = input(71, 44) hvtp = input(78, 44) lvtn = input(125, 44) pad = input(76, 20) -areaid_diode = input(81, 23) -diffres = input(65, 13) polyres = input(66, 13) +diffres = input(65, 13) +areaid_diode = input(81, 23) # Grid check nwm.ongrid(0.005) @@ -134,15 +134,15 @@ via4.ongrid(0.005) hvtp.ongrid(0.005) lvtn.ongrid(0.005) pad.ongrid(0.005) -areaid_diode.ongrid(0.005) -diffres.ongrid(0.005) polyres.ongrid(0.005) +diffres.ongrid(0.005) +areaid_diode.ongrid(0.005) # Derived layers # wafer.remove(nwm).alias(substrate:Sky130) substrate__Sky130 = (extent-nwm) -# difftap.remove(join(poly,diffres)).alias(difftap__conn) -difftap__conn = (difftap-(poly+diffres)) +# difftap.remove(join(diffres,poly)).alias(difftap__conn) +difftap__conn = (difftap-(diffres+poly)) # intersect(difftap__conn,nsdm).alias(difftap__conn:nsdm) difftap__conn__nsdm = (difftap__conn&nsdm) # intersect(difftap__conn,psdm).alias(difftap__conn:psdm) @@ -167,14 +167,14 @@ gate__mosfet__pfet_01v8_hvt = (gate__mosgate&nwm&psdm&hvtp) gate__mosfet__pfet_01v8_lvt = (gate__mosgate&nwm&psdm&lvtn) # intersect(gate:hvmosgate,nwm,psdm).alias(gate:mosfet:pfet_g5v0d10v5) gate__mosfet__pfet_g5v0d10v5 = (gate__hvmosgate&nwm&psdm) -# intersect(difftap,diffres).alias(resistor:active_res) -resistor__active_res = (difftap&diffres) # intersect(poly,polyres).alias(resistor:poly_res) resistor__poly_res = (poly&polyres) -# intersect(difftap,areaid_diode,nsdm).alias(diode:ndiode) -diode__ndiode = (difftap&areaid_diode&nsdm) +# intersect(difftap,diffres).alias(resistor:active_res) +resistor__active_res = (difftap&diffres) # intersect(difftap,areaid_diode,psdm).alias(diode:pdiode) diode__pdiode = (difftap&areaid_diode&psdm) +# intersect(difftap,areaid_diode,nsdm).alias(diode:ndiode) +diode__ndiode = (difftap&areaid_diode&nsdm) # Connectivity # connect(substrate:Sky130,wafer) @@ -406,10 +406,10 @@ width_check(licon, 0.17).output( licon.space(0.17).output( "licon space", "licon minimum space: 0.17µm" ) -# licon.enclosed_by(difftap) >= Enclosure((0.04,0.06)) -oppenc_check(licon, difftap, 0.04, 0.06).output( +# licon.enclosed_by(difftap) >= Enclosure((0.04,0.12)) +oppenc_check(licon, difftap, 0.04, 0.12).output( "difftap:licon asymmetric enclosure", - "Minimum enclosure of difftap around licon: 0.04µm minimum, 0.06µm opposite" + "Minimum enclosure of difftap around licon: 0.04µm minimum, 0.12µm opposite" ) # licon.enclosed_by(poly) >= Enclosure((0.05,0.08)) oppenc_check(licon, poly, 0.05, 0.08).output( @@ -638,14 +638,14 @@ m5.enclosing(pad, 1.0).output( "m5:pad enclosure", "Minimum enclosure of m5 around pad: 1.0µm" ) -# difftap.remove(diffres).width >= 0.005 -(difftap-diffres).width(0.005).output( - "(difftap-diffres) width", "(difftap-diffres) minimum width: 0.005µm" -) # poly.remove(polyres).width >= 0.005 (poly-polyres).width(0.005).output( "(poly-polyres) width", "(poly-polyres) minimum width: 0.005µm" ) +# difftap.remove(diffres).width >= 0.005 +(difftap-diffres).width(0.005).output( + "(difftap-diffres) width", "(difftap-diffres) minimum width: 0.005µm" +) # difftap.enclosed_by(areaid_diode) >= Enclosure(0.005) areaid_diode.enclosing(difftap, 0.005).output( "areaid_diode:difftap enclosure", @@ -656,24 +656,24 @@ areaid_diode.enclosing(difftap, 0.005).output( "areaid_diode:difftap enclosure", "Minimum enclosure of areaid_diode around difftap: 0.005µm" ) +# space(difftap,poly) >= 0.075 +difftap.separation(poly, 0.075, square).output( + "difftap:poly spacing", + "Minimum spacing between difftap and poly: 0.075µm" +) +# space(licon,difftap) >= 0.19 +licon.separation(difftap, 0.19, square).output( + "licon:difftap spacing", + "Minimum spacing between licon and difftap: 0.19µm" +) # space(difftap,hvi) >= 0.18 difftap.separation(hvi, 0.18, square).output( "difftap:hvi spacing", "Minimum spacing between difftap and hvi: 0.18µm" ) -# space(difftap,poly) >= 0.05 -difftap.separation(poly, 0.05, square).output( - "difftap:poly spacing", - "Minimum spacing between difftap and poly: 0.05µm" -) # space(difftap,nwm) >= 0.34 difftap.separation(nwm, 0.34, square).output( "difftap:nwm spacing", "Minimum spacing between difftap and nwm: 0.34µm" ) -# space(intersect(licon,poly),poly) >= 0.19 -(licon&poly).separation(poly, 0.19, square).output( - "(licon&poly):poly spacing", - "Minimum spacing between (licon&poly) and poly: 0.19µm" -) \ No newline at end of file diff --git a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/lvs/Extract.lylvs b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/lvs/Extract.lylvs index df33861..4198a59 100644 --- a/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/lvs/Extract.lylvs +++ b/thirdparty/open_pdk/C4M.Sky130/libs.tech/klayout/tech/C4M.Sky130/lvs/Extract.lylvs @@ -49,11 +49,11 @@ via4 = input(71, 44) hvtp = input(78, 44) lvtn = input(125, 44) pad = input(76, 20) -areaid_diode = input(81, 23) -diffres = input(65, 13) polyres = input(66, 13) +diffres = input(65, 13) +areaid_diode = input(81, 23) substrate__Sky130 = (extent-nwm) -difftap__conn = (difftap-(poly+diffres)) +difftap__conn = (difftap-(diffres+poly)) difftap__conn__nsdm = (difftap__conn&nsdm) difftap__conn__psdm = (difftap__conn&psdm) poly__conn = (poly-polyres) @@ -66,10 +66,10 @@ gate__mosfet__pfet_01v8 = (gate__mosgate&nwm&psdm) gate__mosfet__pfet_01v8_hvt = (gate__mosgate&nwm&psdm&hvtp) gate__mosfet__pfet_01v8_lvt = (gate__mosgate&nwm&psdm&lvtn) gate__mosfet__pfet_g5v0d10v5 = (gate__hvmosgate&nwm&psdm) -resistor__active_res = (difftap&diffres) resistor__poly_res = (poly&polyres) -diode__ndiode = (difftap&areaid_diode&nsdm) +resistor__active_res = (difftap&diffres) diode__pdiode = (difftap&areaid_diode&psdm) +diode__ndiode = (difftap&areaid_diode&nsdm) # Connectivity # connect(substrate:Sky130,wafer) @@ -125,26 +125,26 @@ connect(m4, via4) connect(via4, m5) # Resistors -# active_res -extract_devices(resistor("active_res", 200.0), { - "R" => resistor__active_res, "C" => difftap__conn, -}) -same_device_classes("active_res", "RES") # poly_res extract_devices(resistor("poly_res", 300.0), { "R" => resistor__poly_res, "C" => poly__conn, }) same_device_classes("poly_res", "RES") +# active_res +extract_devices(resistor("active_res", 200.0), { + "R" => resistor__active_res, "C" => difftap__conn, +}) +same_device_classes("active_res", "RES") # Diodes -# ndiode -extract_devices(diode("None"), { - "P" => substrate__Sky130, "N" => diode__ndiode, "tC" => difftap__conn -}) # pdiode extract_devices(diode("None"), { "P" => diode__pdiode, "N" => substrate__Sky130, "tA" => difftap__conn }) +# ndiode +extract_devices(diode("None"), { + "P" => substrate__Sky130, "N" => diode__ndiode, "tC" => difftap__conn +}) # Transistors # nfet_01v8