Product Documentation
Dracula Reference
Product Version IC23.1, September 2023

12


Input-Layer Block Commands

Chapter 12 discusses the Input-Layer Block Commands in alphabetical order.

Introduction

This section describes how you enter layer names to correlate with layout layer numbers. You define these layer names in the Input-Layer block. You can create as many Input-Layer blocks as you need as long as you do not use different layer names to represent the same layout layer. The preprocessor concatenates the individual names and checks their syntax.

The INPUT-LAYER block section has a problem with handling more than 51 layer files at a time. When the INPUT-LAYER block section on the Dracula card is set to something as given below, two LAYER1 layers (shown below) should automatically be merged, and become a single data.
LAYER1 = 1 DATATYPE = 0
LAYER2 = 2 DATATYPE = 0
.
.
.
LAYER1 = 9 DATATTPE = 1

However, if the LAYER1 layers are located too far, it will be aborted. The Dracula card can read in only a maximum of 51 layers at once. When this number is exceeded, the layers fail to be merged. This problem can be resolved by reorganizing the order of layer entries such that entries of the same layer name will be handled in the same pass.

Using Text

Dracula requires that you attach text strings to layout geometries during ERC, LVS, LPE, PRE, and consistency checks. Text strings identify circuit components such as the power supply, ground, clock, or pads. Text also identifies nodes and virtual connections and defines circuit elements. Dracula uses text for the following purposes:

Permissible characters and syntax rules are listed in the Text Conventions section.

In an Applicon database, text strings are already attached to the geometries. Typically, you define and enter text strings at the polygon level. Dracula recognizes only those text strings at the layers and fields that you specified in the Input-Layer block. In the following example, the metal layer (geometry layer 9) has a text layer (text layer 60) attached to it.

*INPUT-LAYER 
metal = 9 TEXT 60
*END

In GDSII, you do not directly attach text strings to layout geometries. Text strings are part of a separate layer and do not have pointers back to polygons. Dracula attaches text to its corresponding geometry according to your definition in the Input-Layer block. For example,

*INPUT-LAYER 
diffus = 2
poly = 8
metal = 9 TEXT 60
text = 20 ATTACH metal
CONNECT-LAYER = diffus poly metal
PAD-LAYER = vapox
*END

In this example, the text on layer 60 is not specifically attached to one layer, so it attaches to one of the connect layers. The text on layer 20 can attach only to layer metal.

Dracula attaches text in the reverse order of the CONNECT-LAYER, where the metal layer has the highest priority and the diffusion layer the lowest. In the previous example, text strings with coordinates within the metal geometries are attached to the metal layer and eliminated from further attachments. All remaining text in the polysilicon is attached. Finally, the text in the diffusion is attached and Dracula discards any text outside the three layers.

To use a text coordinate file, you can enter text directly using the EDTEXT command in the Operation block. For more information about the EDTEXT command, refer to Chapter 13, “Operation Block Commands.”

Texting Mechanism

For LVS and some DRC, ERC, and LPE checks, you must label some electrical nodes in the database with the texting mechanism. The correct use of text is critical, especially for LVS and ERC checks.

The main way to enter text into the Dracula database is with a CAD graphics system. However, because CAD graphics systems let you enter text that is not meaningful to Dracula (such as cell text), you must establish a screening procedure to put text on reserved text layers or text types.

The second way to enter text into the database is to create a text coordinate file. This file contains text and text origins (x,y coordinates in natural units). Whenever both the CAD graphics system and the text coordinate file have different text at the same location, Dracula discards the text from the CAD graphics system.

Text Conventions

Dracula text can incorporate any of the characters shown in the following table. Dracula converts any other character except the colon (:) to a question mark (?) and treats a question mark as a text delimiter. The text is truncated at that point. There is no limit to the number of characters you can specify on one line.

A to Z

Letters

.

Period

0 to 9

Numbers

=

Equal sign

+

Plus sign

<

Left angle bracket

-

Minus sign

>

Right angle bracket

/

Slash sign

_

Underscore

(

Left parenthesis

Apostrophe

)

Right parenthesis

$

Dollar sign

*

Asterisk

?

Wild card

[

Opening bracket

&

Ampersand

]

Closing bracket

%

Percent sign

@

“At” sign

The following rules apply to text:

Attaching Text to a Geometry

You can attach text to a geometry when the text origin (x,y location) is inside, at the edge, or on the vertex of the geometry, as shown in the following figure.

You can attach text to geometries from one of many layers. The text is attached to geometries on only one layer according to the text-layer sequence until it is finally attached or the text is discarded.

Specify text-layer sequences using the TEXTSEQUENCE command in the Input-Layer block in reverse order of the layer sequence. The layers you specify in TEXTSEQUENCE must be specified in the CONNECT-LAYER command. If you do not specify TEXTSEQUENCE, specify the text-layer sequence with the CONNECT-LAYER command in the reverse order of the layer sequence.

Labeling Electrical Nodes

If you attach text to a geometry that represents part of the layout data for an electrical node, the text becomes the label of the node. A node can carry one unique label, and no other node can carry that label. Therefore, you can identify a node by its label and you can identify a group of nodes by a group of labels. To refer to a group of labels for ERC and DRC checks, you can use a question mark (?) as a wildcard character. For example,

?AB

Refers to all the labels ending with AB

XY?

Refers to all the labels starting with XY

?NN?

Refers to all the labels having the substring NN

?:P

Refers to all the power pads

?:?

Refers to all the pads

Text from a CAD Graphics System

To input text from a CAD graphics system, specify the layer definition in the Input-Layer block on a separate line. You can also specify a text layer by appending the text to a geometry layer definition.

name1 = layer1 TEXT = layer2 TEXTTYPE = number ATTACH = name2

name1

Specifies the name of the source geometry layer

layer1

Specifies the source geometry layer number in CAD graphics system

layer2

Specifies the text layer number in CAD graphics system

number

Specifies the text type number in CAD graphics system

name2

Specifies the name of geometry layer to which text is attached

TEXTTYPE and ATTACH commands are optional.

If you specify an attached layer name, texts are attached to that layer only.

If you do not specify an attached layer name, texts are attached to one of the layers in accordance with the CONNECT-LAYER or TEXTSEQUENCE command.

Example 1

This example shows how you specify text on one line.

METAL = 12 TEXT = 80   ATTACH = METAL1 

Example 2

This example shows how you specify a text layer definition on a separate line.

POLY = 6 
TEXT = 12  TEXTTYPE = 6:12  ATTACH = METAL

Text for Power and Ground

Dracula recognizes the following power and ground names and converts them to pad types:

VCC

Converted to VCC:P

VDD

Converted to VDD:P

VSS

Converted to VSS:G

GND

Converted to GND:G

GROUND

Converted to GROUND:G

VEE

Converted to VEE:S

VBB

Converted to VBB:S

Texting Multiple Power Supply Pads

BASE-LAYER

BASE-LAYER = layer-name1 {layer-name2} {...} 

Description

Specifies layers containing composite plane geometries that must be mapped into Hcells.

Checking Method

modes

    Cell, composite, Vampire.

checks

    HLVS, HLPE.

Arguments

layer-name

The name of the layer defined in the Input-Layer block.

You can use this command for gate-array layouts, where composite plane layers (the base-layers) provide a set of symmetric geometries overlaid by Hcells that parameterize the semi-custom circuit with transistors, contacts, and other connections on one or two layers.

Composite mode HLVS cuts out the composite-plane geometry portions that lie within an Hcell boundary. Dracula then maps and merges these geometry portions into the Hcell allowing them to create devices. The corresponding Hcell subcircuits on the netlist must include whatever connectivity the composite-plane geometry portions on the layout side provide.

The BASE-LAYER command handles geometries that are not identical for different placements. Geometries that are the same for each placement move into the cell. Unique portions of the geometries stay at the composite level.

Example

In this example, assume that PWELL and NSUB are in the composite layer. If PWELL and NSUB are not identified as BASE-LAYER, then all CMOS transistors in the Hcells do not have substrates. If PWELL and NSUB are identified as BASE-LAYER, then all MOS devices can have substrates, if the PWELL is under the N devices and the NSUB is under the P devices.

BASE-LAYER = PWELL, NSUB

CELLBNDY

CELLBNDY = layer-number {DATATYPE data-type} 
CELLBNDY = AUTO [value]

Description

Specifies the input layer used to build cell boundaries. For hierarchical cells with boundaries defined in this layer, these boundaries override the bounding boxes generated by the program. If you do not specify CELLBNDY, Dracula derives the bounding boxes from the layers drawn within the cell.

The SUBSTRATE and CELLBNDY commands affect the formation of the substrate layer, which affects the formation of the reverse field layer. For HLVS and HLPE jobs, the connectivity of the reverse field layer can also be affected. For example

SUBSTRATE = BULK 63
NOT BULK PWELL NSUB

The NSUB layer of a cell in flat mode and the NSUB layer of the same cell as an Hcell in cell mode might differ because of differences in the BULK layer. If this causes problems in connectivity, you can modify the cell boundary. You can use the CELLBNDY command to make the cell boundary larger than the Hcell default. To prevent creating open circuits, you can add virtual wire texting to connect them.

For more information, refer to the SUBSTRATE command section in this chapter.

When you specify AUTO, Dracula automatically generates a rectilinear cell boundary.

Checking Method

modes

Cell and composite.

checks

    HDRC, HLVS, HERC, and HLPE.

Arguments

layer-number

Specifies the layer number on the layout database.

data-type

Valid for GDSII format or CADENCE. Default is all datatypes. You can also use an inclusive range value (for example, DATATYPE=7:10).

Use this command for cells with non-rectangular cell boundaries and gate arrays. For example, if only metal is digitized inside the cell and diff and poly are digitized at the composite level, the resulting devices are electrically inside the cell but are built from polygons digitized outside the bounding box.

You can specify only one boundary for each cell. The boundary can be any rectilinear polygon. Dracula creates bounding boxes as cell boundaries for Hcells that have no input boundaries specified in the CELLBNDY layer. The input boundaries always supersede the bounding boxes.

Running a job with this command creates the 9CELLBND.DAT, 6CELLBND.DAT, 7CELLBND.DAT, and CELLBNDY.DAT files. These are binary files in Dracula formats.

In rectilinear cell applications, under normal circumstances, Dracula makes correct electrical connections and you do not need CELLBNDY. However, when you specify FRAME or GEN-TEXT-FRAME for a rectilinear cell or when you use BASE-LAYER in either cell or composite mode, you must specify CELLBNDY.

AUTO

    Dracula automatically generates a rectilinear cell boundary.

value

The amount to oversize or undersize the boundary.

Example 1

This example reads in layer 59 as the cell boundary layer.

*INPUT-LAYER
PWELL=1
DIFPN=2
POLY =3 CTEXT=28 ATTACH=POLY
CONT=5
MET=6 CTEXT=29 ATTACH=MET
VAPOX=7 TEXT=30
PISL=4
CELLBNDY = 59
SUBSTRATE = BULK 63
;
CONNECT-LAY = NSUB PWELL PSRCDRN NSRCDRN POLY MET
*END

Example 2

This example automatically creates a rectilinear cell boundary.

*INPUT-LAYER
.
.
.
CELLBNDY = auto
*END

CONNECT-LAYER

CONNECT-LAYER = layer1  layer2... 

Description

Defines the conductor layers of the IC process from bottom to top. If you use a CONNECT command in the Operation block, you must use the CONNECT-LAYER command in the Input-Layer block. Specify only the layers that appear in the CONNECT commands (excluding the contact layers). You can specify multiple layer names on one line or use multiple lines.

For more information about connecting layers, see “Connecting Your Network” in the “Writing Rules for Dracula” chapter in the Dracula User Guide.

Arguments

layer

Specifies the mask order of the layers used in the CONNECT operation (excluding the contact layer). List the bottom layer first and the top layer last.

Layer names must have at least three characters. If you use the layer name in the ELEMENT or PARASITIC commands, the first three characters must be unique.

Text sequence is generated only on layer names that appear in both the CONNECT-LAYER and CONNECT commands.

Example 1

The first three characters of met2 and met1 are the same. If you use this example with an ELEMENT CAP command, this is a syntax violation because the first three characters must be unique. The preprocessor checks for this syntax violation.

CONNECT-LAYER = nsrcdrn poly met1 met2 

Example 2

CONNECT-LAYER = psub nwell nsd psd pl1 pl2 metal 

or

CONNECT-LAYER = psub buried base nplus deepn mt1 mt2 

or

CONNECT-LAYER = psub    ;bottom layer 
CONNECT-LAYER = buried 
CONNECT-LAYER = base 
CONNECT-LAYER = nplus 
CONNECT-LAYER = deepn 
CONNECT-LAYER = mt1 
CONNECT-LAYER = mt2    ;top layer

Specify the bottom layer as layer1 followed by the next layers and end with the top layer, usually metal.

Example 3

*INPUT-LAYER
.
CONNECT-LAYER = srcdrn poly metal 
.
*END
*OPERATION
.
CONNECT metal poly    BY mc1 
CONNECT metal srcdrn    BY mc1 
CONNECT poly srcdrn    BY epi 

You must use the CONNECT-LAYER command for ERC, LVS, and LPE because they require text. Dracula processes the text you specify in the Input-Layer block as follows:

Example 4

CONNECT-LAYER = nsd poly met1 met2 

In the Operation block:

CONNECT met2 met1 BY cont 
CONNECT met1 poly BY cont    (not allowed) 
CONNECT met1 nsd BY cont    (not allowed) 

The master layer is mt2. The cont contact layer cannot be used to contact mt1 to nsd or mt1 to poly.

CTEXT and ATTACH

CTEXT = text-layer layerPurpose  {ATTACH = layer-name} 

Description

Specifies the input layer numbers that provide Hcell text. The ATTACH command specifies the input layer to which the Hcell text on the CTEXT layer number is attached.

Without the ATTACH command, Hcell texts on the text-layer fall through the input layers in the order specified by the TEXTSEQUENCE or CONNECT-LAYER commands.

Dracula can read the same layer for both TEXT and CTEXT, but not when using the ATTACH command. You must use different layers for composite and Hcell text.

Checking Method

modes

    Cell and composite.

checks

HERC, HLVS and HLPE.

Arguments

text-layer

The number of the text layer from the layout database.

layerPurpose

The purpose for the layer, for example, drawing.

layer-name

The name of the layer of one of the connect layers.

The layer definition performs an independent function from the CTEXT command, even though they can be on the same line. It is not necessary to include the CTEXT command exactly on the layer to which it attaches. You can put CTEXT either in the left column or following a layer definition.

Example 1

*INPUT-LAYER 
poly = 5 CTEXT = 27 ATTACH = poly
metal = 4
CTEXT = 19 ATTACH = metal
CTEXT = 18

Example 2

PDIFF = pdiff          TEXT = text drawing    ATTACH = metal
TEXT = text drawing ATTACH = metal
NDIFF1 = ndiff1 CTEXT = text1 drawing
CTEXT = text2 drawing

EXPORT

EXPORT  layer-name...

Description

Generates layers from an input database and outputs them as Dracula-compatible data files. You can use this command to combine layers from several databases or to compare layers from different databases. The EXPORT command ensures that Dracula does not delete the layers specified even if you use KEEPDATA=NO or KEEPDATA=SMART in the Description block. You do not need an Operation block when you use the EXPORT command.

You can use the EXPORT command to specify any layer-name if KEEPDATA=NO (or SMART) so that the preprocessor does not delete these layer-names. Thus, you can specify not to delete files and layer names (other than trapezoid layers). You can run an interactive program such as Dracula Interactive or Layout Parameter Extraction Post-processor (LPEPRO) even if you specified KEEPDATA=NO (or SMART).

See also the IMPORT-LAYERS section in this chapter.

Argument

layer-name

The user-defined layer name.

Example 1

*INPUT-LAYER 
Diff = 1
nplus = 2
polyA = 3
mcA = 4
metalA = 5
EXPORT polyA mcA metalA
*END

Example 2

*DESCRIPTION 
.
KEEPDATA = smart
.
*END
*INPUT-LAYER
.
EXPORT = 6nets poly nsd psd pwell nsub contact
EXPORT = metal 6netl 6pads 6pads 6nxrf 6exrf
EXPORT = mosxn8g mosxp8g ; for a CMOS process
.
*END
*OPERATION
.
LVSCHK
*END

Example 3

*DESCRIPTION 
PRIMARY = TOPCELL
.
EXPORT = metal2 metal1 poly psd nsd
EXPORT = BOUNDARY SCRXTEXT TREETOPC

The first run reads in and exports all the input layers needed. When the second job does not input any new layers and does not run GDS2IN, you should export the BOUNDARY, SCRXTEXT, and TREExxxx (where xxxx is the first four characters of your primary name) files. These files are often needed by the second job.

FRAME-EXCLUDE-LAYER

FRAME-EXCLUDE-LAYER = layer1 layer2 .....

Description

Allows several specified layers not to be clipped by the FRAME BY command.

This command applies only in composite mode.

Arguments

layer

Name of the specified obstruction layer defined in the hcells.

Example

*INPUT-LAYER
MT1 = 10 ;METAL ONE LAYER
MT2 = 11 ;METAL ONE LAYER
MT3 = 13 ;METAL ONE LAYER
M10BS = 75 ;M1 P&R obstruction layers
M20BS = 76 ;M2 P&R obstruction layers
M30BS = 77 ;M3 P&R obstruction layers
FRAME-EXCLUDE-LAYER = M10BS M20BS M30BS
*END
*OPERATION
SIZE M10BS BY 0.5 OM10BS
SIZE M20BS BY 0.7 OM20BS
XCELL MT1 0M10BS OUTPUT ERR 1
XCELL MT2 0M20BS OUTPUT ERR 2
*END

FRAME-HOLE-LAYER

FRAME-HOLE-LAYER = LAYER

Description

Creates a new layer that is the same shape as the frame, as defined by FRAME BY commands in cell mode.

Arguments

layer

    Layer name.

Example

The following are examples of checking for the illegal presence of layer "CONT4" inside or cutting the frame hole in cell mode.

*INPUT-LAYER
CONT4= 4
FRALE-HOLE-LAYER= FL
*END
*OPERATION
SELECT CONT4 OVERLAP FL OUTPUT ERR 1
*END

GEN-TEXT-LAYER

GEN-TEXT-LAYER = layer-name1 {layer-name2} {...} 

Description

Specifies the layers to which the Hcell text generated by GEN-TEXT is attached. If you do not specify the GEN-TEXT-LAYER command, GEN-TEXT defaults to the layers specified by the CTEXT and ATTACH commands. The layers specified by the CTEXT and ATTACH commands contain the original cell text from the database. The GEN-TEXT command attaches the text to all layers that qualify.

Checking Method

modes

    Cell.

checks

    HLVS.

Arguments

layer-name

The layer name of one of the connect layers.

You must ensure that GEN-TEXT, at a minimum, attaches cell text to all layers that can be used as pins (connecting to composite or other Hcells) or as feedthroughs. Otherwise, Dracula reports discrepancy errors when running composite mode HLVS.

Example

GEN-TEXT-LAYER = nsub pwell poly metal

IDTEXT

layer1 = IDTEXT layerNumber

Description

Lets you add text to layers for identification purposes. These layers are independent of connectivity. You can select polygons by idtext names from a particular idtext layer.

The IDTEXT command is useful only with the SELECT LABEL {[t] | [t’]} command.

Arguments

layer1

    The IDTEXT layer name in the rules file.

layerNumber

    The layer number from which text is extracted for layer1.

Example

In this example, two IDTEXT layers, idtxt1 and idtxt2, extract texts from input layers 1 and 2. There is text on layer 2 for connectivity purposes (for example, naming electrical nets).

*INPUT-LAYER
metal = 1
idtxt1 = IDTEXT 1
poly = 2 TEXT 2
idtxt2 = IDTEXT 2
cont = 3
*END
*OPERATION
SELECT metal BY idtxt1 LABEL[t] {RES111,RES222,RES333} pad1 OUTPUT mpad 2
SELECT poly BY idtxt2 LABEL[t'] RES? pad2
*END

IMPORT-LAYERS

IMPORT-LAYERS  path-name1/layer-name1,  path-name2/
layer-name2
...
 

Description

Combines layers from a previous run with the current job. Use this command to combine or compare layers from different databases.

The resolution in the first job must be the same as the resolution in the second job.

If you do a database comparison or logical operation, the SCALE and RESOLUTION commands must be identical in the Description blocks of both input rules files. For the format required to compare layers from different databases, refer to the database comparison example in the CONVERT-DATABASE section in Chapter 11.

You can use the SNAP command instead of RESOLUTION to specify grid snapping.

Arguments

path-name

    Specifies the layer to import. You can use the directory path name to specify the layer file.

layer-name

A user-defined layer name specified in the Operation block but not in the Input-Layer block. You can specify more than one layer-name on a line.

Example

*INPUT-LAYER 
IMPORT-LAYERS polyA mcA metalA
IMPORT-LAYERS polyB
IMPORT-LAYERS mcB
.
.
polyC = 5
metalC = 11
.
*END

KTEXT

KTEXT = <gds_layer_number> {ATTACH = < <Dracula_layer_name> >}

Description

Specifies the text input source from GDS2 layer for the “Keep Cell Text” feature in an LVS or LVL job. If ATTACH is specified, the text will be attached to that specific Dracula layer. The syntax is very similar to the command TEXT.

There are two ways to specify the text input source for the “Keep Cell Text” feature. One is the KTEXT command in the Input-Layer Block which reads texts from the CAD graphics database, the other is the KEDTEXT command in the Operation block which reads texts from a plain ASCII file. The two commands can exist simultaneously.

Checking Method

modes

Flat

Arguments

gds_layer_number

The number of the assigned layer in the layout CAD system.

Dracula_layer_name

User-defined Dracula layer name.

Example

METAL1 = 6 KTEXT = 8

or

METAL1 = 6 KTEXT = 8 ATT = METAL1

or

KTEXT = 8

or

KTEXT = 8 ATT = METAL1

Layer Name Definition

layer-name = layer-number {OFFGRID = off-grid} {DATATYPE  data-type} {TEXT = text-layer} {TEXTTYPE  text-type} {ATTACH layer-name1} {ANGLE = ALL/90/45/NON-45/ACUTE/
NON-90/NON-ACUTE}
TEXT = text-layer layerPurpose {TEXTTYPE text-type} {ATTACH 
layer-name1}{ANGLE = ALL/90/45/NON-45/ACUTE/NON-90
/NON-ACUTE}
layer-name = layer-purpose TEXT = PIN
layer-name = layer PIN
layer-name = IDTEXT layer

Description

The layer-name variable assigns names to layout layers. You can name layers from GDSII formats.

Dracula can read the same layer for both TEXT and CTEXT text, but you cannot attach text in the same layer to different layers. In the following example, some of the text attached to MET is lost:
POLY=3       CTEXT=29      ATTACH=POLY
MET=6 CTEXT=29 ATTACH=MET
VAPOX=7   TEXT=29

Arguments

layer-name

User-defined layer name. The layer-name can have a maximum of seven alphanumeric characters and no special characters. The first character must be a letter. You can use the same layer name on more than one line to group layers from different layer numbers or datatypes. Also, you can use inclusive range values (for example, metal = 1:3).

You cannot use the name “TEMP” for any layer. This name is reserved for a temporary Dracula file.

layer-number

The number of the assigned layer in the layout CAD system. You can use inclusive range values. For GDSII, the supported range of layer-number is 0-255. For DFII formats, specify the layer-name.

off-grid

Checks the off-grid value of each input layer. You can specify different off-grid values for each input layer.

data-type

Valid only for GDSII. You can specify a range value (for example, DATATYPE=7:10). The supported range is 0-255. The default is all datatypes.

text-layer

You can designate text as a layer-name so that it is associated with a layer number, for example, text = 40 ATTACH metal. You can use a range value, for example, TEXT=11:14. The default is that TEXT is not used.

layer-purpose

Extracts objects from Design Framework II based on layer purpose information you specify in the rule file. A Dracula layer can include EDGE or Design Framework II layer purpose information. The default includes all layer purposes except purpose pin.

text-type

Field numbers associated with TEXT text-layer. You can use a range value. The default is all text types.

layer-name1

Layer-name for a layer specified in the TEXTSEQUENCE or CONNECT-LAYER commands. The ATTACH command is optional.

ANGLE

    You can choose certain shapes of polygons as output from the Dracula job into your layer database. You can only use one ANGLE command per layer number.

ALL

    Outputs all polygons. Default.

90

    Outputs only rectangles with edges parallel to the x or y axis.

NON-90

Outputs only polygons containing one edge that is not 90 degrees to the x or y axis. These are non-manhattan polygons.

45

    Outputs all polygons that have all edges on either 45, 135, 225, or 315 degrees or manhattan.

NON-45

Outputs only polygons containing one edge that is not a multiple of 45 degrees to the axis.

ACUTE

    Outputs only polygons containing one acute angle.

NON-ACUTE

Outputs only polygons not containing any acute angle.

You cannot use the ANGLE command to process a combination of multiple shapes.

Example 1

GDSII example:

diffus      = 2 
metal = 9
poly = 8
implant = 4
metal1 = 12
metal1 = 22
Diff = 1
Emitter = 3:6
base = 7
metal = 10:14
TEXT 10 ATTACH metal
TEXT 16 ATTACH scrdrn
TEXT = 20 ATTACH poly

Dracula reads the layer-name commands and processes the data line by line. To split the data onto multiple layers using the DATATYPE or TEXTTYPE commands, you must assign the DATATYPE and TEXTTYPE layer names first.

Example 2

emitter = 1 DATATYPE = 2
emitb = 1 DATATYPE = 1:3
nplus = 1
TEXT = 18     TEXTTYPE = 5  

The emitter layer contains layout data from layer 1 of DATATYPE 2. The emitb layer contains layout data from layer 1 of DATATYPE 1 and DATATYPE 3. The emitb layer does not contain DATATYPE 2 because this was previously used for the emitter layer. The nplus layer contains all data on layer 1 with DATATYPE 0 and DATATYPE 4-63. This command reads text from layer 18 of TEXTTYPE 5.

If you define the nplus layer first, it contains all layout data from layer1, leaving the emitter and emitb layers empty.

Example 3

Dracula layers can include EDGE or Design Framework II layer-purpose information.

poly        = poly drawing
pwell = pwell all
metal = metal
srcdrn = srcdrn pin

If you assign PIN to the layer-name variable, Dracula extracts the geometry on the pin purpose layer. If you specify TEXT = PIN, Dracula extracts the text from the pin purpose layer.

When you define the pin purpose to create text, Dracula reads in only the pin purpose shapes. When the pins are on a design layer purpose pin, you must define a separate layer for the text, such as

ME1 = metal1
TEXT=metal1 pin attach=ME1
TEXT=metal1 attach=ME1

Example 5

IDTEXT layer example:

*DESCRIPTION
PRIMARY = a1
SYSTEM = GDS2
SCALE = .001 MICRON
PRINTFILE = DRC3
RESOLUTION = .001 MICRON
INDISK = in.db
OUTDISK = DRC3OUT
*END
;
*INPUT-LAYER
metal = 1
idtxt1 = IDTEXT 1
poly = 2 TEXT 2
idtxt2 = IDTEXT 2
cont = 3
*END
;
*OPERATION
SELECT metal BY idtxt1 LABEL[t] {RES111,RES222,RES333} pad1
OUTPUT mpad 2
SELECT poly BY idtxt2 LABEL[t'] RES? pad2
*END

OUT-ANNOTATED-LAYER

OUT-ANNOTATED-LAYER =  LAYER1  LAYER2 LAYER3 ... 

Description

With this command, a user can define the names of the output layers to be annotated. Default output layers are layers in CONNECT-LAYER and device layers in the ELEMENT command, for example ELEMENT MOS[P] NGATE POLY NSD PWELL).

OUT-ANNOTATED-LAYER requires the command SYSOUT=AGDS2 in the Description Block. For more information, see “SYSOUT”.

Argument

LAYER1 LAYER2 LAYER3 ...

The name of the output layer to be annotated

Example 1

In the following example, the output layers to be annotated are ME1, ME2, ME3, and ME4.

OUT-ANNOTATED-LAYERS = ME1 ME2 ME3 ME4

PAD-LAYER

PAD-LAYER = pad_layer [affected_layer1] [affected_layer2...]

Description

Specifies the location of the pad in the primary cell for PRE or HPRE. Extra terminals are formed automatically in PRE or HPRE jobs by the LOGICAL operation on the CUT-TERM input conduction-layer and by the pad-layer defined in the PAD-LAYER command. Pad terminals are selected from each RCONNECT-LAYER geometry that overlaps the pad-layer and are reported as the pad name/number in the .SUBCKT statement in the SPICE/DSPF file by LPESELECT or SPFSELECT commands. You must specify the PAD-LAYER command in the PRE or HPRE jobs.

You can also specify the affected layers in a PAD-LAYER command so that extra terminals or circuit pads are formed only on the affected layers you specify. You can specify multiple PAD-LAYER commands, with different pad layer names and different affected layers specified for each, in the same rule file.

Dracula does not support this command if the terminal layer from CUT-TERM is not in the RCONNECT-LAYER. In addition, this command is not supported if the affected layers are not CUT-TERM layers.

Checking Method

modes

    Composite or flat.

Argument

pad_layer

The name of an input layer from the layout database or a derived layer.

affected_layer

Cut-term layer. This can either be conduction layers or derived layers that are affected by pad_layer. If you do not specify any affected layers, the pad_layer affects all reconnect layers.

Example 1

In the following example, an input layer is defined as a pad-layer, and the pad-layer affects all reconnect-layers.

*INPUT-LAYER
METAL = 10
MET2 = 12 TEXT = 30
VAPOX = 60
PAD-LAYER = VAPOX

Example 2

In the following example, a derived layer is defined as a pad-layer, and the pad-layer affects all reconnect-layers.

*INPUT-LAYER
METAL = 10
PAD-LAYER = PPAD
...
*OPERATION
SELECT METAL LABEL[R] ? PPAD

Example 3

In the following example, pad layer PAD1 affects CUT-TERM layer METAL1 and METAL2. Pad layer PAD2 affects CUT-TERM layer METAL3. Pad layers PAD1 and PAD2 do not affect any other RCONNECT layers.

CONNECT-LAYER = PSB NWELL PSD NSD POLY METAL1 METAL2 METAL3
RCONNECT-LAYER = PSUB NWELL PWELL NSD PSD PTRM M1TRM M2TRM M3TRM
PAD-LAYER = PAD1,METAL1,METAL2
PAD-LAYER = PAD2,METAL3
....
CUT-TERM METAL1 CONT M1RES M1TRM
CUT-TERM METAL2 VIA M2RES M2TRM
CUT-TERM METAL3 VIA M3RES M3TRM
....

Example 4

In the following example, the PAD layer affects the derived layer, M1BIAS.

RCONNECT-LAYER = ...M1TRM
PAD-LAYER = PAD M1BIAS
...
CUT-TERM M1BIAS CON M1RES M1TRM

Dracula does not support the PAD-LAYER command if the terminal layer from CUT-TERM is not in the RCONNECT-LAYER. For example, the following command is not valid:

RCONNECT-LAYER = ...M1TRM
PAD-LAYER = PAD,M1Z
...
CUT-TERM M1Z CON M1RES OM1TRM
OR OM1TRM OTHER M1TRM
...
RCONNECT M1TRM POLY BY CON
...

In addition, Dracula does not support the following command because the affected layers psd and nsd are not CUT-TERM layers.

CONNECT-LAY = PSUB NWELL PWELL NSD PSD,POLY1 METAL
RCONNECT-LAY = PSUB NWELL PWELL NSD PSD PTRM MTRM
....
PAD-LAYER = VAPOX,METAL1,PSD, NSD
PAD-LAYER = PAD,POLY1
....
CUT-TERM METAL1 CONT MRES MTRM
CUT-TERM POLY1 CONT PRES PTRM
.....

PIN-TEXT-LAYER

PIN-TEXT-LAYER = pin_layer [layer] [value] 

Description

Creates an additional physical layer for each text layer. This physical layer creates squares that surround all text on the composite plane only. This layer can be used for logical operations.

If the pad-layer is generated from PIN-TEXT-LAYER, different pin layers can be generated from different texted layers if you specify the texted layer name in PIN-TEXT-LAYER command. You can specify multiple PIN-TEXT-LAYER commands in the same rule file if you specify multiple pad-layer commands. The PIN-TEXT-LAYER command includes text from EDTEXT-FILE.

Checking Method

modes

    Composite.

Arguments

pin_layer

The corresponding pin layer generated from layer. The layer name can have a maximum of seven alphanumeric characters and no special characters. The first character must be a letter.

layer

A layer with text.

value

Size of the squares that surround the text. The value must be a positive integer, can be less than 1, and can have a maximum of three digits. Default value is 2, which means the square is 2 by 2. The minimum value is one resolution unit.

Example

The following example generates pin-layer P1 for text on METAL1 and P2 for text of METAL2. Pin-layer P1 is defined as a pad-layer that affects METAL1. Pin-layer P2 is defined as a pad-layer that affects P2. If text on METAL1 falls inside an overlapped area of METAL1 and METAL2, only one terminal (on METAL1) is formed.

PIN-TEXT-LAYER=P1, METAL1
PIN-TEXT-LAYER=P2, METAL2 3
PAD-LAYER=P1, METAL1
PAD-LAYER=P2, METAL2

RCONNECT-LAYER

RCONNECT-LAYER = layer1 layer2... 

Description

Specifies the mask order in which to reconnect the layout circuit after PRE splits conduction layers to generate parasitic resistors.

This command is required if you include an RCONNECT command in the Operation block.

This command lists the same layers as the CONNECT-LAYER commands, substituting the conduction layers from the RCONNECT commands that have been split into resistor and resistor terminal layers for the corresponding resistor terminal layers. The syntax of this command is the same as the CONNECT-LAYER command. You can specify layer names in a single RCONNECT-LAYER line or in multiple RCONNECT-LAYER commands.

Checking Methods

modes

    Flat and composite.

checks

    PRE and HPRE.

Arguments

layer1 layer2

The layer names that appear in the RCONNECT operation. Each layer name must be at least three characters long. If the layer names appear in an ELEMENT command, the first three characters must be unique.

Example

In this example, the POLY conduction layer is split into a resistor terminal layer, PTRM, and a resistor layer. The RCONNECT-LAYER sequence of parameters is the same as the CONNECT-LAYER parameters except for substituting PTRM for POLY. The RCONNECT command parameters also resemble the CONNECT parameters, with PTRM substituting for POLY.

CONNECT-LAYER = NSD POLY MET1 MET2
RCONNECT-LAYER = NSD PTRM MET1 MET2

RCX-LAYERS

RCX-LAYERS =  LAYER1  LAYER2 ... 

Description

This command defines the layers which are passed into Assura RCX through the xcn file created by the GENXCN utility. Please refer to the Assura Physical Verification Developer Guide for more information on the xcn file.

This command works only if RCX-MODE=YES or RCX-MODE=LAYOUTONLY (see “RCX-MODE”). For additional information see the Dracula Users Guide, “Running the DracToRCX Interface”.

Argument

LAYER1 LAYER2 ...

Specific layers which will be used by GENXCN to create the xcn file required by RCX. The specified layer must be defined in the INPUT-LAYER section of the rule file.

Layer names must have at least three characters.

Example

*DESCRIPTION
...
RCX-MODE=YES
...
*END
*INPUT LAYER
...
*END
...
RCX-LAYERS = mt1, mt2
...
*END

SUBSTRATE

SUBSTRATE = layer-name  layer-number 

Description

Generates the substrate layer you can use as a regular layer in an operation. Dracula forms the geometries on the substrate layer in the following ways:

The SUBSTRATE and CELLBNDY commands affect the formation of the substrate layer, which in turn affects the formation of the reverse-field layer. The connectivity of the reverse-field layer might affect HLVS and HLPE jobs. The example below illustrates a possible problem.

Dracula issues the following fatal error message if the WINDOW command specifies a window outside the substrate layer:

*/FE***  FATAL ERROR DETECTED:  NO DATA HAVE BEEN FOUND
-- PLEASE CHECK DATABASE AND WINDOW SIZES.

Arguments

layer-name

The name of the generated rectangle. The layer name can have a maximum of seven alphanumeric characters and can have no special characters. The first character must be a letter.

layer-number

A two-character dummy field. You can specify any number from 0 to 99. The number is not significant.

Example

SUBSTRATE = BULK 63
NOT BULK PWELL NSUB

The NSUB layer of a cell in flat mode and the NSUB layer of the same cell (as an Hcell) in cell mode might differ because of differences in the BULK layer. If this causes connectivity problems, especially in cell mode, use the CELLBNDY command to alter the boundary by making it slightly larger than default. If you have a problem with open circuits, you can provide virtual wire texting to connect the wire.

TEMPORARY-LAYER

TEMPORARY-LAYER = layer-name1  layer-name2...

Description

Specifies the layer names you use repeatedly so that the preprocessor does not issue a warning each time it encounters a repeated name. This command does not suppress any real error messages. You can repeat this command as often as necessary, but you need to specify each repeated command only once.

This command is useful when you use the same layer name repeatedly to save disk space or improve readability of your rules.

Note:

Arguments

layer-name

Name of the layer assigned as a temporary-layer.

Example

In this example, in the first line of the Operation block, abc is the name assigned as the result of the AND operation. In the second line, abc is assigned as the result of the NOT operation. Normally, Dracula issues a WARNING to prevent you from directing the output of multiple commands to abc. If you specify the TEMPORARY-LAYER command, the preprocessor does not issue a warning message and allows multiple use of abc as an output.

An error message appears for the last command because the program needs real in the final output stage to output the polyg01 error file. The TEMPORARY-LAYER command does not suppress any real error messages. If an error of this type occurs, use a name other than real for the last logical operation.

*INPUT-LAYER 
.
.
TEMPORARY-LAYER = abc, nbc, real
*END
*OPERATION
AND ttt ccc abc
NOT abc ddd abc
SELECT eee cut fff nbc
OR abc nbc nbc
OR abc cbs real OUTPUT polyg01
OR abc obs real <--ERROR!

TEXTSEQUENCE

TEXTSEQUENCE = layer1  layer2...

Description

Redefines the text sequence generated by the CONNECT-LAYER command. The TEXTSEQUENCE command reorders the interconnect layers for attaching text. Text attaches first to the rightmost argument, then in order from right to left, similar to the CONNECT-LAYER command.

Arguments

layer

The name of the layer in the CONNECT-LAYER command (excluding contact layers).

Example

In this example, TEXTSEQUENCE reorders the text assigned to the interconnect layers poly and srcdrn and eliminates text attachments to the metal layer. Dracula tests whether the text attaches or falls in the srcdrn layer and assigns a text name accordingly. For text not assigned to the srcdrn layer, Dracula tests for the poly layer and assigns the text name accordingly. It disregards text not assigned to either layer.

CONNECT-LAYER = srcdrn poly metal 
TEXTSEQUENCE = poly srcdrn

.


Return to top
 ⠀
X