<?xml version="1.0" encoding="UTF-8"?>

<!--
 *
 * Electric(tm) VLSI Design System
 *
 * File: cmos.xml
 * cmos technology description
 * Generated automatically from a library
 *
 * Copyright (c) 2008 Sun Microsystems and Static Free Software
 *
 * Electric(tm) is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * Electric(tm) is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Electric(tm); see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, Mass 02111-1307, USA.
 */
-->

<technology name="cmos"
     xmlns="http://electric.sun.com/Technology"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://electric.sun.com/Technology ../../technology/Technology.xsd">

    <shortName>Generic CMOS</shortName>
    <description>CMOS (N-Well, Griswold rules)</description>
    <version tech="1" electric="8.05g"/>
    <version tech="2" electric="8.05o"/>
    <numMetals min="1" max="1" default="1"/>
    <scale value="2000.0" relevant="true"/>
    <defaultFoundry value="NONE"/>
    <minResistance value="10.0"/>
    <minCapacitance value="0.0"/>

    <!-- Transparent layers -->
    <transparentLayer transparent="1">
        <r>0</r>
        <g>0</g>
        <b>255</b>
    </transparentLayer>
    <transparentLayer transparent="2">
        <r>223</r>
        <g>0</g>
        <b>0</b>
    </transparentLayer>
    <transparentLayer transparent="3">
        <r>0</r>
        <g>255</g>
        <b>0</b>
    </transparentLayer>
    <transparentLayer transparent="4">
        <r>255</r>
        <g>190</g>
        <b>6</b>
    </transparentLayer>
    <transparentLayer transparent="5">
        <r>170</r>
        <g>140</g>
        <b>30</b>
    </transparentLayer>

    <!-- **************************************** LAYERS **************************************** -->
    <layer name="Metal" fun="METAL1">
        <transparentColor transparent="1"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>  X   X   X   X </pattern>
        <pattern>                </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>                </pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern>                </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>                </pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern>                </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>                </pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern>                </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="0.5" height="11.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="CM"/>
        <pureLayerNode name="Metal-Node" port="metal">
            <lambda>3.0</lambda>
            <portArc>Metal</portArc>
        </pureLayerNode>
    </layer>

    <layer name="Polysilicon" fun="POLY1">
        <transparentColor transparent="2"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>    X       X   </pattern>
        <pattern>     X       X  </pattern>
        <pattern>      X       X </pattern>
        <pattern>       X       X</pattern>
        <pattern>X       X       </pattern>
        <pattern> X       X      </pattern>
        <pattern>  X       X     </pattern>
        <pattern>   X       X    </pattern>
        <pattern>    X       X   </pattern>
        <pattern>     X       X  </pattern>
        <pattern>      X       X </pattern>
        <pattern>       X       X</pattern>
        <pattern>X       X       </pattern>
        <pattern> X       X      </pattern>
        <pattern>  X       X     </pattern>
        <pattern>   X       X    </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="0.5" height="9.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="CP"/>
        <pureLayerNode name="Polysilicon-Node" port="polysilicon">
            <lambda>2.0</lambda>
            <portArc>Polysilicon</portArc>
        </pureLayerNode>
    </layer>

    <layer name="Diffusion" fun="DIFF">
        <transparentColor transparent="3"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern>      XX      XX</pattern>
        <pattern> X  X    X  X   </pattern>
        <pattern>      XX      XX</pattern>
        <pattern>                </pattern>
        <pattern>  XX      XX    </pattern>
        <pattern>X    X  X    X  </pattern>
        <pattern>  XX      XX    </pattern>
        <pattern>                </pattern>
        <pattern>      XX      XX</pattern>
        <pattern> X  X    X  X   </pattern>
        <pattern>      XX      XX</pattern>
        <pattern>                </pattern>
        <pattern>  XX      XX    </pattern>
        <pattern>X    X  X    X  </pattern>
        <pattern>  XX      XX    </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="2.0" height="7.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="CD"/>
        <pureLayerNode name="Diffusion-Node" port="diffusion">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Contact-Cut" fun="CONTACT1">
        <opaqueColor r="180" g="130" b="0"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="2.0" height="9.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="CC"/>
        <pureLayerNode name="Cut-Node" style="CLOSED" port="cut">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Ohmic-Cut" fun="CONTACT2">
        <opaqueColor r="180" g="130" b="0"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="2.0" height="9.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="CC"/>
        <pureLayerNode name="Ohmic-Cut-Node" style="CROSSED" port="ohmic-cut">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Transistor" fun="TRANSISTOR">
        <opaqueColor r="200" g="200" b="200"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
    </layer>

    <layer name="P-Plus" fun="IMPLANTP">
        <transparentColor transparent="4"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>   X            </pattern>
        <pattern>          X     </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>               X</pattern>
        <pattern>      X         </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>   X            </pattern>
        <pattern>          X     </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>               X</pattern>
        <pattern>      X         </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="5.0" height="4.0" mode="SCREEN_DOOR" factor="0.4"/>
        <cifLayer cif="CS"/>
        <pureLayerNode name="P-Node" port="p-plus">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="P-Well" fun="WELLP">
        <transparentColor transparent="5"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern>        XX      </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>        XX      </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>        XX      </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>        XX      </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="9.0" height="0.0" mode="NICEST" factor="0.8"/>
        <cifLayer cif="CW"/>
        <pureLayerNode name="Well-Node" port="well">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Overglass" fun="OVERGLASS">
        <opaqueColor r="0" g="0" b="0"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>   XXX     XXX  </pattern>
        <pattern>  XXXXX   XXXXX </pattern>
        <pattern>  XX XX   XX XX </pattern>
        <pattern>  XXXXX   XXXXX </pattern>
        <pattern>   XXX     XXX  </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>   XXX     XXX  </pattern>
        <pattern>  XXXXX   XXXXX </pattern>
        <pattern>  XX XX   XX XX </pattern>
        <pattern>  XXXXX   XXXXX </pattern>
        <pattern>   XXX     XXX  </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <pattern>                </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="1.0" height="13.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="CG"/>
        <pureLayerNode name="Overglass-Node" port="overglass">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <!-- ******************** ARCS ******************** -->
    <arcProto name="Metal" fun="METAL1">
        <wipable/>
        <extended>true</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>400.0</antennaRatio>
        <diskOffset untilVersion="2" width="1.5"/>
        <arcLayer layer="Metal" style="FILLED">
            <lambda>1.5</lambda>
        </arcLayer>
    </arcProto>

    <arcProto name="Polysilicon" fun="POLY1">
        <wipable/>
        <extended>true</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>200.0</antennaRatio>
        <diskOffset untilVersion="2" width="1.0"/>
        <arcLayer layer="Polysilicon" style="FILLED">
            <lambda>1.0</lambda>
        </arcLayer>
    </arcProto>

    <arcProto name="Diffusion-p" fun="DIFFP">
        <wipable/>
        <extended>true</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>200.0</antennaRatio>
        <diskOffset untilVersion="1" width="3.0"/>
        <diskOffset untilVersion="2" width="1.0"/>
        <arcLayer layer="Diffusion" style="FILLED">
            <lambda>1.0</lambda>
        </arcLayer>
        <arcLayer layer="P-Plus" style="FILLED">
            <lambda>3.0</lambda>
        </arcLayer>
    </arcProto>

    <arcProto name="Diffusion-well" fun="DIFFN">
        <wipable/>
        <extended>true</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>200.0</antennaRatio>
        <diskOffset untilVersion="1" width="4.0"/>
        <diskOffset untilVersion="2" width="1.0"/>
        <arcLayer layer="Diffusion" style="FILLED">
            <lambda>1.0</lambda>
        </arcLayer>
        <arcLayer layer="P-Well" style="FILLED">
            <lambda>4.0</lambda>
        </arcLayer>
    </arcProto>

    <!-- ******************** NODES ******************** -->
    <primitiveNode name="Metal-Pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="2" x="1.5" y="1.5"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.5" khx="1.5" kly="-1.5" khy="1.5"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal" style="CROSSED">
            <box>
                <lambdaBox klx="-1.5" khx="1.5" kly="-1.5" khy="1.5"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Metal</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Polysilicon-Pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Polysilicon" style="CROSSED">
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="polysilicon">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Polysilicon</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Diffusion-P-Pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="1" x="3.0" y="3.0"/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Diffusion" style="CROSSED">
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="P-Plus" style="CROSSED">
            <box>
                <lambdaBox klx="-3.0" khx="3.0" kly="-3.0" khy="3.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="diff-p">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Diffusion-p</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Diffusion-Well-Pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="1" x="4.0" y="4.0"/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Diffusion" style="CROSSED">
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="P-Well" style="CROSSED">
            <box>
                <lambdaBox klx="-4.0" khx="4.0" kly="-4.0" khy="4.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="diff-w">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Diffusion-well</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Metal-Polysilicon-Con" fun="CONTACT">
        <diskOffset untilVersion="2" x="2.0" y="2.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Polysilicon" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact-Cut" style="CLOSED">
            <multicutbox sizex="2.0" sizey="2.0" sep1d="2.0" sep2d="2.0">
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </multicutbox>
        </nodeLayer>
        <primitivePort name="metal-poly">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Polysilicon</portArc>
            <portArc>Metal</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Metal-Diff-P-Con" fun="CONTACT">
        <diskOffset untilVersion="1" x="4.0" y="4.0"/>
        <diskOffset untilVersion="2" x="2.0" y="2.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact-Cut" style="CLOSED">
            <multicutbox sizex="2.0" sizey="2.0" sep1d="2.0" sep2d="2.0">
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </multicutbox>
        </nodeLayer>
        <nodeLayer layer="P-Plus" style="FILLED">
            <box>
                <lambdaBox klx="-4.0" khx="4.0" kly="-4.0" khy="4.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal-diff-p">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Diffusion-p</portArc>
            <portArc>Metal</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Metal-Diff-Well-Con" fun="CONTACT">
        <diskOffset untilVersion="1" x="5.0" y="5.0"/>
        <diskOffset untilVersion="2" x="2.0" y="2.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact-Cut" style="CLOSED">
            <multicutbox sizex="2.0" sizey="2.0" sep1d="2.0" sep2d="2.0">
                <lambdaBox klx="0.0" khx="0.0" kly="0.0" khy="0.0"/>
            </multicutbox>
        </nodeLayer>
        <nodeLayer layer="P-Well" style="FILLED">
            <box>
                <lambdaBox klx="-5.0" khx="5.0" kly="-5.0" khy="5.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal-diff-w">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Diffusion-well</portArc>
            <portArc>Metal</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Transistor" fun="TRAPMOS">
        <diskOffset untilVersion="1" x="3.0" y="3.0"/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Polysilicon" style="FILLED">
            <serpbox lWidth="1.0" rWidth="1.0" tExtent="2.0" bExtent="2.0">
                <lambdaBox klx="-3.0" khx="3.0" kly="-1.0" khy="1.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED" electrical="false">
            <serpbox lWidth="3.0" rWidth="3.0" tExtent="0.0" bExtent="0.0">
                <lambdaBox klx="-1.0" khx="1.0" kly="-3.0" khy="3.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="P-Plus" style="FILLED" portNum="-1">
            <serpbox lWidth="3.0" rWidth="3.0" tExtent="2.0" bExtent="2.0">
                <lambdaBox klx="-3.0" khx="3.0" kly="-3.0" khy="3.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED" portNum="3" electrical="true">
            <serpbox kly="0.0" lWidth="3.0" rWidth="0.0" tExtent="0.0" bExtent="0.0">
                <lambdaBox klx="-1.0" khx="1.0" kly="0.0" khy="3.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED" portNum="1" electrical="true">
            <serpbox khy="0.0" lWidth="0.0" rWidth="3.0" tExtent="0.0" bExtent="0.0">
                <lambdaBox klx="-1.0" khx="1.0" kly="-3.0" khy="0.0"/>
            </serpbox>
        </nodeLayer>
        <primitivePort name="trans-poly-left">
            <portAngle primary="180" range="85"/>
            <portTopology>0</portTopology>
            <box khx="-1.0">
                <lambdaBox klx="-2.0" khx="-2.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Polysilicon</portArc>
        </primitivePort>
        <primitivePort name="trans-diff-top">
            <portAngle primary="90" range="85"/>
            <portTopology>1</portTopology>
            <box kly="1.0">
                <lambdaBox klx="0.0" khx="0.0" kly="2.0" khy="2.0"/>
            </box>
            <portArc>Diffusion-p</portArc>
        </primitivePort>
        <primitivePort name="trans-poly-right">
            <portAngle primary="0" range="85"/>
            <portTopology>0</portTopology>
            <box klx="1.0">
                <lambdaBox klx="2.0" khx="2.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Polysilicon</portArc>
        </primitivePort>
        <primitivePort name="trans-diff-bottom">
            <portAngle primary="270" range="85"/>
            <portTopology>3</portTopology>
            <box khy="-1.0">
                <lambdaBox klx="0.0" khx="0.0" kly="-2.0" khy="-2.0"/>
            </box>
            <portArc>Diffusion-p</portArc>
        </primitivePort>
        <serpTrans>
            <specialValue>4.0</specialValue>
            <specialValue>1.0</specialValue>
            <specialValue>1.0</specialValue>
            <specialValue>2.0</specialValue>
            <specialValue>1.0</specialValue>
            <specialValue>1.0</specialValue>
        </serpTrans>
    </primitiveNode>

    <primitiveNode name="Transistor-Well" fun="TRANMOS">
        <diskOffset untilVersion="1" x="4.0" y="4.0"/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Polysilicon" style="FILLED">
            <serpbox lWidth="1.0" rWidth="1.0" tExtent="2.0" bExtent="2.0">
                <lambdaBox klx="-3.0" khx="3.0" kly="-1.0" khy="1.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED" electrical="false">
            <serpbox lWidth="3.0" rWidth="3.0" tExtent="0.0" bExtent="0.0">
                <lambdaBox klx="-1.0" khx="1.0" kly="-3.0" khy="3.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="P-Well" style="FILLED" portNum="-1">
            <serpbox lWidth="4.0" rWidth="4.0" tExtent="3.0" bExtent="3.0">
                <lambdaBox klx="-4.0" khx="4.0" kly="-4.0" khy="4.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED" portNum="3" electrical="true">
            <serpbox kly="0.0" lWidth="3.0" rWidth="0.0" tExtent="0.0" bExtent="0.0">
                <lambdaBox klx="-1.0" khx="1.0" kly="0.0" khy="3.0"/>
            </serpbox>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED" portNum="1" electrical="true">
            <serpbox khy="0.0" lWidth="0.0" rWidth="3.0" tExtent="0.0" bExtent="0.0">
                <lambdaBox klx="-1.0" khx="1.0" kly="-3.0" khy="0.0"/>
            </serpbox>
        </nodeLayer>
        <primitivePort name="transw-poly-left">
            <portAngle primary="180" range="85"/>
            <portTopology>0</portTopology>
            <box khx="-1.0">
                <lambdaBox klx="-2.0" khx="-2.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Polysilicon</portArc>
        </primitivePort>
        <primitivePort name="transw-diff-top">
            <portAngle primary="90" range="85"/>
            <portTopology>1</portTopology>
            <box kly="1.0">
                <lambdaBox klx="0.0" khx="0.0" kly="2.0" khy="2.0"/>
            </box>
            <portArc>Diffusion-well</portArc>
        </primitivePort>
        <primitivePort name="transw-poly-right">
            <portAngle primary="0" range="85"/>
            <portTopology>0</portTopology>
            <box klx="1.0">
                <lambdaBox klx="2.0" khx="2.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>Polysilicon</portArc>
        </primitivePort>
        <primitivePort name="transw-diff-bottom">
            <portAngle primary="270" range="85"/>
            <portTopology>3</portTopology>
            <box khy="-1.0">
                <lambdaBox klx="0.0" khx="0.0" kly="-2.0" khy="-2.0"/>
            </box>
            <portArc>Diffusion-well</portArc>
        </primitivePort>
        <serpTrans>
            <specialValue>4.0</specialValue>
            <specialValue>1.0</specialValue>
            <specialValue>1.0</specialValue>
            <specialValue>2.0</specialValue>
            <specialValue>1.0</specialValue>
            <specialValue>1.0</specialValue>
        </serpTrans>
    </primitiveNode>

    <primitiveNode name="Metal-Diff-Split-Cut" fun="WELL">
        <diskOffset untilVersion="1" x="7.0" y="5.0"/>
        <diskOffset untilVersion="2" x="4.0" y="2.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-4.0" khx="4.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal" style="FILLED">
            <box>
                <lambdaBox klx="-4.0" khx="4.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED">
            <box>
                <lambdaBox klx="-4.0" khx="4.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact-Cut" style="CLOSED">
            <box klx="0.0">
                <lambdaBox klx="0.0" khx="3.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Ohmic-Cut" style="CROSSED">
            <box khx="0.0">
                <lambdaBox klx="-3.0" khx="0.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="P-Plus" style="FILLED">
            <box khx="0.0">
                <lambdaBox klx="-5.5" khx="0.0" kly="-3.5" khy="3.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="P-Well" style="FILLED">
            <box>
                <lambdaBox klx="-7.0" khx="7.0" kly="-5.0" khy="5.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal-diff-splw-r">
            <portAngle primary="0" range="90"/>
            <portTopology>0</portTopology>
            <box klx="0.0">
                <lambdaBox klx="1.0" khx="3.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Diffusion-well</portArc>
            <portArc>Metal</portArc>
        </primitivePort>
        <primitivePort name="metal-diff-splw-l">
            <portAngle primary="180" range="90"/>
            <portTopology>0</portTopology>
            <box khx="0.0">
                <lambdaBox klx="-3.0" khx="-1.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Metal</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Metal-Diff-SplitN-Cut" fun="SUBSTRATE">
        <diskOffset untilVersion="1" x="5.0" y="4.0"/>
        <diskOffset untilVersion="2" x="4.0" y="2.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-3.0" khx="5.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal" style="FILLED">
            <box>
                <lambdaBox klx="-3.0" khx="5.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Diffusion" style="FILLED">
            <box>
                <lambdaBox klx="-3.0" khx="5.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact-Cut" style="CLOSED">
            <box khx="0.0">
                <lambdaBox klx="-2.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Ohmic-Cut" style="CROSSED">
            <box klx="0.0">
                <lambdaBox klx="1.0" khx="4.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="P-Plus" style="FILLED">
            <box khx="0.0">
                <lambdaBox klx="-5.0" khx="1.0" kly="-4.0" khy="4.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal-diff-splp-l">
            <portAngle primary="0" range="90"/>
            <portTopology>0</portTopology>
            <box khx="0.0">
                <lambdaBox klx="-2.0" khx="0.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Diffusion-p</portArc>
            <portArc>Metal</portArc>
        </primitivePort>
        <primitivePort name="metal-diff-splp-r">
            <portAngle primary="180" range="90"/>
            <portTopology>0</portTopology>
            <box klx="0.0">
                <lambdaBox klx="2.0" khx="4.0" kly="-1.0" khy="1.0"/>
            </box>
            <portArc>Metal</portArc>
        </primitivePort>
    </primitiveNode>

    <menuPalette numColumns="3">

        <menuBox>
            <menuArc>Polysilicon</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="Polysilicon-Pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>Metal-Polysilicon-Con</menuNode>
        </menuBox>

        <menuBox>
            <menuArc>Metal</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="Metal-Pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>Metal-Diff-SplitN-Cut</menuNode>
        </menuBox>

        <menuBox>
            <menuArc>Diffusion-p</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="Diffusion-P-Pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>Metal-Diff-P-Con</menuNode>
        </menuBox>

        <menuBox>
            <menuArc>Diffusion-well</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="Diffusion-Well-Pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>Metal-Diff-Well-Con</menuNode>
        </menuBox>

        <menuBox>
            <menuNode>Transistor</menuNode>
        </menuBox>
        <menuBox>
            <menuNode>Transistor-Well</menuNode>
        </menuBox>
        <menuBox>
            <menuNode>Metal-Diff-Split-Cut</menuNode>
        </menuBox>

        <menuBox>
            <menuText>Pure</menuText>
        </menuBox>
        <menuBox>
            <menuText>Misc.</menuText>
        </menuBox>
        <menuBox>
            <menuText>Cell</menuText>
        </menuBox>

    </menuPalette>

    <Foundry name="NONE">


        <LayerRule ruleName="W_4" layerName="Contact-Cut" type="MINWID" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_0_0" layerNames="{Metal,Metal}" type="UCONSPA" when="ALL" value="3.0"/>
        <LayersRule ruleName="U_1_1" layerNames="{Polysilicon,Polysilicon}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_1_2" layerNames="{Polysilicon,Diffusion}" type="UCONSPA" when="ALL" value="1.0"/>
<!--        <LayersRule ruleName="U_1_3" layerNames="{Polysilicon,P-Plus}" type="UCONSPA" when="ALL" value="2.0"/>    -->
        <LayersRule ruleName="U_2_2" layerNames="{Diffusion,Diffusion}" type="UCONSPA" when="ALL" value="3.0"/>
<!--        <LayersRule ruleName="U_2_3" layerNames="{Diffusion,P-Plus}" type="UCONSPA" when="ALL" value="2.0"/>    -->
        <LayersRule ruleName="U_2_5" layerNames="{Diffusion,Ohmic-Cut}" type="UCONSPA" when="ALL" value="5.0"/>
        <LayersRule ruleName="U_3_3" layerNames="{P-Plus,P-Plus}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="C_4_4" layerNames="{Contact-Cut,Contact-Cut}" type="CONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_4_8" layerNames="{Contact-Cut,Transistor}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_5_8" layerNames="{Ohmic-Cut,Transistor}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_6_6" layerNames="{P-Well,P-Well}" type="UCONSPA" when="ALL" value="2.0"/>
    </Foundry>
</technology>
