8577 lines
678 KiB
HTML
8577 lines
678 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
|
|||
|
<html xmlns="http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
|||
|
<title>LEF/DEF 5.8 Language Reference -- 4</title>
|
|||
|
<META NAME="Approver" CONTENT="Technical Publications">
|
|||
|
<META NAME="Author" CONTENT="Technical Publications">
|
|||
|
<META NAME="CreateDate" CONTENT="2017-04-26">
|
|||
|
<META NAME="CreateTime" CONTENT="1493186672">
|
|||
|
<META NAME="DataType" CONTENT="Manuals">
|
|||
|
<META NAME="Description" CONTENT="Describes the syntax for Library Exchange Format (LEF) and Design Exchange Format (DEF) files.">
|
|||
|
<META NAME="DocTitle" CONTENT="LEF/DEF 5.8 Language Reference">
|
|||
|
<META NAME="DocType" CONTENT="Reference">
|
|||
|
<META NAME="EdmsRelease" CONTENT="FM-Wiki-1.0_P005">
|
|||
|
<META NAME="FileTitle" CONTENT="4">
|
|||
|
<META NAME="Keywords" CONTENT="">
|
|||
|
<META NAME="FileType" CONTENT="Chapter">
|
|||
|
<META NAME="Keyword" CONTENT="lefdefref">
|
|||
|
<META NAME="Language" CONTENT="English">
|
|||
|
<META NAME="ModifiedDate" CONTENT="2017-04-26">
|
|||
|
<META NAME="ModifiedTime" CONTENT="1493186672">
|
|||
|
<META NAME="NextFile" CONTENT="Examples.html">
|
|||
|
<META NAME="PageCount" CONTENT="128">
|
|||
|
<META NAME="Platform" CONTENT="ALL">
|
|||
|
<META NAME="PrevFile" CONTENT="WorkingwithLEF.html">
|
|||
|
<META NAME="Product" CONTENT="Innovus, Languages">
|
|||
|
<META NAME="ProductFamily" CONTENT="Digital Implementation, Cadence Shared Tools">
|
|||
|
<META NAME="ProductVersion" CONTENT="5.8">
|
|||
|
<META NAME="Syntax" CONTENT=""SPANLENGTHTABLE {spanLength} ... [WRONGDIRECTION],; " ;,BUSBITCHARS "delimiterPair" ;, "WIDTH minWidth [WRONGDIRECTION] ;" ;, "WIDTHTABLE {width}...[WRONGDIRECTION] [ORTHOGONAL], BUSBITCHARS "()" ;, [ VERSION statement ] [ DIVIDERCHAR statement ][ BUSBITCHARS statement ]DESIGN statement[ TECHNOLOGY statement ][ UNITS statement ][ HISTORY statement ] ...[ PROPERTYDEFINITIONS section ][ DIEAREA statement ][ ROWS statement ] ...[ TRACKS statement ] ...[ GCELLGRID statement ] ...[ VIAS statement ][ STYLES statement ][ NONDEFAULTRULES statement ][ REGIONS statement ][ COMPONENTMASKSHIFT statement ][ COMPONENTS section ][ PINS section ][ PINPROPERTIES section ][ BLOCKAGES section ][ SLOTS section ][ FILLS section ] [ SPECIALNETS section ][ NETS section ][ SCANCHAINS section ][ GROUPS section ][ BEGINEXT section ] ...END DESIGN statement , [[+ COVER | + FIXED | + ROUTED | + SHIELD shieldNetName] [+ SHAPE shapeType] [+ MASK maskNum] + POLYGON layerName pt pt pt ... | + RECT layerName pt pt | + VIA viaName [orient] pt ...|{+ COVER | + FIXED | + ROUTED | + SHIELD shieldNetName} layerName routeWidth [+ SHAPE {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN | IOWIRE | COREWIRE | BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE | FILLWIREOPC | DRCFILL}] [+ STYLE styleNum] routingPoints [NEW layerName routeWidth [+ SHAPE {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN | IOWIRE | COREWIRE | BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE | FILLWIREOPC | DRCFILL}] [+ STYLE styleNum] routingPoints ] ..., ];" ;, [ORTHOGONAL length], ] ...,COMPONENTS numComps ;[<EFBFBD> compName modelName [+ EEQMASTER macroName] [+ SOURCE {NETLIST | DIST | USER | TIMING}] [+ {FIXED pt orient | COVER pt orient | PLACED pt orient | UNPLACED} ] [+ MASKSHIFT shiftLayerMasks] [+ HALO [SOFT] left bottom right top] [+ ROUTEHALO haloDist minLayer maxLayer] [+ WEIGHT weight] [+ REGION regionName] [+ PROPERTY {propName propVal} ...]...;] ...,DESIGN designName ;,DIVIDERCHAR "character" ;,END BLOCKAGES],END COMPONENTS,END FILLS],END GROUPS],END NETS,END NONDEFAULTRULES,END PINPROPERTIES],END PINS],END PROPERTYDEFINITIONS],END REGIONS],END SCANCHAINS],END SLOTS],END SPECIALNETS],END STYLES],END VIAS],ENDEXT],NETS numNets ;[<EFBFBD> { netName [ ( {compName pinName | PIN pinName} [+ SYNTHESIZED] ) ] ... | MUSTJOIN ( compName pinName ) } [+ SHIELDNET shieldNetName ] ... [+ VPIN vpinName [LAYER layerName] pt pt [PLACED pt orient | FIXED pt orient | COVER pt orient] ] ... [+ SUBNET subnetName [ ( {compName pinName | PIN pinName | VPIN vpinName} ) ] ... [NONDEFAULTRULE rulename] [regularWiring] ...] ... [+ XTALK class] [+ NONDEFAULTRULE ruleName] [regularWiring] ... [+ SOURCE {DIST | NETLIST | TEST | TIMING | USER}] [+ FIXEDBUMP] [+ FREQUENCY frequency] [+ ORIGINAL netName] [+ USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}] [+ PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}] [+ ESTCAP wireCapacitance] [+ WEIGHT weight] [+ PROPERTY {propName propVal} ...] ...;] ... ,NONDEFAULTRULES numRules ;{- ruleName [+ HARDSPACING] {+ LAYER layerName WIDTH minWidth [DIAGWIDTH diagWidth] [SPACING minSpacing] [WIREEXT wireExt] } ... [+ VIA viaName] ... [+ VIARULE viaRuleName] ... [+ MINCUTS cutLayerName numCuts] ... [+ PROPERTY {propName propVal} ...] ...;} ...,PROPERTY LEF58_SPANLENGTHTABLE,PROPERTY LEF58_WIDTH,PROPERTY LEF58_WIDTHTABLE,WIDTH defaultWidth ;,[BEGINEXT "tag" extensionText ,[BLOCKAGES numBlockages ;[- LAYER layerName [ + SLOTS | + FILLS] [ + PUSHDOWN] [ + EXCEPTPGNET] [ + COMPONENT compName] [ + SPACING minSpacing | + DESIGNRULEWIDTH effectiveWidth] [ + MA
|
|||
|
<META NAME="RightsManagement" CONTENT="Copyright 2017 Cadence Design Systems Inc.">
|
|||
|
<META NAME="Title" CONTENT="LEF/DEF 5.8 Language Reference -- 4">
|
|||
|
<META NAME="TopicTags" CONTENT="FALSE">
|
|||
|
<META NAME="Version" CONTENT="5.8">
|
|||
|
</head>
|
|||
|
<body style="margin-left: 5%;">
|
|||
|
<a name="pagetop"></a>
|
|||
|
<a name="firstpage"></a>
|
|||
|
<!-- Begin Buttons -->
|
|||
|
<table width="650" cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td height="36" width="650" colspan="10">
|
|||
|
<img src="images/header_doc.gif" width="650" height="34">
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td height="20" width="59">
|
|||
|
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
|
|||
|
</td>
|
|||
|
<td height="20" width="73">
|
|||
|
<a href="lefdefrefTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
|
|||
|
</td>
|
|||
|
|
|||
|
<td height="20" width="46">
|
|||
|
<a href="lefdefrefIX.html"><img src="../support/nav2_index.gif" border="0"></a>
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
<a href="WorkingwithLEF.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
<a href="Examples.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
|
|||
|
</td>
|
|||
|
<td height="20">
|
|||
|
<a>
|
|||
|
<a href="lefdefref.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
|
|||
|
</a>
|
|||
|
</td>
|
|||
|
<td height="20" width="61">
|
|||
|
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
|
|||
|
</td>
|
|||
|
<td height="20" width="76">
|
|||
|
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
|
|||
|
</td>
|
|||
|
<td height="20" width="43">
|
|||
|
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
|
|||
|
</td>
|
|||
|
<td height="20" width="37">
|
|||
|
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<!-- End Buttons -->
|
|||
|
<p>
|
|||
|
<hr>
|
|||
|
<p>
|
|||
|
<h3>
|
|||
|
<center>
|
|||
|
<font >
|
|||
|
<div>LEF/DEF 5.8 Language Reference</div>
|
|||
|
<font >
|
|||
|
<div></div>
|
|||
|
</font>
|
|||
|
</font>
|
|||
|
</center>
|
|||
|
</h3>
|
|||
|
<br>
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<h1>4<a name="948404"> </a></h1>
|
|||
|
<h1><a name="948406">DEF Syntax</a></h1>
|
|||
|
<p><a name="946764">This chapter contains information about the following topics: </a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#918666" title="4" name="946317"><font color="Blue"><u>About Design Exchange Format Files</u></font></a><a href="#918666" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#968594" title="4" name="968649"><font color="Blue"><u>General Rules</u></font></a><a href="#968594" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#1030241" title="4" name="1031506"><font color="Blue"><u>Character Information</u></font></a><a href="#1030241" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="69">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="31.872000000000003">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bss_bullet_sub_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#1032353" title="4" name="987793"><font color="Blue"><u>Name Escaping Semantics for Identifiers</u></font></a><a href="#1032353" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="69">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="31.872000000000003">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bss_bullet_sub_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#1032141" title="4" name="1032402"><font color="Blue"><u>Escaping Semantics for Quoted Property Strings</u></font></a><a href="#1032141" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#DEFStatementOrder" title="4" name="968654"><font color="Blue"><u>Order of DEF Statements</u></font></a><a href="#DEFStatementOrder" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#962034" title="4" name="962036"><font color="Blue"><u>DEF Statement Definitions</u></font></a><a href="#962034" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Blockages" title="4" name="962046"><font color="Blue"><u>Blockages</u></font></a><a href="#Blockages" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#BusBitCharacters" title="4" name="962051"><font color="Blue"><u>Bus Bit Characters</u></font></a><a href="#BusBitCharacters" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Components" title="4" name="962066"><font color="Blue"><u>Components</u></font></a><a href="#Components" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Design" title="4" name="962071"><font color="Blue"><u>Design</u></font></a><a href="#Design" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#DieArea" title="4" name="962076"><font color="Blue"><u>Die Area</u></font></a><a href="#DieArea" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#DividerCharacter" title="4" name="962081"><font color="Blue"><u>Divider Character</u></font></a><a href="#DividerCharacter" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Extensions" title="4" name="962086"><font color="Blue"><u>Extensions</u></font></a><a href="#Extensions" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Fills" title="4" name="962091"><font color="Blue"><u>Fills</u></font></a><a href="#Fills" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#GCellGrid" title="4" name="962101"><font color="Blue"><u>GCell Grid</u></font></a><a href="#GCellGrid" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Groups" title="4" name="962106"><font color="Blue"><u>Groups</u></font></a><a href="#Groups" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#History" title="4" name="962111"><font color="Blue"><u>History</u></font></a><a href="#History" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Nets" title="4" name="962121"><font color="Blue"><u>Nets</u></font></a><a href="#Nets" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="69">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="31.872000000000003">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bss_bullet_sub_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#RegularWiringStatement" title="4" name="966784"><font color="Blue"><u>Regular Wiring Statement</u></font></a><a href="#RegularWiringStatement" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#NondefaultRules" title="4" name="962126"><font color="Blue"><u>Nondefault Rules</u></font></a><a href="#NondefaultRules" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Pins" title="4" name="972290"><font color="Blue"><u>Pins</u></font></a><a href="#Pins" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#PinProperties" title="4" name="962131"><font color="Blue"><u>Pin Properties</u></font></a><a href="#PinProperties" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#PropertyDefinitions" title="4" name="962136"><font color="Blue"><u>Property Definitions</u></font></a><a href="#PropertyDefinitions" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Regions" title="4" name="962141"><font color="Blue"><u>Regions</u></font></a><a href="#Regions" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Rows" title="4" name="962146"><font color="Blue"><u>Rows</u></font></a><a href="#Rows" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#ScanChains" title="4" name="962151"><font color="Blue"><u>Scan Chains</u></font></a><a href="#ScanChains" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Slots" title="4" name="962156"><font color="Blue"><u>Slots</u></font></a><a href="#Slots" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#SpecialNets" title="4" name="962161"><font color="Blue"><u>Special Nets</u></font></a><a href="#SpecialNets" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="69">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="31.872000000000003">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bss_bullet_sub_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#SpecialWiringStatement" title="4" name="966780"><font color="Blue"><u>Special Wiring Statement</u></font></a><a href="#SpecialWiringStatement" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Styles" title="4" name="962166"><font color="Blue"><u>Styles</u></font></a><a href="#Styles" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Technology" title="4" name="973392"><font color="Blue"><u>Technology</u></font></a><a href="#Technology" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Tracks" title="4" name="962175"><font color="Blue"><u>Tracks</u></font></a><a href="#Tracks" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Units" title="4" name="962180"><font color="Blue"><u>Units</u></font></a><a href="#Units" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Version" title="4" name="962185"><font color="Blue"><u>Version</u></font></a><a href="#Version" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a href="#Vias" title="4" name="962190"><font color="Blue"><u>Vias</u></font></a><a href="#Vias" title="4"> </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h2><a name="918666">About Design Exchange Format Files</a></h2>
|
|||
|
<p><a name="918667">A Design Exchange Format (DEF) file contains the design-specific information of a circuit and is a representation of the design at any point during the layout process. The DEF file is an ASCII representation using the syntax conventions described in </a><a href="preface.html#conventions" title="Preface"><font color="Blue"><u>"Typographic and Syntax Conventions"</u></font></a><a href="preface.html#conventions" title="Preface"></a>.</p>
|
|||
|
<p><a name="959453">DEF conveys logical design data to, and physical design data from, place-and-route tools. Logical design data can include internal connectivity (represented by a netlist), grouping information, and physical constraints. Physical data includes placement locations and orientations, routing geometry data, and logical design changes for backannotation. Place-and-route tools also can read physical design data, for example, to perform ECO changes.</a></p>
|
|||
|
<p><a name="959455">For standard-cell-based/ASIC flow tools, floorplanning is part of the design flow. You typically use the various floorplanning commands to interactively create a floorplan. This data then becomes part of the physical data output for the design using the </a><font size="2" face="'Courier New'" color="#000000">ROWS</font>, <font size="2" face="'Courier New'" color="#000000">TRACKS</font>, <font size="2" face="'Courier New'" color="#000000">GCELLGRID</font>, and <font size="2" face="'Courier New'" color="#000000">DIEAREA</font> statements. You also can manually enter this data into DEF to create the floorplan.</p>
|
|||
|
<p><a name="978048">It is legal for a DEF file to contain only floorplanning information, such as </a><font size="2" face="'Courier New'" color="#000000">ROWS</font>. In many cases, the DEF netlist information is in a separate format, such as Verilog, or in a separate DEF file. It is also common to have a DEF file that only contains a <font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> section to pass placement information.</p>
|
|||
|
<h3><a name="968594">General Rules</a></h3>
|
|||
|
<p><a name="968595">Note the following information about creating DEF files:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="968599">Identifiers like net names and cell names are limited to 2,048 characters. </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="968600">DEF statements end with a semicolon ( </a><font size="2" face="'Courier New'" color="#000000">;</font> ). You <font color="#000000"><em>must</em></font> leave a space before the semicolon.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="968607">Each section can be specified only once. Sections end with </a><font size="2" face="'Courier New'" color="#000000">END</font> <font size="2" face="'Courier New'" color="#000000"><em>SECTION</em></font>.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="968628">You must define all objects before you reference them except for the </a><font size="2" face="'Courier New'" color="#000000">+ ORIGINAL</font> argument in the <font size="2" face="'Courier New'" color="#000000">NETS</font> section.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h3><a name="1030241">Character Information</a></h3>
|
|||
|
<p><a name="1030398">LEF and DEF identifiers can contain any printable ASCII character, except space, tab, or new-line characters. This means the following characters are allowed along with all alpha-numeric characters:</a></p>
|
|||
|
<p><a name="1030494"><font size="2" face="'Courier New'" color="#000000">! " # $ % & ` ( ) * + , / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ </font></a></p>
|
|||
|
<p><a name="1030537">A LEF or DEF property string value is contained inside a pair of quotes, like this </a><font size="2" face="'Courier New'" color="#000000">"</font><font size="2" face="'Courier New'" color="#000000"><em><string></em></font><font size="2" face="'Courier New'" color="#000000">"</font>. The <font size="2" face="'Courier New'" color="#000000"><em><string></em></font> value can contain any printable ASCII character as shown above, including space, tab, or new-line characters. </p>
|
|||
|
<p><a name="1032351">Some characters have reserved meanings unless escaped with \. </a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="623">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="60">
|
|||
|
<p><a name="1032324"><font size="2" face="'Courier New'" color="#000000">[</font></a> <font size="2" face="'Courier New'" color="#000000">]</font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="562">
|
|||
|
<p><a name="1032326">Default special characters for bus bits inside a net or pin name unless overridden by </a><font size="2" face="'Courier New'" color="#000000">BUSBITCHARS </font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032328"><font size="2" face="'Courier New'" color="#000000">/</font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032330">Default special character for hierarchy inside a net or component name unless overridden by </a><font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR</font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032332"><font size="2" face="'Courier New'" color="#000000">#</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032334">The comment character. If preceded by a space, tab, or new-line, everything after # until the next new-line is treated as a comment.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032336"><font size="2" face="'Courier New'" color="#000000">*</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032338">Matches any sequence of characters for </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> or <font size="2" face="'Courier New'" color="#000000">GROUPS</font> component identifiers.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032340"><font size="2" face="'Courier New'" color="#000000">%</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032342">Matches any single character for </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> or <font size="2" face="'Courier New'" color="#000000">GROUPS</font> component identifiers.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032344"><font size="2" face="'Courier New'" color="#000000">"</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032346">The start and end character of a property string value. It has no special meaning for an identifier.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032348"><font size="2" face="'Courier New'" color="#000000">\</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032350">The escape character</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p><a name="1032362">You can use the backslash (</a><font size="2" face="'Courier New'" color="#000000">\</font>) as an escape character before each of the special characters shown above. When the backslash precedes a character that has a special meaning in LEF or DEF, the special meaning of the character is ignored. </p>
|
|||
|
<h4><a name="1032353">Name Escaping Semantics for Identifiers</a></h4>
|
|||
|
<p><a name="1030744">Here are some examples depicting the use of the escape character (</a><font size="2" face="'Courier New'" color="#000000">\</font>) in identifiers:</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="988137">A DEF file with </a><font size="2" face="'Courier New'" color="#000000">BUSBITCHARS "[]"</font> and net or pin name:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="608">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="60">
|
|||
|
<p><a name="1030842"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="67">
|
|||
|
<p><a name="1030800"><font size="2" face="'Courier New'" color="#000000">A[0]</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="480">
|
|||
|
<p><a name="1030802">is the 0</a><font color="#000000"><sup>th</sup></font> member of bus A</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1030850"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1030852"><font size="2" face="'Courier New'" color="#000000">A<0></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1030854">is a scalar named A<0></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1030844"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1030846"><font size="2" face="'Courier New'" color="#000000">A\[0\]</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1030848">is a scalar named A[0]</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1032309">A DEF file with </a><font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR "/"</font> and net or component names like:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="608">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="60">
|
|||
|
<p><a name="1032292"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="67">
|
|||
|
<p><a name="1032294"><font size="2" face="'Courier New'" color="#000000">A/B/C</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="480">
|
|||
|
<p><a name="1032296">is a 3-level hierarchical name, where C is inside B and B is inside A</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032298"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032300"><font size="2" face="'Courier New'" color="#000000">A/B\/C</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032302">is a 2-level hierarchical name where B/C is inside A</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032304"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032306"><font size="2" face="'Courier New'" color="#000000">A\/B</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1032308">is a flat name A/B</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1032310">The </a><font size="2" face="'Courier New'" color="#000000">"</font> character has no special meaning for an identifier. So an identifier would not need a <font size="2" face="'Courier New'" color="#000000">\</font> before a <font size="2" face="'Courier New'" color="#000000">"</font>. An identifier like:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="1031138"><font size="2" face="'Courier New'" color="#000000">name_with_"_in_it</font></a> </blockquote>
|
|||
|
<blockquote><a name="1031112">or even</a></blockquote>
|
|||
|
<blockquote><a name="1031113"> </a><font size="2" face="'Courier New'" color="#000000">"_name_starts_with_qoute</font></blockquote>
|
|||
|
<blockquote><a name="1031101">is legal without a </a><font size="2" face="'Courier New'" color="#000000">\</font>.</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1031172">An identifier that starts with </a><font size="2" face="'Courier New'" color="#000000">#</font> would be treated as a comment unless the <font size="2" face="'Courier New'" color="#000000">\</font> is present like this:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="1031173"> </a><font size="2" face="'Courier New'" color="#000000">\#_name_with_hash_for_first_char</font></blockquote>
|
|||
|
<blockquote><a name="1031201">Note, the </a><font size="2" face="'Courier New'" color="#000000">#</font> needs to be preceded by white-space to be treated as a comment char, so it has no special meaning inside an identifier. So an identifier like </blockquote>
|
|||
|
<blockquote><a name="1031222"><font size="2" face="'Courier New'" color="#000000">name_with_#_in_it</font></a></blockquote>
|
|||
|
<blockquote><a name="1031243">is legal without a </a><font size="2" face="'Courier New'" color="#000000">\</font>.</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1031360">Pattern matching characters </a><font size="2" face="'Courier New'" color="#000000">*</font> or <font size="2" face="'Courier New'" color="#000000">%</font> inside <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> or <font size="2" face="'Courier New'" color="#000000">GROUPS</font> component identifiers can be disabled like this:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font color="#000000"><a name="1031361"> </a><font size="2" face="'Courier New'" color="#000000">GROUPS 1 ;</font></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font color="#000000"><a name="1031362"><font size="2" face="'Courier New'" color="#000000"> - myGroup i1/i2/\* ...</font></a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1031355">or</a></blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font color="#000000"><a name="1031356"><font size="2" face="'Courier New'" color="#000000">SPECIALNETS 1 ;</font></a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font color="#000000"><a name="1031357"><font size="2" face="'Courier New'" color="#000000"> - VDD ( i1/i2/\* VDD ) ...</font></a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1031401">These will match the exact name </a><font size="2" face="'Courier New'" color="#000000">i1/i2/*</font> and not match <font size="2" face="'Courier New'" color="#000000">i1/i2/i3</font> or other components starting with <font size="2" face="'Courier New'" color="#000000">i1/i2/</font>.</blockquote>
|
|||
|
<blockquote><a name="1031370">Note, the </a><font size="2" face="'Courier New'" color="#000000">*</font> and <font size="2" face="'Courier New'" color="#000000">%</font> have no special meaning in other identifiers, so no <font size="2" face="'Courier New'" color="#000000">\</font> is needed for them.</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1031476">A real </a><font size="2" face="'Courier New'" color="#000000">\</font> char in an identifier needs to be escaped like this:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="1031477"><font size="2" face="'Courier New'" color="#000000">name_with_\\_in_it ....</font></a></blockquote>
|
|||
|
<blockquote><a name="1031478">The first </a><font size="2" face="'Courier New'" color="#000000">\</font> escapes the second <font size="2" face="'Courier New'" color="#000000">\</font>, so the real name is just <font size="2" face="'Courier New'" color="#000000">name_with_\_in_it</font>.</blockquote>
|
|||
|
<h4><a name="1032141">Escaping Semantics for Quoted Property Strings</a></h4>
|
|||
|
<p><a name="1032585">Properties may have string type values, placed within double quotes (</a><font size="2" face="'Courier New'" color="#000000">"</font>). However, if you need to use a double quote as a part of the string value itself, you would need to precede it with the escape character (<font size="2" face="'Courier New'" color="#000000">\</font>) to avoid breaking the property syntax. The escape sequence <font size="2" face="'Courier New'" color="#000000">`\"'</font> is converted to <font size="2" face="'Courier New'" color="#000000">`"'</font> during parsing. </p>
|
|||
|
<p><a name="1032717">The example below depicts the use of the escape character in a quoted property string:</a></p>
|
|||
|
<blockquote><a name="1032656"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>stringQuotedProp</em></font><font size="2" face="'Courier New'" color="#000000"> "string with \" quote and single backslash \and double backslash \\" ;</font></blockquote>
|
|||
|
<p><a name="1032633">The actual value of the property in the database will be:</a></p>
|
|||
|
<p><a name="1032678"><font size="2" face="'Courier New'" color="#000000">string with " quote and single backslash and double backslash\</font></a></p>
|
|||
|
<p><a name="1032193">Here:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1032194">The first </a><font size="2" face="'Courier New'" color="#000000">\</font> escapes the <font size="2" face="'Courier New'" color="#000000">"</font> so it does not end the property string. </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1032195">The next </a><font size="2" face="'Courier New'" color="#000000">\</font> has no effect on the subsequent <font size="2" face="'Courier New'" color="#000000">a</font> character.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1032196">The first </a><font size="2" face="'Courier New'" color="#000000">\</font> in <font size="2" face="'Courier New'" color="#000000">\\</font> escapes the second <font size="2" face="'Courier New'" color="#000000">\</font> character. This means that the second <font size="2" face="'Courier New'" color="#000000">\</font> in <font size="2" face="'Courier New'" color="#000000">\\</font> is treated as a real <font size="2" face="'Courier New'" color="#000000">\</font> character, and it does not escape the final <font size="2" face="'Courier New'" color="#000000">"</font> character, which ends the property string.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="1032197">Note that the other special characters like </a><font size="2" face="'Courier New'" color="#000000">[ ] / # * %</font> have no special meaning inside a property string and do not need to be escaped.</p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="987229">LEF/DEF to LEF/DEF Equivalence</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="987389">In DEF syntax, </a><font size="2" face="'Courier New'" color="#000000">\</font> is only used to escape characters that have a special meaning if they are not escaped. </p>
|
|||
|
<p><a name="987956">Consider the following LEF/DEF header specification:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="988187"><font size="2" face="'Courier New'" color="#000000">LEFDEF/[]</font></a> is equivalent to LEF or DEF with <font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR "/"</font> and <font size="2" face="'Courier New'" color="#000000">BUSBITCHARS "[]"</font> </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="988188"><font size="2" face="'Courier New'" color="#000000">LEFDEF|<></font></a> is equivalent to LEF or DEF with <font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR "|"</font> and <font size="2" face="'Courier New'" color="#000000">BUSBITCHARS "<>"</font> </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="988189">In the following examples, </a><font size="2" face="'Courier New'" color="#000000"><></font> are not special characters for <font size="2" face="'Courier New'" color="#000000">LEFDEF/[]</font> files and <font size="2" face="'Courier New'" color="#000000">[]</font> are not special characters for <font size="2" face="'Courier New'" color="#000000">LEFDEF|<></font> files. Observe how the header settings (listed above) affect the semantic meaning of the names:</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987433"><font size="2" face="'Courier New'" color="#000000">A<0></font></a> with <font size="2" face="'Courier New'" color="#000000">LEFDEF/[]</font> is not equivalent to <font size="2" face="'Courier New'" color="#000000">A<0></font> with <font size="2" face="'Courier New'" color="#000000">LEFDEF|<></font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987456"><font size="2" face="'Courier New'" color="#000000">A<0></font></a> with <font size="2" face="'Courier New'" color="#000000">LEFDEF/[]</font> is equivalent to <font size="2" face="'Courier New'" color="#000000">A\<0\></font> with <font size="2" face="'Courier New'" color="#000000">LEFDEF|<></font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987809"><font size="2" face="'Courier New'" color="#000000">A[0]</font></a> with <font size="2" face="'Courier New'" color="#000000">LEFDEF/[]</font> is equivalent to <font size="2" face="'Courier New'" color="#000000">A<0></font> with <font size="2" face="'Courier New'" color="#000000">LEFDEF|<></font> </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="987132">Verilog and DEF Equivalence</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="988211">For Verilog and DEF equivalence, consider the following DEF header specification:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="988212"><font size="2" face="'Courier New'" color="#000000">DEF/[]</font></a> is equivalent to DEF with <font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR "/"</font> and <font size="2" face="'Courier New'" color="#000000">BUSBITCHARS "[]"</font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987092"><font size="2" face="'Courier New'" color="#000000">DEF|<></font></a> is equivalent to DEF with <font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR</font> <font size="2" face="'Courier New'" color="#000000">"|"</font> and <font size="2" face="'Courier New'" color="#000000">BUSBITCHARS "<>"</font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="988264">In the following examples (showing net names), </a><font size="2" face="'Courier New'" color="#000000"><></font> are not special characters for <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> files and <font size="2" face="'Courier New'" color="#000000">[]</font> are not special characters for <font size="2" face="'Courier New'" color="#000000">DEF|<></font> files:</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987095"><font size="2" face="'Courier New'" color="#000000">A<0></font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> is equivalent to <font size="2" face="'Courier New'" color="#000000">\A<0></font> in Verilog</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="987096"><font size="2" face="'Courier New'" color="#000000">A<0></font></a> in <font size="2" face="'Courier New'" color="#000000">DEF|<></font> is equivalent to <font size="2" face="'Courier New'" color="#000000">A[0]</font> in Verilog (bit 0 of bus <font size="2" face="'Courier New'" color="#000000">A</font>)</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987097"><font size="2" face="'Courier New'" color="#000000">A[0]</font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> is equivalent to <font size="2" face="'Courier New'" color="#000000">A[0]</font> in Verilog (bit 0 of bus <font size="2" face="'Courier New'" color="#000000">A</font>)</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="987098"><font size="2" face="'Courier New'" color="#000000">A[0]</font></a> in <font size="2" face="'Courier New'" color="#000000">DEF|<></font> is equivalent to <font size="2" face="'Courier New'" color="#000000">\A[0]</font> in Verilog</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987099"><font size="2" face="'Courier New'" color="#000000">A\<0\></font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> is equivalent to <font size="2" face="'Courier New'" color="#000000">\A<0></font> in Verilog</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="987100"><font size="2" face="'Courier New'" color="#000000">A\<0\></font></a> in <font size="2" face="'Courier New'" color="#000000">DEF|<></font> is equivalent to <font size="2" face="'Courier New'" color="#000000">\A<0></font> in Verilog</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987101"><font size="2" face="'Courier New'" color="#000000">A\[0\]</font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> is equivalent to <font size="2" face="'Courier New'" color="#000000">\A[0]</font> in Verilog</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="987102"><font size="2" face="'Courier New'" color="#000000">A\[0\</font></a>] in <font size="2" face="'Courier New'" color="#000000">DEF|<></font> is equivalent to <font size="2" face="'Courier New'" color="#000000">\A[0]</font> in Verilog *</blockquote>
|
|||
|
<p><a name="987114">The following example shows instance path names for Verilog and DEF equivalence:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987860"><font size="2" face="'Courier New'" color="#000000">A/B</font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> represents instance path <font size="2" face="'Courier New'" color="#000000">A.B</font> (instance <font size="2" face="'Courier New'" color="#000000">A</font> in the top module, with instance <font size="2" face="'Courier New'" color="#000000">B</font> inside the module referenced by instance <font size="2" face="'Courier New'" color="#000000">A</font>) in Verilog.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987862"><font size="2" face="'Courier New'" color="#000000">A\/B</font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> represents instance <font size="2" face="'Courier New'" color="#000000">\A/B</font> in Verilog.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987864"><font size="2" face="'Courier New'" color="#000000">A\/B/C</font></a> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> represents <font size="2" face="'Courier New'" color="#000000">\A/B .C</font> in Verilog (escaped instance <font size="2" face="'Courier New'" color="#000000">\A/B</font> in the top module, with instance <font size="2" face="'Courier New'" color="#000000">C</font> inside the module referenced by instance <font size="2" face="'Courier New'" color="#000000">\A/B</font>).</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="987116">The net and instance path </a><font size="2" face="'Courier New'" color="#000000">A\/B/C/D[0]</font> in <font size="2" face="'Courier New'" color="#000000">DEF/[]</font> will represent <font size="2" face="'Courier New'" color="#000000">\A/B .C.D[0]</font> in Verilog (escaped instance <font size="2" face="'Courier New'" color="#000000">\A/B</font> in the top module, with instance <font size="2" face="'Courier New'" color="#000000">C</font> inside the module referenced by instance <font size="2" face="'Courier New'" color="#000000">\A/B</font>, and bus <font size="2" face="'Courier New'" color="#000000">D</font> in that module with bit 0 being specified).</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="987117">Comparison of DEF and Verilog Escaping Semantics</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="987118">The DEF escape </a><font size="2" face="'Courier New'" color="#000000">\</font> applies only to the next character and prevents the character from having a special meaning.</p>
|
|||
|
<p><a name="987119">The Verilog escape </a><font size="2" face="'Courier New'" color="#000000">\</font> affects the complete "token" and is terminated by a trailing white space (" ", Tab, Enter, etc.).</p>
|
|||
|
<h3><a name="DEFStatementOrder"></a><a name="968584">Order of DEF Statements</a></h3>
|
|||
|
<p><a name="950573">Standard DEF files can contain the following statements and sections. You can define the statements and sections in any order; however, data must be defined before it is used. For example, you must specify the </a><font size="2" face="'Courier New'" color="#000000">UNITS</font> statement before any statements that use values dependent on <font size="2" face="'Courier New'" color="#000000">UNITS</font> values, and <font size="2" face="'Courier New'" color="#000000">VIAS</font> statements must be defined before statements that use via names. If you specify statements and sections in the following order, all data is defined before being used.</p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="925336"> [ VERSION </a><font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>] <dd>[ DIVIDERCHAR <font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>]<dd>[ BUSBITCHARS <font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>]<dd>DESIGN<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement<dd></em></font>[ TECHNOLOGY<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>]<dd>[ UNITS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>]<dd>[ HISTORY<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ] ...<dd>[ PROPERTYDEFINITIONS <font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<dd>[ DIEAREA<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ]<dd>[ ROWS <font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>] ...<dd>[ TRACKS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ] ...<dd>[ GCELLGRID<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ] ...<dd>[ VIAS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ]<dd>[ STYLES <font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ]<dd>[ NONDEFAULTRULES <font size="2" face="'Courier New'" color="#000000"><em>statement </em></font>]<dd>[ REGIONS <font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ]<dd>[ COMPONENTMASKSHIFT <font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> ]<dd>[ COMPONENTS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<br>[ PINS<em> section</em> ]<br>[ PINPROPERTIES <font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<br>[ BLOCKAGES <font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<br>[ SLOTS <font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<br>[ FILLS <font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ] <br>[ SPECIALNETS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>section </em></font>]<br>[ NETS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<br>[ SCANCHAINS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>section </em></font>]<br>[ GROUPS<em> </em><font size="2" face="'Courier New'" color="#000000"><em>section</em></font> ]<br>[ BEGINEXT <font size="2" face="'Courier New'" color="#000000"><em>section </em></font>] ...<br>END DESIGN <font size="2" face="'Courier New'" color="#000000"><em>statement</em></font> </font>
|
|||
|
</dl>
|
|||
|
<h2><a name="962034">DEF Statement Definitions</a></h2>
|
|||
|
<p><a name="962202">The following definitions describe the syntax arguments for the statements and sections that make up a DEF file. The statements and sections are listed in alphabetical order, </a><font color="#000000"><em>not</em></font> in the order they must appear in a DEF file. For the correct order, see <a href="#DEFStatementOrder" title="4"><font color="Blue"><u>Order of DEF Statements</u></font></a><a href="#DEFStatementOrder" title="4"></a>.</p>
|
|||
|
<h3><a name="Blockages"></a><a name="960607">Blockages</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1001528">[BLOCKAGES </a><font size="2" face="'Courier New'" color="#000000"><em>numBlockages</em></font> ;<dd>[- LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName<dd></em></font> [ + SLOTS | + FILLS]<dd> [ + PUSHDOWN] <dd> [ + EXCEPTPGNET]<dd> [ + COMPONENT <font size="2" face="'Courier New'" color="#000000"><em>compName</em></font>]<dd> [ + SPACING <font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font> | + DESIGNRULEWIDTH <font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font>]<dd> [ + MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>]<dd> {RECT <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> | POLYGON <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ...} ...<dd>;] ...<dd>[- PLACEMENT <dd> [ + SOFT | + PARTIAL <font size="2" face="'Courier New'" color="#000000"><em>maxDensity</em></font>] <dd> [ + PUSHDOWN]<dd> [ + COMPONENT <font size="2" face="'Courier New'" color="#000000"><em>compName<dd></em></font> {RECT <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>} ... <dd>;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="969342">END BLOCKAGES]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="993974">Defines placement and routing blockages in the design. You can define simple blockages (blockages specified for an area), or blockages that are associated with specific instances (components). Only placed instances can have instance-specific blockages. If you move the instance, its blockage moves with it. </a></p>
|
|||
|
<p align="left"><a name="994524"> </a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="200">
|
|||
|
<p><a name="994453"><font size="2" face="'Courier New'" color="#000000">COMPONENT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>compName</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="448">
|
|||
|
<p><a name="994455">Specifies a component with which to associate a blockage. Specify with </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> to create a blockage on <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> associated with a component. Specify with <font size="2" face="'Courier New'" color="#000000">PLACEMENT</font> to create a placement blockage associated with a component.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="994457"><font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH </font></a><font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994461"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994463">Specifies that the blockage has a width of </a><font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font> for the purposes of spacing calculations. If you specify <font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH</font>, you cannot specify <font size="2" face="'Courier New'" color="#000000">SPACING</font>. As a lot of spacing rules in advanced nodes no longer just rely on wire width, <font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH</font> is not allowed for 20nm and below nodes.<br><font color="#000000"><em>Type:</em></font> DEF database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994465"><font size="2" face="'Courier New'" color="#000000">EXCEPTPGNET</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994467">Indicates that the blockage only blocks signal net routing, and does not block power or ground net routing. </a></p>
|
|||
|
<p><a name="994468">This can be used above noise sensitive blocks, to prevent signal routing on specific layers above the block, but allow power routing connections. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994470"><font size="2" face="'Courier New'" color="#000000">FILLS</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994472">Creates a blockage on the specified layer where metal fill shapes cannot be placed.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994474"><font size="2" face="'Courier New'" color="#000000">LAYER</font></a> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994476">Normally only cut or routing layers have blockages, but it is legal to create a blockage on any layer.</a></p>
|
|||
|
<p><a name="994477"><font color="#000000"><strong>Note:</strong></font></a> Cut-layer blockages will prevent vias from being placed in that area.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994682"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font></p>
|
|||
|
<p><a name="994479"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1001561">Specifies which mask for double or triple patterning lithography to use for the specified shapes. The </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer. Most applications support values of only 1, 2, or 3. Shapes without any defined mask have no mask set (are uncolored). </p>
|
|||
|
<p><a name="1005361">For example, </a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="994707">- LAYER metal1 + PUSHDOWN + MASK 1</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="994708">RECT ( -300 -310 ) ( 320 330 ) #rectangle on mask 1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="994709">RECT ( -150 -160 ) ( 170 180 ); #rectangle on mask 1</a></font>
|
|||
|
</blockquote>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994483"><font size="2" face="'Courier New'" color="#000000"><em>numBlockages</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994485">Specifies the number of blockages in the design specified in the </a><font size="2" face="'Courier New'" color="#000000">BLOCKAGES</font> section.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994487"><font size="2" face="'Courier New'" color="#000000">PARTIAL </font></a><font size="2" face="'Courier New'" color="#000000"><em>maxDensity</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994489">Indicates that the initial placement should not use more than </a><font size="2" face="'Courier New'" color="#000000"><em>maxDensity</em></font> percentage of the blockage area for standard cells. Later placement of clock tree buffers, or buffers added during timing optimization ignore this blockage. The <font size="2" face="'Courier New'" color="#000000"><em>maxDensity</em></font> value is calculated as:</p>
|
|||
|
<p><a name="994490"><font color="#000000">standard cell area in blockage area/blockage area</font></a> <font color="#000000"><= </font><font color="#000000"><em>maxDensity</em></font><font color="#000000"> </font></p>
|
|||
|
<p><a name="994491">This can be used to reduce the density in a locally congested area, and preserve it for buffer insertion.<br></a><font color="#000000"><em>Type:</em></font> Float <br><font color="#000000"><em>Value:</em></font> Between <font size="2" face="'Courier New'" color="#000000">0.0</font> and <font size="2" face="'Courier New'" color="#000000">100.0</font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994493"><font size="2" face="'Courier New'" color="#000000">PLACEMENT</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994495">Creates a placement blockage. You can create a simple placement blockage, or a placement blockage attached to a specific component. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994497"><font size="2" face="'Courier New'" color="#000000">POLYGON </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994499">Specifies a sequence of at least three points to generate a polygon geometry. The polygon edges must be parallel to the x axis, the y axis, or at a 45-degree angle. Each </a><font size="2" face="'Courier New'" color="#000000">POLYGON</font> statement defines a polygon generated by connecting each successive point, and then the first and last points. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value from the last point. </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994501"><font size="2" face="'Courier New'" color="#000000">PUSHDOWN</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994503">Specifies that the blockage was pushed down into the block from the top level of the design.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994505"><font size="2" face="'Courier New'" color="#000000">RECT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>pt pt</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994507">Specifies the coordinates of the blockage geometry. The coordinates you specify are absolute. If you associate a blockage with a component, the coordinates are not relative to the component's origin. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994509"><font size="2" face="'Courier New'" color="#000000">SOFT</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994511">Indicates that the initial placement should not use the area, but later phases, such as timing optimization or clock tree synthesis, can use the blockage area. This can be used to preserve certain areas (such as small channels between blocks) for buffer insertion after the initial placement. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994513"><font size="2" face="'Courier New'" color="#000000">SLOTS</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994515">Creates a blockage on the specified layer where slots cannot be placed.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="994517"><font size="2" face="'Courier New'" color="#000000">SPACING </font></a><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1017209">Specifies the minimum spacing allowed between this particular </a><font size="2" face="'Courier New'" color="#000000">blockage</font> and any other shape. The <font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font> value overrides all other normal LAYER-based spacing rules, including wide-wire spacing rules, end-of-line rules, parallel run-length rules, and so on. A <font size="2" face="'Courier New'" color="#000000">blockage</font> with <font size="2" face="'Courier New'" color="#000000">SPACING</font> is not "seen" by any other DRC check, except the simple check for <font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font> to any other routing shape on the same layer.</p>
|
|||
|
<p><a name="1017242">The </a><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font> value cannot be larger than the maximum spacing defined in the <font size="2" face="'Courier New'" color="#000000">SPACING</font> or <font size="2" face="'Courier New'" color="#000000">SPACINGTABLE</font> for that layer. Tools may change larger values to the maximum spacing value with a warning.<br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-1 </strong></font></strong>
|
|||
|
<strong><a name="960618">Blockages Statements</a></strong>
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="964161">The following </a><font size="2" face="'Courier New'" color="#000000">BLOCKAGES</font> section defines eight blockages in the following order: two <font color="#000000"><em>metal2</em></font> routing blockages, a pushed down routing blockage, a routing blockage attached to component <font size="2" face="'Courier New'" color="#000000">|i4</font>, a floating placement blockage, a pushed down placement blockage, a placement blockage attached to component <font size="2" face="'Courier New'" color="#000000">|i3</font>, and a fill blockage.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="960619">BLOCKAGES 7 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973795">- LAYER metal1 <br> RECT ( -300 -310 ) ( 320 330 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973805"> RECT ( -150 -160 ) ( 170 180 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973806">- LAYER metal1 + PUSHDOWN </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973807"> RECT ( -150 -160 ) ( 170 180 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973808">- LAYER metal1 + COMPONENT |i4 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973809"> RECT ( -150 -160 ) ( 170 180 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973810">- PLACEMENT </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973811"> RECT ( -150 -160 ) ( 170 180 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973812">- PLACEMENT + PUSHDOWN </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973813"> RECT ( -150 -160 ) ( 170 180 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973814">- PLACEMENT + COMPONENT |i3 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973815"> RECT ( -150 -160 ) ( 170 180 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973816">- LAYER metal1 + FILLS </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973817"> RECT ( -160 -170 ) ( 180 190 ) ; </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="962323">END BLOCKAGES</a></font>
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="973764">The following </a><font size="2" face="'Courier New'" color="#000000">BLOCKAGES</font> section defines two blockages. One requires minimum spacing of 1000 database units for its rectangle and polygon. The other requires that its rectangle's width be treated as 1000 database units for DRC checking.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973765">BLOCKAGES 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973772">- LAYER metal1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973776">+ SPACING 1000 #RECT and POLYGON require at least 1000 dbu spacing</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973780">RECT ( -300 -310 ) ( 320 300 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985186">POLYGON ( 0 0 ) ( * 100 ) ( 100 * ) ( 200 200 ) ( 200 0 ) ; #Has 45-degree #edge</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973782">- LAYER metal1 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973786">+ DESIGNRULEWIDTH 1000 #Treat the RECT as 1000 dbu wide for DRC checking</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973790">RECT ( -150 -160 ) ( 170 180 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973791">END BLOCKAGES</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="BusBitCharacters"></a><a name="960625">Bus Bit Characters</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960627">BUSBITCHARS "</a><font size="2" face="'Courier New'" color="#000000"><em>delimiterPair</em></font>" ;</font>
|
|||
|
</dl>
|
|||
|
<p><a name="960628">Specifies the pair of characters used to specify bus bits when DEF names are mapped to or from other databases. The characters must be enclosed in double quotation marks. For example:</a></p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960629"> BUSBITCHARS "()" ;</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="960630">If one of the bus bit characters appears in a DEF name as a regular character, you must use a backslash (</a><font size="2" face="'Courier New'" color="#000000">\</font>) before the character to prevent the DEF reader from interpreting the character as a bus bit delimiter.</p>
|
|||
|
<p><a name="979574">If you do not specify the </a><font size="2" face="'Courier New'" color="#000000">BUSBITCHARS</font> statement in your DEF file, the default value is <font size="2" face="'Courier New'" color="#000000">"[]"</font>.</p>
|
|||
|
<h3><a name="ComponentMaskShift"></a><a name="994799">Component Mask Shift</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="994806">[COMPONENTMASKSHIFT </a><font size="2" face="'Courier New'" color="#000000"><em>layer1</em></font> [<font size="2" face="'Courier New'" color="#000000"><em>layer2</em></font> ...] ;]</font>
|
|||
|
</dl>
|
|||
|
<p><a name="1006295">Defines which layers of a component are allowed to be shifted from the original mask colors in the LEF. This can be useful to shift all the layers of a specific component in order to align the masks with other component or router mask settings to increase routing density. This definition allows a specific component to compactly describe the mask shifting for that component.</a></p>
|
|||
|
<p><a name="1006296">All the listed layers must have a LEF MASK statement to indicate that the specified layer is either a two or three mask layer. The order of the layers must be increasing from the highest layer down to the lowest layer in the LEF layer order.</a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-2 </strong></font></strong>
|
|||
|
<strong><a name="994933">Component Mask Shift</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="994876">The following example indicates that any given component can shift the mask on layers </a><font size="2" face="'Courier New'" color="#000000">M3</font>, <font size="2" face="'Courier New'" color="#000000">M2</font>, <font size="2" face="'Courier New'" color="#000000">VIA1</font>, or <font size="2" face="'Courier New'" color="#000000">M1</font>:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1007949">COMPONENTMASKSHIFT M3 M2 VIA1 M1 ;</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="1007950">This layer list is used to interpret the </a><font size="2" face="'Courier New'" color="#000000">+ MASKSHIFT</font> <font size="2" face="'Courier New'" color="#000000"><em>shiftLayerMasks</em></font> value for a specific component as shown in the example given below:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="994882">- i1/i2 AND2</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="994883">+ MASKSHIFT 1102 #M3 shifted by 1, M2 by 1, VIA1 by 0, M1 by 2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="994884">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="994885">For details on components, see the </a><a href="#Components" title="4"><font color="#0000ff"><u>Components</u></font></a> section.</p>
|
|||
|
<h3><a name="Components"></a><a name="964281">Components</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960728">COMPONENTS </a><font size="2" face="'Courier New'" color="#000000"><em>numComps</em></font> ;<dd>[- <font size="2" face="'Courier New'" color="#000000"><em>compName modelName</em></font> <dd> [+ EEQMASTER <font size="2" face="'Courier New'" color="#000000"><em>macroName</em></font>]<dd> [+ SOURCE {NETLIST | DIST | USER | TIMING}]<dd> [+ {FIXED <font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font> | COVER <font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font> | PLACED <font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font> <dd> | UNPLACED} ]<dd> [+ MASKSHIFT <font size="2" face="'Courier New'" color="#000000"><em>shiftLayerMasks</em></font>]<dd> [+ HALO [SOFT] <font size="2" face="'Courier New'" color="#000000"><em>left</em></font> <font size="2" face="'Courier New'" color="#000000"><em>bottom</em></font> <font size="2" face="'Courier New'" color="#000000"><em>right</em></font> <font size="2" face="'Courier New'" color="#000000"><em>top</em></font>]<dd> [+ ROUTEHALO <font size="2" face="'Courier New'" color="#000000"><em>haloDist</em></font> <font size="2" face="'Courier New'" color="#000000"><em>minLayer</em></font> <font size="2" face="'Courier New'" color="#000000"><em>maxLayer</em></font>]<dd> [+ WEIGHT <font size="2" face="'Courier New'" color="#000000"><em>weight</em></font>] <dd> [+ REGION <font size="2" face="'Courier New'" color="#000000"><em>regionName</em></font>] <dd> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...]...<dd>;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="962347">END COMPONENTS</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="964422">Defines design components, their location, and associated attributes. </a></p>
|
|||
|
<p align="left"><a name="995170"> </a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="650">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="196">
|
|||
|
<p><a name="995213"><font size="2" face="'Courier New'" color="#000000"><em>compName modelName</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="453">
|
|||
|
<p><a name="995295">Specifies the component name in the design, which is an instance of </a><font size="2" face="'Courier New'" color="#000000"><em>modelName</em></font>, the name of a model defined in the library. A <font size="2" face="'Courier New'" color="#000000"><em>modelName</em></font> must be specified with each <font size="2" face="'Courier New'" color="#000000"><em>compName</em></font>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995217"><font size="2" face="'Courier New'" color="#000000">COVER </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995314">Specifies that the component has a location and is a part of a cover macro. A </a><font size="2" face="'Courier New'" color="#000000">COVER</font> component cannot be moved by automatic tools or interactive commands. You must specify the component's location and its orientation.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="995221"><font size="2" face="'Courier New'" color="#000000">EEQMASTER </font></a><font size="2" face="'Courier New'" color="#000000"><em>macroName</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995331"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995337">Specifies that the component being defined should be electrically equivalent to the previously defined </a><font size="2" face="'Courier New'" color="#000000"><em>macroName</em></font>. </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995225"><font size="2" face="'Courier New'" color="#000000">FIXED </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995356">Specifies that the component has a location and cannot be moved by automatic tools, but can be moved using interactive commands. You must specify the component's location and orientation.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="995277"><font size="2" face="'Courier New'" color="#000000">HALO [SOFT] </font></a><font size="2" face="'Courier New'" color="#000000"><em>left</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>bottom</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>right</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>top</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995373"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995379">Specifies a placement blockage around the component. The halo extends from the LEF macro's left edge(s) by </a><font size="2" face="'Courier New'" color="#000000"><em>left</em></font>, from the bottom edge(s) by <font size="2" face="'Courier New'" color="#000000"><em>bottom</em></font>, from the right edge(s) by <font size="2" face="'Courier New'" color="#000000"><em>right</em></font>, and from the top edge(s) by <font size="2" face="'Courier New'" color="#000000"><em>top</em></font>. The LEF macro edges are either defined by the rectangle formed by the <font size="2" face="'Courier New'" color="#000000">MACRO</font> <font size="2" face="'Courier New'" color="#000000">SIZE</font> statement, or, if <font size="2" face="'Courier New'" color="#000000">OVERLAP</font> obstructions exist (<font size="2" face="'Courier New'" color="#000000">OBS</font> shapes on a layer with <font size="2" face="'Courier New'" color="#000000">TYPE</font> <font size="2" face="'Courier New'" color="#000000">OVERLAP</font>), the polygon formed by merging the <font size="2" face="'Courier New'" color="#000000">OVERLAP</font> shapes.</p>
|
|||
|
<p><a name="995380">If </a><font size="2" face="'Courier New'" color="#000000">SOFT</font> is specified, the placement halo is honored only during initial placement; later phases, such as timing optimization or clock tree synthesis, can use the halo area. This can be used to preserve certain areas (such as small channels between blocks) for buffer insertion. <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="995590"><font size="2" face="'Courier New'" color="#000000">MASKSHIFT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>shiftLayerMasks</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995427"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="995614">Specifies shifting the cell-master masks used in double or triple patterning for specific layers of an instance of the cell-master. This is mostly used for standard cells where the placer or router may shift one or more layer mask assignments for better density.</a></p>
|
|||
|
<p><a name="995615">The </a><font size="2" face="'Courier New'" color="#000000"><em>shiftLayerMasks</em></font> variable is a hex-encoded digit, with one digit per multi-mask layer:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="995616">...<</a><font size="2" face="'Courier New'" color="#000000"><em>thirdLayerShift</em></font>><<font size="2" face="'Courier New'" color="#000000"><em>secondLayerShift</em></font>><<font size="2" face="'Courier New'" color="#000000"><em>bottomLayerShift</em></font>></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1007473"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1007963">The </a><font size="2" face="'Courier New'" color="#000000"><em>bottomLayerShift</em></font> value is the mask-shift for the bottom-most multi-mask layer defined in the <font size="2" face="'Courier New'" color="#000000">COMPONENTMASKSHIFT</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>secondMaskShift</em></font>, <font size="2" face="'Courier New'" color="#000000"><em>thirdMaskShift</em></font>, and so on, are the shift values for each layer in order above the bottom-most multi-mask layer. The missing digits indicate that no shift is needed so 002 and 2 have the same meaning.</p>
|
|||
|
<p><a name="1007975">For 2-mask layers, the </a><font size="2" face="'Courier New'" color="#000000"><em>LayerShift</em></font> value must be 0 or 1 and indicates:</p>
|
|||
|
<p><a name="1007976">0 - No mask-shift</a></p>
|
|||
|
<p><a name="1007977">1 - Shift the mask colors by 1 (mask 1->2, and 2->1)</a></p>
|
|||
|
<p><a name="1007978">For 3-mask layers, the </a><font size="2" face="'Courier New'" color="#000000"><em>LayerShift</em></font> value can be 0, 1, 2, 3, 4, or 5 that indicates:</p>
|
|||
|
<p><a name="1007979">0 - No mask shift</a></p>
|
|||
|
<p><a name="1007980">1 - Shift by 1 (1->2, 2->3, 3->1)</a></p>
|
|||
|
<p><a name="1007981">2 - Shift by 2 (1->3, 2->1, 3->2)</a></p>
|
|||
|
<p><a name="1007982">3 - Mask 1 is fixed, swap 2 and 3</a></p>
|
|||
|
<p><a name="1007983">4 - Mask 2 is fixed, swap 1 and 3</a></p>
|
|||
|
<p><a name="1007984">5 - Mask 3 is fixed, swap 1 and 2</a></p>
|
|||
|
<p><a name="1007996">The purpose of 3, 4, 5 is for standard cells that have a fixed power-rail mask color, but the pins between the power-rails can still be shifted. Suppose you had a standard cell with mask 1 power rails, and three signal pins on mask 1, 2, and 3. A </a><font size="2" face="'Courier New'" color="#000000"><em>LayerShift</em></font> of 3, will keep the mask 1 power rails and signal pin fixed on mask 1, while mask 2 and mask 3 signal pin shapes will swap mask colors.</p>
|
|||
|
<p><a name="1008000"> See </a><a href="#1005444" title="4"><font color="Blue"><u>Example 4-3</u></font></a><a href="#1005444" title="4"></a>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-3 </strong></font></strong>
|
|||
|
<strong><a name="1005444">Mask Shift Layers for Components</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1005445">The following example shows a LEF section that has a three-mask layer defined for </a><font size="2" face="'Courier New'" color="#000000">M1</font>, and two-mask layer defined for layers <font size="2" face="'Courier New'" color="#000000">VIA1</font> and <font size="2" face="'Courier New'" color="#000000">M2</font>:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005446">COMPONENTMASKSHIFT M2 VIA1 M1 ; </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005447">COMPONENTS 100 ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005448">- i1/i2 AND2</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005449">+ MASKSHIFT 2 #M1 layer masks are shifted by 2, no shift for others</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005450">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1007955">- i1/i3 OR2</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1007956">+ MASKSHIFT 103 ##M1 layer has shift 3, VIA1 0, M2 1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005454">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="1008943">If an application shifts the layers M1, VIA1, and M2, then the above example indicates that the instance of AND2 cell shifts the M1 layer masks by 2. Since M1 is a three-mask layer, this shows that the cell-master M1 layer mask 1 shifts to 3, mask 2 shifts to 1, and mask 3 shifts to 2. The other layer masks are not shifted. The instance of OR2 cell shifts the M1 layer masks by 3. For a 3-mask layer this means keep mask 1 fixed, mask 2 shifts to 3, and mask 3 shifts to 2). The VIA1 layer does not shift and the M2 layer masks are shifted by 1 (for a two-mask layer this means that mask 1 shifts to 2, and 2 shifts to 1).</a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-4 </strong></font></strong>
|
|||
|
<strong><a name="971559">Component Halo </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="971566">The following statement creates a placement blockage for a "U-shaped" LEF macro, as illustrated in </a><a href="#971596" title="4"><font color="Blue"><u>Figure 4-1</u></font></a><a href="#971596" title="4"> </a>:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979016">- i1/i2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="971581">+ PLACED ( 0 0 ) N</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="971585">+ HALO 100 0 50 200 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-1 </strong></font></strong>
|
|||
|
<strong><a name="971596"> Component Halo</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1025705"><img src="images/DEFSyntax.07.1.01.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025706"><font size="2" face="'Courier New'" color="#000000"><em>numComps</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025718">Specifies the number of components defined in the </a><font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> section.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="966338"><font size="2" face="'Courier New'" color="#000000">PLACED </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025752">Specifies that the component has a location, but can be moved using automatic layout tools. You must specify the component's location and orientation.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025753"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName</em></font><font color="#000000"><em> </em></font><font size="2" face="'Courier New'" color="#000000"><em>propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025767">Specifies a numerical or string value for a component property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025537"><font size="2" face="'Courier New'" color="#000000">REGION </font></a><font size="2" face="'Courier New'" color="#000000"><em>regionName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025778">Specifies a region in which the component must lie. </a><font size="2" face="'Courier New'" color="#000000"><em>regionName</em></font> specifies a region already defined in the <font size="2" face="'Courier New'" color="#000000">REGIONS</font> section. If the region is smaller than the bounding rectangle of the component itself, the DEF reader issues an error message and ignores the argument. If the region does not contain a legal location for the component, the component remains unplaced after the placement step.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025541"><font size="2" face="'Courier New'" color="#000000">ROUTEHALO </font></a><font size="2" face="'Courier New'" color="#000000"><em>haloDist minLayer maxLayer</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025804">Specifies that signal routing in the "halo area" around the block boundary should be perpendicular to the block edge in order to reach the block pins. The halo area is the area within </a><font size="2" face="'Courier New'" color="#000000"><em>haloDist</em></font> of the block boundary (see the Figure below). A routing-halo is intended to be used to minimize cross coupling between routing at the current level of the design, and routing inside the block. It has no effect on power routing. Note that this also means it is allowed to route in the "halo corners" because routing in the "halo corner" is not adjacent to the block boundary, and will not cause any significant cross-coupling with routing inside the block.<br>The routing halo exists for the routing layers between <font size="2" face="'Courier New'" color="#000000"><em>minLayer</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>maxLayer</em></font>. The layer you specify for <font size="2" face="'Courier New'" color="#000000"><em>minLayer</em></font> must be a lower routing layer than <font size="2" face="'Courier New'" color="#000000"><em>maxLayer</em></font>. <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units (<font size="2" face="'Courier New'" color="#000000"><em>haloDist</em></font>); string that matches a LEF routing layer name (<font size="2" face="'Courier New'" color="#000000"><em>minLayer</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>maxLayer</em></font>) </blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-5 </strong></font></strong>
|
|||
|
<strong><a name="984165">Route Halo Example </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="984183">For a U-shaped macro, the following component description results in the halo shown in </a><a href="#983929" title="4"><font color="Blue"><u>Figure 4-2</u></font></a><a href="#983929" title="4"></a>.</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984177">- il/i2 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984178">+ PLACED ( 0 0 ) N</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984182">+ ROUTEHALO 100 metal1 metal3 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-2 </strong></font></strong>
|
|||
|
<strong><a name="983929">Route Halo </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="983930"><img src="images/DEFSyntax.07.1.02.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="960739"><font size="2" face="'Courier New'" color="#000000">SOURCE {NETLIST | DIST | USER | TIMING} </font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025820">Specifies the source of the component. <br></a><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="964754"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="132">
|
|||
|
<p><a name="964756"><font size="2" face="'Courier New'" color="#000000">DIST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="324">
|
|||
|
<p><a name="964758">Component is a physical component (that is, it only connects to power or ground nets), such as filler cells, well-taps, and decoupling caps. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="964760"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="964762"><font size="2" face="'Courier New'" color="#000000">NETLIST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="964764">Component is specified in the original netlist. This is the default value, and is normally not written out in the DEF file.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="964766"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="964768"><font size="2" face="'Courier New'" color="#000000">TIMING</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="964770">Component is a logical rather than physical change to the netlist, and is typically used as a buffer for a clock-tree, or to improve timing on long nets. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968704"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968706"><font size="2" face="'Courier New'" color="#000000">USER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968708">Component is generated by the user for some user-defined reason.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="966262"><font size="2" face="'Courier New'" color="#000000">UNPLACED</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025856">Specifies that the component does not have a location.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025857"><font size="2" face="'Courier New'" color="#000000">WEIGHT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>weight</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025862">Specifies the weight of the component, which determines whether or not automatic placement attempts to keep the component near the specified location. </a><font size="2" face="'Courier New'" color="#000000"><em>weight</em></font> is only meaningful when the component is placed. All non-zero weights have the same effect during automatic placement.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font></blockquote>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="SpecifyingOrientation"></a><a name="1005422">Specifying Orientation </a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="966348">If a component has a location, you must specify its location and orientation. A component can have any of the following orientations: N, S, W, E, FN, FS, FW, or FE.</a></p>
|
|||
|
<p><a name="983345">Orientation terminology can differ between tools. The following table maps the orientation terminology used in LEF and DEF files to the OpenAccess database format.</a></p>
|
|||
|
<table summary="" border="1" cellpadding="5" cellspacing="0" width="570">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="178">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="983348">LEF/DEF</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="154">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="983350">OpenAccess</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="237">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="983352">Definition</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983354">N (North) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983356">R0 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983363"> <img src="images/DEFSyntax.07.1.03.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983365">S (South) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983367">R180 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983374"> <img src="images/DEFSyntax.07.1.04.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983376">W (West) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983378">R90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983385"> <img src="images/DEFSyntax.07.1.05.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983387">E (East) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983389">R270 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983396"> <img src="images/DEFSyntax.07.1.06.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983398">FN (Flipped North) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983400">MY </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983407"> <img src="images/DEFSyntax.07.1.07.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983409">FS (Flipped South) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983411">MX </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983418"> <img src="images/DEFSyntax.07.1.08.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983420">FW (Flipped West) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983422">MX90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983429"> <img src="images/DEFSyntax.07.1.09.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983431">FE (Flipped East) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983433">MY90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983440"> <img src="images/DEFSyntax.07.1.10.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p><a name="982878">Components are always placed such that the lower left corner of the cell is the origin (0,0) after any orientation. When a component flips about the y axis, it flips about the component center. When a component rotates, the lower left corner of the bounding box of the component's sites remains at the same placement location.</a></p>
|
|||
|
<h3><a name="Design"></a><a name="960855">Design</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960857">DESIGN </a><font size="2" face="'Courier New'" color="#000000"><em>designName</em></font> ;</font>
|
|||
|
</dl>
|
|||
|
<p><a name="962334">Specifies a name for the design. The DEF reader reports a warning if this name is different from that in the database. In case of a conflict, the just specified name overrides the old name.</a></p>
|
|||
|
<h3><a name="DieArea"></a><a name="960864">Die Area</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960865">[DIEAREA </a><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> [<font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>] ... ;]</font>
|
|||
|
</dl>
|
|||
|
<p><a name="971018">If two points are defined, specifies two corners of the bounding rectangle for the design. If more than two points are defined, specifies the points of a polygon that forms the die area. The edges of the polygon must be parallel to the x or y axis (45-degree shapes are not allowed), and the last point is connected to the first point. All points are integers, specified as DEF database units.</a></p>
|
|||
|
<p><a name="971048">Geometric shapes (such as blockages, pins, and special net routing) can be outside of the die area, to allow proper modeling of pushed down routing from top-level designs into sub blocks. However, routing tracks should still be inside the die area. </a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-6 </strong></font></strong>
|
|||
|
<strong><a name="971051"> Die Area Statements</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="971058">The following statements show various ways to define the die area.</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971055">DIEAREA ( 0 0 ) ( 100 100 ) ; #Rectangle from 0,0 to 100,100</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971056">DIEAREA ( 0 0 ) ( 0 100 ) ( 100 100 ) ( 100 0 ) ; #Same rectangle as a polygon</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971057">DIEAREA ( 0 0 ) ( 0 100 ) ( 50 100 ) ( 50 50 ) ( 100 50 ) ( 100 0 ) ; #L-shaped polygon</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="DividerCharacter"></a><a name="960874">Divider Character</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960876">DIVIDERCHAR "</a><font size="2" face="'Courier New'" color="#000000"><em>character</em></font>" ;</font>
|
|||
|
</dl>
|
|||
|
<p><a name="960877">Specifies the character used to express hierarchy when DEF names are mapped to or from other databases. The character must be enclosed in double quotation marks. For example:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="960878">DIVIDERCHAR "/" ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="960879">If the divider character appears in a DEF name as a regular character, you must use a backslash (</a><font size="2" face="'Courier New'" color="#000000">\</font>) before the character to prevent the DEF reader from interpreting the character as a hierarchy delimiter.</p>
|
|||
|
<p><a name="981925">If you do not specify the </a><font size="2" face="'Courier New'" color="#000000">DIVIDERCHAR</font> statement in your LEF file, the default value is <font size="2" face="'Courier New'" color="#000000">"/"</font>. </p>
|
|||
|
<h3><a name="Extensions"></a><a name="960885">Extensions</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960886">[BEGINEXT "</a><font size="2" face="'Courier New'" color="#000000"><em>tag</em></font>" <dd><font size="2" face="'Courier New'" color="#000000"><em>extensionText</em></font> </font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="962502">ENDEXT]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="960887">Adds customized syntax to the DEF file that can be ignored by tools that do not use that syntax. You can also use extensions to add new syntax not yet supported by your version of LEF/DEF, if you are using version 5.1 or later. Add extensions as separate sections.</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="962519"><font size="2" face="'Courier New'" color="#000000"><em>extensionText</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025873">Defines the contents of the extension. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="962515"><font size="2" face="'Courier New'" color="#000000">"</font></a><font size="2" face="'Courier New'" color="#000000"><em>tag</em></font><font size="2" face="'Courier New'" color="#000000">"</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025888">Identifies the extension block. You must enclose </a><font size="2" face="'Courier New'" color="#000000"><em>tag</em></font> in quotes. </blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-7 </strong></font></strong>
|
|||
|
<strong><a name="960891">Extension Statement </a></strong>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="960892">BEGINEXT "1VSI Signature 1.0" </a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973823">CREATOR "company name" </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973833">DATE "timestamp" </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973834">REVISION "revision number" </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="962503">ENDEXT </a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="Fills"></a><a name="960898">Fills</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1015181">[FILLS </a><font size="2" face="'Courier New'" color="#000000"><em>numFills</em></font> ; <dd>[- LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> [+ MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>] [+ OPC] <dd> {RECT <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> | POLYGON <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ...} ... ;] ...<dd>[- VIA <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> [+ MASK <font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font>] [+ OPC] <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ... ;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1015188">END FILLS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="1015183">Defines the rectangular shapes that represent metal fills in the design. Each fill is defined as an individual rectangle.</a></p>
|
|||
|
<p align="left"><a name="996199"> </a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="649">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="195">
|
|||
|
<p><a name="996241"><font size="2" face="'Courier New'" color="#000000">LAYER</font></a> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="453">
|
|||
|
<p><a name="996243">Specifies the layer on which to create the fill.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996463"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996465">Specifies which mask for double or triple patterning lithography to use for the given rectangles or polygons. The </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer. Most applications support values of 1, 2, or 3 only. Shapes without any defined mask have no mask setting (are uncolored).</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996467"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996521">Specifies which mask for double or triple patterning lithography to be applied to via shapes on each layer. </a></p>
|
|||
|
<p><a name="996523">The </a><font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font> variable is a hex-encoded three digit value of the form: </p>
|
|||
|
<p><a name="996628"><font color="#000000"><</font></a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font><font color="#000000">></font></p>
|
|||
|
<p><a name="996525">For example, MASK 113 means that the top metal and cut layer </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 1, and the bottom metal layer <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 3. A value of 0 means the shape on that layer has no mask assignment (is uncolored), so 013 means the top layer is uncolored. If either the first or second digit is missing, they are assumed to be 0, so 013 and 13 mean the same thing. Most applications support <font size="2" face="'Courier New'" color="#000000"><em>maskNums</em></font> of 0, 1, 2, or 3 for double or triple patterning.</p>
|
|||
|
<p><a name="996527">The </a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> variables specify which mask the corresponding metal shape belongs to. The via-master metal mask values have no effect. </p>
|
|||
|
<p><a name="996529">For the cut layer, the </a><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> defines the mask for the bottom-most, and then the left-most cut. For multi-cut vias, the via-instance cut masks are derived from the via-master cut mask values. The via-master must have a mask defined for all the cut shapes and every via-master cut mask is "shifted" (from 1 to 2, 2 to1 for two mask layers, and from 1 to 2, 2 to 3, and 3 to 1 for three mask layers) so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> value. </p>
|
|||
|
<p><a name="1014843">Similarly, for the metal layer, the </a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> would define the mask for the bottom-most, then leftmost metal shape. For multiple disjoint metal shapes, the via-instance metal masks are derived from the via-master metal mask values. The via-master must have a mask defined for all of the metal shapes, and every via-master metal mask is "shifted" (1->2, 2->1 for two mask layers, 1->2, 2->3, 3->1 for three mask layers) so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> value. </p>
|
|||
|
<p><a name="996692">See </a><a href="#1005574" title="4"><font color="Blue"><u>Example 4-9</u></font></a><a href="#1005574" title="4"></a>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996245"><font size="2" face="'Courier New'" color="#000000"><em>numFills</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996247">Specifies the number of </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> statements in the <font size="2" face="'Courier New'" color="#000000">FILLS</font> statement, <font color="#000000"><em>not</em></font> the number of rectangles.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996249"><font size="2" face="'Courier New'" color="#000000">OPC</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996251">Indicates that the </a><font size="2" face="'Courier New'" color="#000000">FILL</font> shapes require OPC correction during mask generation. </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996253"><font size="2" face="'Courier New'" color="#000000">POLYGON </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996255">Specifies a sequence of at least three points to generate a polygon geometry. The polygon edges must be parallel to the x axis, the y axis, or at a 45-degree angle. Each </a><font size="2" face="'Courier New'" color="#000000">POLYGON</font> statement defines a polygon generated by connecting each successive point, and then the first and last points. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value from the last point. </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996305"><font size="2" face="'Courier New'" color="#000000">RECT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>pt pt</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996307">Specifies the lower left and upper right corner coordinates of the fill geometry. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996321"><font size="2" face="'Courier New'" color="#000000">VIA </font></a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="996323">Places the via named </a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> at the specified (x y) location (<font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>). <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> must be a previously defined via in the DEF <font size="2" face="'Courier New'" color="#000000">VIAS</font> or LEF <font size="2" face="'Courier New'" color="#000000">VIA</font> section. <br><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>) Integers, specified in DEF database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-8 </strong></font></strong>
|
|||
|
<strong><a name="960904">Fills Statements</a></strong>
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="964773">The following </a><font size="2" face="'Courier New'" color="#000000">FILLS</font> statement defines fill geometries for layers <font color="#000000"><em>metal1</em></font> and <font color="#000000"><em>metal2</em></font>:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="960905">FILLS </a><font size="2" face="'Courier New'" color="#000000">2</font> ;</font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973879">- LAYER metal1 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973886"> RECT ( 1000 2000 ) ( 1500 4000 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973887"> RECT ( 2000 2000 ) ( 2500 4000 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973888"> RECT ( 3000 2000 ) ( 3500 4000 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973889">- LAYER metal2 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973890"> RECT ( 1000 2000 ) ( 1500 4000 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973891"> RECT ( 1000 4500 ) ( 1500 6500 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973892"> RECT ( 1000 7000 ) ( 1500 9000 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973893"> RECT ( 1000 9500 ) ( 1500 11500 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973894">END FILLS</a></font>
|
|||
|
</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="973877">The following </a><font size="2" face="'Courier New'" color="#000000">FILLS</font> statement defines two rectangles and one polygon fill geometries:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973878">FILLS 1 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973904">-LAYER metal1 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973908"> RECT ( 100 200 ) ( 150 400 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973912"> POLYGON ( 100 100 ) ( 200 200 ) ( 300 200 ) ( 300 100 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973913"> RECT ( 300 200 ) ( 350 400 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1016532">END FILLS</a></font>
|
|||
|
</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1016561">Shapes on the </a><font size="2" face="'Courier New'" color="#000000">TRIMMETAL</font> layers are written out in the <font size="2" face="'Courier New'" color="#000000">FILLS</font> section in DEF in the following format:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1016640">- LAYER TM1 + MASK </a><font size="2" face="'Courier New'" color="#000000"><em>x</em></font> RECT (<font size="2" face="'Courier New'" color="#000000"><em>x x</em></font>) (<font size="2" face="'Courier New'" color="#000000"><em>x x</em></font>) ; </font>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1016656">The following </a><font size="2" face="'Courier New'" color="#000000">FILLS</font> statement defines two rectangular shapes on the <font size="2" face="'Courier New'" color="#000000">TRIMMETAL</font> layer <font size="2" face="'Courier New'" color="#000000">TM1</font>, which is defined in a property statement in the masterslice layer section in LEF: </blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1016657">FILLS 2 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1015274">- LAYER TM1 + MASK 1 RECT (30 28) (33 38)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1015275">- LAYER TM1 + MASK 2 RECT (36 23) (39 33)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1015276">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1015258">END FILLS </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-3 </strong></font></strong>
|
|||
|
<strong><a name="1016419">Trim Metal Layer Shapes in the FILLS Section</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1015456"><img src="images/DEFSyntax.07.1.11.png" alt=""><br></a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1015198">The following </a><font size="2" face="'Courier New'" color="#000000">FILLS</font> statement defines two rectangles and two via fill geometries for layer <font color="#000000"><em>metal1</em></font>. The rectangles and one of the via fill shapes require OPC correction. </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984317">FILLS 3 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984321">-LAYER metal1 + OPC </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984325"> RECT ( 0 0 ) ( 100 100 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984329"> RECT ( 200 200 ) ( 300 300 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984330">-VIA via26 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984334"> ( 500 500 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984338"> ( 800 800 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984339">-VIA via28 + OPC </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984340"> ( 900 900 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984347">END FILLS </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-9 </strong></font></strong>
|
|||
|
<strong><a name="1005574">Multi-Mask Patterns for Fills</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1005575">The following example shows multi-mask patterning for fills:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005576">- LAYER M1 + MASK 1 RECT ( 10 10 ) ( 11 11 ) ; #RECT on MASK 1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="996757">- LAYER M2 RECT ( 10 10 ) ( 11 11 ) ; #RECT is uncolored</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="996758">- VIA VIA1_1 + MASK 031 ( 10 10 ) ; #VIA with top-cut-bot mask 031</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="996879">This indicates that the: </a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="996880"><font size="2" face="'Courier New'" color="#000000">M1</font></a> rectangle shape is on <font size="2" face="'Courier New'" color="#000000">MASK 1</font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="996881"><font size="2" face="'Courier New'" color="#000000">M2</font></a> rectangle shape has no mask set and is uncolored</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="996762"><font size="2" face="'Courier New'" color="#000000">VIA1_1</font></a> via will have:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="996763">no mask set for the top metal shape - it is uncolored (</a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font> is 0 in the 031 value). Note that the via-master color of the top metal shape does not matter.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="996764"><font size="2" face="'Courier New'" color="#000000">mask 1</font></a> for the bottom metal shape (<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> is 1 in the 031 value)</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="996765">for the cut layer, the bottom-most, and then the left-most cut of the via-instance is mask 3. The mask for the other cuts of the via-instance are derived from the via-master by "shifting" the via-master cut masks to match. So if the via-master's bottom- left cut is </a><font size="2" face="'Courier New'" color="#000000">MASK 1</font>, then the via-master cuts on mask 1 become mask 3 for the via-instance, and similarly cuts on 2 become 1, and cuts on 3 become 2. See <a href="#1001113" title="4"><font color="Blue"><u>Figure 4-11</u></font></a><a href="#1001113" title="4"></a>.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h3><a name="GCellGrid"></a><a name="960924">GCell Grid</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960925">[GCELLGRID<dd>{X </a><font size="2" face="'Courier New'" color="#000000"><em>start</em></font> DO <font size="2" face="'Courier New'" color="#000000"><em>numColumns+1</em></font> STEP <font size="2" face="'Courier New'" color="#000000"><em>space</em></font>} ... <dd>{Y <font size="2" face="'Courier New'" color="#000000"><em>start</em></font> DO <font size="2" face="'Courier New'" color="#000000"><em>numRows+1</em></font> STEP <font size="2" face="'Courier New'" color="#000000"><em>space</em></font> ;} ...]</font>
|
|||
|
</dl>
|
|||
|
<p><a name="960927">Defines the gcell grid for a standard cell-based design. Each </a><font size="2" face="'Courier New'" color="#000000">GCELLGRID</font> statement specifies a set of vertical (x) and horizontal (y) lines, or tracks, that define the gcell grid. </p>
|
|||
|
<p><a name="981096">Typically, the </a><font size="2" face="'Courier New'" color="#000000">GCELLGRID</font> is automatically generated by a particular router, and is not manually created by the designer.</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="964795"><font size="2" face="'Courier New'" color="#000000">DO</font></a> <font size="2" face="'Courier New'" color="#000000"><em>numColumns+1</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025912">Specifies the number of columns in the grid. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025913"><font size="2" face="'Courier New'" color="#000000">DO</font></a> <font size="2" face="'Courier New'" color="#000000"><em>numRows+1</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025928">Specifies the number of rows in the grid.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025929"><font size="2" face="'Courier New'" color="#000000">STEP</font></a> <font size="2" face="'Courier New'" color="#000000"><em>space</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025935">Specifies the spacing between tracks.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1025930"><font size="2" face="'Courier New'" color="#000000">X</font></a> <font size="2" face="'Courier New'" color="#000000"><em>start</em></font>, <font size="2" face="'Courier New'" color="#000000">Y</font> <font size="2" face="'Courier New'" color="#000000"><em>start</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1025946">Specify the location of the first vertical (</a><font size="2" face="'Courier New'" color="#000000">x</font>) and first horizontal (<font size="2" face="'Courier New'" color="#000000">y</font>) track. </blockquote>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="966471">GCell Grid Boundary Information</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="964807">The boundary of the gcell grid is the rectangle formed by the extreme vertical and horizontal lines. The gcell grid partitions the routing portion of the design into rectangles, called gcells. The lower left corner of a gcell is the origin. The x size of a gcell is the distance between the upper and lower bounding vertical lines, and the y size is the distance between the upper and lower bounding horizontal lines.</a></p>
|
|||
|
<p><a name="960929">For example, the grid formed by the following two </a><font size="2" face="'Courier New'" color="#000000">GCELLGRID</font> statements creates gcells that are all the same size (100 x 200 in the following):</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="960930">GCELLGRID X 1000 DO 101 STEP 100 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974034">GCELLGRID Y 1000 DO 101 STEP 200 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="960932">A gcell grid in which all gcells are the same size is called a uniform gcell grid. Adding </a><font size="2" face="'Courier New'" color="#000000">GCELLGRID</font> statements can increase the granularity of the grid, and can also result in a nonuniform grid, in which gcells have different sizes. </p>
|
|||
|
<p><a name="960933">For example, adding the following two statements to the above grid generates a nonuniform grid:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="960934">GCELLGRID X 3050 DO 61 STEP 100 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974040">GCELLGRID Y 5100 DO 61 STEP 200 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="960935">When a track segment is contained inside a gcell, the track segment belongs to that gcell. If a track segment is aligned on the boundary of a gcell, that segment belongs to the gcell only if it is aligned on the left or bottom edges of the gcell. Track segments aligned on the top or right edges of a gcell belong to the next gcell. </a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="960937">GCell Grid Restrictions</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="966472">Every track segment must belong to a gcell, so gcell grids have the following restrictions:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="960938"> The x coordinate of the last vertical track must be less than, and not equal to, the x coordinate of the last vertical gcell line. </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="960939">The y coordinate of the last horizontal track must be less than, and not equal to, the y coordinate of the last horizontal gcell line.</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="960940">Gcells grids also have the following restrictions:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="960941">Each </a><font size="2" face="'Courier New'" color="#000000">GCELLGRID</font> statement must define two lines.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="960942">Every gcell need not contain the vertex of a track grid. But, those that do must be at least as large in both directions as the default wire widths on all layers.</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<h3><a name="Groups"></a><a name="960954">Groups</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960957">[GROUPS </a><font size="2" face="'Courier New'" color="#000000"><em>numGroups</em></font> ;<dd>[- <font size="2" face="'Courier New'" color="#000000"><em>groupName</em></font> [<font size="2" face="'Courier New'" color="#000000"><em>compNamePattern </em></font>... ]<dd> [+ REGION <font size="2" face="'Courier New'" color="#000000"><em>regionNam</em></font>]<dd> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...] ...<dd>;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="962553">END GROUPS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="964812">Defines groups in a design. </a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="962571"><font size="2" face="'Courier New'" color="#000000"><em>compNamePattern </em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1031784">Specifies the components that make up the group. Do not assign any component to more than one group. You can specify any of the following:</a></blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1031809">A component name, for example </a><font size="2" face="'Courier New'" color="#000000">C3205</font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1031848">A list of component names separated by spaces, for example, </a><font size="2" face="'Courier New'" color="#000000">I01</font> <font size="2" face="'Courier New'" color="#000000">I02</font> <font size="2" face="'Courier New'" color="#000000">C3204</font> <font size="2" face="'Courier New'" color="#000000">C3205</font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1031867">A pattern for a set of components, for example, </a><font size="2" face="'Courier New'" color="#000000">IO</font>* and <font size="2" face="'Courier New'" color="#000000">C320</font>* <br></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote><a name="1031886"><strong>Note</strong></a>: An empty group with no component names is allowed.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1031798"><font size="2" face="'Courier New'" color="#000000"><em>groupName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026068">Specifies the name for a group of components. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026050"><font size="2" face="'Courier New'" color="#000000"><em>numGroups</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026076">Specifies the number of groups defined in the </a><font size="2" face="'Courier New'" color="#000000">GROUPS</font> section.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="965748"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026090">Specifies a numerical or string value for a group property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="970399"><font size="2" face="'Courier New'" color="#000000">REGION </font></a><font size="2" face="'Courier New'" color="#000000"><em>regionName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026101">Specifies a rectangular region in which the group must lie. </a><font size="2" face="'Courier New'" color="#000000"><em>regionName</em></font> specifies a region previously defined in the <font size="2" face="'Courier New'" color="#000000">REGIONS</font> section. If region restrictions are specified in both <font size="2" face="'Courier New'" color="#000000">COMPONENT</font> and <font size="2" face="'Courier New'" color="#000000">GROUP</font> statements for the same component, the component restriction overrides the group restriction.</blockquote>
|
|||
|
<h3><a name="History"></a><a name="960989">History</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="960991"><font size="2" face="'Courier New'" color="#000000">[HISTORY</font></a> <font size="2" face="'Courier New'" color="#000000"><em>anyText</em></font><font size="2" face="'Courier New'" color="#000000"> ;] ...</font></font>
|
|||
|
</dl>
|
|||
|
<p><a name="964813">Lists a historical record about the design. Each line indicates one record. Any text excluding a semicolon (;) can be included in </a><font size="2" face="'Courier New'" color="#000000"><em>anyText</em></font>. The semicolon terminates the <font size="2" face="'Courier New'" color="#000000">HISTORY</font> statement. <font size="2" face="'Courier New'" color="#000000">Linefeed</font> and <font size="2" face="'Courier New'" color="#000000">Return</font> do not terminate the <font size="2" face="'Courier New'" color="#000000">HISTORY</font> statement. Multiple <font size="2" face="'Courier New'" color="#000000">HISTORY</font> lines can appear in a file.</p>
|
|||
|
<h3><a name="Nets"></a><a name="961007">Nets</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="965287">NETS </a><font size="2" face="'Courier New'" color="#000000"><em>numNets</em></font> ;<dd>[- { <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font> <dd> [ ( {<font size="2" face="'Courier New'" color="#000000"><em>compName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> | PIN <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font>} [+ SYNTHESIZED] ) ] ...<dd> | MUSTJOIN ( <font size="2" face="'Courier New'" color="#000000"><em>compName pinName </em></font>) }<dd> [+ SHIELDNET <font size="2" face="'Courier New'" color="#000000"><em>shieldNetName</em></font> ] ...<dd> [+ VPIN <font size="2" face="'Courier New'" color="#000000"><em>vpinName</em></font> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>] <font size="2" face="'Courier New'" color="#000000"><em>pt pt<dd></em></font> [PLACED <font size="2" face="'Courier New'" color="#000000"><em>pt orient </em></font>| FIXED <font size="2" face="'Courier New'" color="#000000"><em>pt orient </em></font>| COVER <font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font>] ] ...<dd> [+ SUBNET <font size="2" face="'Courier New'" color="#000000"><em>subnetName</em></font> <dd> [ ( {<font size="2" face="'Courier New'" color="#000000"><em>compName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> | PIN <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> | VPIN <font size="2" face="'Courier New'" color="#000000"><em>vpinName</em></font>} ) ] ...<dd> [NONDEFAULTRULE <font size="2" face="'Courier New'" color="#000000"><em>rulename</em></font>]<br> [<font size="2" face="'Courier New'" color="#000000"><em>regularWiring</em></font>] ...] ...<br> [+ XTALK <font size="2" face="'Courier New'" color="#000000"><em>class</em></font>] <br> [+ NONDEFAULTRULE <font size="2" face="'Courier New'" color="#000000"><em>ruleName</em></font>]<br> [<font size="2" face="'Courier New'" color="#000000"><em>regularWiring</em></font>] ...<br> [+ SOURCE {DIST | NETLIST | TEST | TIMING | USER}]<br> [+ FIXEDBUMP]<br> [+ FREQUENCY <font size="2" face="'Courier New'" color="#000000"><em>frequency</em></font>]<br> [+ ORIGINAL <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font>]<br> [+ USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL <br> | TIEOFF}]<br> [+ PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}]<br> [+ ESTCAP <font size="2" face="'Courier New'" color="#000000"><em>wireCapacitance</em></font>]<br> [+ WEIGHT <font size="2" face="'Courier New'" color="#000000"><em>weight</em></font>] <br> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...] ...<br>;] ... </font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="962626">END NETS</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="961012">Defines netlist connectivity and regular-routes for nets containing regular pins. These routes are normally created by a signal router that can rip-up and repair the routing. The </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement defines netlist connectivity and routing for special-routes that are created by "special routers" or "manually" and should not be modified by a signal router. Special routes are normally used for power-routing, fixed clock-mesh routing, high-speed buses, critical analog routes, or flip-chip routing on the top-metal layer to bumps.</p>
|
|||
|
<p><a name="1014730"> </a></p>
|
|||
|
<p><a name="961013">Input arguments for a net can appear in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section or the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> section. In case of conflicting values, the DEF reader uses the last value encountered. <font size="2" face="'Courier New'" color="#000000">NETS</font> and <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statements can appear more than once in a DEF file. If a particular net has mixed wiring or pins, specify the special wiring and pins first.</p>
|
|||
|
<h4><a name="1012542">Arguments</a></h4>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="964849"><font size="2" face="'Courier New'" color="#000000"><em>compName</em></font></a> <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026112">Specifies the name of a regular component pin on a net or a subnet. LEF </a><font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font> pins, if any, are not included; only the master pin (that is, the one without the <font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font> statement) is included. If a subnet includes regular pins, the regular pins must be included in the parent net. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="966659"><font size="2" face="'Courier New'" color="#000000">COVER </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026127">Specifies that the pin has a location and is a part of the cover macro. A </a><font size="2" face="'Courier New'" color="#000000">COVER</font> pin cannot be moved by automatic tools or by interactive commands. You must specify the pin's location and orientation.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026144"><font size="2" face="'Courier New'" color="#000000">ESTCAP</font></a> <font size="2" face="'Courier New'" color="#000000"><em>wireCapacitance</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026163">Specifies the estimated wire capacitance for the net. </a><font size="2" face="'Courier New'" color="#000000">ESTCAP</font> can be loaded with simulation data to generate net constraints for timing-driven layout.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026164"><font size="2" face="'Courier New'" color="#000000">FIXED </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026169">Specifies that the pin has a location and cannot be moved by automatic tools, but can be moved by interactive commands. You must specify the pin's location and orientation. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026196"><font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026214">Indicates that the bump net cannot be reassigned to a different pin. <br>It is legal to have a pin without geometry to indicate a logical connection, and to have a net that connects that pin to two other instance pins that have geometry. Area I/Os have a logical pin that is connected to a bump and an input driver cell. The bump and driver cell have pin geometries (and, therefore, should be routed and extracted), but the logical pin is the external pin name without geometry (typically the Verilog pin name for the chip).<br>Because bump nets are usually routed with special routing, they also can be specified in the </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement. If a net name appears in both the <font size="2" face="'Courier New'" color="#000000">NETS</font> and <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statements, the <font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font> keyword also should appear in both statements. However, the value only exists once within a given application's database for the net name.<br>Because DEF is often used incrementally, the last value read in is used. Therefore, in a typical DEF file, if the same net appears in both statements, the <font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font> keyword (or lack of it) in the <font size="2" face="'Courier New'" color="#000000">NETS</font> statement is the value that is used, because the <font size="2" face="'Courier New'" color="#000000">NETS</font> statement is defined after the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement.<br>For an example specifying the <font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font> keyword, see <a href="#970607" title="4"><font color="Blue"><u>"Fixed Bump"</u></font></a><a href="#970607" title="4"></a>. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="969849"><font size="2" face="'Courier New'" color="#000000">FREQUENCY</font></a> <font size="2" face="'Courier New'" color="#000000"><em>frequency</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="988511">Specifies the frequency of the net, in hertz. The frequency value is used by the router to choose the correct number of via cuts required for a given net, and by validation tools to verify that the AC current density rules are met. For example, a net described with </a><font size="2" face="'Courier New'" color="#000000">+ FREQUENCY 100</font> indicates the net has 100 rising and 100 falling transitions in 1 second.<br><font color="#000000"><em>Type:</em></font> Float </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="966693"><font size="2" face="'Courier New'" color="#000000">LAYER </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026265">Specifies the layer on which the virtual pin lies. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="964866"><font size="2" face="'Courier New'" color="#000000">MUSTJOIN (</font></a><font size="2" face="'Courier New'" color="#000000"><em>compName pinName</em></font><font size="2" face="'Courier New'" color="#000000">)</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026294">Specifies that the net is a mustjoin. If a net is designated </a><font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font>, its name is generated by the system. Only one net should connect to any set of mustjoin pins. Mustjoin pins for macros are defined in LEF. The only reason to specify a <font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font> net in DEF (identified arbitrarily by one of its pins) is to specify prewiring for the <font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font> connection. <br>Otherwise, nets are generated automatically where needed for mustjoin connections specified in the library. If the input file specifies that a mustjoin pin is connected to a net, the DEF reader connects the set of mustjoin pins to the same net. If the input file does not specify connections to any of the mustjoin pins, the DEF reader creates a local <font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font> net. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026295"><font size="2" face="'Courier New'" color="#000000"><em>netName</em></font></a><font size="2" face="'Courier New'" color="#000000"> </font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026303">Specifies the name for the net. Each statement in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section describes a single net. There are two ways of identifying the net: <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font> or <font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font>. If the <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font> is given, a list of pins to connect to the net also can be specified. Each pin is identified by a component name and pin name pair (<font size="2" face="'Courier New'" color="#000000"><em>compName</em></font><font color="#000000"><em> </em></font><font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font>) or as an I/O pin (<font size="2" face="'Courier New'" color="#000000">PIN</font> <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font>). Parentheses ensure readability of output. The keyword <font size="2" face="'Courier New'" color="#000000">MUSTJOIN</font> cannot be used as a <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026312"><font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE</font></a> <font size="2" face="'Courier New'" color="#000000"><em>ruleName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026321">By default the width of any route segment in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> <font color="#000000"><em>regularWiring</em></font> section is defined by the default width (<font size="2" face="'Courier New'" color="#000000">LEF WIDTH</font> statement value for the routing layer). <br><br>This keyword specifies a nondefault rule to use instead of the default rule when creating the net and wiring. When specified with <font size="2" face="'Courier New'" color="#000000">SUBNET</font>, identifies the nondefault rule to use when creating the subnet and its wiring.<br><br>The width of any route segment is defined by the corresponding <font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE WIDTH</font> for that layer.<br><br><font color="#000000"><strong>Wrong-way Width Rules <br></strong></font><br>Some technologies required larger widths for wrong-way routing than in the preferred direction. If the wrong-way width is larger than the default or NDR width, then the wrong-way width is used for wrong-way routes on that layer. The implicit routing extension is still half of the default or NDR width, even for wrong-way routes.<br><br>The following LEF DRC rules allow a <font size="2" face="'Courier New'" color="#000000">WRONGDIRECTION</font> keyword that defines wrong-way widths that will affect the width of any wrong-way routes in the <font size="2" face="'Courier New'" color="#000000">DEF</font> <font size="2" face="'Courier New'" color="#000000">NETS</font> section:<br><br><font size="2" face="'Courier New'" color="#000000">LEF58_WIDTH<br><br>LEF58_WIDTHTABLE<br><br>LEF58_SPANLENGTHTABLE<br></font><br>See the "<a href="#1014137" title="4"><font color="Blue"><u>Impact of Wrong-way Width Rules</u></font></a><a href="#1014137" title="4"> </a>" section for examples and more details.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026331"><font size="2" face="'Courier New'" color="#000000"><em>numNets</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026338">Specifies the number of nets defined in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026347"><font size="2" face="'Courier New'" color="#000000">ORIGINAL</font></a> <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026363">Specifies the original net partitioned to create multiple nets, including the net being defined. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026373"><font size="2" face="'Courier New'" color="#000000">PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026382">Specifies the routing pattern used for the net. <br></a><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">STEINER</font> <br><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="967724"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="156">
|
|||
|
<p><a name="967726"><font size="2" face="'Courier New'" color="#000000">BALANCED</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="300">
|
|||
|
<p><a name="967728">Used to minimize skews in timing delays for clock nets.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967730"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967732"><font size="2" face="'Courier New'" color="#000000">STEINER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967734">Used to minimize net length.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967736"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967738"><font size="2" face="'Courier New'" color="#000000">TRUNK</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967740">Used to minimize delay for global nets.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967742"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967744"><font size="2" face="'Courier New'" color="#000000">WIREDLOGIC</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967746">Used in ECL designs to connect output and mustjoin pins before routing to the remaining pins.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="967717"><font size="2" face="'Courier New'" color="#000000">PIN</font></a> <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026401">Specifies the name of an I/O pin on a net or a subnet. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026414"><font size="2" face="'Courier New'" color="#000000">PLACED</font></a> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>orient</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026421">Specifies that the pin has a location, but can be moved during automatic layout. You must specify the pin's location and orientation. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026430"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026439">Specifies a numerical or string value for a net property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026448"><font size="2" face="'Courier New'" color="#000000"><em>regularWiring</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026455">Specifies the regular physical wiring for the net or subnet. For regular wiring syntax, see </a><a href="#RegularWiringStatement" title="4"><font color="Blue"><u>"Regular Wiring Statement"</u></font></a><a href="#RegularWiringStatement" title="4"></a>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026464"><font size="2" face="'Courier New'" color="#000000">SHIELDNET</font></a><font size="2" face="'Courier New'" color="#000000"><em> shieldNetName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026473">Specifies the name of a special net that shields the regular net being defined. A shield net for a regular net is defined earlier in the DEF file in the </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> section. </blockquote>
|
|||
|
<p align="left"><a name="964947"><img src="images/DEFSyntax.07.1.12.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="967749"><font size="2" face="'Courier New'" color="#000000">SOURCE {DIST | NETLIST | TEST | TIMING | USER}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026486">Specifies the source of the net. The value of this field is preserved when input to the DEF reader.<br></a><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="965020"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="100">
|
|||
|
<p><a name="965022"><font size="2" face="'Courier New'" color="#000000">DIST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="356">
|
|||
|
<p><a name="965024">Net is the result of adding physical components (that is, components that only connect to power or ground nets), such as filler cells, well-taps, tie-high and tie-low cells, and decoupling caps.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967796"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967798"><font size="2" face="'Courier New'" color="#000000">NETLIST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967800">Net is defined in the original netlist. This is the default value, and is not normally written out in the DEF file. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965026"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965028"><font size="2" face="'Courier New'" color="#000000">TEST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967835">Net is part of a scanchain. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965032"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965034"><font size="2" face="'Courier New'" color="#000000">TIMING</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965036">Net represents a logical rather than physical change to netlist, and is used typically as a buffer for a clock-tree, or to improve timing on long nets.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965038"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965040"><font size="2" face="'Courier New'" color="#000000">USER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965042">Net is user defined. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="980984"><font size="2" face="'Courier New'" color="#000000">SUBNET</font></a> <font size="2" face="'Courier New'" color="#000000"><em>subnetName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026538">Names and defines a subnet of the regular net </a><font size="2" face="'Courier New'" color="#000000"><em>netName</em></font>. A subnet must have at least two pins. The subnet pins can be virtual pins, regular pins, or a combination of virtual and regular pins. A subnet pin cannot be a mustjoin pin.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026539"><font size="2" face="'Courier New'" color="#000000">SYNTHESIZED</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026544">Used by some tools to indicate that the pin is part of a synthesized scan chain.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026553"><font size="2" face="'Courier New'" color="#000000">USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026562">Specifies how the net is used. <br>Value: Specify one of the following: </a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="201">
|
|||
|
<p><a name="967460"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="103">
|
|||
|
<p><a name="967462"><font size="2" face="'Courier New'" color="#000000">ANALOG</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="344">
|
|||
|
<p><a name="967464">Used as an analog signal net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967466"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967468"><font size="2" face="'Courier New'" color="#000000">CLOCK</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967470">Used as a clock net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967472"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967474"><font size="2" face="'Courier New'" color="#000000">GROUND</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967476">Used as a ground net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967478"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967480"><font size="2" face="'Courier New'" color="#000000">POWER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967482">Used as a power net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967484"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967486"><font size="2" face="'Courier New'" color="#000000">RESET</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967488">Used as a reset net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967490"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967492"><font size="2" face="'Courier New'" color="#000000">SCAN</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967494">Used as a scan net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967496"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967498"><font size="2" face="'Courier New'" color="#000000">SIGNAL</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967500">Used as a digital signal net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967502"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967504"><font size="2" face="'Courier New'" color="#000000">TIEOFF</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="967506">Used as a tie-high or tie-low net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="980991"><font size="2" face="'Courier New'" color="#000000">VPIN</font></a> <font size="2" face="'Courier New'" color="#000000"><em>vpinName pt pt</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026573">Specifies the name of a virtual pin, and its physical geometry. Virtual pins can be used only in subnets. A </a><font size="2" face="'Courier New'" color="#000000">SUBNET</font> statement refers to virtual pins by the <font size="2" face="'Courier New'" color="#000000"><em>vpinName</em></font> specified here. You must define each virtual pin in a <font size="2" face="'Courier New'" color="#000000">+ VPIN</font> statement before you can list it in a <font size="2" face="'Courier New'" color="#000000">SUBNET</font> statement.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-10 </strong></font></strong>
|
|||
|
<strong><a name="980992"> Virtual Pin</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="981002">The following example defines a virtual pin:</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980993">+ VPIN M7K.v2 LAYER MET2 ( -10 -10 ) ( 10 10 ) FIXED ( 10 10 ) </a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980994">+ SUBNET M7K.2 ( VPIN M7K.v2 ) ( /PREG_CTRL/I$73/A I )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980995"> NONDEFAULTRULE rule1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980996"> ROUTED MET2 ( 27060 341440 ) ( 26880 * ) ( * 213280 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980997"> M1M2 ( 95040 * ) ( * 217600 ) ( 95280 * )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980998"> NEW MET1 ( 1920 124960 ) ( 87840 * )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1006552"> COVER MET2 ( 27060 341440 ) ( 26880 * )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1006554"><font size="2" face="'Courier New'" color="#000000">WEIGHT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>weight</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026586">Specifies the weight of the net. Automatic layout tools attempt to shorten the lengths of nets with high weights. A value of </a><font size="2" face="'Courier New'" color="#000000">0</font> indicates that the net length for that net can be ignored. The default value of <font size="2" face="'Courier New'" color="#000000">1</font> specifies that the net should be treated normally. A larger weight specifies that the tool should try harder to minimize the net length of that net. <br>For normal use, timing constraints are generally a better method to use for controlling net length than net weights. For the best results, you should typically limit the maximum weight to 10, and not add weights to more than 3 percent of the nets.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">1</font> <br><font color="#000000"><em>Type:</em></font> Integer </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026608"><font size="2" face="'Courier New'" color="#000000">XTALK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>class</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026615">Specifies the crosstalk class number for the net. If you specify the default value (</a><font size="2" face="'Courier New'" color="#000000">0</font>), <font size="2" face="'Courier New'" color="#000000">XTALK</font> will not be written to the DEF file.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font> <br><font color="#000000"><em>Type:</em></font><font size="2" face="'Courier New'" color="#000000"> </font>Integer<br><font color="#000000"><em>Value:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font> to <font size="2" face="'Courier New'" color="#000000">200 </font></blockquote>
|
|||
|
<h4><a name="RegularWiringStatement"></a><a name="961149">Regular Wiring Statement</a></h4>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="967963">{+ COVER | + FIXED | + ROUTED | + NOSHIELD}</a><em> <dd></em><font size="2" face="'Courier New'" color="#000000"><em>layerName </em></font>[TAPER | TAPERRULE <font size="2" face="'Courier New'" color="#000000"><em>ruleName</em></font>]<font size="2" face="'Courier New'" color="#000000"> [STYLE </font><font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font><font size="2" face="'Courier New'" color="#000000">] <dd> </font><font size="2" face="'Courier New'" color="#000000"><em>routingPoints<dd></em></font>[NEW <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> [TAPER | TAPERRULE <font size="2" face="'Courier New'" color="#000000"><em>ruleName</em></font>] [STYLE <font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font>] <dd> <font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font> <dd>] ...</font>
|
|||
|
</dl>
|
|||
|
<p><a name="967964">Specifies regular wiring for the net. </a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="967965"><font size="2" face="'Courier New'" color="#000000">COVER </font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026626">Specifies that the wiring cannot be moved by either automatic layout or interactive commands. If no wiring is specified for a particular net, the net is unrouted. If you specify </a><font size="2" face="'Courier New'" color="#000000">COVER</font>, you must also specify <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026639"><font size="2" face="'Courier New'" color="#000000">FIXED</font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026646">Specifies that the wiring cannot be moved by automatic layout, but can be changed by interactive commands. If no wiring is specified for a particular net, the net is unrouted. If you specify </a><font size="2" face="'Courier New'" color="#000000">FIXED</font>, you must also specify <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026655"><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026662">Specifies the layer on which the wire lies. You must specify </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> if you specify <font size="2" face="'Courier New'" color="#000000">COVER</font>, <font size="2" face="'Courier New'" color="#000000">FIXED</font>, <font size="2" face="'Courier New'" color="#000000">ROUTED</font>, or <font size="2" face="'Courier New'" color="#000000">NEW</font>. Specified layers must be routable; reference to a cut layer generates an error.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026671"><font size="2" face="'Courier New'" color="#000000">NEW</font></a> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026678">Indicates a new wire segment (that is, there is no wire segment between the last specified coordinate and the next coordinate), and specifies the name of the layer on which the new wire lies. Noncontinuous paths can be defined in this manner.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026687"><font size="2" face="'Courier New'" color="#000000">NOSHIELD</font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026694">Specifies that the last wide segment of the net is not shielded. If the last segment is not shielded, and is tapered, specify </a><font size="2" face="'Courier New'" color="#000000">TAPER</font> under the <font size="2" face="'Courier New'" color="#000000">LAYER</font> argument, instead of <font size="2" face="'Courier New'" color="#000000">NOSHIELD</font>. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026703"><font size="2" face="'Courier New'" color="#000000">ROUTED</font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026710">Specifies that the wiring can be moved by the automatic layout tools. If no wiring is specified for a particular net, the net is unrouted. If you specify </a><font size="2" face="'Courier New'" color="#000000">ROUTED</font>, you must also specify <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. An example of <font size="2" face="'Courier New'" color="#000000">DEF NETS</font> routing is shown in <a href="#1014175" title="4"><font color="Blue"><u>DEF NETS Examples</u></font></a><a href="#1014175" title="4"></a>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026719"><font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026765">Defines the center line coordinates of the route on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. For information about using routing points, see <a href="#1010761" title="4"><font color="Blue"><u>"Defining Routing Points"</u></font></a><a href="#1010761" title="4"></a>. <br><br>As described above, the width of the routes is defined by the default width (e.g., <font size="2" face="'Courier New'" color="#000000">LEF</font> <font size="2" face="'Courier New'" color="#000000">WIDTH</font> statement on the routing layer) or a <font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE</font> width for the routing layer. In addition, some technologies require larger widths for wrong-way routes that may increase the width. See the "<a href="#1014137" title="4"><font color="Blue"><u>Impact of Wrong-way Width Rules</u></font></a><a href="#1014137" title="4"> </a>" section for more details. <br>The <font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font> syntax is defined as follows:<br><font size="2" face="'Courier New'" color="#000000">{ (</font> <font size="2" face="'Courier New'" color="#000000"><em>x y</em></font> <font size="2" face="'Courier New'" color="#000000">[</font><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font><font size="2" face="'Courier New'" color="#000000">] ) <br> {[MASK </font><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font><font size="2" face="'Courier New'" color="#000000">] ( </font><font size="2" face="'Courier New'" color="#000000"><em>x y </em></font><font size="2" face="'Courier New'" color="#000000">[</font><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font><font size="2" face="'Courier New'" color="#000000">] )<br> |[MASK </font><font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font><font size="2" face="'Courier New'" color="#000000">] </font><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font><font size="2" face="'Courier New'" color="#000000"> [</font><font size="2" face="'Courier New'" color="#000000"><em>orient</em></font><font size="2" face="'Courier New'" color="#000000">]<br> |[MASK </font><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font><font size="2" face="'Courier New'" color="#000000">] RECT ( </font><font size="2" face="'Courier New'" color="#000000"><em>deltax1</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>deltay1</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>deltax2</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>deltay2</em></font><font size="2" face="'Courier New'" color="#000000"> ) <br> | VIRTUAL ( </font><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000"> ) } } ...</font></blockquote>
|
|||
|
<p align="left"><a name="979844"><font size="2" face="'Courier New'" color="#000000"> </font></a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="650">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="195">
|
|||
|
<p><a name="1006438"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="126">
|
|||
|
<p><a name="1006440"><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="328">
|
|||
|
<p><a name="1006442">Specifies the amount by which the wire is extended past the endpoint of the segment. The extension value must be greater than or equal to </a><font size="2" face="'Courier New'" color="#000000">0</font> (zero). <br><font color="#000000"><em>Default:</em></font> Half the wire width<br><font color="#000000"><em>Type:</em></font> Integer, specified in database units</p>
|
|||
|
<p><a name="1006443">Some tools only allow </a><font size="2" face="'Courier New'" color="#000000">0</font> or the <font size="2" face="'Courier New'" color="#000000">WIREEXTENSION</font> value from the <font size="2" face="'Courier New'" color="#000000">LAYER</font> or <font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE</font> statement.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006445"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="1006447"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006451"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006453"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006455">Specifies which mask for double or triple patterning lithography to use for the next wire or </a><font size="2" face="'Courier New'" color="#000000">RECT</font>. The <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer - most applications support values of 1, 2, or 3 only. Shapes without any defined mask have no mask set (that is, they are uncolored).</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006457"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="1006459"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006463"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006465"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006467">Specifies which mask for double or triple patterning lithography is to be applied to the next via's shapes on each layer. </a></p>
|
|||
|
<p><a name="1006468">The </a><font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font> variable is a hex-encoded three-digit value of the form: </p>
|
|||
|
<p><a name="1006469"><font color="#000000"><</font></a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font><font color="#000000">></font></p>
|
|||
|
<p><a name="1006470">For example, MASK 113 means that the top metal and cut layer </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 1, and the bottom metal layer <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 3. A value of 0 means that the shape on the layer has no mask assignment (is uncolored), so 013 means the top layer is uncolored. If either the first or second digit is missing, they are assumed to be 0, so 013 and 13 mean the same thing. Most applications support <font size="2" face="'Courier New'" color="#000000"><em>maskNums</em></font> of 0, 1, 2, or 3 only for double or triple patterning.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006472"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006474"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006476">The </a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> variables specify which mask the corresponding metal shape belongs to. The via-master metal mask values have no effect. </p>
|
|||
|
<p><a name="1006477">For the cut layer, the </a><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> variable defines the mask for the bottom-most, and then the left-most cut. For multi-cut vias, the via-instance cut masks are derived from the via-master cut mask values. The via-master must have a mask defined for all the cut shapes and every via-master cut mask is "shifted" (from 1 to 2, and 2 to 1 for two mask layers, and from 1 to 2, 2 to 3, and 3 to1 for three mask layers), so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> value. </p>
|
|||
|
<p><a name="1014876">Similarly, for the metal layer, the </a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> would define the mask for the bottom-most, then leftmost metal shape. For multiple disjoint metal shapes, the via-instance metal masks are derived from the via-master metal mask values. The via-master must have a mask defined for all of the metal shapes, and every via-master metal mask is "shifted" (1->2, 2->1 for two mask layers, 1->2, 2->3, 3->1 for three mask layers) so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> value. </p>
|
|||
|
<p><a name="1006481">See </a><a href="#998673" title="4"><font color="Blue"><u>Example 4-11</u></font></a><a href="#998673" title="4"></a>. </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006483"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006485"><font size="2" face="'Courier New'" color="#000000"><em>orient</em></font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006487">Specifies the orientation of the </a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> that precedes it, using the standard DEF orientation values of <font size="2" face="'Courier New'" color="#000000">N</font>, <font size="2" face="'Courier New'" color="#000000">S</font>, <font size="2" face="'Courier New'" color="#000000">E</font>, <font size="2" face="'Courier New'" color="#000000">W</font>, <font size="2" face="'Courier New'" color="#000000">FN</font>, <font size="2" face="'Courier New'" color="#000000">FS</font>, <font size="2" face="'Courier New'" color="#000000">FE</font>, and <font size="2" face="'Courier New'" color="#000000">FW</font> (See <a href="#SpecifyingOrientation" title="4"><font color="Blue"><u>"Specifying Orientation"</u></font></a><a href="#SpecifyingOrientation" title="4"> </a>). </p>
|
|||
|
<p><a name="1006491">If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>orient</em></font>, <font size="2" face="'Courier New'" color="#000000">N</font> (North) is the default non-rotated value used. All other orientation values refer to the flipping or rotation around the via origin (the <font size="2" face="'Courier New'" color="#000000">0,0</font> point in the via shapes). The via origin is still placed at the <font size="2" face="'Courier New'" color="#000000">(</font><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000">)</font> value given in the routing statement just before the <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font>. </p>
|
|||
|
<p><font color="#000000"><strong>Note: </strong></font><a name="1006492">Some tools do not support orientation of vias inside their internal data structures; therefore, they are likely to translate vias with an orientation into a different but equivalent via that does not require an orientation.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006494"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="1006496"><font size="2" face="'Courier New'" color="#000000">RECT</font></a> ( <font size="2" face="'Courier New'" color="#000000"><em>deltax1</em></font> <font size="2" face="'Courier New'" color="#000000"><em>deltay1</em></font> <font size="2" face="'Courier New'" color="#000000"><em>deltax2</em></font> <font size="2" face="'Courier New'" color="#000000"><em>deltay2</em></font> )</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006500"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006502"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006504">Indicates that a rectangle is created from the previous ( </a><font size="2" face="'Courier New'" color="#000000"><em>x y</em></font> ) routing point using the delta values. The <font size="2" face="'Courier New'" color="#000000">RECT</font> values leave the current point and layer unchanged.</p>
|
|||
|
<p><a name="1006508">See </a><a href="#998894" title="4"><font color="Blue"><u>Example 4-12</u></font></a><a href="#998894" title="4"></a>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006510"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006512"><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006514">Specifies a via to place at the last point. If you specify a via, </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> for the next routing coordinates (if any) is implicitly changed to the other routing layer for the via. For example, if the current layer is <font color="#000000"><em>metal1</em></font>, a <font color="#000000"><em>via12</em></font> changes the layer to <font color="#000000"><em>metal2</em></font> for the next routing coordinates.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006516"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006518"><font size="2" face="'Courier New'" color="#000000">VIRTUAL</font></a> ( <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> )</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006520"> </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006522"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006524"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006526">Indicates that there is a virtual (non-physical zero-width) connection between the previous point and the new ( </a><font size="2" face="'Courier New'" color="#000000"><em>x y</em></font> ) point. An '<font size="2" face="'Courier New'" color="#000000">*'</font> indicates that the <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value is to be used from the previous point. The layer remains unchanged. </p>
|
|||
|
<p><a name="1006527">You can use this keyword to retain the symbolic routing graph.</a></p>
|
|||
|
<p><a name="1006531">See </a><a href="#998894" title="4"><font color="Blue"><u>Example 4-12</u></font></a><a href="#998894" title="4"></a>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006533"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006535"><font size="2" face="'Courier New'" color="#000000">( </font></a><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000"> )</font> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1006537">Specifies the route coordinates. You cannot specify a route with zero length.</a></p>
|
|||
|
<p><a name="1006540">For more information, see </a><a href="#961179" title="4"><font color="Blue"><u>"Specifying Coordinates"</u></font></a><a href="#961179" title="4"></a>. <br><font color="#000000"><em>Type:</em></font> Integer, specified in database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="979877"><font size="2" face="'Courier New'" color="#000000">STYLE </font></a><font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026833">Specifies a previously defined style from the </a><font size="2" face="'Courier New'" color="#000000">STYLES</font> section in this DEF file. If a style is specified, the wire's shape is defined by the center line coordinates and the style. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026834"><font size="2" face="'Courier New'" color="#000000">TAPER</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026839">Specifies that the next contiguous wire segment on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> is created using the default rule.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026848"><font size="2" face="'Courier New'" color="#000000">TAPERRULE</font></a> <font size="2" face="'Courier New'" color="#000000"><em>ruleName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026864">Specifies that the next contiguous wire segment on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> is created using the specified nondefault rule.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-11 </strong></font></strong>
|
|||
|
<strong><a name="998673">Multi-mask Patterns for Routing Points</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="998796">The following example shows a routing statement that specifies three-mask layers </a><font size="2" face="'Courier New'" color="#000000">M1</font> and <font size="2" face="'Courier New'" color="#000000">VIA1</font>, and a two-mask layer <font size="2" face="'Courier New'" color="#000000">M2</font>:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="998798"> + ROUTED M1 (10 0 ) MASK 3 (10 20 ) VIA1_1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="998799"> NEW M2 ( 10 10 ) (20 10) MASK 1 ( 20 20 ) MASK 031 VIA1_2 ;</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="998800">This indicates that the:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="998802"><font size="2" face="'Courier New'" color="#000000">M1</font></a> wire shape (10 0) to (10 20) belongs to mask 3</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1006845"><font size="2" face="'Courier New'" color="#000000">VIA1_1</font></a> via has no preceding <font size="2" face="'Courier New'" color="#000000">MASK</font> statement so all the metal and cut shapes have no mask and are uncolored</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1006846">first </a><font size="2" face="'Courier New'" color="#000000">NEW M2</font> wire shape (10 10) to (20 10) has no mask set and is uncolored</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1006847">second </a><font size="2" face="'Courier New'" color="#000000">M2</font> wire shape (20 10) to (20 20) is on mask 1</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1006837"><font size="2" face="'Courier New'" color="#000000">VIA1_2</font></a> via has a MASK 031 (it can be MASK 31 also) so:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="998807"><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font></a> is 0 in the 031 value, so no mask is set for the top metal (<font size="2" face="'Courier New'" color="#000000">M2</font>) shape</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="998808"><font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font></a> is 1 in the 031 value, so mask 1 is used for the bottom metal (<font size="2" face="'Courier New'" color="#000000">M1</font>) shape </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="998809"><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font></a> is 3 in the 031 value, so the bottom-most, and then the left-most cut of the via-instance is mask 3. The mask for the other cuts of the via-instance are derived from the via-master by "shifting" the via-master's cut masks to match. So if the via-master's bottom-left cut is mask 1, then the via-master cuts on mask 1 become mask 3 for the via-instance, and similarly cuts on 2 shift to 1, and cuts on 3 shift to 2, as shown in <a href="#999090" title="4"><font color="Blue"><u>Figure 4-4</u></font></a><a href="#999090" title="4"></a>.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-4 </strong></font></strong>
|
|||
|
<strong><a name="999090">Via-master multi-mask patterns</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="998892"><img src="images/DEFSyntax.07.1.13.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-12 </strong></font></strong>
|
|||
|
<strong><a name="998894">Routing Points - Usage of Virtual and Rect</a></strong>
|
|||
|
</p>
|
|||
|
<p><a href="#998968" title="4" name="998991"><font color="Blue"><u>Figure 4-5</u></font></a><a href="#998968" title="4"></a> shows the results of the following routing statement:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="998983">+ ROUTED M1 ( 0 0 ) ( 5 0 ) VIRTUAL ( 7 1 ) RECT ( -3 0 -1 2 ) ( 7 7 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-5 </strong></font></strong>
|
|||
|
<strong><a name="998968">Routing Points - Usage of Virtual and Rect</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1012665"><img src="images/DEFSyntax.07.1.14.png" alt=""><br></a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="1010761">Defining Routing Points</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="980063">Routing points define the center line coordinates of the route for a specified layer. Routes that are 90 degrees, have a width defined by the routing rule for this wire, and extend from one coordinate (</a><font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>) to the next coordinate. </p>
|
|||
|
<p><a name="980074">If either endpoint has an extension value (</a><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font>), the wire is extended by that amount past the endpoint. Some applications require the extension value to be <font size="2" face="'Courier New'" color="#000000">0</font>, half of the wire width, or the same as the routing rule wire extension value. If you do not specify an extension value, the default value of half of the wire width is used.</p>
|
|||
|
<p><a name="980091">If a coordinate with an extension value is specified after a via, the wire extension is added to the beginning of the next wire segment after the via (zero-length wires are not allowed). </a></p>
|
|||
|
<p><a name="980097">If the wire segment is a 45-degree edge, and no </a><font size="2" face="'Courier New'" color="#000000">STYLE</font> is specified, the default octagon style is used for the endpoints. The routing rule width must be an even multiple of the manufacturing grid in order to keep all of the coordinates of the resulting outer wire boundary on the manufacturing grid. </p>
|
|||
|
<p><a name="980098">If a </a><font size="2" face="'Courier New'" color="#000000">STYLE</font> is defined for 90-degree or 45-degree routes, the routing shape is defined by the center line coordinates and the style. No corrections, such as snapping to manufacturing grid, can be applied, and any extension values are ignored. The DEF file should contain values that are already snapped, if appropriate. The routing rule width indicates the desired user width, and represents the minimum allowed width of the wire that results from the style when the 45-degree edges are properly snapped to the manufacturing grid. </p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="961179">Specifying Coordinates </a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="968039">To maximize compactness of the design files, the coordinates allow for the asterisk ( * ) convention. Here, (</a><font color="#000000"><em> </em></font><font size="2" face="'Courier New'" color="#000000"><em>x *</em></font> ) indicates that the y coordinate last specified in the wiring specification is used; ( <font size="2" face="'Courier New'" color="#000000"><em>* y</em></font> ) indicates that the x coordinate last specified is used. Use<br> ( <font size="2" face="'Courier New'" color="#000000"><em>* * extValue</em></font> ) to specify a wire extension at a via.<br><img src="images/DEFSyntax.07.1.15.png" alt=""><br></p>
|
|||
|
<p><a name="961219">Each coordinate sequence defines a connected orthogonal path through the points. The first coordinate in a sequence must not have an * element.</a></p>
|
|||
|
<p><a name="961221">Because nonorthogonal segments are not allowed, subsequent points in a connected sequence must create orthogonal paths. For example, the following sequence is a valid path:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961222">( 100 200 ) ( 200 200 ) ( 200 500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="961223">The following sequence is an equivalent path:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961224">( 100 200 ) ( 200 * ) ( * 500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="961225">The following sequence is not valid because it represents a nonorthogonal segment.</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961226">( 100 200 ) ( 300 500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014118"> </a></font>
|
|||
|
</blockquote>
|
|||
|
<h4><a name="1014137">Impact of Wrong-way Width Rules</a></h4>
|
|||
|
<p><a name="1014138">Some technologies require larger widths for wrong-way routing than in the preferred direction. If the wrong-way width is larger than the default or NDR width, then the wrong-way width is used for wrong-way routes on that layer. The implicit routing extension is still half of the default or NDR width, even for wrong-way routes.</a></p>
|
|||
|
<p><a name="1014139">Some older tools may not understand this behavior. Normally, they will still read/write and round-trip the DEF routing properly, but they may not understand that the width is slightly larger for wrong-way routes. If these tools check wrong-way width, then the DRC rules may flag false violations. RC extraction that does not understand the wrong-way width will also be incorrect, although wrong-way routes are generally short and the width difference is small, so the RC error is normally negligible.</a></p>
|
|||
|
<p><a name="1014140">The following LEF DRC rules allow a </a><font size="2" face="'Courier New'" color="#000000">WRONGDIRECTION</font> keyword that defines wrong-way widths that will affect the width of any wrong-way routes in the <font size="2" face="'Courier New'" color="#000000">DEF</font> <font size="2" face="'Courier New'" color="#000000">NETS</font> section:</p>
|
|||
|
<p align="left"><a name="1014156"> </a></p>
|
|||
|
<table summary="" cellpadding="4" cellspacing="0" bgcolor="#FFFFFF" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top" >
|
|||
|
<p><a name="1014143"><font size="2" face="'Courier New'" color="#000000">LEF58_WIDTH</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top" >
|
|||
|
<p><a name="1014145">Defines the default routing width to use for all regular wiring</a></p>
|
|||
|
<p><a name="1014146">on the layer.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014148"><font size="2" face="'Courier New'" color="#000000">LEF58_WIDTHTABLE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014150">Defines all the allowable legal widths on the routing layer.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014152"><font size="2" face="'Courier New'" color="#000000">LEF58_SPANLENGTHTABLE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014154">Defines all the allowable legal span lengths on the routing</a></p>
|
|||
|
<p><a name="1014155">layer.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p><a name="1014157">These width rules are mutually exclusive, so only one of the 3 rules is allowed on one routing layer.</a></p>
|
|||
|
<p><a name="1014158">The full syntax for </a><font size="2" face="'Courier New'" color="#000000">WIDTHTABLE</font> and <font size="2" face="'Courier New'" color="#000000">SPANLENGTHTABLE</font> have an optional <font size="2" face="'Courier New'" color="#000000">ORTHOGONAL</font> keyword or <font size="2" face="'Courier New'" color="#000000">ORTHOGONAL</font> keyword with a value. The <font size="2" face="'Courier New'" color="#000000">ORTHOGONAL</font> keyword and any value after it can be ignored, and has no effect on <font size="2" face="'Courier New'" color="#000000">DEF</font> <font size="2" face="'Courier New'" color="#000000">NETS</font> routing interpretation.</p>
|
|||
|
<p><a name="1014159">The full syntax for these rules is:</a></p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014160">WIDTH </a><font size="2" face="'Courier New'" color="#000000"><em>defaultWidth</em></font> ;</font>
|
|||
|
</dl>
|
|||
|
<p><a name="1014161">Along with:</a></p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014162">PROPERTY LEF58_WIDTH</a></font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014163"> "WIDTH </a><font size="2" face="'Courier New'" color="#000000"><em>minWidth</em></font> [WRONGDIRECTION] ;" ;</font>
|
|||
|
</dl>
|
|||
|
<p><a name="1014164">Or</a></p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014165">PROPERTY LEF58_SPANLENGTHTABLE</a></font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014166">"SPANLENGTHTABLE {</a><font size="2" face="'Courier New'" color="#000000"><em>spanLength</em></font>} ... [WRONGDIRECTION]</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014167"> [ORTHOGONAL </a><font size="2" face="'Courier New'" color="#000000"><em>length</em></font>]</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014168">; " ;</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="1014169">Or</a></p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014170">PROPERTY LEF58_WIDTHTABLE</a></font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014171"> "WIDTHTABLE {</a><font size="2" face="'Courier New'" color="#000000"><em>width</em></font>}...[WRONGDIRECTION] [ORTHOGONAL]</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1014650"> ];" ;</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="1014652">For more information on LEF width rules, see </a><font color="#0000ff"><u>Layer(Routing)</u></font> section in the "LEF Syntax" chapter in the LEF/DEF Language Reference.</p>
|
|||
|
<h4><a name="1014175">DEF NETS Examples</a></h4>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-13 </strong></font></strong>
|
|||
|
<strong><a name="1014176">Impact of default and nondefault rules on wrong-way segment</a></strong>
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1014177">This following example shows how LEF width rules will affect the width of any wrong-way routes in the </a><font size="2" face="'Courier New'" color="#000000">DEF</font> <font size="2" face="'Courier New'" color="#000000">NETS</font> section. An example of each type of rule (<font size="2" face="'Courier New'" color="#000000">WIDTH</font>, <font size="2" face="'Courier New'" color="#000000">WIDTHTABLE</font>, and <font size="2" face="'Courier New'" color="#000000">SPANLENGTHTABLE</font>) is shown below for <font size="2" face="'Courier New'" color="#000000">METAL2</font>:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014178">LAYER METAL2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014179"> ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014180"> DIRECTION VERTICAL ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014181"> #0.6 is the default routing rule width in the vertical direction</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014182"> WIDTH 0.06 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014183"> #wrong direction (horizontal) metal width must be >= 0.12</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014184"> PROPERTY LEF58_WIDTH</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014185"> "WIDTH 0.12 WRONGDIRECTION ; " ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014186">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014187">END METAL2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1014188">or</a></blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014189">LAYER METAL2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014190"> ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014191"> DIRECTION VERTICAL ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014192"> #0.06 is the default routing rule width in the vertical direction</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014193"> WIDTH 0.06 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014194"> #wrong direction (horizontal) metal width must be 0.12, 0.16 or >= 0.20</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014195"> PROPERTY LEF58_WIDTHTABLE</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014196"> "WIDTHTABLE 0.06 0.08 0.12 0.16 0.20 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014197"> WIDTHTABLE 0.12 0.16 0.20 WRONGDIRECTION ; " ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014198">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014199">END METAL2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1014200">or</a></blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014201">LAYER METAL2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014202"> ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014203"> DIRECTION VERTICAL ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014204"> #0.06 is the default routing rule width in the vertical direction</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014205"> WIDTH 0.06 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014206"> #wrong direction (horizontal) metal width must be 0.12, 0.16 or >= 0.20</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014207"> PROPERTY LEF58_SPANLENGTHTABLE</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014208"> "SPANLENGTHTABLE 0.06 0.08 0.12 0.16 0.20 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014209"> SPANLENGTHTABLE 0.12 0.16 0.20 WRONGDIRECTION ; " ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014210">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014211">END METAL2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1014212">For the above rules, any </a><font size="2" face="'Courier New'" color="#000000">METAL2</font> vertical routes are in the preferred direction so they will have the normal widths and extensions as given by the default rule width, or the <font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE</font> width definition. The horizontal routes are in the wrong-direction, so they will use the first <font size="2" face="'Courier New'" color="#000000">WRONGDIRECTION</font> value in the rules above, that is greater than or equal to the preferred-direction width.</blockquote>
|
|||
|
<blockquote><a name="1014213">If the rule width is larger than the largest wrong-direction value, then the wrong-direction width is the same as the rule width as shown for </a><font size="2" face="'Courier New'" color="#000000">NDR7</font> below.</blockquote>
|
|||
|
<blockquote><a name="1014214">The table below shows examples of different routing rule widths and the corresponding vertical and horizontal route widths and extensions for the WIDTHTABLE and </a><font size="2" face="'Courier New'" color="#000000">SPANLENGTHTABLE</font> rules shown above. They both have 0.12, 0.16, and 0.20 as the legal <font size="2" face="'Courier New'" color="#000000">WRONGDIRECTION</font> width values.</blockquote>
|
|||
|
<p align="left"><a name="1014324"> </a></p>
|
|||
|
<table summary="" cellpadding="4" cellspacing="0" bgcolor="#FFFFFF" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="middle" >
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1014217">Rule</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="middle" >
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1014219">Rule width</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="middle" >
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1014221">Vertical Route Width</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="middle" >
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1014223">Vertical Route Extension</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="middle" >
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1014225">Horizontal Route Width</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="middle" >
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="1014227">Horizontal Route Extension</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1014229"><font color="#000000">default</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1014231">0.06</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1014233">0.06</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1014235">0.03</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1014237">0.12</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1014239">0.03</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014241"><font color="#000000">NDR1</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014243">0.08</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014245">0.08</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014247">0.04</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014249">0.12</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014251">0.04</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014253"><font color="#000000">NDR2</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014255">0.12</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014257">0.12</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014259">0.06</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014261">0.12</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014263">0.06</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014265"><font color="#000000">NDR3</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014267">0.14</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014269">0.14</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014271">0.07</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014273">0.16</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014275">0.07</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014277"><font color="#000000">NDR4</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014279">0.16</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014281">0.16</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014283">0.08</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014285">0.16</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014287">0.08</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014289"><font color="#000000">NDR5</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014291">0.18</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014293">0.18</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014295">0.09</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014297">0.20</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014299">0.09</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014301"><font color="#000000">NDR6</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014303">0.20</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014305">0.20</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014307">0.10</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014309">0.20</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014311">0.10</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014313"><font color="#000000">NDR7</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014315">0.30</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014317">0.30</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014319">0.15</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014321">0.30</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="0" valign="top">
|
|||
|
<p><a name="1014323">0.15</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<blockquote><a name="1014325">For example, the default rule in the table shows that a vertical route in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section will have a width of 0.06 <font face="symbol" color="#000000">μ</font>m with extension of 0.03 <font face="symbol" color="#000000">μ</font>m, while a horizontal route will have a wrong-way width of 0.12 <font face="symbol" color="#000000">μ</font>m with extension 0.03 <font face="symbol" color="#000000">μ</font>m, as shown in the <font size="2" face="'Courier New'" color="#000000">DEF</font> <font size="2" face="'Courier New'" color="#000000">NETS</font> routing example below:</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014326">- NET1 (...)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014327"> + ROUTED METAL2 ( 1 0 ) ( 1 2 ) ( 3 2 ) ( 3 4 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-6 </strong></font></strong>
|
|||
|
<strong><a name="1014328">Default rule on wrong way segment</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1014364"><img src="images/DEFSyntax.07.1.16.png" alt=""><br></a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1014365"><font size="2" face="'Courier New'" color="#000000">NDR1</font></a> has a width of 0.08 <font face="symbol" color="#000000">μ</font>m, so it will use the wrong-way width of 0.12, because 0.8 is less than or equal to 0.12 (the first wrong-direction width value). So a vertical route will have a width of 0.08 <font face="symbol" color="#000000">μ</font>m with extension of 0.04 <font face="symbol" color="#000000">μ</font>m on a vertical route, while a horizontal route will have a width of 0.12 <font face="symbol" color="#000000">μ</font>m with extension 0.04 <font face="symbol" color="#000000">μ</font>m:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014366">- NET2 (...)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014367"> + NONDEFAULTRULE NDR1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014368"> + ROUTED METAL2 ( 1 0 ) ( 1 3 ) ( 4 3 ) ( 4 5 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014369"> </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-7 </strong></font></strong>
|
|||
|
<strong><a name="1014370">Non-Default rule on wrong way segment</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1014406"><img src="images/DEFSyntax.07.1.17.png" alt=""><br></a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1014407"><font size="2" face="'Courier New'" color="#000000">NDR4</font></a> in the table has a width of 0.16 <font face="symbol" color="#000000">μ</font>m. Width of 0.16 is larger than the first wrongdirection value of 0.12, but is less than or equal to the second wrong-direction value of 0.16, so it will use the wrong-way width of 0.16. In this case both the vertical and horizontal routes will have a width of 0.16 <font face="symbol" color="#000000">μ</font>m with extension of 0.08 <font face="symbol" color="#000000">μ</font>m.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014408">- NET3 (...)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014409"> + NONDEFAULTRULE NDR4</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014410"> + ROUTED METAL2 (1 0) (1 3) (4 3) (4 4) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1014411"> </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-8 </strong></font></strong>
|
|||
|
<strong><a name="1014412">Non-Default rule on wrong way segment</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1014449"><img src="images/DEFSyntax.07.1.18.png" alt=""><br></a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="965159">Specifying Orientation </a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="982887">If you specify the pin's placement status, you must specify its location and orientation. A pin can have any of the following orientations: N, S, W, E, FN, FS, FW, or FE.</a></p>
|
|||
|
<p><a name="983564">Orientation terminology can differ between tools. The following table maps the orientation terminology used in LEF and DEF files to the OpenAccess database format.</a></p>
|
|||
|
<table summary="" border="1" cellpadding="5" cellspacing="0" width="570">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="178">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="983567">LEF/DEF</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="154">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="983569">OpenAccess</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="237">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="983571">Definition</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983573">N (North) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983575">R0 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983582"> <img src="images/DEFSyntax.07.1.19.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983584">S (South) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983586">R180 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983593"> <img src="images/DEFSyntax.07.1.20.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983595">W (West) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983597">R90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983604"> <img src="images/DEFSyntax.07.1.21.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983606">E (East) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983608">R270 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983615"> <img src="images/DEFSyntax.07.1.22.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983617">FN (Flipped North) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983619">MY </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983626"> <img src="images/DEFSyntax.07.1.23.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983628">FS (Flipped South) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983630">MX </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983637"> <img src="images/DEFSyntax.07.1.24.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983639">FW (Flipped West) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983641">MX90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983648"> <img src="images/DEFSyntax.07.1.25.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983650">FE (Flipped East) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983652">MY90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983659"> <img src="images/DEFSyntax.07.1.26.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-14 </strong></font></strong>
|
|||
|
<strong><a name="983449">Shielded Net </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="965317">The following example defines a shielded net:</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="965320">NETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974096">- my_net ( I1 CLK ) ( BUF OUT )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974103">+ SHIELDNET VSS</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974104">+ SHIELDNET VDD</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974105"> ROUTED</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974106">MET2 ( 14000 341440 ) ( 9600 * ) ( * 282400 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974110">M1M2 ( 2400 * )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974111">+ NOSHIELD MET2 ( 14100 341440 ) ( 14000 * )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974115">+ TAPER MET1 ( 2400 282400 ) ( 240 * )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974112">END NETS </a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="NondefaultRules"></a><a name="972088">Nondefault Rules</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="1017500">NONDEFAULTRULES </a><font size="2" face="'Courier New'" color="#000000"><em>numRules</em></font> ;<dd>{- <font size="2" face="'Courier New'" color="#000000"><em>ruleName</em></font> <dd> [+ HARDSPACING] <dd> {+ LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <dd> WIDTH <font size="2" face="'Courier New'" color="#000000"><em>minWidth</em></font> <dd> [DIAGWIDTH <font size="2" face="'Courier New'" color="#000000"><em>diagWidth</em></font>] <dd> [SPACING <font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font>] <dd> [WIREEXT <font size="2" face="'Courier New'" color="#000000"><em>wireExt</em></font>] <dd> } ... <dd> [+ VIA <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font>] ... <dd> [+ VIARULE <font size="2" face="'Courier New'" color="#000000"><em>viaRuleName</em></font>] ... <dd> [+ MINCUTS <font size="2" face="'Courier New'" color="#000000"><em>cutLayerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>numCuts</em></font>] ... <dd> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...] ...<dd>;} ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="972174">END NONDEFAULTRULES</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="972247">Defines any nondefault rules used in this design that are not specified in the LEF file. This section can also contain the default rule and LEF nondefault rule definitions for reference. These nondefault rule names can be used anywhere in the DEF </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section that requires a nondefault rule name. </p>
|
|||
|
<p><a name="972248">If a nondefault rule name collides with an existing LEF or DEF nondefault rule name that has different parameters, the application should use the DEF definition when reading this DEF file, though it can change the DEF nondefault rule name to make it unique. This is typically done by adding a unique extension, such as </a><font size="2" face="'Courier New'" color="#000000">_1</font> or <font size="2" face="'Courier New'" color="#000000">_2</font> to the rule name. </p>
|
|||
|
<p><a name="1017649">All vias must be previously defined in the LEF </a><font size="2" face="'Courier New'" color="#000000">VIA</font> or DEF <font size="2" face="'Courier New'" color="#000000">VIAS</font> sections. Every nondefault rule must specify a width for every layer. If a nondefault rule does not specify a via or via rule for a particular routing-cut-routing layer combination, then there must be a <font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> <font size="2" face="'Courier New'" color="#000000">DEFAULT</font> rule that it inherited for that combination. </p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1017657"><font size="2" face="'Courier New'" color="#000000">DIAGWIDTH </font></a><font size="2" face="'Courier New'" color="#000000"><em>diagWidth</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017651">Specifies the diagonal width for </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, when 45-degree routing is used. <br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font> (no diagonal routing allowed)<br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1017631"><font size="2" face="'Courier New'" color="#000000">HARDSPACING</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017668">Specifies that any spacing values that exceed the LEF </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> <font size="2" face="'Courier New'" color="#000000">ROUTING</font> spacing requirements are "hard" rules instead of "soft" rules. By default, routers treat extra spacing requirements as soft rules that are high cost to violate, but not real spacing violations. However, in certain situations, the extra spacing should be treated as a hard, or real, spacing violation, such as when the route will be modified with a post-process that replaces some of the extra space with metal.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972275"><font size="2" face="'Courier New'" color="#000000">LAYER </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017681">Specifies the layer for the various width and spacing values. </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> must be a routing layer. Each routing layer must have at least a minimum width specified. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972297"><font size="2" face="'Courier New'" color="#000000">MINCUTS </font></a><font size="2" face="'Courier New'" color="#000000"><em>cutLayerName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>numCuts</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="988663"> Specifies the minimum number of cuts allowed for any via using the specified cut layer. All vias (generated or fixed vias) used for this nondefault rule must have at least </a><font size="2" face="'Courier New'" color="#000000"><em>numCuts</em></font> cuts in the via.<br><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>numCuts</em></font>) Positive integer </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972721"><font size="2" face="'Courier New'" color="#000000"><em>numRules</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017700">Specifies the number of nondefault rules defined in the </a><font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULES</font> section.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972322"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>propValue</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="988682">Specifies a property for this nondefault rule. The </a><font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> must be defined as a <font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE</font> property in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> section, and the <font size="2" face="'Courier New'" color="#000000"><em>propValue</em></font> must match the type for <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> (that is, integer, real, or string). </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1017743"></a></strong>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972422"><font size="2" face="'Courier New'" color="#000000"><em>rulename</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017764"> Specifies the name for this nondefault rule. This name can be used in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section wherever a nondefault rule name is allowed. The reserved name <font size="2" face="'Courier New'" color="#000000">DEFAULT</font> can be used to indicate the default routing rule used in the <font size="2" face="'Courier New'" color="#000000">NETS</font> section. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1017383"><font size="2" face="'Courier New'" color="#000000">SPACING </font></a><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017795">Specifies the minimum spacing for </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. The LEF <font size="2" face="'Courier New'" color="#000000">LAYER</font> <font size="2" face="'Courier New'" color="#000000">SPACING</font> or <font size="2" face="'Courier New'" color="#000000">SPACINGTABLE</font> definitions always apply; therefore it is only necessary to add a <font size="2" face="'Courier New'" color="#000000">SPACING</font> value if the desired spacing is larger than the <font size="2" face="'Courier New'" color="#000000">LAYER</font> rules already require. <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1017796"><font size="2" face="'Courier New'" color="#000000">VIA </font></a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017801">Specifies a previously defined LEF or DEF via to use with this rule.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972440"><font size="2" face="'Courier New'" color="#000000">VIARULE </font></a><font size="2" face="'Courier New'" color="#000000"><em>viaRuleName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017814">Specifies a previously defined LEF </a><font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> to use with this routing rule. If no via or via rule is specified for a given routing-cut-routing layer combination, then a <font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> <font size="2" face="'Courier New'" color="#000000">DEFAULT</font> via rule must exist for that combination, and it is implicitly inherited.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="981083"><font size="2" face="'Courier New'" color="#000000">WIDTH </font></a><font size="2" face="'Courier New'" color="#000000"><em>minWidth</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017848">Specifies the required minimum width allowed for </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1017849"><font size="2" face="'Courier New'" color="#000000">WIREEXT </font></a><font size="2" face="'Courier New'" color="#000000"><em>wireExt</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1017854">Specifies the distance by which wires are extended at vias. Enter 0 (zero) to specify no extension. Values other than 0 must be greater than or equal to half of the routing width for the layer, as defined in the nondefault rule. <br></a><font color="#000000"><em>Default:</em></font> Wires are extended half of the routing width <br><font color="#000000"><em>Type:</em></font> Float, specified in microns </blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-15 </strong></font></strong>
|
|||
|
<strong><a name="972504">Nondefault Rules </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="972508">The following </a><font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULES</font> statement is based on the assumption that there are <font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> <font size="2" face="'Courier New'" color="#000000">DEFAULT</font> rules for each routing-cut-routing combination, and that the default width is 0.3 <font face="symbol" color="#000000">μ</font>m. </p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972509">NONDEFAULTRULES 5 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972510">- doubleSpaceRule #Needs extra space, inherits default via rules</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972532">+ LAYER metal1 WIDTH 200 SPACING 1000 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972536">+ LAYER metal2 WIDTH 200 SPACING 1000 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972545">+ LAYER metal3 WIDTH 200 SPACING 1000 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972550">- lowerResistance #Wider wires and double cut vias for lower resistance<br> #and higher current capacity. No special spacing rules, <br> #therefore the normal LEF LAYER specified spacing rules<br> #apply. Inherits the default via rules.</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972554">+ LAYER metal1 WIDTH 600 #Metal1 is thinner, therefore a little wider</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972558">+ LAYER metal2 WIDTH 500 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972559">+ LAYER metal3 WIDTH 500 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972564">+ MINCUTS cut12 2 #Requires at least two cuts</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972565">+ MINCUTS cut23 2 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972566">- myRule #Use default width and spacing, change via rules. The<br> #default via rules are not inherited.</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972570">+ LAYER metal1 WIDTH 200 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972574">+ LAYER metal2 WIDTH 200 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972575">+ LAYER metal3 WIDTH 200 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972576">+ VIARULE myvia12rule </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972577">+ VIARULE myvia23rule ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972578">- myCustomRule #Use new widths, spacing and fixed vias. The default <br> #via rules are not inherited because vias are defined.</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972582">+ LAYER metal1 WIDTH 500 SPACING 1000 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972589">+ LAYER metal2 WIDTH 500 SPACING 1000 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972594">+ LAYER metal3 WIDTH 500 SPACING 1000 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972599">+ VIA myvia12_custom1 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972600">+ VIA myvia12_custom2 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972601">+ VIA myvia23_custom1 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972602">+ VIA myvia23_custom2 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972603">END NONDEFAULTRULES </a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="Pins"></a><a name="961235">Pins</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="991543">[PINS </a><font size="2" face="'Courier New'" color="#000000"><em>numPins</em></font> ;<dd>[ [- <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> + NET <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font>]<dd> [+ SPECIAL]<dd> [+ DIRECTION {INPUT | OUTPUT | INOUT | FEEDTHRU}]<dd> [+ NETEXPR "<font size="2" face="'Courier New'" color="#000000"><em>netExprPropName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>defaultNetName</em></font>"] <dd> [+ SUPPLYSENSITIVITY <font size="2" face="'Courier New'" color="#000000"><em>powerPinName</em></font>] <dd> [+ GROUNDSENSITIVITY <font size="2" face="'Courier New'" color="#000000"><em>groundPinName</em></font>]<dd> [+ USE {SIGNAL | POWER | GROUND | CLOCK | TIEOFF | ANALOG <dd> | SCAN | RESET}]<dd> [+ ANTENNAPINPARTIALMETALAREA <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>]] ...<dd> [+ ANTENNAPINPARTIALMETALSIDEAREA <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>]] ...<dd> [+ ANTENNAPINPARTIALCUTAREA <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>]] ...<dd> [+ ANTENNAPINDIFFAREA <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>]] ...<dd> [+ ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4}] ...<br> [+ ANTENNAPINGATEAREA <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>]] ...<br> [+ ANTENNAPINMAXAREACAR <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>] ...<br> [+ ANTENNAPINMAXSIDEAREACAR <font size="2" face="'Courier New'" color="#000000"><em>value </em></font>LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>] ...<br> [+ ANTENNAPINMAXCUTCAR <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>] ...<br> [[+ PORT] <br> [+ LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <br> [MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>]<br> [SPACING <font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font> | DESIGNRULEWIDTH <font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font>]<br> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <br> |+ POLYGON <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <br> [MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>] <br> [SPACING <font size="2" face="'Courier New'" color="#000000"><e
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="962961">END PINS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="961239">Defines external pins. Each pin definition assigns a pin name for the external pin and associates the pin name with a corresponding internal net name. The pin name and the net name can be the same. </a></p>
|
|||
|
<p><a name="961241">When the design is a chip rather than a block, the </a><font size="2" face="'Courier New'" color="#000000">PINS</font> statement describes logical pins, without placement or physical information. </p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="963035"><font size="2" face="'Courier New'" color="#000000">ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026877">Specifies the oxide model for the pin. If you specify an </a><font size="2" face="'Courier New'" color="#000000">ANTENNAMODEL</font> statement, that value affects all <font size="2" face="'Courier New'" color="#000000">ANTENNAGATEAREA</font> and <font size="2" face="'Courier New'" color="#000000">ANTENNA*CAR</font> statements for the pin that follow it until you specify another <font size="2" face="'Courier New'" color="#000000">ANTENNAMODEL</font> statement. The <font size="2" face="'Courier New'" color="#000000">ANTENNAMODEL</font> statement does not affect <font size="2" face="'Courier New'" color="#000000">ANTENNAPARTIAL*AREA</font> and <font size="2" face="'Courier New'" color="#000000">ANTENNADIFFAREA</font> statements because they refer to the total metal, cut, or diffusion area connected to the pin, and do not vary with each oxide model.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">OXIDE1</font>, for a new <font size="2" face="'Courier New'" color="#000000">PIN</font> statement<br><br>Because DEF is often used incrementally, if an <font size="2" face="'Courier New'" color="#000000">ANTENNA</font> statement occurs twice for the same oxide model, the last value specified is used. <br><br>Usually, you only need to specify a few <font size="2" face="'Courier New'" color="#000000">ANTENNA</font> values; however, for a block with six routing layers, it is possible to have six different <font size="2" face="'Courier New'" color="#000000">ANTENNAPARTIAL*AREA</font> values and six different <font size="2" face="'Courier New'" color="#000000">ANTENNAPINDIFFAREA</font> values per pin. It is also possible to have six different <font size="2" face="'Courier New'" color="#000000">ANTENNAPINGATEAREA</font> and <font size="2" face="'Courier New'" color="#000000">ANTENNAPINMAX*CAR</font> values for each oxide model on each pin.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-16 </strong></font></strong>
|
|||
|
<strong><a name="970534"> Antenna Model Statement</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="970535">The following example describes the </a><font size="2" face="'Courier New'" color="#000000">OXIDE1</font> and <font size="2" face="'Courier New'" color="#000000">OXIDE2</font> models for pin <font size="2" face="'Courier New'" color="#000000">clock1</font>. Note that the <font size="2" face="'Courier New'" color="#000000">ANTENNAPINPARTIALMETALAREA</font> and <font size="2" face="'Courier New'" color="#000000">ANTENNAPINDIFFAREA</font> values are not affected by the oxide values.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970536">PINS 100 ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974116"> - clock1 + NET clock1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974117"> ...</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974118"> + ANTENNAPINPARTIALMETALAREA 1000 LAYER m1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974119"> + ANTENNAPINDIFFAREA 500 LAYER m1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974120"> ...</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974121"> + ANTENNAMODEL OXIDE1 #not required, but good practice</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974122"> + ANTENNAPINGATEAREA 1000</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974123"> + ANTENNAMAXAREACAR 300 LAYER m1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974124"> ...</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974125"> + ANTENNAMODEL OXIDE2 #start of OXIDE2 values</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974126"> + ANTENNAPINGATEAREA 2000</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974127"> + ANTENNAMAXAREACAR 100 LAYER m1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974128"> ...</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="974129"> </a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="969853"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINDIFFAREA</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">[LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026918">Specifies the diffusion (diode) area to which the pin is connected on a layer. If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, the value applies to all layers. This is not necessary for output pins.<br><font color="#000000"><em>Type:</em></font> Integer <br><font color="#000000"><em>Value:</em></font> Area specified in (DEF database units)<font color="#000000"><sup>2</sup></font> <br><br> For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1026941"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINGATEAREA</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">[LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026950">Specifies the gate area to which the pin is connected on a layer. If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, the value applies to all layers. This is not necessary for input pins. <br><font color="#000000"><em>Type:</em></font> Integer <br><font color="#000000"><em>Value:</em></font> Area specified in (DEF database units)<font color="#000000"><sup>2</sup></font> <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="963051"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINMAXAREACAR</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1026998">For hierarchical process antenna effect calculation, specifies the maximum cumulative antenna ratio value, using the metal area at or below the current pin layer, excluding the pin area itself. Use this to calculate the actual cumulative antenna ratio on the pin layer, or the layer above it. <br></a><font color="#000000"><em>Type:</em></font> Integer <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027009"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINMAXCUTCAR</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027032">For hierarchical process antenna effect calculation, specifies the maximum cumulative antenna ratio value, using the cut area at or below the current pin layer, excluding the pin area itself. Use this to calculate the actual cumulative antenna ratio for the cuts above the pin layer. <br></a><font color="#000000"><em>Type:</em></font> Integer <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027054"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINMAXSIDEAREACAR</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027077">For hierarchical process antenna effect calculation, specifies the maximum cumulative antenna ratio value, using the metal side wall area at or below the current pin layer, excluding the pin area itself. Use this to calculate the actual cumulative antenna ratio on the pin layer, or the layer above it. <br></a><font color="#000000"><em>Type:</em></font> Integer <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027099"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINPARTIALCUTAREA</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">[LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>cutLayerName</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027108">Specifies the partial cut area above the current pin layer and inside the macro cell on a layer. If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, the value applies to all layers. For hierarchical designs, only the cut layer above the I/O pin layer is needed for partial antenna ratio calculation. <br><font color="#000000"><em>Type:</em></font> Integer<br><font color="#000000"><em>Value:</em></font> Area specified in (DEF database units)<font color="#000000"><sup>2</sup></font> <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027131"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINPARTIALMETALAREA</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">[LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027140">Specifies the partial metal area connected directly to the I/O pin and the inside of the macro cell on a layer. If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, the value applies to all layers. For hierarchical designs, only the same metal layer as the I/O pin, or the layer above it, is needed for partial antenna ratio calculation. <br><font color="#000000"><em>Type:</em></font> Integer <br><font color="#000000"><em>Value:</em></font> Area specified in (DEF database units)<font color="#000000"><sup>2</sup></font> <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027163"><font size="2" face="'Courier New'" color="#000000">ANTENNAPINPARTIALMETALSIDEAREA</font></a> <font size="2" face="'Courier New'" color="#000000"><em>value</em></font> <font size="2" face="'Courier New'" color="#000000">[LAYER</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027186">Specifies the partial metal side wall area connected directly to the I/O pin and the inside of the macro cell on a layer. If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, the value applies to all layers. For hierarchical designs, only the same metal layer as the I/O pin, or the layer above it, is needed for partial antenna ratio calculation. <br><font color="#000000"><em>Type:</em></font> Integer <br><font color="#000000"><em>Value:</em></font> Area specified in (DEF database units)<font color="#000000"><sup>2</sup></font> <br><br>For more information on process antenna calculation, see <a href="PAE.html#1033512" title="C"><font color="#0000ff"><u>Appendix C, "Calculating and Fixing Process Antenna Violations."</u></font></a> </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027208"><font size="2" face="'Courier New'" color="#000000">COVER </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027215">Specifies the pin's location, orientation, and that it is a part of the cover macro. A </a><font size="2" face="'Courier New'" color="#000000">COVER</font> pin cannot be moved by automatic tools or by interactive commands. If you specify a placement status for a pin, you must also include a <font size="2" face="'Courier New'" color="#000000">LAYER</font> statement.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027224"><font size="2" face="'Courier New'" color="#000000">DIRECTION {INPUT | OUTPUT | INOUT | FEEDTHRU}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027242">Specifies the pin type. Most current tools do not usually use this keyword. Typically, pin directions are defined by timing library data, and not from DEF.<br></a><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="1027245"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="108">
|
|||
|
<p><a name="1027247"><font size="2" face="'Courier New'" color="#000000">INPUT</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="348">
|
|||
|
<p><a name="1027249">Pin that accepts signals coming into the cell.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027251"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027253"><font size="2" face="'Courier New'" color="#000000">OUTPUT </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027255">Pin that drives signals out of the cell.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027257"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027259"><font size="2" face="'Courier New'" color="#000000">INOUT</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027261">Pin that can accept signals going either in or out of the cell.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027263"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027265"><font size="2" face="'Courier New'" color="#000000">FEEDTHRU</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027267">Pin that goes completely across the cell. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027268"><font size="2" face="'Courier New'" color="#000000">FIXED </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027273">Specifies the pin's location, orientation, and that it's location cannot be moved by automatic tools, but can be moved by interactive commands. If you specify a placement status for a pin, you must also include a </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> statement.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027282"><font size="2" face="'Courier New'" color="#000000">GROUNDSENSITIVITY </font></a><font size="2" face="'Courier New'" color="#000000"><em>groundPinName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027305">Specifies that if this pin is connected to a tie-low connection (such as </a><font size="2" face="'Courier New'" color="#000000">1'b0</font> in Verilog), it should connect to the same net to which <font size="2" face="'Courier New'" color="#000000"><em>groundPinName</em></font> is connected.<br><font size="2" face="'Courier New'" color="#000000"><em><br>groundPinName</em></font> must match another pin in this <font size="2" face="'Courier New'" color="#000000">PINS</font> section that has a <font size="2" face="'Courier New'" color="#000000">+ USE</font> <font size="2" face="'Courier New'" color="#000000">GROUND</font> attribute. The ground pin definition can follow later in this <font size="2" face="'Courier New'" color="#000000">PINS</font> section; it does not have to be defined before this pin definition. It is a semantic error to put this attribute on an existing ground pin. For an example, see <a href="#979028" title="4"><font color="Blue"><u>Example 4-18</u></font></a><a href="#979028" title="4"></a>.<br><font color="#000000"><strong><br>Note:</strong></font> <font size="2" face="'Courier New'" color="#000000">GROUNDSENSITIVITY</font> is useful only when there is more than one ground net connected to pins in the <font size="2" face="'Courier New'" color="#000000">PINS</font> section. By default, if there is only one net connected to all <font size="2" face="'Courier New'" color="#000000">+ USE</font> <font size="2" face="'Courier New'" color="#000000">GROUND</font> pins, the tie-low connections are already implicitly defined (that is, tie-low connections are connected to the same net as any ground pin).</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027341"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027348">Specifies which mask from double or triple patterning to use for the specified shape. The </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer - most applications support values of 1, 2, or 3 only. Shapes without any defined mask do not have a mask set (are uncolored).</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027357"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027364">Specifies which mask for double or triple patterning lithography is to be applied to via shapes on each layer. <br>The </a><font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font> variable is a hex-encoded three digit value of the form: <br><br><font color="#000000"><</font><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font><font color="#000000">><br><br></font>For example, MASK 113 means the top metal and cut layer <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 1, and the bottom metal layer <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 3. A value of 0 indicates that the shape on that layer does not have a mask assignment (is uncolored), so 013 means the top layer is uncolored. If either the first or second digit is missing, they are assumed to be 0, so 013 and 13 mean the same thing. Most applications support <font size="2" face="'Courier New'" color="#000000"><em>maskNums</em></font> of 0, 1, 2, or 3 for double or triple patterning.<br><br>The <font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> variables specify which mask the corresponding metal shape belongs to. The via-master metal mask values have no effect. <br><br>For the cut-layer, the <font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> variable defines the mask for the bottom-most, then the left-most cut in the North (R0) orientation. For multi-cut vias, the via-instance cut masks are derived from the via-master cut mask values. The via-master must have a mask defined for all of the cut shapes and every via-master cut mask is "shifted" (from 1 to 2 and 2 to1 for two mask layers, and from 1 to 2, 2 to 3, and 3 to1 for three mask layers), so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> value. See <a href="#1004840" title="4"><font color="Blue"><u>Example 4-17</u></font></a><a href="#1004840" title="4"></a>.<br><br>Similarly, for the metal layer, the <font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> would define the mask for the bottom-most, then leftmost metal shape. For multiple disjoint metal shapes, the via-instance metal masks are derived from the via-master metal mask values. The via-master must have a mask defined for all of the metal shapes, and every via-master metal mask is "shifted" (1->2, 2->1 for two mask layers, 1->2, 2->3, 3->1 for three mask layers) so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> value.<br><br>Shapes without any defined mask, that need to be assigned, can be assigned to an arbitrary choice of mask by applications.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-17 </strong></font></strong>
|
|||
|
<strong><a name="1004840">Multi-Mask Patterns for Pins </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1005193">The following example shows via master masks:</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005268">clock + NET clock </a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005269">+ LAYER M1 MASK 2 ( -25 0 ) ( 25 50 ) #m1 rectangle is on mask 2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005270">+ LAYER M2 ( -10 0 ) ( 10 75 ) #m2 rectangle, no mask</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005271">+ VIA VIA1 MASK 031 ( 0 25 ) #via1 with mask 031</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1005272">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="1005273">The </a><font size="2" face="'Courier New'" color="#000000">VIA1</font> via will have:</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1005312">no mask set for the top metal shape (</a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font> is 0 in the 031 value)</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1005313"><font size="2" face="'Courier New'" color="#000000">MASK 1</font></a> for the bottom metal shape (<font size="2" face="'Courier New'" color="#000000"><em>botMaskNum</em></font> is 1 in the 031 value)</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1005314">the bottom-most, and then the left-most cut of the via-instance is </a><font size="2" face="'Courier New'" color="#000000">MASK 3</font>. The mask for the other cuts of the via-instance are derived from the via-master by "shifting" the via-master cut masks to match. So if the via-master's bottom-left cut is <font size="2" face="'Courier New'" color="#000000">MASK 1</font>, then the via-master cuts on <font size="2" face="'Courier New'" color="#000000">MASK 1</font> become <font size="2" face="'Courier New'" color="#000000">MASK 3</font> for the via-instance. Similarly cuts on 2 shift to 1, and cuts on 3 shift to 2. See <a href="#1004865" title="4"><font color="Blue"><u>Figure 4-9</u></font></a><a href="#1004865" title="4"></a>.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="1005117"> </a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-9 </strong></font></strong>
|
|||
|
<strong><a name="1004865">Multi-Mask Patterns for Pins</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1005019"><img src="images/DEFSyntax.07.1.27.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="971934"><font size="2" face="'Courier New'" color="#000000">NETEXPR "</font></a><font size="2" face="'Courier New'" color="#000000"><em>netExprPropName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>defaultNetName</em></font><font size="2" face="'Courier New'" color="#000000">"</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027377">Specifies a net expression property name (such as </a><font size="2" face="'Courier New'" color="#000000">power1</font> or <font size="2" face="'Courier New'" color="#000000">power2</font>) and a default net name. If <font size="2" face="'Courier New'" color="#000000"><em>netExprPropName</em></font> matches a net expression property higher up in the netlist (for example, in Verilog, VHDL, or OpenAccess), then the property is evaluated, and the software identifies a net to which to connect this pin. If the property does not exist, <font size="2" face="'Courier New'" color="#000000"><em>defaultNetName</em></font> is used for the net name.<br><font size="2" face="'Courier New'" color="#000000"><em><br>netExprPropName</em></font> must be a simple identifier in order to be compatible with other languages, such as Verilog and CDL. Therefore, it can only contain alphanumeric characters, and the first character cannot be a number. For example, <font size="2" face="'Courier New'" color="#000000">power2</font> is a legal name, but <font size="2" face="'Courier New'" color="#000000">2power</font> is not. You cannot use characters such as <font size="2" face="'Courier New'" color="#000000">$</font> and <font size="2" face="'Courier New'" color="#000000">!</font>. The <font size="2" face="'Courier New'" color="#000000"><em>defaultName</em></font> can be any legal DEF net name.<br><br>If more than one pin connects to the same net, only one pin should have a <font size="2" face="'Courier New'" color="#000000">NETEXPR</font> added to it. It is redundant and unnecessary to add <font size="2" face="'Courier New'" color="#000000">NETEXPR</font> to every ground pin connected to one ground net, and it is illegal to have different <font size="2" face="'Courier New'" color="#000000">NETEXPR</font> values for pins connected to the same net.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-18 </strong></font></strong>
|
|||
|
<strong><a name="979028">Net Expression and Supply Sensitivity </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="979029">The following </a><font size="2" face="'Courier New'" color="#000000">PINS</font> statement defines sensitivity and net expression values for five pins in the design <font size="2" face="'Courier New'" color="#000000">myDesign</font>:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972010">DESIGN myDesign</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972014">...</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972015">PINS 4 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972016">- in1 + NET myNet </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972020">...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972024">+ SUPPLYSENSITIVITY vddpin1 ; #If in1 is connected to 1'b1, use<br> #net that is connected to vddpin1.<br> #No GROUNDSENSITIVITY is needed because<br> #only one ground net is used by PINS.<br> #Therefore, 1'b0 implicitly means net <br> #from any +USE GROUND pin. </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972031">- vddpin1 + NET VDD1 + USE POWER</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="981991">...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="981992">+ NETEXPR "power1 VDD1" ; #If an expression named power1 is defined in <br> #the netlist, use it to fine the net.<br> #Otherwise, use net VDD1.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972040">- vddpin2 + NET VDD2 + USE POWER</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972044">...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972048">+ NETEXPR "power2 VDD2" ; #If an expression named power2 is defined in<br> #the netlist, use it to find the net.<br> # Otherise, use net VDD2.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972051">- gndpin1 + NET GND + USE GROUND </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="972055">...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="982017">+ NETEXPR "gnd1 GND" ; #If an expression named gnd1 is defined in <br> #the netlist, use it to find net <br> #connection. Otherwise, use net GND.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="972080">END PINS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="962964"><font size="2" face="'Courier New'" color="#000000"><em>numPins</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027418">Specifies the number of pins defined in the </a><font size="2" face="'Courier New'" color="#000000">PINS</font> section.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027427"><font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font></a> <font size="2" face="'Courier New'" color="#000000">+</font> <font size="2" face="'Courier New'" color="#000000">NET </font><font size="2" face="'Courier New'" color="#000000"><em>netName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027436">Specifies the name for the external pin, and the corresponding internal net (defined in </a><font size="2" face="'Courier New'" color="#000000">NETS</font> or <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statements).</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027445"><font size="2" face="'Courier New'" color="#000000">PLACED </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt orient</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027452">Specifies the pin's location, orientation, and that it's location is fixed, but can be moved during automatic layout. If you specify a placement status for a pin, you must also include a </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027461"><font size="2" face="'Courier New'" color="#000000">PORT</font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027468">Indicates that the following </a><font size="2" face="'Courier New'" color="#000000">LAYER</font>, <font size="2" face="'Courier New'" color="#000000">POLYGON</font>, and <font size="2" face="'Courier New'" color="#000000">VIA</font> statements are all part of one <font size="2" face="'Courier New'" color="#000000">PORT</font> connection, until another <font size="2" face="'Courier New'" color="#000000">PORT</font> statement occurs. If this statement is missing, all of the <font size="2" face="'Courier New'" color="#000000">LAYER</font>, <font size="2" face="'Courier New'" color="#000000">POLYGON</font>, and <font size="2" face="'Courier New'" color="#000000">VIA</font> statements are part of a single implicit <font size="2" face="'Courier New'" color="#000000">PORT</font> for the <font size="2" face="'Courier New'" color="#000000">PIN</font>. <br><br>This commonly occurs for power and ground pins. All of the shapes of one port (rectangles, polygons, and vias) should already be connected with just the port shapes; therefore, the router only needs to connect to one of the shapes for the port. Separate ports should each be connected by routing inside the block (and each DEF <font size="2" face="'Courier New'" color="#000000">PORT</font> should map to a single LEF <font size="2" face="'Courier New'" color="#000000">PORT</font> in the equivalent LEF abstract for this block). <br><br>The syntax for describing <font size="2" face="'Courier New'" color="#000000">PORT</font> statements is defined as follows:<br><font size="2" face="'Courier New'" color="#000000"><br>[[+ PORT]</font> <br> <font size="2" face="'Courier New'" color="#000000"> [ + LAYER </font><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <br><font size="2" face="'Courier New'" color="#000000"> [ SPACING </font><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font><font size="2" face="'Courier New'" color="#000000"> <br> | DESIGNRULEWIDTH </font><font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font><font size="2" face="'Courier New'" color="#000000">] <br> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <br><font size="2" face="'Courier New'" color="#000000"> | + POLYGON </font><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <br><font size="2" face="'Courier New'" color="#000000"> [ SPACING </font><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font><font size="2" face="'Courier New'" color="#000000"> <br> | DESIGNRULEWIDTH </font><font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font><font size="2" face="'Courier New'" color="#000000">] <br> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <br><font size="2" face="'Courier New'" color="#000000"> | + VIA </font><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <br><font size="2" face="'Courier New'" color="#000000"> ] ...</font> <br><font size="2" face="'Courier New'" color="#000000">]</font></blockquote>
|
|||
|
<p align="left"><a name="985370"> </a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="985328"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top" width="456">
|
|||
|
<p><a name="985330"><font size="2" face="'Courier New'" color="#000000">LAYER </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000"> </font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="985334"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="108">
|
|||
|
<p><a name="985336"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="348">
|
|||
|
<p><a name="985338">Specifies the routing layer used for the pin, and the pin geometry on that layer. If you specify a placement status for a pin, you must include a </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> statement.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985438"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="985440"><font size="2" face="'Courier New'" color="#000000">POLYGON </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985432"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985434"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985436">Specifies the layer and a sequence of at least three points to generate a polygon for this pin. The polygon edges must be parallel to the x axis, the y axis, or at a 45-degree angle.</a></p>
|
|||
|
<p><a name="985485">Each </a><font size="2" face="'Courier New'" color="#000000">POLYGON</font> statement defines a polygon generated by connecting each successive point, and then the first and last points. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value from the last point. (See <a href="#985473" title="4"><font color="Blue"><u>Example 4-20</u></font></a><a href="#985473" title="4"></a>.) </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985340"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="985342"><font size="2" face="'Courier New'" color="#000000">SPACING </font></a><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985346"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985348"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985387">Specifies the minimum spacing allowed between this pin and any other routing shape. This distance must be greater than or equal to </a><font size="2" face="'Courier New'" color="#000000"><em>minSpacing</em></font>. If you specify <font size="2" face="'Courier New'" color="#000000">SPACING</font>, you cannot specify <font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH</font>. (See <a href="#985498" title="4"><font color="Blue"><u>Example 4-21</u></font></a><a href="#985498" title="4"></a>.<br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985414"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="985416"><font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH </font></a><font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985408"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985410"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985420">Specifies that this pin has a width of </a><font size="2" face="'Courier New'" color="#000000"><em>effectiveWidth</em></font> for the purpose of spacing calculations. If you specify <font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH</font>, you cannot specify <font size="2" face="'Courier New'" color="#000000">SPACING</font>. As a lot of spacing rules in advanced nodes no longer just rely on wire width, <font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH</font> is not allowed for 20nm and below nodes. (See <a href="#985498" title="4"><font color="Blue"><u>Example 4-21</u></font></a><a href="#985498" title="4"></a>. <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985402"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="985404"><font size="2" face="'Courier New'" color="#000000">VIA </font></a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985396"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985398"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="985400">Places the via named </a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> at the specified (x y) location (<font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>). <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> must be a previously defined via in the DEF <font size="2" face="'Courier New'" color="#000000">VIAS</font> or LEF <font size="2" face="'Courier New'" color="#000000">VIA</font> section. <br><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>) Integers, specified in DEF database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-19 </strong></font></strong>
|
|||
|
<strong><a name="984461">Port Example</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="984499">Assume a block that is 5000 x 5000 database units with a 0,0 origin in the middle of the block. If you have the following pins defined, </a><a href="#985466" title="4"><font color="Blue"><u>Figure 4-10</u></font></a><a href="#985466" title="4"></a> illustrates how pin <font size="2" face="'Courier New'" color="#000000">BUSA[0]</font> is created for two different placement locations and orientations:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984465">PINS 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984473">- BUSA[0] + NEY BUSA[0] + DIRECTION IN{UT + USE SIGNAL </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984477"> + LAYER M1 ( -25 0 ) ( 25 50 ) #m1, m2, and via12</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984478"> + LAYER M2 ( -10 0 ) ( 10 75 ) </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984479"> + VIA via12 ( 0 25 ) </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984480"> + PLACED ( 0 -2500 ) N ; #middle of bottom side</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984481">- VDD + NET VDD + DIRECTION INOUT + USE POWER + SPECIAL </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="984482"> + PORT </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984483"> + LAYER M2 ( -25 0 ) ( 25 50 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984487"> + PLACED ( 0 2500 ) S #middle of top side</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984488">+ PORT </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984489"> + LAYER M1 (-25 0 ) ( 25 50 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984490"> + PLACED ( -2500 0 ) E #middle of left side </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984491">+ PORT </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984492"> + LAYER M1 ( -25 0 ) ( 25 50 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="984493"> + PLACED ( 2500 0 ) W ; #middle of right side</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985463">END PINS </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-10 </strong></font></strong>
|
|||
|
<strong><a name="985466">Port Illustration</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="984511"><img src="images/DEFSyntax.07.1.28.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-20 </strong></font></strong>
|
|||
|
<strong><a name="985473">Port Statement With Polygon </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="985474">The following </a><font size="2" face="'Courier New'" color="#000000">PINS</font> statement creates a polygon with a 45-degree angle:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985475">PINS 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985476">- myPin3 + NET myNet1 + DIRECTION INPUT </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985478">+ PORT </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985527"> + POLYGON metal1 ( 0 0 ) ( 100 100 ) ( 200 100 ) ( 200 0 ) #45-degree angle</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985479"> + FIXED ( 10000 5000 ) N ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985480">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985481">END PINS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-21 </strong></font></strong>
|
|||
|
<strong><a name="985498"> </a> Design Rule Width and Spacing Rules</strong>
|
|||
|
</p>
|
|||
|
<p><a name="985499">The following statements create spacing rules using the </a><font size="2" face="'Courier New'" color="#000000">DESIGNRULEWIDTH</font> and <font size="2" face="'Courier New'" color="#000000">SPACING</font> statements: </p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985500">PINS 3 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985501">- myPin1 + NET myNet1 + DIRECTION INPUT</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985503">+ LAYER metal1 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985504"> DESIGNRULEWIDTH 1000 #Pin is effectively 1000 dbu wide</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985505"> ( -100 0 ) ( 100 200 ) #Pin is 200 x 200 dbu</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985506">+ FIXED ( 10000 5000 ) S ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985507">- myPin2 + NET myNet2 + DIRECTION INPUT </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985509">+ LAYER metal1 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985510"> SPACING 500 #Requires >= 500 dbu spacing</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985511"> ( -100 0 ) ( 100 200 ) #Pin is 200 x 200 dbu</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985512">+ COVER ( 10000 5000 ) S ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985513">- myPin3 + NET myNet1 #Pin with two shapes</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985514">+ DIRECTION INPUT </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985515">+ LAYER metal2 ( 200 200 ) ( 300 300 ) #100 x 100 dbu shape</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985516">+ POLYGON metal1 ( 0 0 ) ( 100 100 ) ( 200 100 ) ( 200 0 ) #Has 45-degree edge</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="985517">+ FIXED ( 10000 5000 ) N ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="985518">END PINS</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="985482"> </a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="961245"><font size="2" face="'Courier New'" color="#000000">SPECIAL</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027579">Identifies the pin as a special pin. Regular routers do not route to special pins. The special router routes special wiring to special pins. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027588"><font size="2" face="'Courier New'" color="#000000">SUPPLYSENSITIVITY </font></a><font size="2" face="'Courier New'" color="#000000"><em>powerPinName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027597">Specifies that if this pin is connected to a tie-high connection (such as </a><font size="2" face="'Courier New'" color="#000000">1'b1</font> in Verilog), it should connect to the same net to which <font size="2" face="'Courier New'" color="#000000"><em>powerPinName</em></font> is connected. <br><font size="2" face="'Courier New'" color="#000000"><em>powerPinName</em></font> must match another pin in this <font size="2" face="'Courier New'" color="#000000">PINS</font> section that has a <font size="2" face="'Courier New'" color="#000000">+ USE POWER</font> attribute. The power pin definition can follow later in this <font size="2" face="'Courier New'" color="#000000">PINS</font> section; it does not have to be defined before this pin definition. It is a semantic error to put this attribute on an existing power pin. For an example, see <a href="#979028" title="4"><font color="Blue"><u>Example 4-18</u></font></a><a href="#979028" title="4"></a>. <br><font color="#000000"><strong><br>Note:</strong></font> <font size="2" face="'Courier New'" color="#000000">POWERSENSITIVITY</font> is useful only when there is more than one power net connected to pins in the <font size="2" face="'Courier New'" color="#000000">PINS</font> section. By default, if there is only one net connected to all <font size="2" face="'Courier New'" color="#000000">+ USE</font> <font size="2" face="'Courier New'" color="#000000">POWER</font> pins, the tie-high connections are already implicitly defined (that is, tie-high connections are connected to the same net as the single power pin).</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027628"><font size="2" face="'Courier New'" color="#000000">USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027637">Specifies how the pin is used.<br></a><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">SIGNAL</font> <br><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="963559"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="156">
|
|||
|
<p><a name="963561"><font size="2" face="'Courier New'" color="#000000">ANALOG</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="300">
|
|||
|
<p><a name="963563">Pin is used for analog connectivity.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968764"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968766"><font size="2" face="'Courier New'" color="#000000">CLOCK</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968768">Pin is used for clock net connectivity.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968758"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968760"><font size="2" face="'Courier New'" color="#000000">GROUND</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968762">Pin is used for connectivity to the chip-level ground distribution network.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963571"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963573"><font size="2" face="'Courier New'" color="#000000">POWER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963575">Pin is used for connectivity to the chip-level power distribution network.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963577"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963621"><font size="2" face="'Courier New'" color="#000000">RESET</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965948">Pin is used as reset pin.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963583"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963585"><font size="2" face="'Courier New'" color="#000000">SCAN</font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="965952">Pin is used as scan pin.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963648"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963650"><font size="2" face="'Courier New'" color="#000000">SIGNAL</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963652">Pin is used for regular net connectivity.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963660"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963662"><font size="2" face="'Courier New'" color="#000000">TIEOFF</font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="963664">Pin is used as tie-high or tie-low pin.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="961360">Extra Physical PIN(S) for One Logical PIN</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="961361">In the design of place and route blocks, you sometimes want to add extra physical connection points to existing signal ports (usually to enable the signal to be accessed from two sides of the block). One pin has the same name as the net it is connected to. Any other pins added to the net must use the following naming conventions.</a></p>
|
|||
|
<p><a name="1027658">For extra non-bus bit pin names, use the following syntax:</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027659"><font size="2" face="'Courier New'" color="#000000"><em>pinname</em></font></a>.<font size="2" face="'Courier New'" color="#000000">extra</font><font size="2" face="'Courier New'" color="#000000"><em>N</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027660"><font size="2" face="'Courier New'" color="#000000"><em>N</em></font></a> is a positive integer, incremented as the physical pins are added<br>For example:</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961365">PINS n ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974138">- a + NET a .... ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974139">- a.extra1 + NET a ... ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><a name="961366">For extra bus bit pin names, use the following syntax:</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="961367"><font size="2" face="'Courier New'" color="#000000"><em>basename</em></font></a>.<font size="2" face="'Courier New'" color="#000000">extra</font><font size="2" face="'Courier New'" color="#000000"><em>N</em></font>[<font size="2" face="'Courier New'" color="#000000"><em>index</em></font>]</strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027679"><font size="2" face="'Courier New'" color="#000000"><em>basename</em></font></a> is simple part of bus bit pin/net name<font size="2" face="'Courier New'" color="#000000"><em>.</em></font> <font size="2" face="'Courier New'" color="#000000"><em>N</em></font> is a positive integer, incremented as the physical pins are added. [<font size="2" face="'Courier New'" color="#000000"><em>index</em></font>] identifies the specific bit of the bus, if it is a bus bit. <br>For example:</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961369">PINS n ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974160">- a[0] + net a[0] ... ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974161">- a.extra1[0] + net a[0] ... ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><font color="#000000"><strong>Note: </strong></font><a name="961370">The brackets [ ] are the </a><font size="2" face="'Courier New'" color="#000000">BUSBITCHARS</font> as defined in the DEF <font size="2" face="'Courier New'" color="#000000">BUSBITCHARS</font> statement.</p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="967028">Specifying Orientation </a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="982920">If you specify the pin's placement status, you must specify its location and orientation. A pin can have any of the following orientations: N, S, W, E, FN, FS, FW, or FE.</a></p>
|
|||
|
<p><a name="982946">Orientation terminology can differ between tools. The following table maps the orientation terminology used in LEF and DEF files to the OpenAccess database format.</a></p>
|
|||
|
<table summary="" border="1" cellpadding="5" cellspacing="0" width="570">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="178">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="982986">LEF/DEF</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="154">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="982988">OpenAccess</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="237">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="982990">Definition</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="982992">N (North) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="982999">R0 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983142"> <img src="images/DEFSyntax.07.1.29.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983008">S (South) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983015">R180 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983154"> <img src="images/DEFSyntax.07.1.30.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983024">W (West) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983031">R90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983166"> <img src="images/DEFSyntax.07.1.31.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983040">E (East) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983047">R270 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983178"> <img src="images/DEFSyntax.07.1.32.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983056">FN (Flipped North) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983058">MY </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983130"> <img src="images/DEFSyntax.07.1.33.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983062">FS (Flipped South) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983064">MX </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983118"> <img src="images/DEFSyntax.07.1.34.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983068">FW (Flipped West) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983070">MX90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="983106"> <img src="images/DEFSyntax.07.1.35.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983074">FE (Flipped East) </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983076">MY90 </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="983090"> <img src="images/DEFSyntax.07.1.36.png" alt=""></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-22 </strong></font></strong>
|
|||
|
<strong><a name="969899">Pin Statements</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="961372">The following example describes a physical I/O pin.</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961373"># M1 width = 50, track spacing = 120</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974173"># M2 width = 60, track spacing = 140</a></font>
|
|||
|
</p>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961374"> </a></font>
|
|||
|
</dl>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974174">DIEAREA ( -5000 -5000 ) ( 5000 5000 ) ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974175">TRACKS Y -4900 DO 72 STEP 140 LAYER M2 M1 ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974176">TRACKS X -4900 DO 84 STEP 120 LAYER M1 M2 ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961375">PINS 4 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979098"># Pin on the left side of the block</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974255">- BUSA[0]+ NET BUSA[0] + DIRECTION INPUT</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974259"> + LAYER M1 ( -25 0 ) ( 25 165 ) # .5 M1 W + 1 M2 TRACK</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974260"> + PLACED ( -5000 2500 ) E ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974261"># Pin on the right side of the block</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974204">- BUSA[1] + NET BUSA[1] + DIRECTION INPUT</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974208"> + LAYER M1 ( -25 0 ) ( 25 165 ) # .5 M1 W + 1 M2 TRACK</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974209"> + PLACED ( 5000 -2500 ) W ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974213"># Pin on the bottom side of the block</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961379">- BUSB[0] + NET BUSB[0] + DIRECTION INPUT</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974227"> + LAYER M2 ( -30 0 ) ( 30 150 ) # .5 M2 W + 1 M1 TRACK</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974228"> + PLACED ( -2100 -5000 ) N ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961380"># Pin on the top side of the block</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974237">- BUSB[1] + NET BUSB[1] + DIRECTION INPUT</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974241"> + LAYER M2 ( -30 0 ) ( 30 150 ) # .5 M2 W + 1 M1 TRACK</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="987266"> + PLACED ( 2100 5000 ) S ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="987318">END PINS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face="Courier" color="#000000"><a name="987319"><font color="#000000"><img src="images/DEFSyntax.07.1.37.png" alt=""><br></font></a></font>
|
|||
|
</p>
|
|||
|
<p><a name="961396">The following example shows how a logical I/O pin would appear in the DEF file. The pin is first defined in Verilog for a chip-level design.</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974273">module chip (OUT, BUSA, BUSB) ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974274">input [0:1] BUSA, BUSB;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974275">output OUT;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970552">....</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970553">endmodule</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="961398">The following description for this pin is in the </a><font size="2" face="'Courier New'" color="#000000">PINS</font> section in the DEF file:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961399">PINS 5 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974278">- BUSA[0] + NET BUSA[0] + DIRECTION INPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974288">- BUSA[1] + NET BUSA[1] + DIRECTION INPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974289">- BUSB[0] + NET BUSB[0] + DIRECTION INPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974290">- BUSB[1] + NET BUSB[1] + DIRECTION INPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974291">- OUT + NET OUT + DIRECTION OUTPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="969394">END PINS</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="PinProperties"></a><a name="961400">Pin Properties</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961402">[PINPROPERTIES </a><font size="2" face="'Courier New'" color="#000000"><em>num</em></font><font size="2" face="'Courier New'" color="#000000">;<dd></font>[- {<font size="2" face="'Courier New'" color="#000000"><em>compName pinName</em></font> | PIN <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font>}<font size="2" face="'Courier New'" color="#000000"><em> <dd></em></font> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...] ...<dd>;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="963679">END PINPROPERTIES]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="1027713">Defines pin properties in the design. </a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027714"><font size="2" face="'Courier New'" color="#000000"><em>compName</em></font></a><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027755">Specifies a component pin. Component pins are identified by the component name and pin name. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027756"><font size="2" face="'Courier New'" color="#000000"><em>num</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027757">Specifies the number of pins defined in the </a><font size="2" face="'Courier New'" color="#000000">PINPROPERTIES</font> section. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027764"><font size="2" face="'Courier New'" color="#000000">PIN </font></a><font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027799">Specifies an I/O pin.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027800"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027805">Specifies a numerical or string value for a pin property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-23 </strong></font></strong>
|
|||
|
<strong><a name="961407">Pin Properties Statement</a></strong>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961408">PINPROPERTIES 3 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974311">- CORE/g76 CKA + PROPERTY CLOCK "FALLING" ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974304">- comp1 A + PROPERTY CLOCK "EXCLUDED" ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974305">- rp/regB clk + PROPERTY CLOCK "INSERTION" ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974315">END PINPROPERTIES</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="PropertyDefinitions"></a><a name="974308">Property Definitions</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961416">[PROPERTYDEFINITIONS <dd>[</a><font size="2" face="'Courier New'" color="#000000"><em>objectType propName propType </em></font>[RANGE <font color="#000000"><em>min max</em></font>] <dd> [<font size="2" face="'Courier New'" color="#000000"><em>value </em></font>|<font size="2" face="'Courier New'" color="#000000"><em> stringValue</em></font>]<dd>;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="962715">END PROPERTYDEFINITIONS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="961417">Lists all properties used in the design. You must define properties in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement before you can refer to them in other sections of the DEF file.</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="961443"><font size="2" face="'Courier New'" color="#000000"><em>objectType</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027838">Specifies the object type being defined. You can define properties for the following object types: </a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="431">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="214">
|
|||
|
<p><a name="1027841"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="217">
|
|||
|
<p><a name="1027843"><font size="2" face="'Courier New'" color="#000000">COMPONENT</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027845"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027847"><font size="2" face="'Courier New'" color="#000000">COMPONENTPIN</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027849"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027851"><font size="2" face="'Courier New'" color="#000000">DESIGN</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027853"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027855"><font size="2" face="'Courier New'" color="#000000">GROUP</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027857"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027859"><font size="2" face="'Courier New'" color="#000000">NET</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027861"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027863"><font size="2" face="'Courier New'" color="#000000">NONDEFAULTRULE</font></a> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027865"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027867"><font size="2" face="'Courier New'" color="#000000">REGION</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027869"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027871"><font size="2" face="'Courier New'" color="#000000">ROW</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027873"><font color="#000000"> </font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1027875"><font size="2" face="'Courier New'" color="#000000">SPECIALNET</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027876"><font size="2" face="'Courier New'" color="#000000"><em>propName</em></font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027877">Specifies a unique property name for the object type.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027884"><font size="2" face="'Courier New'" color="#000000"><em>propType</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028031">Specifies the property type for the object type. You can specify one of the following property types:</a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="576">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="216">
|
|||
|
<p><a name="1028034"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="360">
|
|||
|
<p><a name="1028036"><font size="2" face="'Courier New'" color="#000000">INTEGER</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1028038"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1028040"><font size="2" face="'Courier New'" color="#000000">REAL</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1028042"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1028044"><font size="2" face="'Courier New'" color="#000000">STRING</font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028045"><font size="2" face="'Courier New'" color="#000000">RANGE</font></a><font size="2" face="'Courier New'" color="#000000"><em> min max</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028046">Limits real number and integer property values to a specified range.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1027945"><font size="2" face="'Courier New'" color="#000000"><em>value</em></font></a><font size="2" face="'Courier New'" color="#000000"> | </font><font size="2" face="'Courier New'" color="#000000"><em>stringValue</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1027946">Assigns a numeric value or a name to a </a><font size="2" face="'Courier New'" color="#000000">DESIGN</font> object.<br><font color="#000000"><strong><br>Note:</strong></font> Assign values to properties for component pins in the <font size="2" face="'Courier New'" color="#000000">PINPROPERTIES</font> section. Assign values to other properties in the section of the LEF file that describes the object to which the property applies.</blockquote>
|
|||
|
<h3><a name="Regions"></a><a name="961487">Regions</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961489">[REGIONS </a><font size="2" face="'Courier New'" color="#000000"><em>numRegions </em></font>;<dd>[- <font size="2" face="'Courier New'" color="#000000"><em>regionName</em></font> {<font size="2" face="'Courier New'" color="#000000"><em>pt pt</em></font>} ...<dd> [+ TYPE {FENCE | GUIDE}]<dd> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...] ...<dd>;] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="963691">END REGIONS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="1028052">Defines regions in the design. A region is a physical area to which you can assign a component or group.</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028053"><font size="2" face="'Courier New'" color="#000000"><em>numRegions</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028062">Specifies the number of regions defined in the design. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028071"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028080">Specifies a numerical or string value for a region property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028089"><font size="2" face="'Courier New'" color="#000000"><em>regionName pt pt</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028096">Names and defines a region. You define a region as one or more rectangular areas specified by pairs of coordinate points. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028105"><font size="2" face="'Courier New'" color="#000000">TYPE {FENCE | GUIDE}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028114">Specifies the type of region. <br></a><font color="#000000"><em>Default:</em></font> All instances assigned to the region are placed inside the region boundaries, and other cells are also placed inside the region.<br><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="969622"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="96">
|
|||
|
<p><a name="969624"><font size="2" face="'Courier New'" color="#000000">FENCE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="360">
|
|||
|
<p><a name="969634">All instances assigned to this type of region must be exclusively placed inside the region boundaries. No other instances are allowed inside this region.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="969626"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="969628"><font size="2" face="'Courier New'" color="#000000">GUIDE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="969636">All instances assigned to this type of region should be placed inside this region; however, it is a preference, not a hard constraint. Other constraints, such as wire length and timing, can override this preference.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-24 </strong></font></strong>
|
|||
|
<strong><a name="961495">Regions Statement</a></strong>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961496">REGIONS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974433">- REGION1 ( 0 0 ) ( 1200 1200 ) </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974437">+ PROPERTY REGIONORDER 1 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<h3><a name="Rows"></a><a name="961504">Rows</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961505">[ROW</a><font size="2" face="'Courier New'" color="#000000"><em> rowName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>siteName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>origX</em></font> <font size="2" face="'Courier New'" color="#000000"><em>origY</em></font> <font size="2" face="'Courier New'" color="#000000"><em>siteOrient<dd></em></font> [DO <font size="2" face="'Courier New'" color="#000000"><em>numX</em></font> BY <font size="2" face="'Courier New'" color="#000000"><em>numY</em></font> [STEP <font size="2" face="'Courier New'" color="#000000"><em>stepX</em></font> <font size="2" face="'Courier New'" color="#000000"><em>stepY</em></font>]] <dd> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>propVal</em></font>} ...] ... ;] ...</font>
|
|||
|
</dl>
|
|||
|
<p><a name="1028145">Defines rows in the design.</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028146"><font size="2" face="'Courier New'" color="#000000">DO</font></a><font size="2" face="'Courier New'" color="#000000"><em> numX</em></font><font size="2" face="'Courier New'" color="#000000"> BY </font><font size="2" face="'Courier New'" color="#000000"><em>numY</em></font><font size="2" face="'Courier New'" color="#000000"> </font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028151">Specifies a repeating set of sites that create the row. You must specify one of the values as </a><font size="2" face="'Courier New'" color="#000000">1</font>. If you specify <font size="2" face="'Courier New'" color="#000000">1</font> for <font size="2" face="'Courier New'" color="#000000"><em>numY</em></font>, then the row is horizontal. If you specify <font size="2" face="'Courier New'" color="#000000">1</font> for <font size="2" face="'Courier New'" color="#000000"><em>numX</em></font>, the row is vertical.<br><font color="#000000"><em>Default:</em></font> Both <font size="2" face="'Courier New'" color="#000000"><em>numX</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>numY</em></font> equal <font size="2" face="'Courier New'" color="#000000">1</font>, creating a single site at this location (that is, a horizontal row with one site). </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028160"><font size="2" face="'Courier New'" color="#000000"><em>origX origY</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028167">Specifies the location of the first site in the row.<br>Type: Integer, specified in DEF database units </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028176"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028185">Specifies a numerical or string value for a row property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028194"><font size="2" face="'Courier New'" color="#000000"><em>rowName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028201">Specifies the row name for this row. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028210"><font size="2" face="'Courier New'" color="#000000"><em>siteName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028217">Specifies the LEF </a><font size="2" face="'Courier New'" color="#000000">SITE</font> to use for the row. A site is a placement location that can be used by LEF macros that match the same site. <font size="2" face="'Courier New'" color="#000000"><em>siteName</em></font> can also refer to a site with a row pattern in its definition, in which case, the row pattern indicates a repeating set of sites that are abutted. For more information, see <a href="../lefdefref/LEFSyntax.html#Site" target="external_window"><font color="#0000ff"><u>"Site"</u></font></a> and <a href="../lefdefref/LEFSyntax.html#Macro" target="external_window"><font color="#0000ff"><u>"Macro"</u></font></a> in "LEF Syntax."</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028226"><font size="2" face="'Courier New'" color="#000000"><em>siteOrient</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028233">Specifies the orientation of all sites in the row. </a><font size="2" face="'Courier New'" color="#000000"><em>siteOrient</em></font> must be one of <font size="2" face="'Courier New'" color="#000000">N</font>, <font size="2" face="'Courier New'" color="#000000">S</font>, <font size="2" face="'Courier New'" color="#000000">E</font>, <font size="2" face="'Courier New'" color="#000000">W</font>, <font size="2" face="'Courier New'" color="#000000">FN</font>, <font size="2" face="'Courier New'" color="#000000">FS</font>, <font size="2" face="'Courier New'" color="#000000">FE</font>, or <font size="2" face="'Courier New'" color="#000000">FW</font>. For more information on orientations, see <a href="#SpecifyingOrientation" title="4"><font color="Blue"><u>"Specifying Orientation"</u></font></a><a href="#SpecifyingOrientation" title="4"></a>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028242"><font size="2" face="'Courier New'" color="#000000">STEP </font></a><font size="2" face="'Courier New'" color="#000000"><em>stepX</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>stepY</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028249">Specifies the spacing between sites in horizontal and vertical rows. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-25 </strong></font></strong>
|
|||
|
<strong><a name="971388">Row Statements</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="982042">Assume </a><font size="2" face="'Courier New'" color="#000000">siteA</font> is 200 by 900 database units.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971392">ROW row_0 siteA 1000 1000 N ; #Horizontal row is one-site wide at 1000, 1000</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971393">ROW row_1 siteA 1000 1000 N DO 1 BY 1 ; #Same as row_0</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971402">ROW row_2 siteA 1000 1000 N DO 1 BY 1 STEP 200 0 ; #Same as row_0</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971407">ROW row_3 siteA 1000 1000 N DO 10 BY 1 ; #Horizontal row is 10 sites wide,</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="982631"> #so row width is 200*10=2000 dbu</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971419">ROW row_4 siteA 1000 1000 N DO 10 BY 1 STEP 200 0 ; #Same as row_3</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971424">ROW row_5 siteA 1000 1000 N DO 1 BY 10 ; #Vertical row is 10 sites high, so </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="982636"> #total row height is 900*10=9000 dbu</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="971429">ROW row_6 siteA 1000 1000 N DO 1 BY 10 STEP 0 900 ; #Same as row_5</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="ScanChains"></a><a name="961518">Scan Chains</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961520">[SCANCHAINS </a><font size="2" face="'Courier New'" color="#000000"><em>numScanChains</em></font> ;<dd>[- <font size="2" face="'Courier New'" color="#000000"><em>chainName</em></font> <dd> [+ PARTITION <font size="2" face="'Courier New'" color="#000000"><em>partitionName</em></font> [MAXBITS <font size="2" face="'Courier New'" color="#000000"><em>maxbits</em></font>]]<dd> [+ COMMONSCANPINS [ ( IN<em> </em><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font>)] [( OUT<em> </em><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font>) ] ]<dd> + START {<font size="2" face="'Courier New'" color="#000000"><em>fixedInComp</em></font> | PIN} [<font size="2" face="'Courier New'" color="#000000"><em>outPin</em></font>]<dd> [+ FLOATING <dd> {<font size="2" face="'Courier New'" color="#000000"><em>floatingComp</em></font> [ ( IN<em> </em><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font>) ] [ ( OUT<em> </em><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font>) ] [ ( BITS <font size="2" face="'Courier New'" color="#000000"><em>numBits</em></font> ) ]} ...]<dd> [+ ORDERED <dd> {<font size="2" face="'Courier New'" color="#000000"><em>fixedComp</em></font> [ ( IN <font size="2" face="'Courier New'" color="#000000"><em>pin </em></font>) ] [ ( OUT <font size="2" face="'Courier New'" color="#000000"><em>pin </em></font>) ] [ ( BITS <font size="2" face="'Courier New'" color="#000000"><em>numBits</em></font> ) ]} ...<dd> ] ... <dd> + STOP {<font size="2" face="'Courier New'" color="#000000"><em>fixedOutComp</em></font> | PIN} [<font size="2" face="'Courier New'" color="#000000"><em>inPin</em></font>] ]<br>;] ... </font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961521">END SCANCHAINS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="1029129">Defines scan chains in the design. Scan chains are a collection of cells that contain both scan-in and scan-out pins. These pins must be defined in the </a><font size="2" face="'Courier New'" color="#000000">PINS</font> section of the DEF file with <font size="2" face="'Courier New'" color="#000000">+ USE</font> <font size="2" face="'Courier New'" color="#000000">SCAN</font>.</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029140"><font size="2" face="'Courier New'" color="#000000"><em>chainName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029141">Specifies the name of the scan chain. Each statement in the </a><font size="2" face="'Courier New'" color="#000000">SCANCHAINS</font> section describes a single scan chain.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029184"><font size="2" face="'Courier New'" color="#000000">COMMONSCANPINS [( IN </font></a><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font><font size="2" face="'Courier New'" color="#000000">)] [( OUT </font><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font><font size="2" face="'Courier New'" color="#000000">)]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029157">Specifies the scan-in and scan-out pins for each component that does not have a scan-in and scan-out pin specified. You must specify either common scan-in and scan-out pins, or individual scan-in and scan-out pins for each component.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029166"><font size="2" face="'Courier New'" color="#000000">FLOATING</font></a> <font size="2" face="'Courier New'" color="#000000">{</font><font size="2" face="'Courier New'" color="#000000"><em>floatingComp</em></font> <font size="2" face="'Courier New'" color="#000000">[( IN </font><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font><font size="2" face="'Courier New'" color="#000000">)]</font> <font size="2" face="'Courier New'" color="#000000">[( OUT </font><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font><font size="2" face="'Courier New'" color="#000000">)]</font> <font size="2" face="'Courier New'" color="#000000">[( BITS </font><font size="2" face="'Courier New'" color="#000000"><em>numBits</em></font><font size="2" face="'Courier New'" color="#000000"> )]}</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029192">Specifies the floating list. You can have one or zero floating lists. If you specify a floating list, it must contain at least one component. </a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="1029195"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="144">
|
|||
|
<p><a name="1029197"><font size="2" face="'Courier New'" color="#000000"><em>floatingComp</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="312">
|
|||
|
<p><a name="1029199">Specifies the component name.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029201"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029203"><font size="2" face="'Courier New'" color="#000000">( IN </font></a><font size="2" face="'Courier New'" color="#000000"><em>pin</em></font><font size="2" face="'Courier New'" color="#000000"> ) </font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029205">Specifies the scan-in pin. If you do not specify a scan-in pin, the router uses the pin you specified for the common scan pins.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029207"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029209"><font size="2" face="'Courier New'" color="#000000">( OUT </font></a><font size="2" face="'Courier New'" color="#000000"><em>pin</em></font><font size="2" face="'Courier New'" color="#000000"> )</font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029211">Specifies the scan-out pin. If you do not specify a scan-out pin, the router uses the pin you specified for the common scan pins.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029213"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029215"><font size="2" face="'Courier New'" color="#000000">BITS</font></a> <font size="2" face="'Courier New'" color="#000000"><em>numBits</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029217">Specifies the sequential bit length of any chain element. This allows application tools that do not have library access to determine the sequential bit length contribution of any chain element to ensure the </a><font size="2" face="'Courier New'" color="#000000">MAXBITS</font> constraints are not violated for chains in a given partition. You can specify <font size="2" face="'Courier New'" color="#000000">0</font> to indicate when elements are nonsequential.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">1</font> <br><font color="#000000"><em>Type:</em></font> Integer</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<blockquote><a name="1029218"><font color="#000000"><strong>Note: </strong></font></a>Scan chain reordering commands can use floating components in any order to synthesize a scan chain. Floating components cannot be shared with other scan chains unless they are in the same <font size="2" face="'Courier New'" color="#000000">PARTITION</font>. Each component should only be used once in synthesizing a scan chain.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029225"><font size="2" face="'Courier New'" color="#000000">MAXBITS </font></a><font size="2" face="'Courier New'" color="#000000"><em>maxBits</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029250">When specified with chains that include the </a><font size="2" face="'Courier New'" color="#000000">PARTITION</font> keyword, sets the maximum bit length (flip-flop bit count) that the chain can grow to in the partition. <br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font> (tool-specific defaults apply, which is probably the number of bits in each chain)<br><font color="#000000"><em>Type:</em></font> Integer<br><font color="#000000"><em>Value:</em></font> Specify a value that is at least as large as the size of the current chain.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029292"><font size="2" face="'Courier New'" color="#000000"><em>numScanChains</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029265">Specifies the number of scan chains to synthesize. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029274"><font size="2" face="'Courier New'" color="#000000">ORDERED {</font></a><font size="2" face="'Courier New'" color="#000000"><em>fixedComp</em></font> <font size="2" face="'Courier New'" color="#000000">[( IN </font><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font><font size="2" face="'Courier New'" color="#000000">)] [( OUT </font><font size="2" face="'Courier New'" color="#000000"><em>pin </em></font><font size="2" face="'Courier New'" color="#000000">)] [( BITS </font><font size="2" face="'Courier New'" color="#000000"><em>numBits</em></font><font size="2" face="'Courier New'" color="#000000"> )]}</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029300">Specifies an ordered list. You can specify none or several ordered lists. If you specify an ordered list, you must specify at least two fixed components for each ordered list. </a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="1029303"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="144">
|
|||
|
<p><a name="1029305"><font size="2" face="'Courier New'" color="#000000"><em>fixedComp</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="312">
|
|||
|
<p><a name="1029307">Specifies the component name.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029309"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029311"><font size="2" face="'Courier New'" color="#000000">( IN</font></a> <font size="2" face="'Courier New'" color="#000000"><em>pin</em></font> <font size="2" face="'Courier New'" color="#000000">) </font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029313">Specifies the scan-in pin. If you do not specify a scan-in pin, the router uses the pin you specified for the common scan pins.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029315"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029317"><font size="2" face="'Courier New'" color="#000000">(</font></a> <font size="2" face="'Courier New'" color="#000000">OUT</font> <font size="2" face="'Courier New'" color="#000000"><em>pin</em></font><font size="2" face="'Courier New'" color="#000000"> )</font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029319">Specifies the scan-out pin. If you do not specify a scan-out pin, the router uses the pin you specified for the common scan pins.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029321"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029323"><font size="2" face="'Courier New'" color="#000000">BITS</font></a> <font size="2" face="'Courier New'" color="#000000"><em>numBits</em></font></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029325">Specifies the sequential bit length of any chain element. This allows application tools that do not have library access to determine the sequential bit length contribution of any chain element to ensure the </a><font size="2" face="'Courier New'" color="#000000">MAXBITS</font> constraints are not violated for chains in a given partition. You can specify <font size="2" face="'Courier New'" color="#000000">0</font> to indicate when elements are nonsequential.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">1</font> <br><font color="#000000"><em>Type:</em></font> Integer</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<blockquote><a name="1029326"><font color="#000000"><strong>Note:</strong></font></a> Scan chain reordering commands should synthesize these components in the same order that you specify them in the list. Ordered components cannot be shared with other scan chains unless they are in the same <font size="2" face="'Courier New'" color="#000000">PARTITION</font>. Each component should only be used once in synthesizing a scan chain. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029379"><font size="2" face="'Courier New'" color="#000000">PARTITION </font></a><font size="2" face="'Courier New'" color="#000000"><em>partitionName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029342">Specifies a partition name. This statement allows reordering tools to determine inter-chain compatibility for element swapping (both </a><font size="2" face="'Courier New'" color="#000000">FLOATING</font> elements and <font size="2" face="'Courier New'" color="#000000">ORDERED</font> elements). It associates each chain with a partition group, which determines their compatibility for repartitioning by swapping elements between them. <br><br>Chains with matching <font size="2" face="'Courier New'" color="#000000">PARTITION</font> names constitute a swap-compatible group. You can change the length of chains included in the same partition (up to the <font size="2" face="'Courier New'" color="#000000">MAXBITS</font> constraint on the chain), but you cannot eliminate chains or add new ones; the number of chains in the partition is always preserved.<br><br>If you do not specify the <font size="2" face="'Courier New'" color="#000000">PARTITION</font> keyword, chains are assumed to be in their own single partition, and reordering can be performed only within that chain.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-26 </strong></font></strong>
|
|||
|
<strong><a name="970580">Partition Scanchain </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="970581">In the following definition, chain </a><font size="2" face="'Courier New'" color="#000000">chain1_clock1</font> is specified without a <font size="2" face="'Courier New'" color="#000000">MAXBITS</font> keyword. The maximum allowed bit length of the chain is assumed to be the sequential length of the longest chain in any <font size="2" face="'Courier New'" color="#000000">clock1</font> partition.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970582">SCANCHAINS 77 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974452">- chain1_clock1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974462">+ PARTITION clock1</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974463">+ START block1/bsr_reg_0 Q</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974464">+ FLOATING</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974465"> block1/pgm_cgm_en_reg_reg ( IN SD ) ( OUT QZ )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974466"> ...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974467"> block1/start_reset_dd_reg ( IN SD ) ( OUT QZ )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974468">+ STOP block1/start_reset_d_reg SD ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><a name="974469">In the following definition, chain </a><font size="2" face="'Courier New'" color="#000000">chain2_clock2</font> is specified with a <font size="2" face="'Courier New'" color="#000000">PARTITION</font> statement that associates it with <font size="2" face="'Courier New'" color="#000000">clock2</font>, and a maximum bit length of <font size="2" face="'Courier New'" color="#000000">1000</font>. The third element statement in the <font size="2" face="'Courier New'" color="#000000">FLOATING</font> list is a scannable register bank that has a sequential bit length of <font size="2" face="'Courier New'" color="#000000">4</font>. The <font size="2" face="'Courier New'" color="#000000">ORDERED</font> list element statements have total bit lengths of <font size="2" face="'Courier New'" color="#000000">1</font> each because the muxes are specified with a maximum bit length of <font size="2" face="'Courier New'" color="#000000">0</font>.</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970584">- chain2_clock2 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974500">+ PARTITION clock2</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974506"> MAXBITS 1000</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974507">+ START block1/current_state_reg_0_QZ</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974512">+ FLOATING </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974513"> block1/port2_phy_addr_reg_0_ ( IN SD ) ( OUT QZ )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974514"> block1/port2_phy_addr_reg_4_ ( IN SD ) ( OUT QZ )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974515"> block1/port3_intfc ( IN SD ) ( OUT MSB ) ( BITS 4 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974516"> ...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974517">+ ORDERED </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974518"> block1/mux1 ( IN A ) ( OUT X ) ( BITS 0 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974519"> block1/ff1 ( IN SD ) ( OUT Q )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974520">+ ORDERED </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974521"> block1/mux2 ( IN A ) ( OUT X ) ( BITS 0 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974522"> block1/ff2 ( IN SD ) ( OUT Q ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><a name="970585">In the following definition, chain </a><font size="2" face="'Courier New'" color="#000000">chain3_clock2</font> is also specified with a <font size="2" face="'Courier New'" color="#000000">PARTITION</font> statement that associates it with <font size="2" face="'Courier New'" color="#000000">clock2</font>. This means it is swap-compatible with <font size="2" face="'Courier New'" color="#000000">chain2_clock2</font>. The specified maximum bit length for this chain is <font size="2" face="'Courier New'" color="#000000">1200</font>.</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970586">- chain3_clock2 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974526">+ PARTITION clock2 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974530"> MAXBITS 1200</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974531">+ START block1/LV_testpoint_0_Q_reg Q</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974532">+ FLOATING </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974533"> block1/LV_testpoint_0_Q_reg ( IN SE ) ( OUT Q )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974534"> block1/tm_state_reg_1_ (IN SD ) ( OUT QZ )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974535"> ...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><a name="970587">In the following definition, chain </a><font size="2" face="'Courier New'" color="#000000">chain4_clock3</font> is specified with a <font size="2" face="'Courier New'" color="#000000">PARTITION</font> statement that associates it with <font size="2" face="'Courier New'" color="#000000">clock3</font>. The second element statement in the <font size="2" face="'Courier New'" color="#000000">FLOATING</font> list is a scannable register bank that has a sequential bit length of <font size="2" face="'Courier New'" color="#000000">8</font>, and default pins. The <font size="2" face="'Courier New'" color="#000000">ORDERED</font> list element statements have total bit lengths of <font size="2" face="'Courier New'" color="#000000">2</font> each because the mux is specified with a maximum bit length of <font size="2" face="'Courier New'" color="#000000">0</font>.</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970588">- chain4_clock3</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974539">+ PARTITION clock3</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974543">+ START block1/prescaler_IO/lfsr_reg1</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974544">+ FLOATING </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974545"> block1/dp1_timers</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974546"> block1/bus8 ( BITS 8 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974547"> ...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974548">+ ORDERED </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974549"> block1/ds1/ff1 ( IN SD ) ( OUT Q )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974550"> block1/ds1/mux1 ( IN B ) ( OUT Y ) ( BITS 0 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974551"> block1/ds1/ff2 ( IN SD ) ( OUT Q ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974552"> ...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="961525"><font size="2" face="'Courier New'" color="#000000">START</font></a> <font size="2" face="'Courier New'" color="#000000">{</font><font size="2" face="'Courier New'" color="#000000"><em>fixedInComp</em></font><font size="2" face="'Courier New'" color="#000000"> | PIN} [</font><font size="2" face="'Courier New'" color="#000000"><em>outPin</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029392">Specifies the start point of the scan chain. You must specify this point. The starting point can be either a component, </a><font size="2" face="'Courier New'" color="#000000"><em>fixedInComp</em></font>, or an I/O pin, <font size="2" face="'Courier New'" color="#000000">PIN</font>. If you do not specify <font size="2" face="'Courier New'" color="#000000"><em>outPin</em></font>, the router uses the pin specified for common scan pins.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029401"><font size="2" face="'Courier New'" color="#000000">STOP</font></a> {<font size="2" face="'Courier New'" color="#000000"><em>fixedOutComp</em></font><font size="2" face="'Courier New'" color="#000000"> | PIN} [</font><font size="2" face="'Courier New'" color="#000000"><em>inPin</em></font><font size="2" face="'Courier New'" color="#000000">]</font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029410">Specifies the endpoint of the scan chain. You must specify this point. The stop point can be either a component, </a><font size="2" face="'Courier New'" color="#000000"><em>fixedOutComp</em></font>, or an I/O pin, <font size="2" face="'Courier New'" color="#000000">PIN</font>. If you do not specify <font size="2" face="'Courier New'" color="#000000"><em>inPin</em></font>, the router uses the pin specified for common scan pins.</blockquote>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="961538">Scan Chain Rules</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="968662">Note the following when defining scan chains.</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="961540">Each scan-in/scan-out pin pair of adjacent components in the ordered list cannot have different owning nets. </a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="961542">No net can connect a scan-out pin of one component to the scan-in pin of a component in a different scan chain.</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="961544">For incremental DEF, if you have a </a><font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> section and a <font size="2" face="'Courier New'" color="#000000">SCANCHAINS</font> section in the same DEF file, the <font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> section must appear before the <font size="2" face="'Courier New'" color="#000000">SCANCHAINS</font> section. If the <font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> section and <font size="2" face="'Courier New'" color="#000000">SCANCHAINS</font> section are in different DEF files, you must read the <font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> section or load the database before reading the <font size="2" face="'Courier New'" color="#000000">SCANCHAINS</font> section.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-27 </strong></font></strong>
|
|||
|
<strong><a name="961545">Scan Chain Statements</a></strong>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="969806">Nets 100; #Number of nets resulting after scan chain synthesis</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974559">- SCAN-1 ( C1 SO + SYNTHESIZED ) </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974563"> ( C4 SI + SYNTHESIZED ) + SOURCE TEST ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974564">- ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974565">- N1 ( C3 SO + SYNTHESIZED ) <br> ( C11 SI + SYNTHESIZED ) ( AND1 A ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974567">- ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="966062">END NETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="965711">SCANCHAINS 2; #Specified before scan chain ordering</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974574">- S1 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974581">+ COMMONSCANPINS ( IN SI ) ( OUT SO )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974585">+ START SIPAD OUT</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974586">+ FLOATING C1 C2 ( IN D ) ( OUT Q ) C3 C4 C5...CN</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974587">+ ORDERED A1 ( OUT Q ) A2 ( IN D ) ( OUT Q ) ...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974588"> AM ( N D )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974593">+ ORDERED B1 B2 ... BL</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974594">+ STOP SOPAD IN ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974595">- S2 ... ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="966066">END SCANCHAINS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="965713">SCANCHAINS 2 ; #Specified after scan chain ordering</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974602">- S1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974606">+ START SIPAD OUT</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974619">+ FLOATING C1 ( IN SI ) ( OUT SO ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974620"> C2 ( IN D ) ( OUT Q ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974621"> C3 ( IN SI ( OUT SO ) ... CN ( IN SI ) ( OUT SO )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974622">+ ORDERED A1 ( IN SI ) ( OUT Q ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974623"> A2 ( IN D ) ( OUT Q ) ... AM ( IN D ) ( OUT SO )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974624">+ ORDERED B1 ( IN SI ) ( OUT SO ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974625"> B2 ( IN SI ) ( OUT SO ) ... </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="974626">+ STOP SOPAD IN ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974627">- S2 ... ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="965714">END SCANCHAINS</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="Slots"></a><a name="961557">Slots</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961558">[SLOTS </a><font size="2" face="'Courier New'" color="#000000"><em>numSlots</em></font> ; <dd>[- LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <dd> {RECT <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> | POLYGON <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ... } ...<dd>;] ... </font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="963844">END SLOTS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="961559">Defines the rectangular shapes that form the slotting of the wires in the design. Each slot is defined as an individual rectangle.</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029430"><font size="2" face="'Courier New'" color="#000000">LAYER</font></a> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029431">Specifies the layer on which to create slots. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029436"><font size="2" face="'Courier New'" color="#000000"><em>numSlots</em></font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029443">Specifies the number of </a><font size="2" face="'Courier New'" color="#000000">LAYER</font> statements in the <font size="2" face="'Courier New'" color="#000000">SLOTS</font> statement, <font color="#000000"><em>not</em></font> the number of rectangles.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029452"><font size="2" face="'Courier New'" color="#000000">POLYGON </font></a><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029459">Specifies a sequence of at least three points to generate a polygon geometry. The polygon edges must be parallel to the x axis, the y axis, or at a 45-degree angle. Each </a><font size="2" face="'Courier New'" color="#000000">POLYGON</font> statement defines a polygon generated by connecting each successive point, and then the first and last points. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value from the last point. <br><font color="#000000"><em>Type:</em></font> DEF database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029468"><font size="2" face="'Courier New'" color="#000000">RECT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>pt pt</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029475">Specifies the lower left and upper right corner coordinates of the slot geometry. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-28 </strong></font></strong>
|
|||
|
<strong><a name="961563">Slots Statements</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="966069">The following statement defines slots for layers </a><font size="2" face="'Courier New'" color="#000000">MET1</font> and <font size="2" face="'Courier New'" color="#000000">MET2</font>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961564">SLOTS 2 ; </a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973988">- LAYER MET1 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973992"> RECT ( 1000 2000 ) ( 1500 4000 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974002"> RECT ( 2000 2000 ) ( 2500 4000 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974003"> RECT ( 3000 2000 ) ( 3500 4000 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974004">- LAYER MET2 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974005"> RECT ( 1000 2000 ) ( 1500 4000 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974006"> RECT ( 1000 4500 ) ( 1500 6500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974007"> RECT ( 1000 7000 ) ( 1500 9000 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974008"> RECT ( 1000 9500 ) ( 1500 11500 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="963858">END SLOTS</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="973966">The following </a><font size="2" face="'Courier New'" color="#000000">SLOTS</font> statement defines two rectangles and one polygon slot geometries:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973967">SLOTS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973974">- LAYER metal1 </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973978">RECT ( 100 200 ) ( 150 400 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973982">POLYGON ( 100 100 ) ( 200 200 ) ( 300 200 ) ( 300 100 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="973983">RECT ( 300 200 ) ( 350 400 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973984">END SLOTS</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="SpecialNets"></a><a name="961647">Special Nets</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="963864">[SPECIALNETS </a><font size="2" face="'Courier New'" color="#000000"><em>numNets</em></font> ;<dd>[- <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font> <dd> [ ( {<font size="2" face="'Courier New'" color="#000000"><em>compName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> | PIN <font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font>} [+ SYNTHESIZED] ) ] ...<dd> [+ VOLTAGE <font size="2" face="'Courier New'" color="#000000"><em>volts</em></font>]<dd> [<font size="2" face="'Courier New'" color="#000000"><em>specialWiring</em></font>] ...<dd> [+ SOURCE {DIST | NETLIST | TIMING | USER}]<dd> [+ FIXEDBUMP]<dd> [+ ORIGINAL <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font>]<dd> [+ USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}]<dd> [+ PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}]<dd> [+ ESTCAP <font size="2" face="'Courier New'" color="#000000"><em>wireCapacitance</em></font>]<dd> [+ WEIGHT <font size="2" face="'Courier New'" color="#000000"><em>weight</em></font>] <dd> [+ PROPERTY {<font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font>} ...] ...<dd>;] ... </font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="963867">END SPECIALNETS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="963896">Defines netlist connectivity and special-routes for nets containing special pins. Special-routes are created by "special routers" or "manually", and should not be modified by a signal router. Special routes are normally used for power-routing, fixed clock-mesh routing, high-speed buses, critical analog routes, or flip-chip routing on the top-metal layer to bumps.</a></p>
|
|||
|
<p><a name="963899">Input parameters for a net can appear in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> section or the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> section. In case of conflicting values for an argument, the DEF reader uses the last value encountered for the argument. <font size="2" face="'Courier New'" color="#000000">NETS</font> and <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statements can appear more than once in a DEF file. If a particular net has mixed wiring or pins, specify the special wiring and pins first.</p>
|
|||
|
<p><a name="963900">You can also specify the netlist in the </a><font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> statement. If the netlist is specified in both <font size="2" face="'Courier New'" color="#000000">NETS</font> and <font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> statements, and if the specifications are not consistent, an error message appears. On output, the writer outputs the netlist in either format, depending on the command arguments of the output command.</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="966777"><font size="2" face="'Courier New'" color="#000000"><em>compNamePattern pinName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029490">Specifies the name of a special pin on the net and its corresponding component. You can use a </a><font size="2" face="'Courier New'" color="#000000"><em>compNamePattern</em></font> to specify a set of component names. During evaluation of the pattern match, components that match the pattern but do not have a pin named <font color="#000000"><em>pinName</em></font> are ignored. The pattern match character is <font size="2" face="'Courier New'" color="#000000">*</font> (asterisk). For example, a component name of <font size="2" face="'Courier New'" color="#000000">abc/def</font> would be matched by <font size="2" face="'Courier New'" color="#000000">a*</font>, <font size="2" face="'Courier New'" color="#000000">abc/d*</font>, or <font size="2" face="'Courier New'" color="#000000">abc/def</font>. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029499"><font size="2" face="'Courier New'" color="#000000">ESTCAP</font></a> <font size="2" face="'Courier New'" color="#000000"><em>wireCapacitance</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029511">Specifies the estimated wire capacitance for the net. </a><font size="2" face="'Courier New'" color="#000000">ESTCAP</font> can be loaded with simulation data to generate net constraints for timing-driven layout. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029520"><font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029527">Indicates that the bump net cannot be reassigned to a different pin. <br><br>It is legal to have a pin without geometry to indicate a logical connection and to have a net that connects that pin to two other instance pins that have geometry. Area I/Os have a logical pin that is connected to a bump and an input driver cell. The bump and driver cell have pin geometries (and, therefore, should be routed and extracted), but the logical pin is the external pin name without geometry (typically the Verilog pin name for the chip).<br><br>Bump nets also can be specified in the </a><font size="2" face="'Courier New'" color="#000000">NETS</font> statement. If a net name appears in both the <font size="2" face="'Courier New'" color="#000000">NETS</font> and <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statements, the <font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font> keyword also should appear in both statements. However, the value only exists once within a given application's database for the net name.<br><br>Because DEF is often used incrementally, the last value read in is used. Therefore, in a typical DEF file, if the same net appears in both statements, the <font size="2" face="'Courier New'" color="#000000">FIXEDBUMP</font> keyword (or lack of it) in the <font size="2" face="'Courier New'" color="#000000">NETS</font> statement is the value that is used because the <font size="2" face="'Courier New'" color="#000000">NETS</font> statement is defined after the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-29 </strong></font></strong>
|
|||
|
<strong><a name="970607">Fixed Bump </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="970608">The following example describes a logical pin that is connected to a bump and an input driver cell. The I/O driver cell and bump cells are specified in the </a><font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> statement. Bump cells are usually placed with + <font size="2" face="'Courier New'" color="#000000">COVER</font> placement status so they cannot be moved manually by mistake.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970609">COMPONENTS 200</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974707">- driver1 drivercell + PLACED ( 100 100 ) N ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974711">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970610">- bumpa1 bumpcell + COVER ( 100 100 ) N ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974718">- bumpa2 bumpcell + COVER ( 200 100 ) N ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="970611">The pin is assigned in the </a><font size="2" face="'Courier New'" color="#000000">PIN</font> statement.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970612">PINS 100</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974722">- n1 + NET n1 + SPECIAL + DIRECTION INPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974726">- n2 + NET n2 + SPECIAL + DIRECTION INPUT ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="970613">In the </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement, the net <font size="2" face="'Courier New'" color="#000000">n1</font> is assigned to <font size="2" face="'Courier New'" color="#000000">bumpa1</font> and cannot be reassigned. Note that another net <font size="2" face="'Courier New'" color="#000000">n2</font> is assigned to <font size="2" face="'Courier New'" color="#000000">bumpa2</font>; however, I/O optimization commands are allowed to reassign <font size="2" face="'Courier New'" color="#000000">bumpa2</font> to a different net.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="970614">SPECIALNETS 100</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974727">- n1 ( driver1 in ) ( bumpa1 bumpin ) + FIXEDBUMP ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974739">- n2 ( driver2 in ) ( bumpa2 bumpin ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="963885"><font size="2" face="'Courier New'" color="#000000"><em>netName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029580">Specifies the name of the net. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029632"><font size="2" face="'Courier New'" color="#000000">ORIGINAL</font></a> <font size="2" face="'Courier New'" color="#000000"><em>netName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029633">Specifies the original net partitioned to create multiple nets, including the current net.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029653"><font size="2" face="'Courier New'" color="#000000">PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029703">Specifies the routing pattern used for the net. <br></a><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">STEINER</font> <br><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="1029706"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="156">
|
|||
|
<p><a name="1029708"><font size="2" face="'Courier New'" color="#000000">BALANCED</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="300">
|
|||
|
<p><a name="1029710">Used to minimize skews in timing delays for clock nets.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029712"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029714"><font size="2" face="'Courier New'" color="#000000">STEINER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029716">Used to minimize net length.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029718"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029720"><font size="2" face="'Courier New'" color="#000000">TRUNK</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029722">Used to minimize delay for global nets.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029724"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029726"><font size="2" face="'Courier New'" color="#000000">WIREDLOGIC</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1029728">Used in ECL designs to connect output and mustjoin pins before routing to the remaining pins.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029729"><font size="2" face="'Courier New'" color="#000000">PIN </font></a><font size="2" face="'Courier New'" color="#000000"><em>pinName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029735">Specifies the name of an I/O pin on a net or a subnet. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029744"><font size="2" face="'Courier New'" color="#000000">PROPERTY </font></a><font size="2" face="'Courier New'" color="#000000"><em>propName propVal</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029753">Specifies a numerical or string value for a net property defined in the </a><font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. The <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> you specify must match the <font size="2" face="'Courier New'" color="#000000"><em>propName</em></font> listed in the <font size="2" face="'Courier New'" color="#000000">PROPERTYDEFINITIONS</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029765"><font size="2" face="'Courier New'" color="#000000"><em>specialWiring</em></font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029772">Specifies the special wiring for the net. For syntax information, see </a><a href="#SpecialWiringStatement" title="4"><font color="Blue"><u>"Special Wiring Statement"</u></font></a><a href="#SpecialWiringStatement" title="4"></a>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029781"><font size="2" face="'Courier New'" color="#000000">SOURCE {DIST | NETLIST | TIMING | USER}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029790">Specifies how the net is created. The value of this field is preserved when input to the DEF reader. </a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="970940"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="100">
|
|||
|
<p><a name="970942"><font size="2" face="'Courier New'" color="#000000">DIST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="356">
|
|||
|
<p><a name="970944">Net is the result of adding physical components (that is, components that only connect to power or ground nets), such as filler cells, well-taps, tie-high and tie-low cells, and decoupling caps.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970946"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970948"><font size="2" face="'Courier New'" color="#000000">NETLIST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970950">Net is defined in the original netlist. This is the default value, and is not normally written out in the DEF file. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970952"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970954"><font size="2" face="'Courier New'" color="#000000">TEST</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970956">Net is part of a scanchain. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970958"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970960"><font size="2" face="'Courier New'" color="#000000">TIMING</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970962">Net represents a logical rather than physical change to netlist, and is used typically as a buffer for a clock-tree, or to improve timing on long nets.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970964"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970966"><font size="2" face="'Courier New'" color="#000000">USER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="970968">Net is user defined. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="970899"><font size="2" face="'Courier New'" color="#000000">SYNTHESIZED</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029803">Used by some tools to indicate that the pin is part of a synthesized scan chain.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029816"><font size="2" face="'Courier New'" color="#000000">USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029836">Specifies how the net is used. <br>Value: Specify one of the following: </a></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="201">
|
|||
|
<p><a name="966842"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="103">
|
|||
|
<p><a name="966844"><font size="2" face="'Courier New'" color="#000000">ANALOG</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="344">
|
|||
|
<p><a name="966846">Used as an analog signal net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966848"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966850"><font size="2" face="'Courier New'" color="#000000">CLOCK</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966852">Used as a clock net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966854"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966856"><font size="2" face="'Courier New'" color="#000000">GROUND</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966858">Used as a ground net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966884"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966886"><font size="2" face="'Courier New'" color="#000000">POWER</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966888">Used as a power net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966878"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966880"><font size="2" face="'Courier New'" color="#000000">RESET</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966882">Used as a reset net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966872"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966874"><font size="2" face="'Courier New'" color="#000000">SCAN</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966876">Used as a scan net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966866"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966868"><font size="2" face="'Courier New'" color="#000000">SIGNAL</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966870">Used as a digital signal net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966860"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966862"><font size="2" face="'Courier New'" color="#000000">TIEOFF</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="966864">Used as a tie-high or tie-low net.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="964000"><font size="2" face="'Courier New'" color="#000000">VOLTAGE </font></a><font size="2" face="'Courier New'" color="#000000"><em>volts</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029881">Specifies the voltage for the net, as an integer in units of .001 volts. For example, </a><font size="2" face="'Courier New'" color="#000000">VOLTAGE</font> <font size="2" face="'Courier New'" color="#000000">1500</font> in DEF is equal to 1.5 V.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029882"><font size="2" face="'Courier New'" color="#000000">WEIGHT</font></a> <font size="2" face="'Courier New'" color="#000000"><em>weight</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029883">Specifies the weight of the net. Automatic layout tools attempt to shorten the lengths of nets with high weights. Do not specify a net weight larger than 10, or assign weights to more than 3 percent of the nets in a design. <br></a><font color="#000000"><strong><br>Note: </strong></font>The net constraints method of controlling net length is preferred over using net weights. </blockquote>
|
|||
|
<h4><a name="SpecialWiringStatement"></a><a name="999781">Special Wiring Statement</a></h4>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="999782"> [[+ COVER | + FIXED | + ROUTED | + SHIELD </a><font size="2" face="'Courier New'" color="#000000"><em>shieldNetName</em></font>]<dd> [+ SHAPE <font size="2" face="'Courier New'" color="#000000"><em>shapeType</em></font>] [+ MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>]<dd> + POLYGON <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ...<dd> | + RECT <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <dd> | + VIA <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> [<font size="2" face="'Courier New'" color="#000000"><em>orient</em></font>] pt ...<dd>|{+ COVER | + FIXED | + ROUTED | + SHIELD <font size="2" face="'Courier New'" color="#000000"><em>shieldNetName</em></font>}<dd><font size="2" face="'Courier New'" color="#000000"><em> layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> <dd> [+ SHAPE <dd> {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN <dd> | IOWIRE | COREWIRE | BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE <dd> | FILLWIREOPC | DRCFILL}]<br> [+ STYLE <font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font>]<br> <font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font> <br><font size="2" face="'Courier New'" color="#000000"><em> </em></font>[NEW <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> <br> [+ SHAPE <br> {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN <br> | IOWIRE | COREWIRE | BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE <br> | FILLWIREOPC | DRCFILL}]<br> [+ STYLE <font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font>]<br> <font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font> <br> ] ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="972909"> ] ...</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="961721">Defines the wiring for both routed and shielded nets</a>. </p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="965420"><font size="2" face="'Courier New'" color="#000000">COVER</font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029911">Specifies that the wiring cannot be moved by either automatic layout or interactive commands. If no wiring is specified for a particular net, the net is unrouted. If you specify </a><font size="2" face="'Courier New'" color="#000000">COVER</font>, you must also specify <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>width</em></font>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029924"><font size="2" face="'Courier New'" color="#000000">FIXED</font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029931">Specifies that the wiring cannot be moved by automatic layout, but can be changed by interactive commands. If no wiring is specified for a particular net, the net is unrouted. If you specify </a><font size="2" face="'Courier New'" color="#000000">FIXED</font>, you must also specify <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>width</em></font>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029940"><font size="2" face="'Courier New'" color="#000000"><em>layerName routeWidth</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029971">Specifies the width for wires on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. Normally, only routing layers use this syntax, but it is legal for any layer (cut layer shapes or other layers like masterslice layers normally use the <font size="2" face="'Courier New'" color="#000000">RECT</font> or <font size="2" face="'Courier New'" color="#000000">POLYGON</font> statements). For more information, see <a href="#1016714" title="4"><font color="Blue"><u>"Defining Routing Points"</u></font></a><a href="#1016714" title="4"></a>.<br><br>Vias do not change the route width. When a via is used in special wiring, the previously established <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> is used for the next wire in the new layer. To change the <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font>, a new path must be specified using <font size="2" face="'Courier New'" color="#000000">NEW</font> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font color="#000000"><em> </em></font><font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font>.<br><br>Many applications require <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> to be an even multiple of the manufacturing grid in order to be fabricated, and to keep the center line on the manufacturing grid.<br><font color="#000000"><em>Type:</em></font> Integer, specified in database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1030031"><font size="2" face="'Courier New'" color="#000000">NEW </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName routewidth</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1030019">Indicates a new wire segment (that is, that there is no wire segment between the last specified coordinate and the next coordinate) on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>, and specifies the width for the wire. Noncontinuous paths can be defined in this manner. For more information, see <a href="#1016714" title="4"><font color="Blue"><u>"Defining Routing Points"</u></font></a><a href="#1016714" title="4"></a>.<br><font color="#000000"><em>Type:</em></font> Integer, specified in database units </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1030040"><font size="2" face="'Courier New'" color="#000000">POLYGON </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1030049">Specifies a sequence of at least three points to generate a polygon geometry on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. The polygon edges must be parallel to the x axis, the y axis, or at a 45-degree angle. Each polygon statement defines a polygon generated by connecting each successive point, then connecting the first and last points. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value from the last point. <br><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>x y</em></font>) Integer, specified in database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1030058"><font size="2" face="'Courier New'" color="#000000">RECT </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1030067">Specifies a rectangle on layer </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. The two points define opposite corners of the rectangle. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. You cannot define the same <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> values for both points (that is, a zero-area rectangle is not legal). <br><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>x y</em></font>) Integer, specified in database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1030076"><font size="2" face="'Courier New'" color="#000000">ROUTED </font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1030083">Specifies that the wiring can be moved by automatic layout tools. If no wiring is specified for a particular net, the net is unrouted. If you specify </a><font size="2" face="'Courier New'" color="#000000">ROUTED</font>, you must also specify <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> <font size="2" face="'Courier New'" color="#000000"><em>width</em></font>. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1030092"><font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font></a> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1030099">Defines the center line coordinates of the route on </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font>. For information on using routing points, see <a href="#1016714" title="4"><font color="Blue"><u>"Defining Routing Points"</u></font></a><a href="#1016714" title="4"></a>. For an example of special wiring with routing points, see <a href="#979804" title="4"><font color="Blue"><u>Example 4-31</u></font></a><a href="#979804" title="4"></a>. <br><br>The <font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font> syntax is defined as follows:<br><br><font size="2" face="'Courier New'" color="#000000">( </font><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000"> [</font><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font><font size="2" face="'Courier New'" color="#000000">]) <br> { [MASK </font><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font><font size="2" face="'Courier New'" color="#000000">] ( </font><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000"> [</font><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font><font size="2" face="'Courier New'" color="#000000">]) <br> | [MASK </font><font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font><font size="2" face="'Courier New'" color="#000000">] </font><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font><font size="2" face="'Courier New'" color="#000000"> [</font><font size="2" face="'Courier New'" color="#000000"><em>orient</em></font><font size="2" face="'Courier New'" color="#000000">]<br> [DO </font><font size="2" face="'Courier New'" color="#000000"><em>numX</em></font><font size="2" face="'Courier New'" color="#000000"> BY </font><font size="2" face="'Courier New'" color="#000000"><em>numY</em></font><font size="2" face="'Courier New'" color="#000000"> STEP </font><font size="2" face="'Courier New'" color="#000000"><em>stepX</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>stepY</em></font><font size="2" face="'Courier New'" color="#000000">]<br> } ... </font></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="649">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="198">
|
|||
|
<p><a name="1000445"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top" width="451">
|
|||
|
<p><a name="1000447"><font size="2" face="'Courier New'" color="#000000">DO </font></a><font size="2" face="'Courier New'" color="#000000"><em>numx</em></font><font size="2" face="'Courier New'" color="#000000"> BY </font><font size="2" face="'Courier New'" color="#000000"><em>numY</em></font><font size="2" face="'Courier New'" color="#000000"> STEP </font><font size="2" face="'Courier New'" color="#000000"><em>stepX</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>stepY</em></font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="198">
|
|||
|
<p><a name="1000451"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="126">
|
|||
|
<p><a name="1000453"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="324">
|
|||
|
<p><a name="1000455">Creates an array of power vias of the via specified with </a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font>. </p>
|
|||
|
<p><a name="1000456"><font size="2" face="'Courier New'" color="#000000"><em>numX</em></font></a> and <font size="2" face="'Courier New'" color="#000000"><em>numY</em></font> specify the number of vias to create, in the x and y directions. Do not specify <font size="2" face="'Courier New'" color="#000000">0</font> as a value.<br><font color="#000000"><em>Type:</em></font> Integer</p>
|
|||
|
<p><a name="1000457"><font size="2" face="'Courier New'" color="#000000"><em>stepX</em></font></a> and <font size="2" face="'Courier New'" color="#000000"><em>stepY</em></font> specify the step distance between vias, in the x and y directions, in DEF distance database units.<br><font color="#000000"><em>Type:</em></font> Integer </p>
|
|||
|
<p><a name="1000458">For an example of a via array, see </a><a href="#1000234" title="4"><font color="Blue"><u>Example 4-30</u></font></a><a href="#1000234" title="4"></a>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000463"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000465"><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000467">Specifies the amount by which the wire is extended past the endpoint of the segment.<br></a><font color="#000000"><em>Type:</em></font> Integer, specified in database units<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font> </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000513"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="1000515"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000519"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000521"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000523">Specifies which mask for double or triple patterning lithography to use for the next wire. The </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer. Most applications support values of 1, 2, or 3 only. Shapes without any defined mask have no mask set (that is, they are uncolored).</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000525"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top">
|
|||
|
<p><a name="1000527"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000531"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000533"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000599">Specifies which mask for double or triple patterning lithography is to be applied to the next via's shapes on each layer. </a></p>
|
|||
|
<p><a name="1000907">The </a><font size="2" face="'Courier New'" color="#000000"><em>viaMaskNum</em></font> variable is a hex-encoded three digit value of the form: </p>
|
|||
|
<p><a name="1000908"><font color="#000000"><</font></a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font><font color="#000000">><</font><font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font><font color="#000000">></font></p>
|
|||
|
<p><a name="1005839">For example, MASK 113 means the top metal and cut layer </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 1, and the bottom metal layer <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> is 3. A value of 0 means the shape on that layer has no mask assignment (is uncolored), so 013 means the top layer is uncolored. If either the first or second digit is missing, they are assumed to be 0, so 013 and 13 mean the same thing. Most applications support <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> values of 0, 1, 2, or 3 only for double or triple patterning.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1005767"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1005769"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1005799">The </a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> variables specify which mask the corresponding metal shape belongs to. The via-master metal mask values have no effect. </p>
|
|||
|
<p><a name="1005800">For the cut-layer, the </a><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> variable will define the mask for the bottom-most, and then the left-most cut. For multi-cut vias, the via-instance cut masks are derived from the via-master cut mask values. The via-master must have a mask defined for all the cut shapes and every via-master cut mask is "shifted" (from 1 to 2, and 2 to 1 for two mask layers, and from 1 to 2, 2 to 3, and 3 to 1 for three mask layers), so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font> value. </p>
|
|||
|
<p><a name="1014913">Similarly, for the metal layer, the </a><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> would define the mask for the bottom-most, then leftmost metal shape. For multiple disjoint metal shapes, the via-instance metal masks are derived from the via-master metal mask values. The via-master must have a mask defined for all of the metal shapes, and every via-master metal mask is "shifted" (1->2, 2->1 for two mask layers, 1->2, 2->3, 3->1 for three mask layers) so the lower-left cut matches the <font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font>/<font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font> value.</p>
|
|||
|
<p><a name="1005804">See </a><a href="#1001472" title="4"><font color="Blue"><u>Example 4-32</u></font></a><a href="#1001472" title="4"></a>.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000469"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000471"><font size="2" face="'Courier New'" color="#000000"><em>orient</em></font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000473">Specifies the orientation of the </a><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> that precedes it, using the standard DEF orientation values of <font size="2" face="'Courier New'" color="#000000">N</font>, <font size="2" face="'Courier New'" color="#000000">S</font>, <font size="2" face="'Courier New'" color="#000000">E</font>, <font size="2" face="'Courier New'" color="#000000">W</font>, <font size="2" face="'Courier New'" color="#000000">FN</font>, <font size="2" face="'Courier New'" color="#000000">FS</font>, <font size="2" face="'Courier New'" color="#000000">FE</font>, and <font size="2" face="'Courier New'" color="#000000">FW</font> (See <a href="#SpecifyingOrientation" title="4"><font color="Blue"><u>"Specifying Orientation"</u></font></a><a href="#SpecifyingOrientation" title="4"> </a>). </p>
|
|||
|
<p><a name="1000477">If you do not specify </a><font size="2" face="'Courier New'" color="#000000"><em>orient</em></font>, <font size="2" face="'Courier New'" color="#000000">N</font> (North) is the default non-rotated value used. All other orientation values refer to the flipping or rotation around the via origin (the <font size="2" face="'Courier New'" color="#000000">0,0</font> point in the via shapes). The via origin is still placed at the <font size="2" face="'Courier New'" color="#000000">(</font><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000">)</font> value given in the routing statement just before the <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font>. </p>
|
|||
|
<p><font color="#000000"><strong>Note: </strong></font><a name="1000478">Some tools do not support orientation of vias inside their internal data structures; therefore, they are likely to translate vias with an orientation into a different but equivalent via that does not require an orientation.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000480"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000482"><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000484">Specifies a via to place at the last point. If you specify a via, </a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> for the next routing coordinates (if any) is implicitly changed to the other routing layer for the via. For example, if the current layer is <font color="#000000"><em>metal1</em></font>, a <font color="#000000"><em>via12</em></font> changes the layer to <font color="#000000"><em>metal2</em></font> for the next routing coordinates.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000486"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000488"><font size="2" face="'Courier New'" color="#000000">( </font></a><font size="2" face="'Courier New'" color="#000000"><em>x</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>y</em></font><font size="2" face="'Courier New'" color="#000000"> )</font> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000490">Specifies the route coordinates. You cannot specify a route with zero length.</a></p>
|
|||
|
<p><a name="1000493">For more information, see </a><a href="#980136" title="4"><font color="Blue"><u>"Specifying Coordinates"</u></font></a><a href="#980136" title="4"></a>. <br><font color="#000000"><em>Type:</em></font> Integer, specified in database units</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-30 </strong></font></strong>
|
|||
|
<strong><a name="1000234">Via Arrays </a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="973304">The following example specifies arrays of via </a><font size="2" face="'Courier New'" color="#000000">VIAGEN21_2</font> on <font color="#000000"><em>metal1</em></font> and <font color="#000000"><em>metal2</em></font>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973305">SPECIALNETS 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973306"> -vdd ( * vdd ) </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973307"> + ROUTED metal1 150 ( 100 100 ) ( 200 * ) </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973308"> NEW metal1 0 ( 200 100 ) VIAGEN21_2 DO 10 BY 20 STEP 10000 20000 </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973309"> NEW metal2 0 (-900 -30 ) VIAGEN21_2 DO 1000 BY 1 STEP 5000 0</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973310"> ...</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="973311">As with any other </a><font size="2" face="'Courier New'" color="#000000">VIA</font> statement, the <font size="2" face="'Courier New'" color="#000000">DO</font> statement does not change the previous coordinate. Therefore, the following statement creates a <font color="#000000"><em>metal1</em></font> wire of width 50 from ( 200 100 ) to ( 200 200 ) along with the via array that starts at ( 200 100 ). </p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973312">NEW metal1 50 ( 200 100 ) VIAGEN21_2 DO 10 BY 20 STEP 1000 2000 ( 200 200 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-31 </strong></font></strong>
|
|||
|
<strong><a name="979804">Special Wiring With Routing Points</a></strong>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979805">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979806">- vdd (*vdd)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979807">+ USE POWER</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979808">+ POLYGON metal1 ( 0 0 ) ( 0 100 ) ( 100 100 ) ( 200 200 ) ( 200 0 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979809">+ POLYGON metal2 ( 100 100 ) ( * 200 ) ( 200 * ) ( 300 300 ) ( 300 100 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979825">+ RECT metal1 ( 0 0 ) ( 100 200 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979810">+ ROUTED metal1 100 ( 0 0 50 ) ( 100 0 50 ) via12 ( 100 100 50 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979811">+ ROUTED metal2 100 + SHAPE RING + STYLE 1 ( 0 0 ) ( 100 100 ) ( 200 100 )</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="979828">;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1000316">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-32 </strong></font></strong>
|
|||
|
<strong><a name="1001472">Multi-Mask Layers with Special Wiring</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1001473">The following example shows a routing statement that specifies three-mask layers </a><font size="2" face="'Courier New'" color="#000000">M1</font> and <font size="2" face="'Courier New'" color="#000000">VIA1</font>, and a two-mask layer <font size="2" face="'Courier New'" color="#000000">M2</font>:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1001040">+ FIXED + SHAPE RING + MASK 2 + RECT M3 ( 0 0 ) ( 10 10 ) </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1001041">+ ROUTED M1 2000 (10 0 ) MASK 3 (10 20 ) VIA1_1</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1001042"> NEW M2 1000 ( 10 10 ) (20 10) MASK 1 ( 20 20 ) MASK 031 VIA1_2</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1001043">+ SHAPE STRIPE + VIA VIA3_3 ( 30 30 ) ( 40 40 )</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1001044">;</a></font>
|
|||
|
</p>
|
|||
|
<p><a name="1001046">This indicates that the: </a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001047"><font size="2" face="'Courier New'" color="#000000">M3</font></a> rectangle shape is on mask 2, has <font size="2" face="'Courier New'" color="#000000">FIXED</font> route status, and shape <font size="2" face="'Courier New'" color="#000000">RING</font></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001048"><font size="2" face="'Courier New'" color="#000000">M1</font></a> wire shape from (10 0) to (10 20) is on mask 3. </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001049"><font size="2" face="'Courier New'" color="#000000">VIA1_1</font></a> via has no preceding <font size="2" face="'Courier New'" color="#000000">MASK</font> statement so all the metal and cut shapes have no mask and are uncolored</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001050">first </a><font size="2" face="'Courier New'" color="#000000">NEW M2</font> wire shape (10 10) to (20 10) has no mask set and is uncolored</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001051">second </a><font size="2" face="'Courier New'" color="#000000">M2</font> wire shape (20 10) to (20 20) is on mask 1</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001052"><font size="2" face="'Courier New'" color="#000000">VIA1_2</font></a> via has a MASK 031 (it can be MASK 31 also) so:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001053"><font size="2" face="'Courier New'" color="#000000"><em>topMaskNum</em></font></a> is 0 in the 031 value, so no mask is set for the top metal (<font size="2" face="'Courier New'" color="#000000">M2</font>) shape</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001054"><font size="2" face="'Courier New'" color="#000000"><em>bottomMaskNum</em></font></a> is 1 in the 031 value, so mask 1 is used for the bottom metal (<font size="2" face="'Courier New'" color="#000000">M1</font>) shape </td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.872">
|
|||
|
<div> </div>
|
|||
|
</td>
|
|||
|
<td width="32.128319999999995">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/bs_bullet_sub.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1001055"><font size="2" face="'Courier New'" color="#000000"><em>cutMaskNum</em></font></a> is 3 in the 031 value, so the bottom-most, then left-most cut of the via-instance is mask 3. The mask for the other cuts of the via-instance are derived from the via-master by "shifting" the via-master's cut masks to match. So, if the via-master's bottom-left cut is mask 1, then the via-master cuts on mask 1 become mask 3 for the via-instance, and similarly cuts on 2 shift to 1, and cuts on 3 shift to 2. See <a href="#1001113" title="4"><font color="Blue"><u>Figure 4-11</u></font></a><a href="#1001113" title="4"></a>.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="1001056">The </a><font size="2" face="'Courier New'" color="#000000">VIA3_3</font> has shape <font size="2" face="'Courier New'" color="#000000">STRIPE</font>, and the via is at both (30 30) and (40 40). There is no wire segment between (30 30) and (40 40). If the route status is not specified, it is considered as<font size="2" face="'Courier New'" color="#000000"> + ROUTED</font>.</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-11 </strong></font></strong>
|
|||
|
<strong><a name="1001113">Multi-Mask Patterns with Special Wiring</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1001269"><img src="images/DEFSyntax.07.1.38.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="SpecialWiringShape"></a><a name="1000319"><font size="2" face="'Courier New'" color="#000000">SHAPE</font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028276">Specifies a wire with special connection requirements because of its shape. This applies to vias as well as wires. <br></a><font color="#000000"><em>Value:</em></font> Specify one of the following: </blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="192">
|
|||
|
<p><a name="1000322"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="132">
|
|||
|
<p><a name="1000324"><font size="2" face="'Courier New'" color="#000000">RING</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="324">
|
|||
|
<p><a name="1000326">Used as ring, target for connection</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000328"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000330"><font size="2" face="'Courier New'" color="#000000">PADRING</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000332">Connects padrings</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000334"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000336"><font size="2" face="'Courier New'" color="#000000">BLOCKRING</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000338">Connects rings around the blocks</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000340"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000342"><font size="2" face="'Courier New'" color="#000000">STRIPE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000344">Used as stripe</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000346"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000348"><font size="2" face="'Courier New'" color="#000000">FOLLOWPIN</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000350">Connects standard cells to power structures. </a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000352"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000354"><font size="2" face="'Courier New'" color="#000000">IOWIRE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000356">Connects I/O to target</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000358"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000360"><font size="2" face="'Courier New'" color="#000000">COREWIRE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000362">Connects endpoints of followpin to target</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000364"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000366"><font size="2" face="'Courier New'" color="#000000">BLOCKWIRE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000368">Connects block pin to target</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000370"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000372"><font size="2" face="'Courier New'" color="#000000">BLOCKAGEWIRE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000374">Connects blockages</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000376"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000378"><font size="2" face="'Courier New'" color="#000000">FILLWIRE</font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000380">Represents a fill shape that does not require OPC. It is normally connected to a power or ground net. Floating fill shapes should be in the </a><font size="2" face="'Courier New'" color="#000000">FILL</font> section.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000382"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000384"><font size="2" face="'Courier New'" color="#000000">FILLWIREOPC</font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000386">Represents a fill shape that requires OPC. It is normally connected to a power or ground net. Floating fill shapes should be in the </a><font size="2" face="'Courier New'" color="#000000">FILL</font> section.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000388"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000390"><font size="2" face="'Courier New'" color="#000000">DRCFILL</font></a> </p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="1000392">Used as a fill shape to correct DRC errors, such as </a><font size="2" face="'Courier New'" color="#000000">SPACING</font>, <font size="2" face="'Courier New'" color="#000000">MINENCLOSEDAREA</font>, or <font size="2" face="'Courier New'" color="#000000">MINSTEP</font> violations on wires and pins of the same net (see <a href="#970450" title="4"><font color="Blue"><u>Figure 4-12</u></font></a><a href="#970450" title="4"></a>.) </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-12 </strong></font></strong>
|
|||
|
<strong><a name="970450">Fill Shapes</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="970484"><img src="images/DEFSyntax.07.1.39.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="966790"><font size="2" face="'Courier New'" color="#000000">SHIELD</font></a> <font size="2" face="'Courier New'" color="#000000"><em>shieldNetName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028326">Specifies the name of a regular net to be shielded by the special net being defined. <br><br>After describing shielded routing for a net, use </a><font size="2" face="'Courier New'" color="#000000">+ ROUTED </font>to return to the routing of the special net being defined.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028327"><font size="2" face="'Courier New'" color="#000000">STYLE </font></a><font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028364">Specifies a previously defined style from the </a><font size="2" face="'Courier New'" color="#000000">STYLES</font> section in this DEF file. The style is used with the endpoints of each routing segment to define the routing shape, and applies to all routing segments defined in one <font size="2" face="'Courier New'" color="#000000"><em>routingPoints</em></font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028372"><font size="2" face="'Courier New'" color="#000000">VIA</font></a> <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> [<font size="2" face="'Courier New'" color="#000000"><em>orient</em></font>] <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ...</strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028379">Specifies the name of the via placed at every point in the list with an optional orientation. For example, the statement <br></a><font size="2" face="'Courier New'" color="#000000">VIA myVia</font> ( <font size="2" face="'Courier New'" color="#000000">0</font> <font size="2" face="'Courier New'" color="#000000">0</font> ) ( <font size="2" face="'Courier New'" color="#000000">1</font> <font size="2" face="'Courier New'" color="#000000">1</font> ) indicates an instance of <font size="2" face="'Courier New'" color="#000000">myVia</font> at 0,0 and at 1,1.</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1016720">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-33 </strong></font></strong>
|
|||
|
<strong><a name="1016764">Special Nets Statements</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1016915">Signoff DRC tools may require metal shapes under the trim metal shapes to fill up the gaps between the line-end of wires sandwiched by the trim metal shape to be output in DEF. Those metal shapes would be written out in </a><font size="2" face="'Courier New'" color="#000000">_TRIMMETAL_FILLS_RESERVED</font> with the <font size="2" face="'Courier New'" color="#000000">DRCFILL</font> tag in the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> section in the following format: </p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1016937">- _TRIMMETAL_FILLS_RESERVED</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1016938"> + ROUTED + SHAPE DRCFILL + MASK </a><font size="2" face="'Courier New'" color="#000000"><em>x</em></font> + RECT M1 (<font size="2" face="'Courier New'" color="#000000"><em>x x</em></font>) (<font size="2" face="'Courier New'" color="#000000"><em>x x</em></font>) </font>
|
|||
|
</p>
|
|||
|
<p><a name="1016959">As trim metal shapes need to be aligned and merged, dummy patches are often added even on OBS and unconnected pins. Those patches would be written out in </a><font size="2" face="'Courier New'" color="#000000">_SADP_FILLS_RESERVED</font> with the <font size="2" face="'Courier New'" color="#000000">DRCFILL</font> tag in the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> section in the following format:</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017001">- _SADP_FILLS_RESERVED</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017002"> + ROUTED + SHAPE DRCFILL + MASK x + RECT M1 (x x) (x x) </a></font>
|
|||
|
</p>
|
|||
|
<p><a name="1016786">The following </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement defines two metal shapes under the trim metal shapes and a dummy patch written out with the <font size="2" face="'Courier New'" color="#000000">DRCFILL</font> tag: </p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017050">SPECIALNETS 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017051">- _TRIMMETAL_FILLS_RESERVED</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017052"> + ROUTED + SHAPE DRCFILL + MASK 1 + RECT M1 (30 32) (33 34)</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017053"> + ROUTED + SHAPE DRCFILL + MASK 2 + RECT M1 (36 27) (39 29)</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017054">- _SADP_FILLS_RESERVED</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017055"> + ROUTED + SHAPE DRCFILL + MASK 2 + RECT M1 (30 27) (36 29)</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1017056">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-13 </strong></font></strong>
|
|||
|
<strong><a name="1016792">Trim Metal and SADP Fills in the SPECIALNETS Section</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1016851"><img src="images/DEFSyntax.07.1.40.png" alt=""><br></a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="1016714">Defining Routing Points</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="973346">Routing points define the center line coordinates of a route. If a route has a 90-degree edge, it has a width of </a><font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font>, and extends from one coordinate (<font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>) to the next coordinate.</p>
|
|||
|
<p><a name="979770">If either endpoint has an optional extension value (</a><font size="2" face="'Courier New'" color="#000000"><em>extValue</em></font>), the wire is extended by that amount past the endpoint. If a coordinate with an extension value is specified after a via, the wire extension is added to the beginning of the next wire segment after the via (zero-length wires are not allowed). Some applications convert the extension value to an equivalent route that has the <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> and <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> points already extended, with no extension value. If no extension value is defined, the wire extension is 0, and the wire is truncated at the endpoint. </p>
|
|||
|
<p><a name="979778">The </a><font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> must be an even value to ensure that the corners of the route fall on a legal database coordinate without round off. Because most vendors specify a manufacturing grid, <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> must be an even multiple of the manufacturing grid in order to be fabricated. </p>
|
|||
|
<p><a name="973349">If the wire segment is a 45-degree edge, and no </a><font size="2" face="'Courier New'" color="#000000">STYLE</font> is specified, the default octagon style is used for the endpoints. The <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> must be an even multiple of the manufacturing grid in order to keep all of the coordinates of the resulting outer wire boundary on the manufacturing grid. </p>
|
|||
|
<p><a name="973371">If a </a><font size="2" face="'Courier New'" color="#000000">STYLE</font> is defined for 90-degree or 45-degree routes, the routing shape is defined by the center line coordinates and the style. No corrections, such as snapping to manufacturing grid, should be applied, and any extension values are ignored. The DEF file should contain values that are already snapped, if appropriate. The <font size="2" face="'Courier New'" color="#000000"><em>routeWidth</em></font> indicates the desired user width, and represents the minimum allowed width of the wire that results from the style when the 45-degree edges are snapped to the manufacturing grid. See <a href="#975552" title="4"><font color="Blue"><u>Figure 4-15</u></font></a><a href="#975552" title="4"></a> through <a href="#975462" title="4"><font color="Blue"><u>Figure 4-24</u></font></a><a href="#975462" title="4"></a> for examples. </p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="980136">Specifying Coordinates</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="980137">To maximize compactness of the design files, the coordinates allow for the asterisk ( * ) convention. For example, (</a><font color="#000000"><em> </em></font><font size="2" face="'Courier New'" color="#000000"><em>x *</em></font> ) indicates that the y coordinate last specified in the wiring specification is used; ( <font size="2" face="'Courier New'" color="#000000"><em>* y</em></font> ) indicates that the x coordinate last specified is used. </p>
|
|||
|
<p><a name="980138">Each coordinate sequence defines a connected orthogonal or 45-degree path through the points. The first coordinate in a sequence must not have an * element. </a></p>
|
|||
|
<p><a name="982084">All subsequent points in a connected sequence must create orthogonal or 45-degree paths. For example, the following sequence is a valid path:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980141">( 100 200 ) ( 200 200 ) ( 200 500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="980142">The following sequence is an equivalent path:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980143">( 100 200 ) ( 200 * ) ( * 500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="980144">The following sequence is not valid because it is not an orthogonal or 45-degree segment.</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980145">( 100 200 ) ( 300 500 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="961820">Special Pins and Wiring</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="961822">Pins that appear in the </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement are special pins. Regular routers do not route to these pins. The special router routes special wiring to special pins. If you use a component-based format to input the connectivity for the design, special pins to be routed by the special router also must be specified in the <font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> statement, because pins included in the <font size="2" face="'Courier New'" color="#000000">COMPONENTS</font> statement are considered regular.</p>
|
|||
|
<p><a name="961824">The following example inputs connectivity in a component-based format, specifies </a><font size="2" face="'Courier New'" color="#000000">VDD</font> and <font size="2" face="'Courier New'" color="#000000">VSS</font> pins as special pins, and marks <font size="2" face="'Courier New'" color="#000000">VDD</font> and <font size="2" face="'Courier New'" color="#000000">VSS</font> nets for special routing:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973422">COMPONENTS 3 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973450"> C1 AND N1 N2 N3 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973451"> C2 AND N4 N5 N6 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973459">END COMPONENTS</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973464"> </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973465">SPECIALNETS 2 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973470"> VDD ( * VDD ) + WIDTH M1 5 ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973475"> VSS ( * VSS ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973480">END SPECIALNETS</a></font>
|
|||
|
</blockquote>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="961842">Shielded Routing</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="961843">If, in a non-routed design, a net has </a><font size="2" face="'Courier New'" color="#000000">+ SHIELDNET</font> attributes, the router adds shielded routing to this net. <font size="2" face="'Courier New'" color="#000000">+ NOSHIELD</font> indicates the last wide segment of the net is not shielded. If the last segment is not shielded and is tapered, use the <font size="2" face="'Courier New'" color="#000000">+ TAPER</font> keyword instead of <font size="2" face="'Courier New'" color="#000000">+ NOSHIELD</font>. For example:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961844">+ SHIELDNET VSS # both sides will be shielded with VSS</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973497">+ SHIELDNET VDD # one side will be shielded with VDD and</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973498">+ SHIELDNET VSS # one side will be shielded with VSS</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="961845">After you add shielded routing to a special net, it has the following syntax:</a></p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961846">+ SHIELD </a><font size="2" face="'Courier New'" color="#000000"><em>regularNetName</em></font></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973504"> MET2 </a><font size="2" face="'Courier New'" color="#000000"><em>regularWidth</em></font> ( <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> )</font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="961847">A shield net specified for a regular net should be defined earlier in the DEF file in the </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> section. After describing shielded routing for a net, use <font size="2" face="'Courier New'" color="#000000">+ ROUTED</font> to return to the routing of the current special net.</p>
|
|||
|
<p><a name="961848">For example:</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="961849">SPECIALNETS 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973514">- VSS</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973518"> + ROUTED MET2 200</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973519">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973520">+ SHIELD my_net MET2 100 ( 14100 342440 ) ( 13920 * ) </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973521"> M2_TURN ( * 263200 ) M1M2 ( 2400 * ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973522">- VDD</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973528"> + ROUTED MET2 200</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973533">...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973532">+ SHIELD my_net MET2 100 ( 14100 340440 ) ( 8160 * ) </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="973531"> M2_TURN ( * 301600 ) M1M2 ( 2400 * );</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="965342">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<h3><a name="Styles"></a><a name="972676">Styles</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="972680">[STYLES </a><font size="2" face="'Courier New'" color="#000000"><em>numStyles</em></font> ;<dd>{- STYLE <font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> ... ;} ...</font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="972689">END STYLES]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="972682">Defines a convex polygon that is used at each of the endpoints of a wire to precisely define the wire's outer boundary. A style polygon consists of two to eight points. Informally, half of the style polygon defines the first endpoint wire boundary, and the other half of the style polygon defines the second endpoint wire boundary. Octagons and squares are the most common styles.</a></p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="972717"><font size="2" face="'Courier New'" color="#000000"><em>numStyles</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028396">Specifies the number of styles specified in the </a><font size="2" face="'Courier New'" color="#000000">STYLES</font> section.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028405"><font size="2" face="'Courier New'" color="#000000">STYLE </font></a><font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028414">Defines a new style. </a><font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font> is an integer that is greater than or equal to 0 (zero), and is used to reference the style later in the DEF file. When defining multiple styles, the first <font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font> must be 0 (zero), and any following <font size="2" face="'Courier New'" color="#000000"><em>styleNum</em></font> should be numbered consecutively so that a table lookup can be used to find them easily. <br><br>Style numbers are keys used locally in the DEF file to reference a particular style, but not actual numbers preserved in the application. Each style number must be unique. Style numbers can only be used inside the same DEF file, and are not preserved for use in other DEF files. Because applications are not required to preserve the style number itself, an application that writes out an equivalent DEF file might use different style numbers. <br><font color="#000000"><em>Type:</em></font> Integer<br><br>The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax specifies a sequence of at least two points to generate a polygon geometry. The syntax corresponds to a coordinate pair, such as <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>. Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> (or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>) value from the last point. The polygon must be convex. The polygon edges must be parallel to the x axis, the y axis, or at a 45-degree angle, and must enclose the point (<font size="2" face="'Courier New'" color="#000000">0</font> <font size="2" face="'Courier New'" color="#000000">0</font>). <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units </blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-34 </strong></font></strong>
|
|||
|
<strong><a name="979328">Styles Statement</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="979332">The following </a><font size="2" face="'Courier New'" color="#000000">STYLES</font> statement defines the basic octagon shown in <a href="#979337" title="4"><font color="Blue"><u>Figure 4-14</u></font></a><a href="#979337" title="4"></a>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979333">STYLES 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979334">- STYLE 1 ( 30 10 ) ( 10 30 ) ( -10 30 ) ( -30 10 ) ( -30 -10 ) <br> ( -10 -30 ) ( 10 -30 ) ( 30 -10 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979335">END STYLES</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-14 </strong></font></strong>
|
|||
|
<strong><a name="979337"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="979419"><img src="images/DEFSyntax.07.1.41.png" alt=""><br></a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="979326">Defining Styles</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="979319">A style is defined as a polygon with points P1 through P</a><font size="2" face="'Courier New'" color="#000000"><em>n</em></font>. The center line is given as (X0, Y0) to (X1, Y1). Two sets of points are built (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> and P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>) as follows:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974918">P0,i = Pi + (X0, Y0) for 1 <= i <= n</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="974919">P1,i = Pi + (X1, Y1) for 1 <= i <= n</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="974920">The resulting wire segment shape is a counterclockwise, eight-sided polygon (</a><font size="2" face="'Courier New'" color="#000000">S1</font> through <font size="2" face="'Courier New'" color="#000000">S8</font>) that can be computed in the following way:</p>
|
|||
|
<p><a name="974930"><font size="2" face="'Courier New'" color="#000000">S1</font></a> = lowest point in (left-most points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974998"><font size="2" face="'Courier New'" color="#000000">S2</font></a> = left-most point in (lowest points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974939"><font size="2" face="'Courier New'" color="#000000">S3</font></a> = right-most point in (lowest points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974940"><font size="2" face="'Courier New'" color="#000000">S4</font></a> = lowest point in (right-most points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974941"><font size="2" face="'Courier New'" color="#000000">S5</font></a> = highest point in (right-most points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974942"><font size="2" face="'Courier New'" color="#000000">S6</font></a> = right-most point in (highest points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974943"><font size="2" face="'Courier New'" color="#000000">S7</font></a> = left-most point in (highest points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="974944"><font size="2" face="'Courier New'" color="#000000">S8</font></a> = highest point in (left-most points in (P0,1 through P0,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font> P1,1 through P1,<font size="2" face="'Courier New'" color="#000000"><em>n</em></font>))</p>
|
|||
|
<p><a name="975027">When consecutive points are collinear, only one of them is relevant, and the resulting shape has less than eight sides, as shown in </a><a href="#975552" title="4"><font color="Blue"><u>Figure 4-15</u></font></a><a href="#975552" title="4"></a>. A more advanced algorithm can order the points and only have to check a subset of the points, depending on which endpoint was used, and whether the wire was horizontal, vertical, a 45-degree route, or a 135-degree route.</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-15 </strong></font></strong>
|
|||
|
<strong><a name="975552"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975556"><img src="images/DEFSyntax.07.1.42.png" alt=""><br></a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="975028">Examples of X Routing with Styles</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="975032">The following examples illustrate the use of styles for X routing. In two cases, there are examples of </a><font size="2" face="'Courier New'" color="#000000">SPECIALNETS</font> syntax and <font size="2" face="'Courier New'" color="#000000">NETS</font> syntax that result in the same geometry.</p>
|
|||
|
<p><a name="975033"><font color="#000000"><strong>Example 1</strong></font></a> </p>
|
|||
|
<p><a name="975038">The following statements define an X wire with octagonal ends, as shown in </a><a href="#975095" title="4"><font color="Blue"><u>Figure 4-16</u></font></a><a href="#975095" title="4"></a>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975037">STYLES 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975042">- STYLE 0 ( 30 10 ) ( 10 30 ) ( -10 30 ) ( -30 10 ) ( -30 -10 ) ( -10 -30 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980734"> ( 10 -30 ) ( 30 -10 ) ; #An octagon.</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975047">END STYLES</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975051"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975052">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975053">- VSS ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975057">+ ROUTED metal3 50 + STYLE 0 ( 0 0 ) ( 150 150 ) ( 300 0 ) ( 400 0 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975062"> #The style applies to all the segments until a NEW statement or ";"</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975063"> #at the end of the net.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975068">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979515"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975074">NETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975075">- mySignal ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975079">+ ROUTED metal3 STYLE 0 ( 0 0 ) ( 150 150 ) ( 300 0 ) ( 400 0 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975083">#The style applies to all the segments in the ROUTED statement</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975091">END NETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-16 </strong></font></strong>
|
|||
|
<strong><a name="975095"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975096"><img src="images/DEFSyntax.07.1.43.png" alt=""><br></a></p>
|
|||
|
<p><a name="975109"><font color="#000000"><strong>Example 2</strong></font></a> </p>
|
|||
|
<p><a name="975110">The following statements define the same X wire with mixed octagonal and manhattan styles, as shown in </a><a href="#975166" title="4"><font color="Blue"><u>Figure 4-17</u></font></a><a href="#975166" title="4"></a>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975114">STYLES 2 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975118">- STYLE 0 ( 30 10 ) ( 10 30 ) ( -10 30 ) ( -30 10 ) ( -30 -10 ) ( -10 -30 )</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980743"> ( 10 -30 ) ( 30 -10 ) ; #An octagon</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975123">- STYLE 1 ( 25 25 ) ( -25 25 ) ( -25 -25 ) ( 25 -25 ) ; #A square</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975134">END STYLES</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979520"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975138">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975139">- POWER (* power)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975143">+ ROUTED metal3 50 + STYLE 0 ( 0 0 ) ( 150 150 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975147">NEW metal3 50 + STYLE 1 ( 150 150 ) ( 300 0 ) ( 400 0 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975148">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="979521"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975152">NETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975153">- mySignal ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975157">+ ROUTED metal3 STYLE 0 ( 0 0 ) ( 150 150 ) </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975161">NEW metal3 STYLE 1 ( 150 150 ) ( 300 0 ) ( 400 0 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975162">END NETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-17 </strong></font></strong>
|
|||
|
<strong><a name="975166"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975167"><img src="images/DEFSyntax.07.1.44.png" alt=""><br></a></p>
|
|||
|
<p><font color="#000000"><strong>Note: </strong></font><a name="975168">The square ends might be necessary for connecting to manhattan wires or pins, or in cases where vias have a manhattan shape even on X routing layers. In practice, the middle wire probably would not use a simple square, such as </a><font size="2" face="'Courier New'" color="#000000">style2</font>; it would use a combination of an octagon and a square for the middle segment style, in order to smooth out the resulting outline at the (150,150) point.</p>
|
|||
|
<p><a name="975191"><font color="#000000"><strong>Example 3</strong></font></a> </p>
|
|||
|
<p><a name="975192">The following statements define a manhattan wire with a width of 70, as shown in </a><a href="#975221" title="4"><font color="Blue"><u>Figure 4-18</u></font></a><a href="#975221" title="4"></a>.</p>
|
|||
|
<p><a name="975245">This example emphasizes that the style overrides the width of 100 units. In this case, the style polygon is a square 70 x 70 units wide, and the vias (</a><font size="2" face="'Courier New'" color="#000000">via12</font>) are 100 x 100 units wide. The application that creates the styles is responsible for meeting any particular width requirements. Normally, the resulting style-computed width is equal to or larger than the wire width given in the routing statement.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975196">STYLES 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975200">- STYLE 0 ( 35 35 ) ( -35 35 ) ( -35 -35 ) ( 35 -35 ) ;</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975204">END STYLES</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980780"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975208">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975209">- POWER ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975213">+ ROUTED metal1 100 + STYLE 0 ( 0 0 ) via12 ( 600 * ) via12 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975217">END SPECIALNETS </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-18 </strong></font></strong>
|
|||
|
<strong><a name="975221"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975222"><img src="images/DEFSyntax.07.1.45.png" alt=""><br></a></p>
|
|||
|
<p><a name="975240"><font color="#000000"><strong>Example 4</strong></font></a> </p>
|
|||
|
<p><a name="975260">The following statements define a similar wire that is offset from the center, as shown in </a><a href="#975291" title="4"><font color="Blue"><u>Figure 4-19</u></font></a><a href="#975291" title="4"></a>. Similar to Example 3, the center line in both runs through the middle of the X in the vias.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975261">STYLES 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975268">- STYLE 0 ( 35 20 ) ( -35 20 ) ( -35 -50 ) ( 35 -50 ) ; #70 x 70 offset square</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975272">END STYLES</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="980781"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975276">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975279">- POWER ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975283">+ ROUTED metal1 100 + STYLE 0 ( 0 0 ) via12 ( 600 * ) via12 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975287">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-19 </strong></font></strong>
|
|||
|
<strong><a name="975291"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975292"><img src="images/DEFSyntax.07.1.46.png" alt=""><br></a></p>
|
|||
|
<p><a name="983738"><font color="#000000"><strong>Example 5</strong></font></a> </p>
|
|||
|
<p><a name="983739">The following statements define a wire that uses a "2-point line" style, as shown in </a><a href="#983749" title="4"><font color="Blue"><u>Figure 4-20</u></font></a><a href="#983749" title="4"></a>. </p>
|
|||
|
<p><font color="#000000"><strong>Note: </strong></font><a name="983740">This example shows the simplest style possible, which is a 2-point line. Generally, it would be easier to use a normal route without a style. </a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983741">STYLES 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983742">- STYLE 0 ( 0 -10 ) ( 0 10 ) ; #a vertical line </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983743">END STYLES</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983744"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983745">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983746">- POWER ...</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="983747">+ ROUTED metal1 20 + STYLE 0 ( 0 0 ) ( 100 0 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="983748">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-20 </strong></font></strong>
|
|||
|
<strong><a name="983749"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="983754"><img src="images/DEFSyntax.07.1.47.png" alt=""><br></a></p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="RoutingWithoutStyles"></a><a name="975293">45-Degree Routing Without Styles</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="975314">Because many applications only store the wire endpoints and the width of the wire, DEF includes a specific style default definition. If a style is not explicitly defined, the default style is implicitly included with any 45-degree routing segment. It is computed directly from the wire width and endpoints, at the expense of some loss in flexibility.</a></p>
|
|||
|
<p><a name="975315">The default style is an octagon (shown in </a><a href="#975316" title="4"><font color="Blue"><u>Figure 4-21</u></font></a><a href="#975316" title="4"> </a>) whose coordinates are computed from the wire width and the manufacturing grid.</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-21 </strong></font></strong>
|
|||
|
<strong><a name="975316"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975317"><img src="images/DEFSyntax.07.1.48.png" alt=""><br></a></p>
|
|||
|
<p><a name="975318">The octagon is always symmetric about the x and y axis. The coordinates are computed to be exactly the same wire width as equivalent horizontal or vertical wire widths, and as close as possible for the diagonal widths (they are always slightly bigger because of rounding of irrational values), while forcing the coordinates to remain on the manufacturing grid. The wire width must be an even multiple of the manufacturing grid in order to keep A and B on the manufacturing grid. </a></p>
|
|||
|
<p><a name="980797">Assume the following rules:</a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="980962">W = wire width</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="980963">M = manufacturing grid (mgrid). This is derived from the LEF </a><font size="2" face="'Courier New'" color="#000000">MANUFACTURINGGRID</font> statement.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="981013">D = diagonal width</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="981022">ceiling = round up the result to the nearest integer</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p><a name="981014">The octagon coordinates are computed as:</a></p>
|
|||
|
<blockquote><a name="980798"><font color="#000000">A = </font></a><font color="#000000"><em>W</em></font><font color="#000000">/2</font></blockquote>
|
|||
|
<blockquote><a name="980799"><font color="#000000">B = [ceiling(</font></a><font color="#000000"><em>W</em></font><font color="#000000">/(sqrt(2) * </font><font color="#000000"><em>M</em></font><font color="#000000">) ) * </font><font color="#000000"><em>M</em></font><font color="#000000">] - </font><font color="#000000"><em>A</em></font> </blockquote>
|
|||
|
<p><a name="980800">The derivation of B can be understood as:</a></p>
|
|||
|
<blockquote><a name="980801"><font color="#000000">D = </font></a>s<font color="#000000">qrt( (</font><font color="#000000"><em>A</em></font> <font color="#000000">+ </font><font color="#000000"><em>B</em></font><font color="#000000">)</font><font color="#000000"><sup>2</sup></font> <font color="#000000">+ (</font><font color="#000000"><em>A</em></font><font color="#000000"> + </font><font color="#000000"><em>B</em></font><font color="#000000">)</font><font color="#000000"><sup>2</sup></font><font color="#000000">)</font> or <font color="#000000">D = sqrt(2) * (</font><font color="#000000"><em>A </em></font><font color="#000000">+ </font><font color="#000000"><em>B</em></font><font color="#000000">) </font></blockquote>
|
|||
|
<p><a name="980802">The diagonal width (D) must be greater than or equal to the wire width (W), and B must be on the manufacturing grid, so D must be equal to W, which results in:</a></p>
|
|||
|
<blockquote><a name="980803"><font color="#000000"><em>D</em></font></a><font color="#000000">/sqrt(2) = </font><font color="#000000"><em>A</em></font> <font color="#000000">+</font> <font color="#000000"><em>B</em></font> </blockquote>
|
|||
|
<blockquote><a name="980806"><font color="#000000"><em>B</em></font></a><font color="#000000"> = </font><font color="#000000"><em>D</em></font><font color="#000000">/sqrt(2) - </font><font color="#000000"><em>A</em></font> or <font color="#000000"><em>W</em></font><font color="#000000">/sqrt(2) - </font><font color="#000000"><em>A</em></font> </blockquote>
|
|||
|
<p><a name="980807">To force B to be on the manufacturing grid, and keep the diagonal width greater than or equal to the wire width:</a></p>
|
|||
|
<blockquote><a name="980808">B on mgrid = </a><font color="#000000">ceiling(</font><font color="#000000"><em>B </em></font><font color="#000000">/ </font><font color="#000000"><em>M</em></font><font color="#000000">) * </font><font color="#000000"><em>M</em></font> </blockquote>
|
|||
|
<p><a name="980810">Which results in the computation:</a></p>
|
|||
|
<blockquote><a name="980811"><font color="#000000">B = [ceiling(</font></a><font color="#000000"><em>W</em></font><font color="#000000">/(sqrt(2) * </font><font color="#000000"><em>M</em></font><font color="#000000">) ) * </font><font color="#000000"><em>M</em></font><font color="#000000">] - </font><font color="#000000"><em>A</em></font> </blockquote>
|
|||
|
<p><a name="981039">The following table lists examples coordinate computations:</a></p>
|
|||
|
<p align="left">
|
|||
|
<strong><font color="#000000"><strong>Table 4-1 </strong></font></strong>
|
|||
|
<strong><a name="975356"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="981045"> </a></p>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="72">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980818">W = Width (</a><font face="symbol" color="#000000">μ</font>m)</strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="88">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980820">M = mgrid (</a><font face="symbol" color="#000000">μ</font>m)</strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="152">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980822">D = W/(sqrt(2)*M)</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="89">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980836">ceiling (D)</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="79">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980838">A (</a><font face="symbol" color="#000000">μ</font>m)</strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="84">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980840">B (</a><font face="symbol" color="#000000">μ</font>m)</strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="84">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="980842">Diagonal width (</a><font face="symbol" color="#000000">μ</font>m) </strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980875">1.0</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980877">0.005</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980879">141.42</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980881">142</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980883">0.5</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980885">0.21</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980887">1.0041</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980889">0.5</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980891">0.005</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980893"> 70.71</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980895">71</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980897">0.25</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980899">0.105</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980901">0.5020</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980903">0.15</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980905">0.005</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980907"> 21.21</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980909">22</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980911">0.075</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980913">0.035</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980915">0.1556</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980830">0.155*</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980832">0.005</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980834"> 21.92</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980852">22</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980854">0.0775*</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980856">0.0325*</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980858">0.1556</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td colspan="7" cellpadding="4" border="2" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="980922">* A width of 0.155 is an odd multiple of the manufacturing grid and is not allowed because it would create coordinates for A and B that are off the manufacturing grid. It is shown for completeness to illustrate how the result is off grid.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p><a name="980920">The default style only applies to 45-degree route segments; it does not apply to 90-degree route segments.</a></p>
|
|||
|
<p><a name="975365"><font color="#000000"><strong>Example 1</strong></font></a></p>
|
|||
|
<p><a name="980813">The following two routes produce identical routing shapes, as shown in </a><a href="#975398" title="4"><font color="Blue"><u>Figure 4-22</u></font></a><a href="#975398" title="4"></a>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975366">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975370">- POWER (* power)</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975374">+ ROUTED metal3 80 ( 0 0 ) ( 100 0 ) ( 200 100 ) ( 300 100 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975378">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981046"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975382">NETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975383">- mySignal ... #mySignal uses the default routing rule width of 80</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975387">+ ROUTED metal3 ( 0 0 0 ) ( 100 0 0 ) ( 200 100 0 ) ( 300 100 0 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975391">#The wire extension was set to 0 for every point. The wire extension</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975392">#is ignored for 45-degree route segments; the default octagon</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975393">#overrides it.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975394">END NETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-22 </strong></font></strong>
|
|||
|
<strong><a name="975398"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975399"><img src="images/DEFSyntax.07.1.49.png" alt=""><br></a></p>
|
|||
|
<p><a name="975400"><font color="#000000"><strong>Example 2</strong></font></a> </p>
|
|||
|
<p><a name="980814">The following regular route definition, using the traditional default wire extension of </a><font color="#000000">1/2 * </font><font color="#000000"><em>width</em></font> for the first and last 90-degree endpoints, produces the route shown in <a href="#975422" title="4"><font color="Blue"><u>Figure 4-23</u></font></a><a href="#975422" title="4"></a>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975421">SPECIALNETS 1;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981048">- POWER (* power) #The half-width extensions are given for the first and last</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="981050">+ ROUTED metal3 80 ( 0 0 40 ) ( 100 0 ) ( 200 100 ) ( 300 100 40 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981051"> #The default extension is 0 for SPECIALNETS, so it is not given for </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981052"> #two middle points.</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981053">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981049"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981047">NETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975427">- mySignal ... #mySignal uses the default routing rule with width of 80</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975431">+ ROUTED metal3 ( 0 0 ) ( 100 0 0 ) ( 200 100 0 ) ( 300 100 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975435"> #The default extension is half the width for NETS, so it is not </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="981056"> #included for the first and last end-points.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="982099">END NETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-23 </strong></font></strong>
|
|||
|
<strong><a name="975422"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975423"><img src="images/DEFSyntax.07.1.50.png" alt=""><br></a></p>
|
|||
|
<p><a name="975454"><font color="#000000"><strong>Example 3</strong></font></a> </p>
|
|||
|
<p><a name="980815">The following definition, using the traditional default wire extension of </a><font color="#000000">1/2 * </font><font color="#000000"><em>width</em></font> for all of the points, produces the route in <a href="#975462" title="4"><font color="Blue"><u>Figure 4-24</u></font></a><a href="#975462" title="4"></a>.</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975461">SPECIALNETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981064">- POWER (* power) #The half-width extensions are given explicitly</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="981065">+ ROUTED metal3 80 ( 0 0 40 ) ( 100 40 ) ( 200 100 40 ) ( 300 100 40 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981066">END SPECIALNETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981067"> </a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="981061">NETS 1 ;</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975467">- mySignal ... #mySignal uses the default routing rule width of 80</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975471">+ ROUTED metal3 ( 0 0 ) ( 100 0 ) ( 200 100 ) ( 300 100 ) ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="975475"> #All points use the implicit default 1/2 * width wire extensions.</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="975476">END NETS</a></font>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-24 </strong></font></strong>
|
|||
|
<strong><a name="975462"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="975463"><img src="images/DEFSyntax.07.1.51.png" alt=""><br></a></p>
|
|||
|
<h3><a name="Technology"></a><a name="961856">Technology</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961858">[TECHNOLOGY </a><font size="2" face="'Courier New'" color="#000000"><em>technologyName</em></font> ;]</font>
|
|||
|
</dl>
|
|||
|
<p><a name="964012">Specifies a technology name for the design in the database. In case of a conflict, the previous name remains in effect. </a></p>
|
|||
|
<h3><a name="Tracks"></a><a name="961865">Tracks</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961866">[TRACKS<dd>[{X | Y} </a><font size="2" face="'Courier New'" color="#000000"><em>start</em></font> DO <font size="2" face="'Courier New'" color="#000000"><em>numtracks</em></font> STEP <font size="2" face="'Courier New'" color="#000000"><em>space<dd></em></font> [MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> [SAMEMASK]] <dd> [LAYER <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> ...] <dd>;] ...] </font>
|
|||
|
</dl>
|
|||
|
<p><a name="964023">Defines the routing grid for a standard cell-based design. Typically, the routing grid is generated when the floorplan is initialized. The first track is located at an offset from the placement grid set by the </a><font size="2" face="'Courier New'" color="#000000">OFFSET</font> value for the layer in the LEF file. The track spacing is the <font size="2" face="'Courier New'" color="#000000">PITCH</font> value for the layer defined in LEF.</p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="964038"><font size="2" face="'Courier New'" color="#000000">DO</font></a> <font size="2" face="'Courier New'" color="#000000"><em>numTracks</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028453">Specifies the number of tracks to create for the grid. You cannot specify 0 </a><font size="2" face="'Courier New'" color="#000000"><em>numtracks</em></font>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028462"><font size="2" face="'Courier New'" color="#000000">LAYER</font></a> <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028469">Specifies the routing layer used for the tracks. You can specify more than one layer.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028478"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> [<font size="2" face="'Courier New'" color="#000000">SAMEMASK</font>]</strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028485">Specifies which mask for double or triple patterning lithography to use for the first routing track. The </a><font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer - most applications support values of 1, 2, or 3 only. The layer(s) must be declared as two or three mask layers in the <font size="2" face="'Courier New'" color="#000000">LEF</font> <font size="2" face="'Courier New'" color="#000000">LAYER</font> section. <br><br>By default, the tracks cycle through all the masks. So you will see alternating masks, such as, 1, 2, 1, 2, etc. for a two-mask layer and 1, 2, 3, 1, 2, 3, etc., for a three-mask layer. <br><br>If the <font size="2" face="'Courier New'" color="#000000">SAMEMASK</font> keyword is specified, then all the routing tracks are the same mask as the first track mask. Tracks without any defined mask do not have a mask set (that is, they are uncolored). <br>See <a href="#1003983" title="4"><font color="Blue"><u>Example 4-35</u></font></a><a href="#1003983" title="4"></a>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028500"><font size="2" face="'Courier New'" color="#000000">STEP</font></a> <font size="2" face="'Courier New'" color="#000000"><em>space</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028507">Specifies the spacing between the tracks. </a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028516"><font size="2" face="'Courier New'" color="#000000">{X | Y}</font></a> <font size="2" face="'Courier New'" color="#000000"><em>start</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028532">Specifies the location and direction of the first track defined. </a><font size="2" face="'Courier New'" color="#000000">X</font> indicates vertical lines; <font size="2" face="'Courier New'" color="#000000">Y</font> indicates horizontal lines. <font size="2" face="'Courier New'" color="#000000"><em>start</em></font> is the <font size="2" face="'Courier New'" color="#000000">X</font> or <font size="2" face="'Courier New'" color="#000000">Y</font> coordinate of the first line. For example, <font size="2" face="'Courier New'" color="#000000">X 3000</font> creates a set of vertical lines, with the first line going through (3000 0). </blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-35 </strong></font></strong>
|
|||
|
<strong><a name="1003983">Mask Assignments for Routing Tracks</a></strong>
|
|||
|
</p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1003959">The following example shows a three-mask layer </a><font size="2" face="'Courier New'" color="#000000">M1</font> that has a first track of mask 2 with cycling mask numbers after that:</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1004009">TRACKS X 0 DO 20 STEP 5 MASK 2 LAYER M1 ; </a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote><a name="1004171">This statement will result in </a><font size="2" face="'Courier New'" color="#000000">M1</font> vertical tracks at <font size="2" face="'Courier New'" color="#000000">X</font> coordinates with mask assignments of 0 (mask 2), 5 (mask 3), 10 (mask 1), 15 (mask 2), etc., for 20 tracks.</blockquote>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1004066">The following statement will result in </a><font size="2" face="'Courier New'" color="#000000">M1</font> vertical tracks at <font size="2" face="'Courier New'" color="#000000">X</font> coordinates with mask assignments of 0 (mask 1), 10 (mask 1), 20 (mask 1), 30 (mask 1), etc., for 20 tracks.</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1004050">TRACKS X 0 DO 20 STEP 10 MASK 1 SAMEMASK LAYER M1 ; </a></font>
|
|||
|
</blockquote>
|
|||
|
<h3><a name="Units"></a><a name="961877">Units</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="961880">[UNITS DISTANCE MICRONS </a><font size="2" face="'Courier New'" color="#000000"><em>dbuPerMicron</em></font><em> </em>;]</font>
|
|||
|
</dl>
|
|||
|
<p><a name="993131">Specifies the database units per micron (dbuPerMicron) to convert DEF distance units into microns. </a></p>
|
|||
|
<p><a name="993132">LEF supports values of 100, 200, 400, 800, 1000, 2000, 4000, 8000, 10,000, and 20,000 for the LEF dbuPerMicron. The LEF dbuPerMicron must be greater than or equal to the DEF dbuPerMicron, otherwise you can get round-off errors. The LEF convert factor must also be an integer multiple of the DEF convert factor so no round-off of DEF database unit values is required (e.g., a LEF convert factor of 1000 allows DEF convert factors of 100, 200, 1000, but not 400, 800). </a></p>
|
|||
|
<p><a name="993133">The following table shows the valid pairings of the LEF dbuPerMicron and the corresponding legal DEF dbuPerMicron values. </a></p>
|
|||
|
<p align="left"><a name="993388"> </a></p>
|
|||
|
<table summary="" border="1" cellpadding="5" cellspacing="0" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="170">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="993340">LEF dbuPerMicron</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="478">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="993342">Legal DEF dbuPerMicron</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="993344">100</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="993346">100</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993348">200</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993350">100, 200</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993352">400</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993354">100, 200, 400</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993356">800</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993358">100, 200, 400, 800</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993360">1000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993362">100, 200, 1000</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993364">2000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993366">100, 200, 400, 1000, 2000</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993368">4000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993370">100, 200, 400, 800, 1000, 2000, 4000</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993372">8000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993374">100, 200, 400, 800, 1000, 2000, 4000, 8000</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993376">10,000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="993378">100, 200, 400, 1000, 2000, 10,000</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="993380">20,000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="993382">100, 200, 400, 800, 1000, 2000, 4000, 10,000, 20,000</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="993383">Using DEF Units </a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="966719">The following table shows examples of how DEF units are used: </a></p>
|
|||
|
<table summary="" border="1" cellpadding="5" cellspacing="0" width="646">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="133">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="968407">Units </a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="154">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="968409">DEF Units</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="168">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="968411">DEF Value Example</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="190">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="968413">Real Value</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968415">Time</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968417">.001 nanosecond</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968419">1500</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968421">1.5 nanoseconds</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968423">Capacitance</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968425">.000001 picofarad</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968427">1,500,000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968429">1.5 picofarads</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968431">Resistance</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968433">.ooo1 ohm</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968435">15,000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968437">1.5 ohms</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968459">Power</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968461">.0001 milliwatt</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968463">15,000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968465">1.5 milliwatts</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968451">Current</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968453">.0001 milliamp</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968455">15,000</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="968457">1.5 milliamps</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968443">Voltage</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968445">.001 volt</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968447">1500</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="968449">1.5 volts</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<p><a name="968486">The DEF reader assumes divisor factors such that DEF data is given in the database units shown below. </a></p>
|
|||
|
<table summary="" border="1" cellpadding="5" cellspacing="0" width="603">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="206">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="961973">Unit</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
<td bgcolor="#CCCCCC" cellpadding="4" border="2" bordercolor="#000000" valign="middle" width="396">
|
|||
|
<p>
|
|||
|
<font face="Verdana, Arial, Helvetica, sans-serif" color="#003366"><strong><a name="961975">Database Precision</a></strong></font>
|
|||
|
</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="961977">1 nanosecond</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="961979">= 1000 DBUs</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961981">1 picofarad</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961983">= 1,000,000 DBUs</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961985">1 ohm</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961987">= 10,000 DBUs</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961989">1 milliwatt</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961991">= 10,000 DBUs</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961993">1 milliampere</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="961995">= 10,000 DBUs</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="961997">1 volt</a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" border="1" bordercolor="#000000" valign="top">
|
|||
|
<p><a name="961999">= 1000 DBUs</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<h3><a name="Version"></a><a name="947809">Version</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="947810">[VERSION </a><font size="2" face="'Courier New'" color="#000000"><em>versionNumber</em></font> ;]</font>
|
|||
|
</dl>
|
|||
|
<p><a name="949607">Specifies which version of the DEF syntax is being used. </a></p>
|
|||
|
<p><font color="#000000"><strong>Note: </strong></font><a name="978066">The </a><font size="2" face="'Courier New'" color="#000000">VERSION</font> statement is not required in a DEF file; however, you should specify it, because it prevents syntax errors caused by the inadvertent use of new versions of DEF with older tools that do not support the new version syntax.</p>
|
|||
|
<h3><a name="Vias"></a><a name="950441">Vias</a></h3>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="969466">[VIAS </a><font size="2" face="'Courier New'" color="#000000"><em>numVias</em></font> ;<dd>[- <font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font> <dd> [ + VIARULE <font size="2" face="'Courier New'" color="#000000"><em>viaRuleName</em></font> <dd> + CUTSIZE <font size="2" face="'Courier New'" color="#000000"><em>xSize</em></font> <font size="2" face="'Courier New'" color="#000000"><em>ySize</em></font> <dd> + LAYERS <font size="2" face="'Courier New'" color="#000000"><em>botmetalLayer</em></font> <font size="2" face="'Courier New'" color="#000000"><em>cutLayer</em></font> <font size="2" face="'Courier New'" color="#000000"><em>topMetalLayer</em></font> <dd> + CUTSPACING <font size="2" face="'Courier New'" color="#000000"><em>xCutSpacing</em></font> <font size="2" face="'Courier New'" color="#000000"><em>yCutSpacing</em></font> <dd> + ENCLOSURE <font size="2" face="'Courier New'" color="#000000"><em>xBotEnc</em></font> <font size="2" face="'Courier New'" color="#000000"><em>yBotEnc</em></font> <font size="2" face="'Courier New'" color="#000000"><em>xTopEnc</em></font> <font size="2" face="'Courier New'" color="#000000"><em>yTopEnc</em></font> <dd> [+ ROWCOL <font size="2" face="'Courier New'" color="#000000"><em>numCutRows</em></font> <font size="2" face="'Courier New'" color="#000000"><em>NumCutCols</em></font>] <dd> [+ ORIGIN <font size="2" face="'Courier New'" color="#000000"><em>xOffset</em></font> <font size="2" face="'Courier New'" color="#000000"><em>yOffset</em></font>] <dd> [+ OFFSET <font size="2" face="'Courier New'" color="#000000"><em>xBotOffset</em></font> <font size="2" face="'Courier New'" color="#000000"><em>yBotOffset</em></font> <font size="2" face="'Courier New'" color="#000000"><em>xTopOffset</em></font> <font size="2" face="'Courier New'" color="#000000"><em>yTopOffset</em></font>] <br> [+ PATTERN <font size="2" face="'Courier New'" color="#000000"><em>cutPattern</em></font>] ]<br> | [ + RECT <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> [+ MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>] <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <br> | + POLYGON <font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font> [+ MASK <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font>] <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font>] ...]<br>;] ... </font>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<font size="2" face="'Courier New'" color="#000000"><a name="969467">END VIAS]</a></font>
|
|||
|
</dl>
|
|||
|
<p><a name="969468">Lists the names and geometry definitions of all vias in the design. Two types of vias can be listed: fixed vias and generated vias. All vias consist of shapes on three layers: a cut layer and two routing (or masterslice) layers that connect through that cut layer.</a></p>
|
|||
|
<p><a name="982514">A fixed via is defined using rectangles or polygons, and does not use a </a><font size="2" face="'Courier New'" color="#000000">VIARULE</font>. The fixed via name must mean the same via in all associated LEF and DEF files.</p>
|
|||
|
<p><a name="982512">A generated via is defined using </a><font size="2" face="'Courier New'" color="#000000">VIARULE</font> parameters to indicate that it was derived from a <font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> statement. For a generated via, the via name is only used locally inside this DEF file. The geometry and parameters are maintained, but the name can be freely changed by applications that use this via when writing out LEF and DEF files to avoid possible via name collisions with other DEF files. </p>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="978107"><font size="2" face="'Courier New'" color="#000000">CUTSIZE </font></a><font size="2" face="'Courier New'" color="#000000"><em>xSize</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>ySize</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028543">Specifies the required width (</a><font size="2" face="'Courier New'" color="#000000"><em>xSize</em></font>) and height (<font size="2" face="'Courier New'" color="#000000"><em>ySize</em></font>) of the cut layer rectangles. <br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028606"><font size="2" face="'Courier New'" color="#000000">CUTSPACING </font></a><font size="2" face="'Courier New'" color="#000000"><em>xCutSpacing</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>yCutSpacing</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028561">Specifies the required x and y spacing between cuts. The spacing is measured from one cut edge to the next cut edge. <br></a><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028615"><font size="2" face="'Courier New'" color="#000000">ENCLOSURE </font></a><font size="2" face="'Courier New'" color="#000000"><em>xBotEnc</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>yBotEnc</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>xTopEnc</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>yTopEnc</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028579">Specifies the required x and y enclosure values for the bottom and top metal layers. The enclosure measures the distance from the cut array edge to the metal edge that encloses the cut array (see </a><a href="#978726" title="4"><font color="Blue"><u>Figure 4-25</u></font></a><a href="#978726" title="4"> </a>).<br><font color="#000000"><em>Type:</em></font> Integer, specified in DEF database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028588"><font size="2" face="'Courier New'" color="#000000">LAYERS </font></a><font size="2" face="'Courier New'" color="#000000"><em>botMetalLayer</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>cutLayer</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>TopMetalLayer</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028597">Specifies the required names of the bottom routing/masterslice layer, cut layer, and top routing/masterslice layer. These layer names must be previously defined in layer definitions, and must match the layer names defined in the specified LEF </a><font size="2" face="'Courier New'" color="#000000"><em>viaRuleName</em></font>. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028624"><font size="2" face="'Courier New'" color="#000000">MASK</font></a> <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028631">Specifies which mask for double or triple patterning lithography is to be applied to the shapes defined in </a><font size="2" face="'Courier New'" color="#000000">RECT</font> or <font size="2" face="'Courier New'" color="#000000">POLYGON</font> statements of the via master. The <font size="2" face="'Courier New'" color="#000000"><em>maskNum</em></font> variable must be a positive integer - most applications support values of 1, 2, or 3 only. For a fixed via made up of <font size="2" face="'Courier New'" color="#000000">RECT</font>/<font size="2" face="'Courier New'" color="#000000">POLYGON</font> statements, the cut-shapes must be either colored or uncolored. It is an error to have partially colored cuts for one via. Uncolored cut shapes should be automatically colored by the reader if the layer is a multi-mask layer. <br><br>The metal shapes of the via-master do not need colors because the via-instance has the mask color. Some readers may, however, color them for internal consistency (see <a href="#1002705" title="4"><font color="Blue"><u>Example 4-38</u></font></a><a href="#1002705" title="4"> </a>). So a writer may write out MASK 1 for metal shapes even if they were read in with no mask value.<br>For uncolored fixed vias, or parameterized vias (with <font size="2" face="'Courier New'" color="#000000">+ VIARULE </font>...), the mask of the cuts are pre-defined as an alternating pattern starting with MASK 1 at the bottom-left. The mask cycles, from left-to-right and bottom-to-top, for the cuts are as shown in <a href="#1002483" title="4"><font color="Blue"><u>Figure 4-30</u></font></a><a href="#1002483" title="4"></a>.</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028683"><font size="2" face="'Courier New'" color="#000000"><em>numVias</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028647">Specifies the number of vias listed in the </a><font size="2" face="'Courier New'" color="#000000">VIA</font> statement. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028674"><font size="2" face="'Courier New'" color="#000000">OFFSET </font></a><font size="2" face="'Courier New'" color="#000000"><em>xBotOffset</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>yBotOffset</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>xTopOffset</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>yTopOffset</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028665">Specifies the x and y offset for the bottom and top metal layers. These values allow each metal layer to be offset independently.<br><br> By default, the </a><font size="2" face="'Courier New'" color="#000000">0,0</font> origin of the via is the center of the cut array, and the enclosing metal rectangles. After the non-shifted via is computed, the metal layer rectangles are shifted by adding the appropriate values--the <font size="2" face="'Courier New'" color="#000000"><em>x/y</em></font> <font size="2" face="'Courier New'" color="#000000"><em>BotOffset</em></font> values to the metal layer below the cut layer, and the <font size="2" face="'Courier New'" color="#000000"><em>x/y</em></font> <font size="2" face="'Courier New'" color="#000000"><em>TopOffset</em></font> values to the metal layer above the cut layer. <br><br>These offset values are in addition to any offset caused by the <font size="2" face="'Courier New'" color="#000000">ORIGIN</font> values. For an example and illustration of this syntax, see <a href="#978713" title="4"><font color="Blue"><u>Example 4-36</u></font></a><a href="#978713" title="4"></a>.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font>, for all values <br><font color="#000000"><em>Type:</em></font> Integer, in DEF database units </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028738"><font size="2" face="'Courier New'" color="#000000">ORIGIN </font></a><font size="2" face="'Courier New'" color="#000000"><em>xOffset</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>yOffset</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028729">Specifies the x and y offset for all of the via shapes. By default, the </a><font size="2" face="'Courier New'" color="#000000">0,0</font> origin of the via is the center of the cut array, and the enclosing metal rectangles. After the non-shifted via is computed, all cut and metal rectangles are shifted by adding these values. For an example and illustration of this syntax, see <a href="#978713" title="4"><font color="Blue"><u>Example 4-36</u></font></a><a href="#978713" title="4"></a>.<br><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">0</font>, for both values <br><font color="#000000"><em>Type:</em></font> Integer, in DEF database units</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028763"><font size="2" face="'Courier New'" color="#000000">PATTERN </font></a><font size="2" face="'Courier New'" color="#000000"><em>cutPattern</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028777">Specifies the cut pattern encoded as an ASCII string. This parameter is only required when some of the cuts are missing from the array of cuts, and defaults to "all cuts are present," if not specified. <br><br>For information on and examples of via cut patterns, see </a><a href="#978203" title="4"><font color="Blue"><u>"Creating Via Cut Patterns"</u></font></a><a href="#978203" title="4"></a>.<br><br>The <font size="2" face="'Courier New'" color="#000000"><em>cutPattern</em></font> syntax is defined as follows:<br><font size="2" face="'Courier New'" color="#000000"><em><br>numRows</em></font><font size="2" face="'Courier New'" color="#000000">_</font><font size="2" face="'Courier New'" color="#000000"><em>rowDefinition<br></em></font><font size="2" face="'Courier New'" color="#000000"> [_</font><font size="2" face="'Courier New'" color="#000000"><em>numRows</em></font><font size="2" face="'Courier New'" color="#000000">_</font><font size="2" face="'Courier New'" color="#000000"><em>rowDefinition</em></font><font size="2" face="'Courier New'" color="#000000">] ... </font></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="204">
|
|||
|
<p><a name="978159"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="156">
|
|||
|
<p><a name="978161"><font size="2" face="'Courier New'" color="#000000"><em>numRows</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="288">
|
|||
|
<p><a name="978163">Specifies a hexadecimal number that indicates how many times to repeat the following row definition. This number can be more than one digit.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="978165"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="978167"><font size="2" face="'Courier New'" color="#000000"><em>rowDefinition</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="978169">Defines one row of cuts, from left to right.</a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<blockquote><a name="978170">The </a><font size="2" face="'Courier New'" color="#000000"><em>rowDefinition</em></font> syntax is defined as follows:<br><font size="2" face="'Courier New'" color="#000000">{[R</font><font size="2" face="'Courier New'" color="#000000"><em>repeatNumber</em></font><font size="2" face="'Courier New'" color="#000000">]</font><font size="2" face="'Courier New'" color="#000000"><em>hexDigitCutPattern</em></font><font size="2" face="'Courier New'" color="#000000">} ... </font></blockquote>
|
|||
|
<table summary="" border="0" cellpadding="4" cellspacing="0" bordercolor="#D3D3D3" width="648">
|
|||
|
<caption>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="204">
|
|||
|
<p><a name="978173"> </a></p>
|
|||
|
</td>
|
|||
|
<td colspan="2" cellpadding="4" valign="top" width="444">
|
|||
|
<p><a name="978175"><font size="2" face="'Courier New'" color="#000000"><em>hexDigitCutPattern</em></font></a></p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top" width="204">
|
|||
|
<p><a name="978179"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="156">
|
|||
|
<p><a name="978181"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top" width="288">
|
|||
|
<p><a name="978183">Specifies a single hexadecimal digit that encodes a 4-bit binary value in which </a><font size="2" face="'Courier New'" color="#000000">1</font> indicates a cut is present, and <font size="2" face="'Courier New'" color="#000000">0</font> indicates a cut is not present.</p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="978185"> </a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="978187"><font size="2" face="'Courier New'" color="#000000"><em>repeatNumber</em></font></a></p>
|
|||
|
</td>
|
|||
|
<td cellpadding="4" valign="top">
|
|||
|
<p><a name="978189">Specifies a single hexadecimal digit that indicates how many times to repeat </a><font size="2" face="'Courier New'" color="#000000"><em>hexDigitCutPattern</em></font>. </p>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<blockquote><a name="1028917">For parameterized vias (with </a><font size="2" face="'Courier New'" color="#000000">+ VIARULE</font> ...), the <font size="2" face="'Courier New'" color="#000000"><em>cutPattern</em></font> has an optional suffix added to allow three types of mask color patterns. The default mask color pattern (no suffix) is a checker-board (see <a href="#1001886" title="4"><font color="Blue"><u>Figure 4-28</u></font></a><a href="#1001886" title="4"> </a>). The other two patterns supported are alternating rows, and alternating columns (see <a href="#1008297" title="4"><font color="Blue"><u>Figure 4-29</u></font></a><a href="#1008297" title="4"> </a>).<br><br>The optional suffixes are:<br><br><<font size="2" face="'Courier New'" color="#000000"><em>cut_pattern</em></font>>_MR alternating rows<br><<font size="2" face="'Courier New'" color="#000000"><em>cut_pattern</em></font>>_MC alternating columns</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1028938"><font size="2" face="'Courier New'" color="#000000">POLYGON </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>pt</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1028929">Defines the via geometry for the specified layer. You must specify at least three points to generate the polygon, and the edges must be parallel to the x axis, the y axis, or at a 45-degree angle. <br></a><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>x y</em></font>) Integer, specified in database units<br><br>Each <font size="2" face="'Courier New'" color="#000000">POLYGON</font> statement defines a polygon generated by connecting each successive point, and then the first and last points. The <font size="2" face="'Courier New'" color="#000000"><em>pt</em></font> syntax corresponds to a coordinate pair, such as (<font size="2" face="'Courier New'" color="#000000"><em>x</em></font> <font size="2" face="'Courier New'" color="#000000"><em>y</em></font>). Specify an asterisk (<font size="2" face="'Courier New'" color="#000000">*</font>) to repeat the same value as the previous <font size="2" face="'Courier New'" color="#000000"><em>x</em></font> or <font size="2" face="'Courier New'" color="#000000"><em>y</em></font> value from the last point. <br><br>For example, <font size="2" face="'Courier New'" color="#000000">+ POLYGON ( 0 0 ) ( 10 10 ) ( 10 0 )</font> creates a triangle shape.<br><br>All vias consist of shapes on three layers: a cut layer and two routing (or masterslice) layers that connect through that cut layer. There should be at least one <font size="2" face="'Courier New'" color="#000000">RECT</font> or <font size="2" face="'Courier New'" color="#000000">POLYGON</font> on each of the three layers. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029007"><font size="2" face="'Courier New'" color="#000000">RECT </font></a><font size="2" face="'Courier New'" color="#000000"><em>layerName pt pt</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029059">Defines the via geometry for the specified layer. The points are specified with respect to the via origin. In most cases, the via origin is the center of the via bounding box. All geometries for the via, including the cut layers, are output by the DEF writer.<br></a><font color="#000000"><em>Type:</em></font> (<font size="2" face="'Courier New'" color="#000000"><em>x y</em></font>) Integer, specified in database units<br><br>All vias consist of shapes on three layers: a cut layer and two routing (or masterslice) layers that connect through that cut layer. There should be at least one <font size="2" face="'Courier New'" color="#000000">RECT</font> or <font size="2" face="'Courier New'" color="#000000">POLYGON</font> on each of the three layers. </blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029074"><font size="2" face="'Courier New'" color="#000000">ROWCOL </font></a><font size="2" face="'Courier New'" color="#000000"><em>numCutRows</em></font><font size="2" face="'Courier New'" color="#000000"> </font><font size="2" face="'Courier New'" color="#000000"><em>numCutCols</em></font></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029065">Specifies the number of cut rows and columns that make up the cut array.<br></a><font color="#000000"><em>Default:</em></font> <font size="2" face="'Courier New'" color="#000000">1</font>, for both values<br><font color="#000000"><em>Type:</em></font> Positive integer, for both values</blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029083"><font size="2" face="'Courier New'" color="#000000"><em>viaName</em></font></a></strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029090">Specifies the via name. Via names are generated by appending a number after the rule name. Vias are numbered in the order in which they are created.</a></blockquote>
|
|||
|
<p>
|
|||
|
<strong></strong>
|
|||
|
<strong><a name="1029099"><font size="2" face="'Courier New'" color="#000000">VIARULE </font></a><font size="2" face="'Courier New'" color="#000000"><em>viaRuleName</em></font> </strong>
|
|||
|
</p>
|
|||
|
<blockquote><a name="1029106">Specifies the name of the LEF </a><font size="2" face="'Courier New'" color="#000000">VIARULE</font> that produced this via. This name must be specified before you define any of the other parameters, and must refer to a <font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> via rule. It cannot refer to a <font size="2" face="'Courier New'" color="#000000">VIARULE</font> without a <font size="2" face="'Courier New'" color="#000000">GENERATE</font> keyword.<br><br>Specifying the reserved via rule name of <font size="2" face="'Courier New'" color="#000000">DEFAULT</font> indicates that the via should use the previously defined <font size="2" face="'Courier New'" color="#000000">VIARULE</font> <font size="2" face="'Courier New'" color="#000000">GENERATE</font> rule with the <font size="2" face="'Courier New'" color="#000000">DEFAULT</font> keyword that exists for this routing-cut-routing (or masterslice-cut-masterslice) layer combination. This makes it possible for a tool that does not use the LEF <font size="2" face="'Courier New'" color="#000000">VIARULE</font> technology section to still generate DEF generated-via parameters by using the default rule.</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-36 </strong></font></strong>
|
|||
|
<strong><a name="978713">Via Rules</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="978714">The following via rule describes a non-shifted via (that is, a via with no </a><font size="2" face="'Courier New'" color="#000000">OFFSET</font> or <font size="2" face="'Courier New'" color="#000000">ORIGIN</font> parameters). There are two rows and three columns of via cuts. <a href="#978726" title="4"><font color="Blue"><u>Figure 4-25</u></font></a><a href="#978726" title="4"></a> illustrates this via rule.</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978718">- myUnshiftedVia</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978719">+ VIARULE myViaRule</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978720">+ CUTSIZE 20 20 #xCutSize yCutSize</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978721">+ LAYERS metal1 cut12 metal2 </a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978722">+ CUTSPACING 30 30 #xCutSpacing yCutSpacing</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978723">+ ENCLOSURE 20 50 50 20 #xBotEnc yBotEnc xTopEnc yTopEnc</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978724">+ ROWCOL 2 3 ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-25 </strong></font></strong>
|
|||
|
<strong><a name="978726">Via Rule</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="978819"><img src="images/DEFSyntax.07.1.52.png" alt=""><br></a></p>
|
|||
|
<p><a name="978820">The same via rule with the following </a><font size="2" face="'Courier New'" color="#000000">ORIGIN</font> parameter shifts all of the metal and cut rectangles by 10 in the x direction, and by -10 in the y direction (see <a href="#978826" title="4"><font color="Blue"><u>Figure 4-26</u></font></a><a href="#978826" title="4"> </a>):</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978824">+ ORIGIN 10 -10 </a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-26 </strong></font></strong>
|
|||
|
<strong><a name="978826">Via Rule With Origin</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="978872"><img src="images/DEFSyntax.07.1.53.png" alt=""><br></a></p>
|
|||
|
<p><a name="982210">If the same via rule contains the following </a><font size="2" face="'Courier New'" color="#000000">ORIGIN</font> and <font size="2" face="'Courier New'" color="#000000">OFFSET</font> parameters, all of the rectangles shift by 10, -10. In addition, the top layer metal rectangle shifts by 20, -20, which means that the top metal shifts by a total of 30, -30.</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978874">+ ORIGIN 10 -10</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978875">+ OFFSET 0 0 20 -20</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-27 </strong></font></strong>
|
|||
|
<strong><a name="978876">Via Rule With Origin and Offset</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="978927"><img src="images/DEFSyntax.07.1.54.png" alt=""><br></a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-37 </strong></font></strong>
|
|||
|
<strong><a name="1002155">Multi-Mask Patterns for Parameterized Vias with Via Rule</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1002156">The following via rule describes a via cut mask pattern for a parameterized via:</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002113">- myParamVia1 </a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002114">+ VIARULE myGenVia1 + CUTSIZE 40 40</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002115">+ LAYERS M1 VIA1 M2 + CUTSPACING 40 40</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002116">+ ENCLOSURE 40 0 0 40 + ROWCOL 3 4</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002117">+ PATTERN 2_F_1_D ; #1 cut in top row is missing</a></font>
|
|||
|
</blockquote>
|
|||
|
<p><a name="1002057"> </a></p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-28 </strong></font></strong>
|
|||
|
<strong><a name="1001886">Multi-Mask Patterns for Parameterized Vias</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1002042"><img src="images/DEFSyntax.07.1.55.png" alt=""><br></a></p>
|
|||
|
<div>
|
|||
|
<table border="0" cellspacing="0" cellpadding="3" summary="">
|
|||
|
<tr valign="baseline">
|
|||
|
<td width="31.999679999999998">
|
|||
|
<div>
|
|||
|
<nobr>
|
|||
|
<font color="#000000"><img src="images/b_bullet.gif" alt="ParagraphBullet" border="0"></font>
|
|||
|
</nobr>
|
|||
|
</div>
|
|||
|
</td>
|
|||
|
<td><a name="1008485">The following examples show a parameterized via with cut-mask patterns for a 3-mask layer and 2-mask layer using _MC and _MR suffixes:</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-29 </strong></font></strong>
|
|||
|
<strong><a name="1008297">Multi-Mask Patterns for Parameterized Vias using Suffixes</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1008467"><img src="images/DEFSyntax.07.1.56.png" alt=""><br></a></p>
|
|||
|
<p><a name="1002429">For a fixed via specified using </a><font size="2" face="'Courier New'" color="#000000">RECT</font> or <font size="2" face="'Courier New'" color="#000000">POLYGON</font> statements, the cut shapes must either be all colored or uncolored. If the cuts are not colored, they will be automatically colored in a checkerboard pattern as shown in <a href="#1001886" title="4"><font color="Blue"><u>Figure 4-28</u></font></a><a href="#1001886" title="4"></a>. Each via cut with the same lower-left Y value is considered as one row, and each via in one row is a new column. For common "array" style vias with no missing cuts, this coloring is a good one. For vias that do not have a row and column structure or are missing cuts, then this coloring may not be good (see <a href="#1002483" title="4"><font color="Blue"><u>Figure 4-30</u></font></a><a href="#1002483" title="4"> </a>). If the metal layers are not colored, some applications will color them to mask 1 for internal consistency, even though the via master metal shape colors are not really used by LEF or DEF via instances.</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Example 4-38 </strong></font></strong>
|
|||
|
<strong><a name="1002705">Multi-Mask Patterns for Fixed Via</a></strong>
|
|||
|
</p>
|
|||
|
<p><a name="1002706">The following example shows a fixed-via with pre-colored cut shapes:</a></p>
|
|||
|
<p>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002771">- myVia1</a></font>
|
|||
|
</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002772">+ RECT M1 ( -40 -20 ) ( 120 20 ) #no mask, some readers set to 1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002773">+ RECT VIA1 + MASK 1 ( -20 -20 ) ( 20 20 ) #first cut on mask 1</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002774">+ RECT VIA1 + MASK 2 ( 60 -20 ) ( 100 20 ) #second cut on mask 2</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="1002775">+ RECT ( -20 -40 ) ( 100 40 ) #no mask, some readers set to 1</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-30 </strong></font></strong>
|
|||
|
<strong><a name="1002483">Multi-Mask Patterns for Fixed Via</a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="1003159"><img src="images/DEFSyntax.07.1.57.png" alt=""><br></a></p>
|
|||
|
<p><a name="1003160">See the </a><a href="#Fills" title="4"><font color="#0000ff"><u>Fills</u></font></a>, <a href="#Nets" title="4"><font color="#0000ff"><u>Nets</u></font></a>, and <a href="#SpecialNets" title="4"><font color="#0000ff"><u>Special Nets</u></font></a> routing statements to see how a via instance uses these via-master mask values.</p>
|
|||
|
<h4>
|
|||
|
<em></em>
|
|||
|
<em><a name="978203">Creating Via Cut Patterns</a></em>
|
|||
|
</h4>
|
|||
|
<p><a name="978208">Via cuts are defined as a series of rows, starting at the bottom, left corner. Each row definition defines one row of cuts, from left to right, and rows are numbered from bottom to top.</a></p>
|
|||
|
<p><a name="978285">The </a><font size="2" face="'Courier New'" color="#000000">PATTERN</font> syntax that defines rows uses the <font size="2" face="'Courier New'" color="#000000">ROWCOL</font> parameters to specify the cut array. If the row has more bits than the <font size="2" face="'Courier New'" color="#000000"><em>numCutCols</em></font> value in the <font size="2" face="'Courier New'" color="#000000">ROWCOL</font> parameter for this via, the last bits are ignored. The number of rows defined must equal the <font size="2" face="'Courier New'" color="#000000"><em>numCutRows</em></font> value in the <font size="2" face="'Courier New'" color="#000000">ROWCOL</font> parameter. </p>
|
|||
|
<p><a href="#978222" title="4" name="978215"><font color="Blue"><u>Figure 4-31</u></font></a><a href="#978222" title="4"></a> illustrates the following via cut pattern syntax:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978216">- myVia</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978217">+ VIARULE myViaRule</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978218">...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978219">+ ROWCOL 5 5</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978220">+ PATTERN 2_F0_2_F8_1_78 ;]</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><a name="978283">The last three bits of </a><font size="2" face="'Courier New'" color="#000000">F0</font>, <font size="2" face="'Courier New'" color="#000000">F8</font>, and <font size="2" face="'Courier New'" color="#000000">78</font> are ignored because only five bits are allowed in a row. Therefore, the following <font size="2" face="'Courier New'" color="#000000">PATTERN</font> syntax gives the identical pattern:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978284">+ PATTERN 2_F7_2_FF_1_7F</a></font>
|
|||
|
</blockquote>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-31 </strong></font></strong>
|
|||
|
<strong><a name="978222"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="978226"><img src="images/DEFSyntax.07.1.58.png" alt=""><br></a></p>
|
|||
|
<p><a href="#971114" title="4" name="978204"><font color="Blue"><u>Figure 4-32</u></font></a><a href="#971114" title="4"></a> illustrates the following via cut pattern syntax:</p>
|
|||
|
<blockquote>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"></font>
|
|||
|
<font size="2" face=""Courier New"" color="#000000"><a name="978303">- myVia</a></font>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978304">+ VIARULE myViaRule</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978305">...</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978306">+ ROWCOL 5 14</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<blockquote>
|
|||
|
<blockquote> <font size="2" face=""Courier New"" color="#000000"><a name="978307">+ PATTERN 2_FFE0_3_R4F ;</a></font></blockquote>
|
|||
|
</blockquote>
|
|||
|
<p><a name="978301">The </a><font size="2" face="'Courier New'" color="#000000">R4F</font> value indicates a repeat of four <font size="2" face="'Courier New'" color="#000000">F</font>s. The last two bits of each row definition are ignored because only 14 bits allowed in each row.</p>
|
|||
|
<p>
|
|||
|
<strong><font color="#000000"><strong>Figure 4-32 </strong></font></strong>
|
|||
|
<strong><a name="971114"> </a></strong>
|
|||
|
</p>
|
|||
|
<p align="left"><a name="978318"><img src="images/DEFSyntax.07.1.59.png" alt=""><br></a></p>
|
|||
|
<p><a name="978418"> </a></p>
|
|||
|
</div>
|
|||
|
<br>
|
|||
|
<a href="#pagetop">Return to top of page</a>
|
|||
|
<hr>
|
|||
|
<hr align="left">
|
|||
|
<div style="text-align: left;">
|
|||
|
<!-- Begin Buttons -->
|
|||
|
<table width="650" cellpadding="0" cellspacing="0" border="0">
|
|||
|
<tr>
|
|||
|
<td height="20" width="59">
|
|||
|
<a href="javascript:openLibrary()"><img src="../support/nav2_library.gif" border="0" alt="View Library" height="20" width="59"></a>
|
|||
|
</td>
|
|||
|
<td height="20" width="73">
|
|||
|
<a href="lefdefrefTOC.html"><img src="../support/nav2_toc.gif" alt="Table of Contents" border="0"></a>
|
|||
|
</td>
|
|||
|
|
|||
|
<td height="20" width="46">
|
|||
|
<a href="lefdefrefIX.html"><img src="../support/nav2_index.gif" border="0"></a>
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
<a href="WorkingwithLEF.html"><img src="images/nav2_previous.gif" alt="Previous" border="0"></a>
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
<a href="Examples.html"><img src="images/nav_next.gif" alt="Next" border="0"></a>
|
|||
|
</td>
|
|||
|
<td>
|
|||
|
<a>
|
|||
|
<a href="lefdefref.pdf"><img src="../support/nav2_print.gif" border="0" alt="Open PDF to print book" height="20" width="114"></a>
|
|||
|
</a>
|
|||
|
</td>
|
|||
|
<td height="20" width="61">
|
|||
|
<img src="../support/nav2_black.gif" border="0" height="20" width="76">
|
|||
|
</td>
|
|||
|
<td height="20" width="76">
|
|||
|
<a href="/feedback.htm"><img src="../support/nav2_feedback.gif" border="0" alt="Email Comments" height="20" width="76"></a>
|
|||
|
</td>
|
|||
|
<td height="20" width="43">
|
|||
|
<a href="../cdsuser/help.html"><img src="../support/nav2_help.gif" border="0" alt="Help Using Documentation" height="20" width="43"></a>
|
|||
|
</td>
|
|||
|
<td height="20" width="37">
|
|||
|
<a href="/exitsearch.htm"><img src="../support/nav2_exit.gif" border="0" alt="Shut Down Cadence Documentation Server" height="20" width="37"></a>
|
|||
|
</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<!-- End Buttons -->
|
|||
|
</div>
|
|||
|
<br>
|
|||
|
<font size="-1" >
|
|||
|
For support, see <a href="http://support.cadence.com" target="_blank">Cadence Online Support</a> service.</font>
|
|||
|
<br>
|
|||
|
<br>
|
|||
|
<font size="-1" >
|
|||
|
<font size="-1"><i>Copyright © 2016, <a href ="http://www.cadence.com">Cadence Design Systems, Inc.</a></i></font>
|
|||
|
</font>
|
|||
|
<br>
|
|||
|
<font size="-1" >
|
|||
|
All rights reserved.</font>
|
|||
|
<br>
|
|||
|
<br>
|
|||
|
</body>
|
|||
|
</html>
|