coriolis/crlcore/etc/technology.symbolic.xml

329 lines
13 KiB
XML
Raw Normal View History

<?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">
* ./crlcore/src/ccore: - New: In Utilities, uses the new Backtrace to print the stack before core-dumping. - New: In Environment, pattern recognition of Pad model names. - New: In AllianceFramework, pattern recognition of Pad model names. - Bug: In Measures, add inspector support and uses pointer to prevent using copy construction. Makes the inspector to core-dump. - New: In RoutingLayerGauge, inspector support for Constant::Direction. - Change: In ApDriver, correct managment of BIGVIA sizes. BIGVIA in one metal keep their sizes, but BIGVIA whith cut must be expandeds to contains their enclosure in metals. In Hurricane VIA size are relatives to the cut but in Alliance, to the biggest metal. Generate correct direction (always UP or RIGHT) for segments. - Change: In ApParser, shrink BIGVIA to the size of their cut from the Alliance format. Avoid VIA "bloating". More thorough verification of Segment data coherency, mainly with direction. Suppress warning of non-existent logical instance in the special case of "padreal". - Change: In VstParserGrammar, perform an explicit plug connection on globals Nets if the names of globals Nets differs. - New: In display.xml, add style for printers (B&W). - Bug: In technology.symbolic.xml, BLOCKAGE6 was associated to metal6 instead of blockage6. Correct extensions value for VIA metal layers above cut1. - Bug: In Utilities, in System singleton constructor check of duplicated type_info/RTTI initialization. Occurs when python modules are useds. CRL must always be included first.
2010-11-16 07:57:57 -06:00
<layer name="blockage6"/>
</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"/>
* ./crlcore/src/ccore: - New: In Utilities, uses the new Backtrace to print the stack before core-dumping. - New: In Environment, pattern recognition of Pad model names. - New: In AllianceFramework, pattern recognition of Pad model names. - Bug: In Measures, add inspector support and uses pointer to prevent using copy construction. Makes the inspector to core-dump. - New: In RoutingLayerGauge, inspector support for Constant::Direction. - Change: In ApDriver, correct managment of BIGVIA sizes. BIGVIA in one metal keep their sizes, but BIGVIA whith cut must be expandeds to contains their enclosure in metals. In Hurricane VIA size are relatives to the cut but in Alliance, to the biggest metal. Generate correct direction (always UP or RIGHT) for segments. - Change: In ApParser, shrink BIGVIA to the size of their cut from the Alliance format. Avoid VIA "bloating". More thorough verification of Segment data coherency, mainly with direction. Suppress warning of non-existent logical instance in the special case of "padreal". - Change: In VstParserGrammar, perform an explicit plug connection on globals Nets if the names of globals Nets differs. - New: In display.xml, add style for printers (B&W). - Bug: In technology.symbolic.xml, BLOCKAGE6 was associated to metal6 instead of blockage6. Correct extensions value for VIA metal layers above cut1. - Bug: In Utilities, in System singleton constructor check of duplicated type_info/RTTI initialization. Occurs when python modules are useds. CRL must always be included first.
2010-11-16 07:57:57 -06:00
<rule name="METAL2.metal2.extention.cap" value="1.0"/>
<rule name="METAL3.minimum.width" value="1.0"/>
* ./crlcore/src/ccore: - New: In Utilities, uses the new Backtrace to print the stack before core-dumping. - New: In Environment, pattern recognition of Pad model names. - New: In AllianceFramework, pattern recognition of Pad model names. - Bug: In Measures, add inspector support and uses pointer to prevent using copy construction. Makes the inspector to core-dump. - New: In RoutingLayerGauge, inspector support for Constant::Direction. - Change: In ApDriver, correct managment of BIGVIA sizes. BIGVIA in one metal keep their sizes, but BIGVIA whith cut must be expandeds to contains their enclosure in metals. In Hurricane VIA size are relatives to the cut but in Alliance, to the biggest metal. Generate correct direction (always UP or RIGHT) for segments. - Change: In ApParser, shrink BIGVIA to the size of their cut from the Alliance format. Avoid VIA "bloating". More thorough verification of Segment data coherency, mainly with direction. Suppress warning of non-existent logical instance in the special case of "padreal". - Change: In VstParserGrammar, perform an explicit plug connection on globals Nets if the names of globals Nets differs. - New: In display.xml, add style for printers (B&W). - Bug: In technology.symbolic.xml, BLOCKAGE6 was associated to metal6 instead of blockage6. Correct extensions value for VIA metal layers above cut1. - Bug: In Utilities, in System singleton constructor check of duplicated type_info/RTTI initialization. Occurs when python modules are useds. CRL must always be included first.
2010-11-16 07:57:57 -06:00
<rule name="METAL3.metal3.extention.cap" value="1.0"/>
<rule name="METAL4.minimum.width" value="1.0"/>
* ./crlcore/src/ccore: - New: In Utilities, uses the new Backtrace to print the stack before core-dumping. - New: In Environment, pattern recognition of Pad model names. - New: In AllianceFramework, pattern recognition of Pad model names. - Bug: In Measures, add inspector support and uses pointer to prevent using copy construction. Makes the inspector to core-dump. - New: In RoutingLayerGauge, inspector support for Constant::Direction. - Change: In ApDriver, correct managment of BIGVIA sizes. BIGVIA in one metal keep their sizes, but BIGVIA whith cut must be expandeds to contains their enclosure in metals. In Hurricane VIA size are relatives to the cut but in Alliance, to the biggest metal. Generate correct direction (always UP or RIGHT) for segments. - Change: In ApParser, shrink BIGVIA to the size of their cut from the Alliance format. Avoid VIA "bloating". More thorough verification of Segment data coherency, mainly with direction. Suppress warning of non-existent logical instance in the special case of "padreal". - Change: In VstParserGrammar, perform an explicit plug connection on globals Nets if the names of globals Nets differs. - New: In display.xml, add style for printers (B&W). - Bug: In technology.symbolic.xml, BLOCKAGE6 was associated to metal6 instead of blockage6. Correct extensions value for VIA metal layers above cut1. - Bug: In Utilities, in System singleton constructor check of duplicated type_info/RTTI initialization. Occurs when python modules are useds. CRL must always be included first.
2010-11-16 07:57:57 -06:00
<rule name="METAL4.metal4.extention.cap" value="1.0"/>
<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>