<?xml version="1.0"?> <technology> <name>Alliance</name> <!-- Non-Routing Layers --> <basiclayer name="nWell" material="nWell"/> <basiclayer name="pWell" material="pWell"/> <basiclayer name="nImplant" material="nImplant"/> <basiclayer name="pImplant" material="pImplant"/> <basiclayer name="active" material="active"/> <basiclayer name="poly" material="poly"/> <!-- Routing Layers & VIA Cuts --> <!-- NB: order *is* meaningful --> <basiclayer name="cut0" material="cut"/> <basiclayer name="metal1" material="metal"/> <basiclayer name="cut1" material="cut"/> <basiclayer name="metal2" material="metal"/> <basiclayer name="cut2" material="cut"/> <basiclayer name="metal3" material="metal"/> <basiclayer name="cut3" material="cut"/> <basiclayer name="metal4" material="metal"/> <basiclayer name="cut4" material="cut"/> <basiclayer name="metal5" material="metal"/> <basiclayer name="cut5" material="cut"/> <basiclayer name="metal6" material="metal"/> <basiclayer name="topmim6"/> <basiclayer name="botmim6"/> <basiclayer name="padopen"/> <basiclayer name="alucap"/> <!-- Obstacles --> <basiclayer name="blockage1" material="blockage" basiclayer="metal1"/> <basiclayer name="blockage2" material="blockage" basiclayer="metal2"/> <basiclayer name="blockage3" material="blockage" basiclayer="metal3"/> <basiclayer name="blockage4" material="blockage" basiclayer="metal4"/> <basiclayer name="blockage5" material="blockage" basiclayer="metal5"/> <basiclayer name="blockage6" material="blockage" basiclayer="metal6"/> <!-- Miscellaneous: --> <basiclayer name="text.cell" material="other"/> <basiclayer name="text.instance" material="other"/> <basiclayer name="undef" material="other"/> <basiclayer name="SPL1" material="other"/> <basiclayer name="AutoLayer" material="other"/> <!-- Symbolic Layers: Non-Routing Layers --> <regularlayer name="NWELL" type="UNDEFINED"> <layer name="nWell"/> </regularlayer> <regularlayer name="PWELL" type="UNDEFINED"> <layer name="pWell"/> </regularlayer> <diffusionlayer name="NTIE" type="UNDEFINED"> <layer name="nWell"/> <layer name="nImplant"/> <layer name="active"/> </diffusionlayer> <diffusionlayer name="PTIE" type="UNDEFINED"> <layer name="pWell"/> <layer name="pImplant"/> <layer name="active"/> </diffusionlayer> <diffusionlayer name="NDIF" type="UNDEFINED"> <layer name="nImplant"/> <layer name="active"/> </diffusionlayer> <diffusionlayer name="PDIF" type="UNDEFINED"> <layer name="pImplant"/> <layer name="active"/> </diffusionlayer> <diffusionlayer name="GATE" type="UNDEFINED"> <layer name="poly"/> <layer name="active"/> </diffusionlayer> <transistorlayer name="NTRANS" type="UNDEFINED"> <layer name="nImplant"/> <layer name="active"/> <layer name="poly"/> </transistorlayer> <transistorlayer name="PTRANS" type="UNDEFINED"> <layer name="nWell"/> <layer name="pImplant"/> <layer name="active"/> <layer name="poly"/> </transistorlayer> <regularlayer name="POLY" type="UNDEFINED"> <layer name="poly"/> </regularlayer> <!-- Symbolic Layers: Routing Layers --> <regularlayer name="METAL1" type="METAL"> <layer name="metal1"/> </regularlayer> <regularlayer name="METAL2" type="METAL"> <layer name="metal2"/> </regularlayer> <regularlayer name="METAL3" type="METAL"> <layer name="metal3"/> </regularlayer> <regularlayer name="METAL4" type="METAL"> <layer name="metal4"/> </regularlayer> <regularlayer name="METAL5" type="METAL"> <layer name="metal5"/> </regularlayer> <regularlayer name="METAL6" type="METAL"> <layer name="metal6"/> </regularlayer> <!-- Symbolic Layers: Contacts Layers --> <contactlayer name="CONT_BODY_N" type="VIA"> <layer name="nWell"/> <layer name="nImplant"/> <layer name="active"/> <layer name="cut0"/> <layer name="metal1"/> </contactlayer> <contactlayer name="CONT_BODY_P" type="VIA"> <layer name="pWell"/> <layer name="pImplant"/> <layer name="active"/> <layer name="cut0"/> <layer name="metal1"/> </contactlayer> <contactlayer name="CONT_DIF_N" type="VIA"> <layer name="nImplant"/> <layer name="active"/> <layer name="cut0"/> <layer name="metal1"/> </contactlayer> <contactlayer name="CONT_DIF_P" type="VIA"> <layer name="pImplant"/> <layer name="active"/> <layer name="cut0"/> <layer name="metal1"/> </contactlayer> <vialayer name="CONT_POLY" type="VIA"> <layer name="poly"/> <layer name="cut0"/> <layer name="metal1"/> </vialayer> <vialayer name="VIA12" type="VIA"> <layer name="metal1"/> <layer name="cut1"/> <layer name="metal2"/> </vialayer> <vialayer name="VIA23" type="VIA"> <layer name="metal2"/> <layer name="cut2"/> <layer name="metal3"/> </vialayer> <vialayer name="VIA34" type="VIA"> <layer name="metal3"/> <layer name="cut3"/> <layer name="metal4"/> </vialayer> <vialayer name="VIA45" type="VIA"> <layer name="metal4"/> <layer name="cut4"/> <layer name="metal5"/> </vialayer> <vialayer name="VIA56" type="VIA"> <layer name="metal5"/> <layer name="cut5"/> <layer name="metal6"/> </vialayer> <!-- Symbolic Layers: Obstacle Layers --> <regularlayer name="BLOCKAGE1" type="UNDEFINED"> <layer name="blockage1"/> </regularlayer> <regularlayer name="BLOCKAGE2" type="UNDEFINED"> <layer name="blockage2"/> </regularlayer> <regularlayer name="BLOCKAGE3" type="UNDEFINED"> <layer name="blockage3"/> </regularlayer> <regularlayer name="BLOCKAGE4" type="UNDEFINED"> <layer name="blockage4"/> </regularlayer> <regularlayer name="BLOCKAGE5" type="UNDEFINED"> <layer name="blockage5"/> </regularlayer> <regularlayer name="BLOCKAGE6" type="UNDEFINED"> <layer name="metal6"/> </regularlayer> <!-- Special BasicLayers for Knik/Kite routers --> <!-- *Must be after all others* --> <basiclayer name="gmetalh" material="metal"/> <basiclayer name="gcut" material="cut"/> <basiclayer name="gmetalv" material="metal"/> <vialayer name="gcontact" type="VIA"> <layer name="gmetalh"/> <layer name="gcut"/> <layer name="gmetalv"/> </vialayer> <symbolic> <precision>2</precision> <gridstep>1.0</gridstep> <rules> <!-- Active Layers --> <rule name="NWELL.nWell.extention.cap" value="0.0"/> <rule name="PWELL.pWell.extention.cap" value="0.0"/> <rule name="NTIE.minimum.width" value="3.0"/> <rule name="NTIE.nWell.extention.cap" value="1.5"/> <rule name="NTIE.nWell.extention.width" value="0.5"/> <rule name="NTIE.nImplant.extention.cap" value="1.0"/> <rule name="NTIE.nImplant.extention.width" value="0.5"/> <rule name="NTIE.active.extention.cap" value="0.5"/> <rule name="NTIE.active.extention.width" value="0.0"/> <rule name="PTIE.minimum.width" value="3.0"/> <rule name="PTIE.pWell.extention.cap" value="1.5"/> <rule name="PTIE.pWell.extention.width" value="0.5"/> <rule name="PTIE.pImplant.extention.cap" value="1.0"/> <rule name="PTIE.pImplant.extention.width" value="0.5"/> <rule name="PTIE.active.extention.cap" value="0.5"/> <rule name="PTIE.active.extention.width" value="0.0"/> <rule name="NDIF.minimum.width" value="3.0"/> <rule name="NDIF.nImplant.extention.cap" value="1.0"/> <rule name="NDIF.nImplant.extention.width" value="0.5"/> <rule name="NDIF.active.extention.cap" value="0.5"/> <rule name="NDIF.active.extention.width" value="0.0"/> <rule name="PDIF.minimum.width" value="3.0"/> <rule name="PDIF.pImplant.extention.cap" value="1.0"/> <rule name="PDIF.pImplant.extention.width" value="0.5"/> <rule name="PDIF.active.extention.cap" value="0.5"/> <rule name="PDIF.active.extention.width" value="0.0"/> <rule name="GATE.minimum.width" value="1.0"/> <rule name="GATE.poly.extention.cap" value="1.5"/> <rule name="NTRANS.minimum.width" value="1.0"/> <rule name="NTRANS.nImplant.extention.cap" value="-1.0"/> <rule name="NTRANS.nImplant.extention.width" value="2.5"/> <rule name="NTRANS.active.extention.cap" value="-1.5"/> <rule name="NTRANS.active.extention.width" value="2.0"/> <rule name="PTRANS.minimum.width" value="1.0"/> <rule name="PTRANS.nWell.extention.cap" value="-1.0"/> <rule name="PTRANS.nWell.extention.width" value="4.5"/> <rule name="PTRANS.pImplant.extention.cap" value="-1.0"/> <rule name="PTRANS.pImplant.extention.width" value="4.0"/> <rule name="PTRANS.active.extention.cap" value="-1.5"/> <rule name="PTRANS.active.extention.width" value="3.0"/> <rule name="POLY.minimum.width" value="1.0"/> <rule name="POLY.poly.extention.cap" value="0.5"/> <!-- Routing Layers --> <rule name="METAL1.minimum.width" value="1.0"/> <rule name="METAL1.metal1.extention.cap" value="0.5"/> <rule name="METAL2.minimum.width" value="1.0"/> <rule name="METAL2.metal2.extention.cap" value="0.5"/> <rule name="METAL3.minimum.width" value="1.0"/> <rule name="METAL3.metal3.extention.cap" value="0.5"/> <rule name="METAL4.minimum.width" value="1.0"/> <rule name="METAL4.metal4.extention.cap" value="0.5"/> <rule name="METAL5.minimum.width" value="2.0"/> <rule name="METAL5.metal5.extention.cap" value="1.0"/> <rule name="METAL6.minimum.width" value="2.0"/> <rule name="METAL6.metal6.extention.cap" value="1.0"/> <!-- VIAs --> <rule name="CONT_BODY_N.minimum.side" value="1.0"/> <rule name="CONT_BODY_N.nWell.enclosure" value="1.5"/> <rule name="CONT_BODY_N.nImplant.enclosure" value="1.5"/> <rule name="CONT_BODY_N.active.enclosure" value="1.0"/> <rule name="CONT_BODY_N.metal1.enclosure" value="0.5"/> <rule name="CONT_BODY_P.minimum.side" value="1.0"/> <rule name="CONT_BODY_P.pWell.enclosure" value="1.5"/> <rule name="CONT_BODY_P.pImplant.enclosure" value="1.5"/> <rule name="CONT_BODY_P.active.enclosure" value="1.0"/> <rule name="CONT_BODY_P.metal1.enclosure" value="0.5"/> <rule name="CONT_DIF_N.minimum.side" value="1.0"/> <rule name="CONT_DIF_N.nImplant.enclosure" value="1.0"/> <rule name="CONT_DIF_N.active.enclosure" value="0.5"/> <rule name="CONT_DIF_N.metal1.enclosure" value="0.5"/> <rule name="CONT_DIF_P.minimum.side" value="1.0"/> <rule name="CONT_DIF_P.pImplant.enclosure" value="1.0"/> <rule name="CONT_DIF_P.active.enclosure" value="0.5"/> <rule name="CONT_DIF_P.metal1.enclosure" value="0.5"/> <rule name="CONT_POLY.minimum.width" value="1.0"/> <rule name="CONT_POLY.poly.enclosure" value="0.5"/> <rule name="CONT_POLY.metal1.enclosure" value="0.5"/> <rule name="VIA12.minimum.side" value="1.0"/> <rule name="VIA12.metal1.enclosure" value="0.5"/> <rule name="VIA12.metal2.enclosure" value="0.5"/> <rule name="VIA23.minimum.side" value="1.0"/> <rule name="VIA23.metal2.enclosure" value="0.5"/> <rule name="VIA23.metal3.enclosure" value="0.5"/> <rule name="VIA34.minimum.side" value="1.0"/> <rule name="VIA34.metal3.enclosure" value="0.5"/> <rule name="VIA34.metal4.enclosure" value="0.5"/> <rule name="VIA45.minimum.side" value="1.0"/> <rule name="VIA45.metal4.enclosure" value="0.5"/> <rule name="VIA45.metal5.enclosure" value="0.5"/> <rule name="VIA56.minimum.side" value="1.0"/> <rule name="VIA56.metal5.enclosure" value="0.5"/> <rule name="VIA56.metal6.enclosure" value="0.5"/> <!-- Blockage Layers --> <rule name="BLOCKAGE1.minimum.width" value="1.0"/> <rule name="BLOCKAGE1.blockage1.extention.cap" value="0.5"/> <rule name="BLOCKAGE2.minimum.width" value="2.0"/> <rule name="BLOCKAGE2.blockage2.extention.cap" value="0.5"/> <rule name="BLOCKAGE3.minimum.width" value="2.0"/> <rule name="BLOCKAGE3.blockage3.extention.cap" value="0.5"/> <rule name="BLOCKAGE4.minimum.width" value="2.0"/> <rule name="BLOCKAGE4.blockage4.extention.cap" value="0.5"/> <rule name="BLOCKAGE5.minimum.width" value="2.0"/> <rule name="BLOCKAGE5.blockage5.extention.cap" value="1.0"/> <rule name="BLOCKAGE6.minimum.width" value="2.0"/> <rule name="BLOCKAGE6.blockage6.extention.cap" value="1.0"/> </rules> </symbolic> </technology>