( ESNUG 416 Item 6 ) -------------------------------------------- [07/30/03]
From: Serge Bedikian <serge=user domain=magma-da spot calm>
Subject: Step-by-Step Using Magma BlastFusion With Mentor Calibre DRC/LVS
Hi, John,
Since we don't do physical verification ourselves a lot of people want to
use our BlastFusion with Calibre from Mentor. Here's how you can verify a
design done in Magma's BlastFusion next release using Mentor's Calibre
DRC/LVS tools.
You can use BlastFusion internal DRC and LVS verification commands to check
the design at the cell level, then you can run Calibre and DRC and/or LVS at
the transistor level. To run BlastFusion DRC and LVS, you use:
check route drc $m
check route lvs $m
When all errors detected at cell level have been fixed, you go to the next
step, which is to run Calibre to do a transistor-level verification. To run
Calibre DRC, you need:
- a GDSII file at the transistor level of the design
- a Calibre DRC rules file
The GDSII file will be exported from BlastFusion, but of course, you have to
do it the right way (this is discussed below). The Calibre DRC rule file
and standard cell GDSII files can generally be obtained from your foundry or
your library provider.
In addition to a GDSII file and a Calibre LVS rule file, Calibre LVS needs:
- a "schematic" netlist (called the "source" netlist in Calibre)
This netlist uses a SPICE-like format. Calibre LVS compares the layout and
this netlist, reporting any differences. It needs to be exported as well
from BlastFusion (this also requires multiple steps and is described later).
Again, the transistor-level SPICE netlist of the standard cells can
generally be obtained from your foundry or library provider.
When the DRC and/or LVS runs are completed in Calibre, you can visualize the
errors (if any) in BlastFusion using Calibre RVE, a GUI-based tool from
Mentor that helps to browse error results from Calibre DRC/LVS and point
them out in the BlastFusion layout or schematic window.
That's being said, here is of the step-by-step procedure to actually do it:
DRC
1. Make sure all needed misc layers are defined in BlastFusion.
Most of the time, BlastFusion layout layers are correctly defined in
the rules section cell library database. This is especially true for
layers that are used by the router, such as metal and via cut layers.
You need to make sure that layers that are not used by BlastFusion
itself (but for which geometries can still be stored in the Magma data
model) are defined. During the export of the layout to GDSII format,
BlastFusion merges the top level of the design (which contains the
routing) with the cell layouts themselves to obtain a full transistor-
level layout design database. Even if they are not needed at the
top level, the misc layers are needed in the cells.
Those layers, called "misc layers" in BlastFusion, usually consist of
layers such as Nwell, Pdiff, and Pol. To check for the presence of
these layers, use this command:
report rule layer $l
The list of layers returned by this command must match the list of
layers used in the cell libraries you are using.
2. Make sure the BlastFusion GDSII layer numbers and datatypes match the
ones used in the Calibre rule file.
For each layer, both Calibre and BlastFusion have names and internal
layer numbers. These names and numbers can be different in each tool!
It is therefore important that when the tools write and then read a
GDSII file, they both use the same GDSII layer numbers. GDSII layers
are actually divided into sub-layers called datatypes, which are
referenced by a datatype number. Those datatype numbers, too, must
match between Calibre and BlastFusion. In BlastFusion, to specify
which layer number will be used during the exportation of a GDSII, you
can use the commands:
rule gdsii layer M1 20 0 -use wire -mode both $l
rule gdsii layer M1 20 4 -use pin_text -mode both $l
This means: metal1 wire geometries will be mapped to GDSII layer 20,
datatype 0 and metal1 model pins (mpin) will be mapped to GDSII layer
20, datatype 4 as a text label. You can get a report of all
BlastFusion layers and their GDSII layer mapping by using this command:
report rule layer_map $l
This must correspond to an equivalent layer definition in Calibre DRC
and/or LVS rule files:
LAYER M1 123
LAYER MAP 20 DATATYPE == 0 123
LAYER M1_NET 200
LAYER MAP 20 TEXTTYPE == 4 200
This means: layer M1 will be on Calibre's layer number 123 and will be
read from GDSII layer 20, datatype 0. Text labels on layer metal1 will
be put on Calibre's layer M1_NET, number 200 by reading GDSII layer 20,
datatype 4. Moreover, Calibre must understand that such text labels
are actually ports, so the rule file should have something like:
PORT LAYER TEXT M1 M1_NET
TEXT LAYER M1 M1_NET
ATTACH M1_NET metal1
ATTACH M1 metal1
3. Export GDSII from BlastFusion.
The export process does two things:
a. Converts the BlastFusion design database to GDSII format
b. Merges standard cell layout contents (because BlastFusion may
use an abstraction to represent cells in its internal data model)
This process is done in one command:
export gdsii $m layout.gds -merge lib.gds2 -unit 1n
Where layout.gds is the output GDSII file and lib.gds2 is a GDSII file
containing the layout of the standard cells. Because the scale of the
standard cell library GDSII file must match the scale of the design
database, you might need to specify a scaling factor using the -unit
option as shown above.
You know that there is a scaling problem if you get a warning message:
GDS-15 WARNING: GDSII export units (1.0e-10) do not
match -merge library units (1.0e-09). Check -units flag
value.
4. Set up the Calibre DRC rule file.
Do not modify the Calibre DRC rule file except to specify the input
files and the Calibre RVE-specific database output, as shown below:
LAYOUT SYSTEM GDSII
LAYOUT PRIMARY "topname"
LAYOUT PATH "layout.gds"
DRC RESULTS DATABASE "topname.drc.results" ASCII
DRC SUMMARY REPORT "summary.rep" REPLACE HIER
DRC MAXIMUM RESULTS ALL
Where topname is the top-level cell name, in the GDSII file. The
results database, in ASCII format, will be used later by Calibre RVE
to browse DRC errors.
5. Run Calibre DRC.
As easy as:
calibre -drc drc.cal
6. Launch and set up Calibre RVE.
This can be done directly from within BlastFusion in graphical mode.
The BlastFusion process and the Calibre RVE process will communicate
interactively; both processes must be running on the same workstation.
The display, however, can be done on another workstation if needed.
The BlastFusion GUI uses a client process independent from the main
BlastFusion session while Calibre RVE uses the regular X11 DISPLAY
environment variable to control remote display. Therefore, you must:
a. Connect to the workstation where you plan to run both
the BlastFusion session and Calibre RVE.
b. Make sure the UNIX environment variable DISPLAY points
to your screen (setenv DISPLAY myhost:0.0).
c. Make sure both BlastFusion and Calibre RVE are on your
UNIX search path.
d. Open a BlastFusion session, and load the design (use
the same database that was used during the creation of the
GDSII).
e. Type: ui start -name calibre (any names goes).
f. On your workstation (it should be "myhost"), run the
BlastFusion GUI by typing: atmos.
g. Connect the GUI to the BlastFusion session and open a
layout view of the design.
h. From the main Atmos window menu, click on "Viewers" and
then on "Calibre RVE...". This opens a pop-up form window:
i. Fill in the form as follows:
1. GDSII Unit: Type the unit used for the GDSII export
(1n in our example. If -unit was not used during
export, the default is 0.1n).
2. Make sure "Display Host" shows your workstation's
screen (same syntax as the DISPLAY variable value).
3. For the "RVE input file" field, click on the "find"
button and select the ASCII results database file from the
Calibre DRC run (topname.drc.results in our example).
j. Click "Listen" and then "Launch". This opens the Calibre RVE
DRC browse window.
k. Click "Dismiss" in the pop-up window.
l. In the Calibre RVE DRC browse window, open the "Setup"
menu, and click on "Layout..."
m. Make sure "Magma (BlastFusion)" is selected as layout
viewer and click "OK". If in the version of Calibre RVE
you are using there is no "Magma" option, then select
"Cadence (Virtuoso)", it will works, too.
7. Browse and analyze DRC errors
In the Calibre RVE DRC error browser, select one DRC error (they should
appear in red) & double-click on it. This should make the BlastFusion
layout view zoom close to the error and highlight the error polygons.
To enable you to see all that you need to see, follow this procedure to
make sure that the BlastFusion visibility settings are correct:
- Turn on metal and via layers.
- Turn on all "MiscLayer" (to be able to look at the
transistor level).
- Turn on cell display and set view depth to a number
large enough to see down to the bottom of the hierarchy
(errors at transistor level will most probably occur down in
the hierarchy).
LVS
8. Read the DRC section!
Before you can proceed, you need to export a GDSII from BlastFusion.
This must be done the same way as for DRC, so please read steps 1 to 3
in the DRC section above.
9. Export a Verilog netlist from BlastFusion
BlastFusion can output a cell level Verilog netlist. You can write
this netlist by using the following command:
export verilog netlist $m netlist.v
10. Convert the netlist to SPICE-like format
Calibre can read netlists in a SPICE-like format, so to do a
transistor-level verification, you need to convert the Verilog netlist
from BlastFusion to SPICE format and merge it with standard cell SPICE
schematic netlists. You can do this using the Calibre Verilog-to-LVS
netlist conversion utility v2lvs:
v2lvs -lsp stdcell.cdl \
-o netlist.sp \
-s stdcell.cdl \
-s0 VSS -s1 VDD -v netlist.v
Where stdcell.cdl contains the SPICE netlist of the standard cells
library, netlist.v is the Verilog netlist coming from BlastFusion and
netlist.sp is the converted and merged SPICE netlist to be used by
Calibre. The power and ground net names must match between:
- The design SPICE netlist
- The cells' SPICE netlists
- The Calibre LVS rule file
This can be done by using the -s0 and -s1 option (for ground and power
nets in this order). Use this to change the power and ground design
name to the one used in the standard cell SPICE library.
In Calibre LVS rule file, you should have something like:
LVS POWER NAME "VDD" "VCC"
LVS GROUND NAME "VSS" "GND"
11. Set-up the Calibre LVS rule file
Do not modify the Calibre LVS rule file except to specify the input
files and the Calibre RVE-specific database output:
SOURCE SYSTEM SPICE
SOURCE PATH "netlist.sp"
SOURCE PRIMARY "topname"
LAYOUT SYSTEM GDSII
LAYOUT PRIMARY "topname"
LAYOUT PATH "layout.gds"
LVS REPORT "lvs.rep"
MASK RESULTS DATABASE NONE
MASK SVDB DIRECTORY "svdb" QUERY
topname is the top-level cell in name, in the GDSII file and in the
SPICE netlist. The results database "svdb" will be used later by
Calibre RVE to browse LVS errors.
12. Run Calibre LVS
As easy as:
calibre -lvs lvs.cal
13. Launch and set-up Calibre RVE
You can do this the same way you did the Calibre RVE set-up for DRC
error browsing, see the DRC section above and execute the checklist
#6 above, sub steps "a" to "i.2", then:
a. Make sure the "RVE input file" field is empty.
b. Then click "Listen" and "Launch". This should open a
Calibre RVE window (with a "Calibre Visualization" logo).
c. Click "Dismiss" in the pop-up window.
d. On the Calibre RVE window, click on the "Open DB..." button
e. Set the database type to LVS
f. Browse for the "svdb" LVS error results database obtained from
Calibre LVS run and select it. Click on "OK".
g. Load the database in RVE by clicking on "OK" on the main window.
This open the Calibre RVE LVS database browse window.
h. Open the "Setup" menu, and click on "Layout..."
i. Make sure "Magma (BlastFusion)" is selected as layout viewer and
click OK. If in the rev of Calibre RVE you are using there is no
"Magma" option, then select "Cadence (Virtuoso)", it works, too.
14. Browse and analyze LVS errors
Click on a discrepancy in the right top frame of the Calibre RVE LVS
window. This displays details about the discrepancy in the right
bottom frame. Double-click on any highlighted area on the discrepancy
detail panel to make the BlastFusion layout view zoom to the error and
highlight the net or the device highlighted.
Hope this helps your readers, John.
- Serge Bedikian
Magma Design Automation Cupertino, CA
|
|