1
Interfaces to Dracula
The Dracula® standalone verification product offers a suite of software applications for Integrated Circuit (IC) design verification.
Overview of This Chapter
This chapter contains the following sections.
Using Cadence Data in Dracula
You can create a layout with a Cadence® design framework II (DFII) tool, such as Virtuoso® layout editor and use Dracula to verify the layout database.
When you put the SYSTEM=CADENCE function in the Description block of your Dracula rules file, the CDSIN module processes your DFII database and converts it to Dracula internal format.
Although you can use the Virtuoso tools to generate the layout database in a standard format, such as GDSII, it is quicker to generate it in Cadence DFII format.
In this section, you’ll learn how to
- Use a Cadence-format layout database as input to Dracula
- Convert an existing Dracula rules file that uses GDSII input to use Cadence-format input
Preparing To Use a DFII Database
To use CDSIN to convert a DFII database to Dracula internal format, you must meet the following requirements:
-
You must have the DFII license server daemon,
cdsd, running on the following machines:- The machine where you start your Dracula job
-
The machine where any libraries you reference are located
You reference the libraries with theINDISK-FILEfunction in your Dracula rules file:
INDISK-FILE = indisk.file
For more information aboutINDISK-FILE, see “Specifying the Path to Your Layout”. You can soft-mount or hard-mount the libraries to the machine where you run the job.
-
For runs with parameterized cells (Pcells) or reference libraries, you also need the following two files.
-
dbRead.cxtensures that cells and reference libraries are read in correctly. This is the only file needed in the/contextdirectory for CDSIN.
If you have installation problems, copydbRead.cxtfrom the DFII installation hierarchy (DFIIhier/bin/../etc/context/) to the Dracula installation hierarchy (dracdir/bin/../etc/context/). The hierarchical relationship between Draculabinandetcdirectories must be the same as the DFIIbinandetcdirectories. CDSIN determines the DFII installation path internally. -
instdiris an installation marker file that CDSIN needs. It must be in the same directory (dracdir) as CDSIN.
-
Specifying the Path to Your Layout
You can specify the path to your layout database using the INDISK and INDISK-FILE functions in the Description block of your Dracula rules file.
-
INDISK
If you have only one library path, useINDISK =directoryname. -
INDISK-FILE
If your rules file references more than one library, useINDISK-FILE =filename. For example, the contents of filename might be./myLib1 /mnt/Lib2 /mnt/Lib3
You can reference libraries mounted across the network. For the previous example, a UNIXdfcommand might print the following:wkstnA:/usr2/lib2 949180 707444 222753 76% /mnt/Lib2 wkstnB:/usr3/lib3 961501 785590 156681 83% /mnt/Lib3
To specify the name of the DFII library containing the primary cell in your design, use the LIBRARY function in the Description block of your rules file.
LIBRARY = mpuLib
The LIBRARY function is required when you use the SYSTEM=CADENCE function.
In the 4.7 and previous versions, the GDSII files were limited to 2.0 Gigabytes.
An enhancement in the 4.8 release suppresses this limitation. To work around the 2GB limit in streamout, Dracula now reads GDSII files that have been split into multiple files on a disk. The files can be split by cells or layers.
Example
MULTI-GDS2-IN = inFile CELL/LAYER
The contents of inFile might be
./CellA.gds
./CellB.gds
./CellC.gds
./Layer1.gds
./Layer2.gds
./Layer3.gds
The CELL/LAYER option is indicates that the .gds files are split by cell or by layer. You must specify either CELL or LAYER.
Controlling Case Sensitivity
To ensure correct results, text in your layout must match text in your schematic. Cell names, labels, and pins in your DFII layout can be upper-, lower-, or mixed-case. By default, Dracula treats all the cell, pin, and label names as case sensitive. When you use SYSTEM = CADENCE in your Dracula rules file, the CNAMES-CSEN = YES option (the default) applies to
To convert everything to uppercase, specify CNAMES-CSEN = NO. To control the case of text names separately, use the TNAMES-CSEN function. For an explanation of how to use these two functions together, see
If you are using external files for Hcells, corresponding points, and composite and cell texts for LVS, LPE, and PRE, make sure the text is consistent with the CNAMES-CSEN command.
Controlling Case in Schematic Netlists
When you compile your schematic netlist with LOGLVS, activate case-sensitive mode by using the CASE function before LOGLVS reads in your circuit. By default, LOGLVS converts all signals to uppercase.
When CDLOUT creates a schematic netlist, it keeps the case information. CDLOUT netlists global signals such as gnd! and vdd! in the *.GLOBAL line.
Correcting Case Problems
If you were not aware or not in control of case requirements when the schematics and layout were created, you can correct problems with cell and signal names as follows:
-
Correcting cell names
If the case of Hcell names is different in the schematic and layout, use an Hcell file (HCELL-FILE =fileName) to match the Hcell names in both places. -
Correcting signal names
If the case of the signal names is different in the schematic and layout, use theEDTEXTandHEDTEXTfiles to specify layout text that matches text in the schematic. When you specify text in a text file with the same set of coordinates as text on the layout, the correct file text overwrites the incorrect layout text.
If necessary, you can edit the CDL netlist to convert the cell names to the same case.
Extracting Objects from a DFII Layout
To extract objects from your DFII layout, specify layer purpose pairs in the Input-Layer block of your Dracula rules file. If you don’t specify a purpose for a DFII layer, the default is that all purposes except pin on that layer are read into the Dracula database.
; all the layer purposes on the active layer will be
; read into the Dracula ACTIVE layer
ACTIVE = active
If you specify a purpose, then only that purpose is read in.
; only the maskAdd layer purpose of the poly layer
; is read into the Dracula POLY layer
POLY = poly maskAdd
For more information about specifying DFII input layers, see
Pins in a DFII layout database mark connection points to interconnect layers. To read in the pin information as text, specify the pin layer with the TEXT function in the Input-Layer block of your rules file.
The layer function syntax for DFII layers is
layer_name = dfII_layer [purpose] TEXT=layer2 [ATTACH=layer3]
If you use the TEXT keyword, this is the DFII layer purpose pair that contains the pins. The layer purpose pair must be defined in the DFII library technology file.
A keyword that tells Dracula to generate text from pins.
A layer name/number of your choice. It does not have to be a layer used in the Dracula rules file or defined in the technology file.
The layer on which Dracula attaches the text.
Dracula reads in pin purpose shapes only when you specify a pin purpose to create text from pins. When the pins are on a design layer purpose, you must define a separate layer for the text, as the following example shows.
mettxt1 = metal1 pin TEXT = dummy ATTACH = metal1
The TEXT function puts all metal1 pins on pin purposes on the mettxt1 layer. Text is generated and attached to metal1 and paired with
metal1 = metal1
which is necessary to read in all the drawing information. Similarly, if you specify
metal1 = metal1 drawing TEXT = dummy ATTACH = metal1
all metal1 pins on the drawing purpose are read in. Text is generated and attached to metal1.
Each text layer corresponds to one pin layer.
Sample Rules File
The following sample rules file demonstrates functions you might need to read in a DFII layout database.
*DESCRIPTION
;
SYSTEM = CADENCE
LIBRARY = prelib
OUTDISK = lpe1
PRIMARY = lpe1 layout
SCALE = 0.001 MICRON
RESOLUTION = 0.001 MICRON
; INDISK-FILE is used when more than one library is
; referenced. If there is just one library path, use the
; INDISK = directoryname function
INDISK-FILE = ../indisk.file
;
; <functions omitted>
;
*END
*INPUT-LAYER
;
; In the following, active, poly, pimplant, metal, pin,
; and so on are layer purpose pairs defined in the DFII
; technology file.
;
ACTIVE = active
POLY = poly maskAdd; read in only the maskAdd purpose
PIMP = pimplant
PWELL = pwell
METAL1 = metal1
METAL2 = metal2
;
; <functions omitted>
;
; Read in all the pins and treat as text attached to METAL1
; and METAL2 -- mettxt1 for METAL1, mettxt2 for METAL2,
; where the pins are drawn on the pin purpose layer
;
mettxt1 = metal1 pin text=dummy attach=METAL1
mettxt2 = metal2 pin text=dummy attach=METAL2
;
SUBSTRATE = BULK 63
;
CONNECT-LAYER = NSUB PWELL NSD PSD POLY METAL
;
*END
*OPERATION
;
; <functions omitted>
;
*END
Converting a GDSII Rules File for Cadence Input
You might already have a Dracula rules file for your process technology that specifies a GDSII input database. To convert this rules file for Cadence input, change the Description block of your rules file as follows.
-
Change
SYSTEMfromGDS2toCADENCE -
Change
INDISKfrom the layout database file name to the name of your DFII library directory, or replaceINDISKwithINDISK-FILEand specify the name of a file that lists all of your reference libraries. See “Specifying the Path to Your Layout”. -
Add the
LIBRARYfunction to specify the name of your DFII library.
In the Input-Layer block, change the GDSII layer numbers to the names of layers in your technology file. You can also include some or all of your layer purposes in the Dracula verification, as described in “Extracting Objects from a DFII Layout”. The default layer purpose is pin.
| GDSII | Cadence |
|---|---|
| GDSII | Cadence |
|---|---|
Return to top