electronics forum

Rules | Recent posts | topic RSS | Search | Register  | Log in

diva cmd file for get the extracted view of the layout.


Post new topic  Reply to topic    EDAboard.com Forum Index -> Analog IC Design & Layout -> diva cmd file for get the extracted view of the layout.
Author Message
merlin_xm



Joined: 24 Feb 2006
Posts: 2


Post24 Feb 2006 13:53   

cadence diva width drc


Confused:where can download the example ( diva cmd file for get the extracted view of the layout)?who can tell me

Added after 32 minutes:

just it is diva rule file,extratedthe the layout
Back to top
Hughes



Joined: 10 Jun 2003
Posts: 718
Helped: 87


Post24 Feb 2006 15:25   

geomandnot


There is an example in Cadence document.
Back to top
merlin_xm



Joined: 24 Feb 2006
Posts: 2


Post25 Feb 2006 1:02   

diva rule example


where ,i can't see ,
Back to top
Hughes



Joined: 10 Jun 2003
Posts: 718
Helped: 87


Post25 Feb 2006 9:15   

layout extracted view


Under the "Write Diva Rules" section in "Diva Reference" manual, there is a sample file for diva DRC and extract purpose. Statements enclosured by ivIf(switch("extract?") ... ) statement are for extraction.
Back to top
Google
AdSense
Google Adsense




Post25 Feb 2006 9:15   

Ads




Back to top
Hughes



Joined: 10 Jun 2003
Posts: 718
Helped: 87


Post25 Feb 2006 15:25   

diva layer area measure extract log file commend


Here is the example from Cadence's document:
Code:
drcExtractRules(

/* The first section contains the geomOr statements that associate symbols with the physical layers to create derived layers. You can use these symbols in the rest of the rule set. You must put the geomOr statements before any switches so they are executed regardless of which switch you use at run time.

 */

bkgnd = geomBkgnd()
 poly = geomOr( "poly" )
 active = geomOr( "active" )
 gate = geomOr( "gate" )
 contact = geomOr( "contact" )
 metal1 = geomOr( "metal1" )
 via = geomOr( "via" )
 metal2 = geomOr( "metal2" )

/*

DRC RULES FOR PWELL CMOS
The first ivIf switch is the drc? switch. If you use this switch,
the DRC part of the file automatically executes during a DRC run.

*/

ivIf( switch( "drc?" ) then

/*

 * POLY RULES

 */

 drc( poly width < 3 "Poly width < 3.0 " )
 drc( poly sep < 3 "Poly to Poly spacing < 3.0" )
 drc( poly notch < 3 "Poly to Poly spacing < 3.0" )
 drc( poly active sep < 2 "Field Poly to Active spacing <
        2.0" )

/* The next three lines define the gate area and its edges.

 */

gate = geomAnd( poly active )
gatew = geomGetEdge( gate inside poly )
gatel = geomGetEdge( gate coincident poly )

/* The next two commands check the gate extension onto the field and the source/ drain enclosure of the gate. */

 */

drc( poly gatew enc < 3 opposite "Poly gate overlap onto field < 3.0" )
drc( active gatel enc < 3 opposite "Source/Drain enclosure of gate < 3.0" )

/*

 * CONTACT RULES

/* The saveDerived statements output bad contact geometries to the error layer. The first command outputs parts of the contacts that are not covered by the poly or active shapes; the second command outputs parts of the contacts that are not covered by metal.

*/

saveDerived( geomAndNot( contact geomOr( active poly ) )
"Contact not inside Active or Poly" )
 saveDerived( geomAndNot( contact metal1 )
"Contacts not covered by Metal1" )
 drc( contact width < 3 "Contact width < 3.0" )
 drc( contact sep < 3 "Contact to Contact spacing < 3.0" )
 drc( poly contact enc < 2 "Contact inside Poly < 2.0" )
 drc( metal1 contact enc < 2 "Contact inside Metal1 < 2.0" )
 drc( active contact enc < 2 "Contact inside Active < 2.0" )

/*

 * METAL1 RULES

 */

 drc( metal1 width < 3 "Metal1 width < 3.0" )
 drc( metal1 sep < 4 "Metal1 to Metal1 spacing < 4.0" )
 drc( metal1 notch < 4 "Metal1 to Metal1 spacing < 4.0" )

/*

 * VIA RULES
 drc( via width < 3 "Via width < 3.0" )
 drc( via sep < 3 "Via to Via spacing < 3.0" )
 drc( via contact sep < 3 "Via to Contact spacing < 3.0" )

/* This saveDerived statement outputs vias that overlap onto contacts.

 */

saveDerived( geomOverlap( via contact ) "Via not allowed over contacts" )
 drc( via poly sep < 2 "Via to Poly spacing < 2.0" )

/* This saveDerived statement outputs vias that overlap onto poly.

 */

saveDerived( geomOverlap( via poly ) "Via not allowed over Poly" )
 drc( metal1 via enc < 2 "Via inside Metal1 < 2.0" )
 drc( metal2 via enc < 2 "Via inside Metal2 < 2.0" )

/* The next two saveDerived statements output the parts of vias that are not covered by metal1 or metal2. */

 */

saveDerived( geomAndNot( via metal1 ) "Via not inside
Metal1" )
saveDerived( geomAndNot( via metal2 ) "Via not inside
Metal2" )

/*

 * METAL2 RULES

 */

 drc( metal2 width < 5 "Metal2 width < 5.0" )
 drc( metal2 sep < 5 "Metal2 to Metal2 spacing < 5.0" )
 drc( metal2 notch < 5 "Metal2 to Metal2 spacing < 5.0" )
 )

/*

 * EXTRACT RULES FOR PWELL CMOS

/* The second ivIf switch is the extract? switch. If you use this switch, the extraction part of the file automatically executes during an extract run.

 */

ivIf( switch( "extract?" ) then

/* The first section of the extraction part of the rules contains the geomOr statements that change the physical layers used only for extraction to symbols that you can use in the rest of the extraction rule set.
    You must precede special characters used in layer names with a backslash, so layer "p+" is renamed "p\+" and layer "n+" is renamed "n\+".

 */

well = geomOr( "well" )
    ngate = geomOr( "ngate" )
    pgate = geomOr( "pgate" )
    psd = geomOr( "psd" )
    p\+ = geomOr( "p+" )
    nsd = geomOr( "nsd" )
    n\+ = geomOr( "n+" )

/* This section contains boolean functions such as geomAnd and geomAndNot that create new layers for device recognition and define interconnections between layers.

 */

 nwell = geomAndNot( bkgnd well )
 pdiff = geomAnd( active p\+ )
 ndiff = geomAnd( active n\+ )
 pgate = geomAnd( poly pdiff )
 ngate = geomAnd( poly ndiff )
 psd = geomAndNot( pdiff poly )
 nsd = geomAndNot( ndiff poly )
 ptap = geomAnd( well psd )
 ntap = geomAnd( nwell nsd )
 ptie = geomOr( ptap )
 ntie = geomOr( ntap )

/* The geomConnect statement defines the connections between the layers and establishes the network to be extracted.

 */

 geomConnect(
 via( via metal1 metal2 )
 via( contact psd nsd poly metal1 )
 via( ntie nsd ntap )
 via( ptie psd ptap )
 )

/* The geomStamp statement transfers connectivity information from one layer to another. The following example transfers the well tie connectivity to the well itself. This prevents the well from acting as a connection layer forming soft connects.

 */

 nwell = geomStamp( nwell ntap error )
 well = geomStamp( well ptap error )

/* The extractDevice statements define the devices used in the circuit.

 */

 extractDevice( pgate (poly "G")(psd "S" "D") (nwell "B")
 "pfet ivpcell" )
 extractDevice( ngate (poly "G") (nsd "S" "D") (well "B")
 "nfet ivpcell" )

/* The measureParameter commands extract device parameters. These parameters can then be checked when you run an LVS.
    Use the coefficient 0.5 to measure the gate width and gate length parameters because the measureParameter command measures the length of all edges defined in the rule and you only want the length of one edge. For example, to measure the length of a gate, measure the length of the gate edges that are inside and not coincident with poly. Two edges satisfy that requirement. If you do not multiply by 0.5, you are counting the gate length twice.

 */

 pgateWidth = measureParameter( length ( pgate coincident poly ) 0.5 )
 pgateLength = measureParameter( length ( pgate inside poly ) 0.5 )

/* Add the parameters to the devices by using the saveParameter command. The parameter names must be the same as the names that are used in the LVS rules.

 */

 saveParameter( pgateWidth "w" )
 saveParameter( pgateLength "l" )
 ngateWidth = measureParameter( length ( ngate coincident poly ) 0.5 )
 ngateLength = measureParameter( length ( ngate inside poly ) 0.5 )
 saveParameter( ngateWidth "w" )
 saveParameter( ngateLength "l" )

/* The saveInterconnect command writes layers to the extracted cellview. Save the layers defined in the geomConnect command so that you can cross-probe your nets after running LVS.

 */

 saveInterconnect( nsd psd poly contact metal1 via metal2 )

/* The saveRecognition command creates the device recognition polygons in the extracted cellview. It is used in conjunction with the Model view name ivpcell in the extractDevice or extractMOS command.

 */

 saveRecognition( ngate "ngate" )
 saveRecognition( pgate "pgate" )
 )
)
Back to top
Arabic versionBulgarian versionCatalan versionCzech versionDanish versionGerman versionGreek versionEnglish versionSpanish versionFinnish versionFrench versionHindi versionCroatian versionIndonesian versionItalian versionHebrew versionJapanese versionKorean versionLithuanian versionLatvian versionDutch versionNorwegian versionPolish versionPortuguese versionRomanian versionRussian versionSlovak versionSlovenian versionSerbian versionSwedish versionTagalog versionUkrainian versionVietnamese versionChinese version
Post new topic  Reply to topic    EDAboard.com Forum Index -> Analog IC Design & Layout -> diva cmd file for get the extracted view of the layout.
Page 1 of 1 All times are GMT + 1 Hour
Similar topics:
The difference of extracted view and analog_extracted view (3)
how to get correct extracted view in ic5033 (6)
why some layers missed in the extracted view ? (13)
Can I modify an extracted view before I create the netlist? (3)
How to view the layout contents of the instances? (7)
how to change extracted view in symbol view in cadence (5)
How could I synchronize the Sch. and Layout View? (1)
Where can I get the ADS example file for this tutorial? (6)
How to view the art wotk file in gerb tool (9)
extraction with Diva - saving rep transmitter/NOR/extracted (1)


Abuse || Administrator || Moderators || Support us || sitemap
topic RSS