( 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


 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)