All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.electric.technology.technologies.bipolar.xml Maven / Gradle / Ivy

There is a newer version: 9.02-e
Show newest version
<?xml version="1.0" encoding="UTF-8"?>

<!--
 *
 * Electric(tm) VLSI Design System
 *
 * File: bipolar.xml
 * bipolar technology description
 * Generated automatically from a library
 *
 * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
 *
 * 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="bipolar"
     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">

    <description>Bipolar (self-aligned, single poly)</description>
    <version tech="1" electric="8.05g"/>
    <version tech="2" electric="8.05o"/>
    <numMetals min="2" max="2" default="2"/>
    <scale value="2000.0" relevant="true"/>
    <defaultFoundry value="MOSIS"/>
    <minResistance value="10.0"/>
    <minCapacitance value="0.0"/>

    <!-- Transparent layers -->
    <transparentLayer transparent="1">
        <r>255</r>
        <g>0</g>
        <b>0</b>
    </transparentLayer>
    <transparentLayer transparent="2">
        <r>50</r>
        <g>50</g>
        <b>200</b>
    </transparentLayer>
    <transparentLayer transparent="3">
        <r>115</r>
        <g>255</g>
        <b>82</b>
    </transparentLayer>
    <transparentLayer transparent="4">
        <r>96</r>
        <g>213</g>
        <b>255</b>
    </transparentLayer>
    <transparentLayer transparent="5">
        <r>205</r>
        <g>205</g>
        <b>205</b>
    </transparentLayer>

    <!-- **************************************** LAYERS **************************************** -->
    <layer name="Metal1" fun="METAL1">
        <transparentColor transparent="1"/>
        <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="11.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="IM1"/>
        <pureLayerNode name="Metal1_Node" port="metal1">
            <lambda>2.0</lambda>
            <portArc>Metal_1</portArc>
        </pureLayerNode>
    </layer>

    <layer name="Metal2" fun="METAL2">
        <transparentColor transparent="4"/>
        <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="12.0" mode="NONE" factor="0.2"/>
        <cifLayer cif="IM2"/>
        <pureLayerNode name="Metal2_Node" port="metal2">
            <lambda>2.0</lambda>
            <portArc>Metal_2</portArc>
        </pureLayerNode>
    </layer>

    <layer name="NPImplant" fun="IMPLANTN">
        <opaqueColor r="89" g="159" b="85"/>
        <patternedOnDisplay>true</patternedOnDisplay>
        <patternedOnPrinter>true</patternedOnPrinter>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>XX      XX      </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="INP"/>
        <pureLayerNode name="NPImplant_Node" port="NPimplant">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="PPImplant" fun="IMPLANTP">
        <opaqueColor r="2" g="15" b="159"/>
        <patternedOnDisplay>true</patternedOnDisplay>
        <patternedOnPrinter>true</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </pattern>
        <pattern>                </pattern>
        <pattern>XX  XX  XX  XX  </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="IPP"/>
        <pureLayerNode name="PPImplant_Node" port="PPimplant">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Poly_Definition" fun="POLY1">
        <transparentColor transparent="2"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>   X   X   X   X</pattern>
        <pattern>  XX      XX    </pattern>
        <pattern> XXX   X XXX   X</pattern>
        <pattern>  XX      XX    </pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern>      XX      XX</pattern>
        <pattern>   X XXX   X XXX</pattern>
        <pattern>      XX      XX</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern>  XX      XX    </pattern>
        <pattern> XXX   X XXX   X</pattern>
        <pattern>  XX      XX    </pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern>      XX      XX</pattern>
        <pattern>   X XXX   X XXX</pattern>
        <pattern>      XX      XX</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="IP"/>
        <pureLayerNode name="Poly_Def_Node" port="poly-def">
            <lambda>2.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Field_Implant" fun="IMPLANT" extraFun="light">
        <opaqueColor r="255" g="0" b="255"/>
        <patternedOnDisplay>true</patternedOnDisplay>
        <patternedOnPrinter>true</patternedOnPrinter>
        <pattern>                </pattern>
        <pattern> X     X X     X</pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern>   X X     X X  </pattern>
        <pattern>                </pattern>
        <pattern>   X X     X X  </pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern> X     X X     X</pattern>
        <pattern>                </pattern>
        <pattern> X     X X     X</pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern>   X X     X X  </pattern>
        <pattern>                </pattern>
        <pattern>   X X     X X  </pattern>
        <pattern>  X   X   X   X </pattern>
        <pattern> X     X X     X</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="IF"/>
        <pureLayerNode name="Field_Implant_Node" style="CLOSED" port="field">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Isolation" fun="ISOLATION">
        <transparentColor transparent="3"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>X X X X X X X X </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <cifLayer cif="II"/>
        <pureLayerNode name="Isolation_Implant_Node" style="CLOSED" port="isolation">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Sink_Implant" fun="DIFF" extraFun="heavy">
        <opaqueColor r="186" g="0" b="255"/>
        <patternedOnDisplay>true</patternedOnDisplay>
        <patternedOnPrinter>true</patternedOnPrinter>
        <pattern>   X   X   X   X</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern> X X X X X X X X</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>   X   X   X   X</pattern>
        <pattern> X X X X X X X X</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="IS"/>
        <pureLayerNode name="Sink_Implant_Node" style="CLOSED" port="sink-implant">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="N_Implant" fun="IMPLANTN">
        <opaqueColor r="139" g="99" b="46"/>
        <patternedOnDisplay>true</patternedOnDisplay>
        <patternedOnPrinter>true</patternedOnPrinter>
        <pattern>   XXX     XXX  </pattern>
        <pattern>    XXX     XXX </pattern>
        <pattern>     XXX     XXX</pattern>
        <pattern>X     XXX     XX</pattern>
        <pattern>XX     XXX     X</pattern>
        <pattern>XXX     XXX     </pattern>
        <pattern> XXX     XXX    </pattern>
        <pattern>  XXX     XXX   </pattern>
        <pattern>   XXX     XXX  </pattern>
        <pattern>    XXX     XXX </pattern>
        <pattern>     XXX     XXX</pattern>
        <pattern>X     XXX     XX</pattern>
        <pattern>XX     XXX     X</pattern>
        <pattern>XXX     XXX     </pattern>
        <pattern> XXX     XXX    </pattern>
        <pattern>  XXX     XXX   </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="INM"/>
        <pureLayerNode name="N_Implant_Node" style="CLOSED" port="N-implant">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Silicide_Exclusion" fun="GUARD">
        <transparentColor transparent="5"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>X X XXXXX X XXXX</pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>XXXXX X XXXXX X </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>X X XXXXX X XXXX</pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>XXXXX X XXXXX X </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>X X XXXXX X XXXX</pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>XXXXX X XXXXX X </pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>X X XXXXX X XXXX</pattern>
        <pattern>X   X   X   X   </pattern>
        <pattern>XXXXX X XXXXX X </pattern>
        <pattern>X   X   X   X   </pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <cifLayer cif="ISE"/>
        <pureLayerNode name="Silicode_Exclusion_Node" style="CLOSED" port="silicide-exclusion">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Contact" fun="CONTACT1">
        <opaqueColor r="255" g="255" b="0"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="1.5" height="9.5" mode="NONE" factor="0.2"/>
        <cifLayer cif="IC"/>
        <pureLayerNode name="Contact_Node" style="CROSSED" port="contact">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Via" fun="CONTACT2">
        <opaqueColor r="0" g="0" b="0"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <outlined>NOPAT</outlined>
        <opacity>0.8</opacity>
        <foreground>true</foreground>
        <display3D thick="0.5" height="11.5" mode="NONE" factor="0.2"/>
        <cifLayer cif="IV"/>
        <pureLayerNode name="Via_Node" port="via">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Scratch_Protection" fun="OVERGLASS">
        <opaqueColor r="100" g="100" b="100"/>
        <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="ISP"/>
        <pureLayerNode name="Scratch_Protection_Node" port="scratch-protection">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

    <layer name="Buried" fun="DIFF">
        <opaqueColor r="255" g="255" b="0"/>
        <patternedOnDisplay>false</patternedOnDisplay>
        <patternedOnPrinter>false</patternedOnPrinter>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</pattern>
        <pattern>XXXXXXXXXXXXXXXX</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="IB"/>
        <pureLayerNode name="Buried_Node" style="CLOSED" port="buried">
            <lambda>4.0</lambda>
        </pureLayerNode>
    </layer>

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

    <arcProto name="Metal_2" fun="METAL2">
        <wipable/>
        <extended>true</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>400.0</antennaRatio>
        <diskOffset untilVersion="2" width="2.0"/>
        <arcLayer layer="Metal2" style="FILLED">
            <lambda>2.0</lambda>
        </arcLayer>
    </arcProto>

    <arcProto name="NPPoly" fun="POLY1">
        <extended>false</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>200.0</antennaRatio>
        <diskOffset untilVersion="1" width="2.0"/>
        <diskOffset untilVersion="2" width="1.0"/>
        <arcLayer layer="Poly_Definition" style="FILLED">
            <lambda>1.0</lambda>
        </arcLayer>
        <arcLayer layer="NPImplant" style="FILLED">
            <lambda>2.0</lambda>
        </arcLayer>
    </arcProto>

    <arcProto name="PPPoly" fun="POLY1">
        <extended>false</extended>
        <fixedAngle>true</fixedAngle>
        <angleIncrement>90</angleIncrement>
        <antennaRatio>200.0</antennaRatio>
        <diskOffset untilVersion="1" width="2.0"/>
        <diskOffset untilVersion="2" width="1.0"/>
        <arcLayer layer="Poly_Definition" style="FILLED">
            <lambda>1.0</lambda>
        </arcLayer>
        <arcLayer layer="PPImplant" style="FILLED">
            <lambda>2.0</lambda>
        </arcLayer>
    </arcProto>

    <!-- ******************** NODES ******************** -->
    <primitiveNode name="Metal1_Pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-1.5" khx="1.5" kly="-1.5" khy="1.5"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal1" style="CROSSED">
            <box>
                <lambdaBox klx="-1.5" khx="1.5" kly="-1.5" khy="1.5"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal1">
            <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_1</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Metal2_Pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="2" x="1.0" y="1.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Metal2" style="CROSSED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="metal2">
            <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_2</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="NPPoly_pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="1" x="2.0" y="2.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="Poly_Definition" style="CROSSED">
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="CROSSED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="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>NPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="PPPoly_pin" fun="PIN">
        <shrinkArcs/>
        <diskOffset untilVersion="1" x="2.0" y="2.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="Poly_Definition" style="CROSSED">
            <box>
                <lambdaBox klx="-1.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="PPImplant" style="CROSSED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="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>PPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="Via" 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="Metal1" style="FILLED">
            <box>
                <lambdaBox klx="-1.5" khx="1.5" kly="-1.5" khy="1.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Metal2" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Via" style="FILLED">
            <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="via">
            <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_1</portArc>
            <portArc>Metal_2</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="M1_PP_Contact" fun="CONTACT">
        <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="Metal1" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="PPImplant" style="FILLED">
            <box>
                <lambdaBox klx="-3.0" khx="3.0" kly="-3.0" khy="3.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact" style="FILLED">
            <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="m">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="-0.5" khx="0.5" kly="-0.5" khy="0.5"/>
            </box>
            <portArc>Metal_1</portArc>
            <portArc>PPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="M1_NP_Contact" fun="CONTACT">
        <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="Poly_Definition" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Metal1" style="FILLED">
            <box>
                <lambdaBox klx="-2.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED">
            <box>
                <lambdaBox klx="-3.0" khx="3.0" kly="-3.0" khy="3.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Contact" style="FILLED">
            <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="m">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box>
                <lambdaBox klx="-0.5" khx="0.5" kly="-0.5" khy="0.5"/>
            </box>
            <portArc>Metal_1</portArc>
            <portArc>NPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="NPResistor" fun="RESIST">
        <diskOffset untilVersion="1" x="2.5" y="3.5"/>
        <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="Silicide_Exclusion" style="FILLED" portNum="-1">
            <box kly="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="0.0" khy="1.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Silicide_Exclusion" style="FILLED" portNum="-1">
            <box khy="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="-1.5" khy="0.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED">
            <box kly="0.0">
                <lambdaBox klx="-1.5" khx="1.5" kly="0.0" khy="2.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED" portNum="1">
            <box khy="0.0">
                <lambdaBox klx="-1.5" khx="1.5" kly="-2.5" khy="0.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED">
            <box kly="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="0.0" khy="3.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED" portNum="1">
            <box khy="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="-3.5" khy="0.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="p1">
            <portAngle primary="90" range="0"/>
            <portTopology>0</portTopology>
            <box kly="1.0">
                <lambdaBox klx="-0.5" khx="0.5" kly="2.5" khy="2.5"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
        <primitivePort name="p2">
            <portAngle primary="270" range="0"/>
            <portTopology>1</portTopology>
            <box khy="-1.0">
                <lambdaBox klx="-0.5" khx="0.5" kly="-2.5" khy="-2.5"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="NMResistor" fun="UNKNOWN">
        <diskOffset untilVersion="1" x="2.5" y="3.5"/>
        <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="Silicide_Exclusion" style="FILLED" portNum="-1">
            <box kly="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="0.0" khy="1.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED">
            <box kly="0.0">
                <lambdaBox klx="-1.5" khx="1.5" kly="0.0" khy="2.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Silicide_Exclusion" style="FILLED" portNum="-1">
            <box khy="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="-1.5" khy="0.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED" portNum="1">
            <box khy="0.0">
                <lambdaBox klx="-1.5" khx="1.5" kly="-2.5" khy="0.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED">
            <box kly="1.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="1.5" khy="3.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="N_Implant" style="FILLED" portNum="-1">
            <box kly="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="0.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="N_Implant" style="FILLED" portNum="-1">
            <box khy="0.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="-2.0" khy="0.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED" portNum="1">
            <box khy="-1.0">
                <lambdaBox klx="-2.5" khx="2.5" kly="-3.5" khy="-1.5"/>
            </box>
        </nodeLayer>
        <primitivePort name="p1">
            <portAngle primary="90" range="0"/>
            <portTopology>0</portTopology>
            <box kly="1.0">
                <lambdaBox klx="-0.5" khx="0.5" kly="2.5" khy="2.5"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
        <primitivePort name="p2">
            <portAngle primary="270" range="0"/>
            <portTopology>1</portTopology>
            <box khy="-1.0">
                <lambdaBox klx="-0.5" khx="0.5" kly="-2.5" khy="-2.5"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="npn111" fun="TRANPN">
        <diskOffset untilVersion="1" x="10.0" y="5.5"/>
        <diskOffset untilVersion="2" x="1.0" y="2.0"/>
        <nodeBase>
            <box>
                <lambdaBox klx="0.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeBase>
        <nodeLayer layer="Poly_Definition" style="FILLED">
            <box khx="-1.0">
                <lambdaBox klx="-7.0" khx="-2.0" kly="-2.5" khy="2.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Isolation" style="FILLED">
            <box khx="-1.0">
                <lambdaBox klx="-6.5" khx="-2.5" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED" portNum="1">
            <box>
                <lambdaBox klx="0.0" khx="2.0" kly="-2.5" khy="2.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Isolation" style="FILLED" portNum="1">
            <box>
                <lambdaBox klx="-1.0" khx="3.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Isolation" style="FILLED" portNum="2">
            <box klx="1.0">
                <lambdaBox klx="3.0" khx="6.5" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED" portNum="2">
            <box klx="1.0">
                <lambdaBox klx="4.0" khx="7.0" kly="-2.5" khy="2.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Sink_Implant" style="FILLED">
            <box khx="-1.0">
                <lambdaBox klx="-7.5" khx="-1.5" kly="-3.0" khy="3.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED">
            <box khx="-1.0">
                <lambdaBox klx="-8.0" khx="-1.0" kly="-3.5" khy="3.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Field_Implant" style="FILLED">
            <box khx="-1.0">
                <lambdaBox klx="-10.0" khx="-1.0" kly="-5.5" khy="5.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED" portNum="1">
            <box>
                <lambdaBox klx="-1.0" khx="3.0" kly="-3.5" khy="3.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Field_Implant" style="FILLED" portNum="1">
            <box>
                <lambdaBox klx="-1.0" khx="3.0" kly="-5.5" khy="5.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Field_Implant" style="FILLED" portNum="2">
            <box klx="1.0">
                <lambdaBox klx="3.0" khx="10.0" kly="-5.5" khy="5.5"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="PPImplant" style="FILLED" portNum="2">
            <box klx="1.0">
                <lambdaBox klx="3.0" khx="8.0" kly="-3.5" khy="3.5"/>
            </box>
        </nodeLayer>
        <primitivePort name="c">
            <portAngle primary="0" range="180"/>
            <portTopology>0</portTopology>
            <box khx="-1.0">
                <lambdaBox klx="-6.0" khx="-3.0" kly="-1.5" khy="1.5"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
        <primitivePort name="e">
            <portAngle primary="0" range="180"/>
            <portTopology>1</portTopology>
            <box>
                <lambdaBox klx="1.0" khx="1.0" kly="-1.5" khy="1.5"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
        <primitivePort name="b">
            <portAngle primary="0" range="180"/>
            <portTopology>2</portTopology>
            <box klx="1.0">
                <lambdaBox klx="5.0" khx="6.0" kly="-1.5" khy="1.5"/>
            </box>
            <portArc>PPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <primitiveNode name="PNJunction" fun="CONNECT">
        <diskOffset untilVersion="1" x="2.0" y="2.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="Poly_Definition" style="FILLED">
            <box klx="0.0">
                <lambdaBox klx="0.0" khx="1.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="Poly_Definition" style="FILLED" portNum="1">
            <box khx="0.0">
                <lambdaBox klx="-1.0" khx="0.0" kly="-1.0" khy="1.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="PPImplant" style="FILLED">
            <box klx="0.0">
                <lambdaBox klx="0.0" khx="2.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <nodeLayer layer="NPImplant" style="FILLED" portNum="1">
            <box khx="0.0">
                <lambdaBox klx="-2.0" khx="0.0" kly="-2.0" khy="2.0"/>
            </box>
        </nodeLayer>
        <primitivePort name="p">
            <portAngle primary="0" range="0"/>
            <portTopology>0</portTopology>
            <box klx="1.0">
                <lambdaBox klx="1.0" khx="1.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>PPPoly</portArc>
        </primitivePort>
        <primitivePort name="n">
            <portAngle primary="180" range="0"/>
            <portTopology>0</portTopology>
            <box khx="-1.0">
                <lambdaBox klx="-1.0" khx="-1.0" kly="0.0" khy="0.0"/>
            </box>
            <portArc>NPPoly</portArc>
        </primitivePort>
    </primitiveNode>

    <menuPalette numColumns="3">

        <menuBox>
            <menuArc>Metal_1</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="Metal1_Pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>npn111</menuNode>
        </menuBox>

        <menuBox>
            <menuArc>Metal_2</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="Metal2_Pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>Via</menuNode>
        </menuBox>

        <menuBox>
            <menuArc>PPPoly</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="PPPoly_pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>M1_PP_Contact</menuNode>
        </menuBox>

        <menuBox>
            <menuArc>NPPoly</menuArc>
        </menuBox>
        <menuBox>
            <menuNodeInst protoName="NPPoly_pin" function="PIN"/>
        </menuBox>
        <menuBox>
            <menuNode>M1_NP_Contact</menuNode>
        </menuBox>

        <menuBox>
            <menuNode>NMResistor</menuNode>
        </menuBox>
        <menuBox>
            <menuNode>NPResistor</menuNode>
        </menuBox>
        <menuBox>
            <menuNode>PNJunction</menuNode>
        </menuBox>

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

    </menuPalette>

    <Foundry name="MOSIS">

        <layerGds layer="Metal1" gds="8"/>
        <layerGds layer="Metal2" gds="9"/>
        <layerGds layer="NPImplant" gds="52"/>
        <layerGds layer="PPImplant" gds="53"/>
        <layerGds layer="Poly_Definition" gds="4"/>
        <layerGds layer="Field_Implant" gds="2"/>
        <layerGds layer="Isolation" gds="3"/>
        <layerGds layer="Sink_Implant" gds="6"/>
        <layerGds layer="N_Implant" gds="51"/>
        <layerGds layer="Silicide_Exclusion" gds="45"/>
        <layerGds layer="Contact" gds="7"/>
        <layerGds layer="Via" gds="81"/>
        <layerGds layer="Scratch_Protection" gds="10"/>
        <layerGds layer="Buried" gds="1"/>

        <LayerRule ruleName="W_0" layerName="Metal1" type="MINWID" when="ALL" value="3.0"/>
        <LayerRule ruleName="W_1" layerName="Metal2" type="MINWID" when="ALL" value="4.0"/>
        <LayerRule ruleName="W_10" layerName="Contact" type="MINWID" when="ALL" value="2.0"/>
        <LayerRule ruleName="W_11" layerName="Via" type="MINWID" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_0_0" layerNames="{Metal1,Metal1}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_1_1" layerNames="{Metal2,Metal2}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_2_3" layerNames="{NPImplant,PPImplant}" type="UCONSPA" when="ALL" value="0.0"/>
        <LayersRule ruleName="U_4_4" layerNames="{Poly_Definition,Poly_Definition}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_5_5" layerNames="{Field_Implant,Field_Implant}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_6_10" layerNames="{Isolation,Contact}" type="UCONSPA" when="ALL" value="0.5"/>
        <LayersRule ruleName="U_10_10" layerNames="{Contact,Contact}" type="UCONSPA" when="ALL" value="2.0"/>
        <LayersRule ruleName="U_10_11" layerNames="{Contact,Via}" type="UCONSPA" when="ALL" value="1.0"/>
        <LayersRule ruleName="U_11_11" layerNames="{Via,Via}" type="UCONSPA" when="ALL" value="2.0"/>
    </Foundry>
</technology>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy