( ESNUG 495 Item 10 ) ------------------------------------------- [11/17/11]

From: Jeff Dyck <jdyck=user domain=solidodesign got calm>
Subject: How to run Solido with 100's of BDA licenses for custom design

Hi, John,

I saw some recent user pieces on Berkeley Design Automation AFS simulator.
Since we have customers using our Solido Variation Designer with BDA AFS and
we previously published these white papers on DeepChip:

   Solido and Cadence ADE/Spectre/APS (primarily used for RF/Analog, I/O)
            http://www.deepchip.com/look/see100608-01.html

   Solido and Synopsys HSPICE/HSIM/CustomSim (for memory, std cell libs)
            http://www.deepchip.com/look/see100730-02.html

I thought I'd add our "how to" for

   Solido and Berkeley DA AFS (primarily for RF/analog, I/O, custom digital)

It's in 3 basic steps:

   1. Using Solido with BDA by inputting a design through Cadence ADE.
   2. Using Solido with BDA by inputting an HSPICE-compatible netlist.

   3. Setting up Solido to run anywhere from a single BDA simulator to 
      100's of BDA simulators simultaneously on an LSF or Sun Grid Engine 
      (SGE) farm to design for PVT (process, voltage, temperature) corners, 
      statistical variation or high-sigma statistical variation.

CADENCE ADE USERS - STEPS FOR USING SOLIDO WITH BDA

   1. Do schematic entry using Cadence Virtuoso Composer.
   2. Set up ADE as usual to work with BDA.  Use the "Switch to BDA" menu 
      option in ADE to automatically reconfigure your session to use the 
      BDA simulator.
         a. Set up the analysis to run using ADE.
         b. Set up the nominal model conditions in ADE.
         c. Set up the typical environmental conditions as ADE design 
            variables.
         d. Configure outputs within ADE.
         e. For multiple testbenches, set those as separate ADE states and 
            save the states in the cell view.
   3. Simulate at nominal using ADE and BDA.  Ensure the netlist is 
      simulating properly at nominal.
   4. Start Solido Variation Designer from ADE using the Solido->Variation 
      Designer menu option.  Solido then opens an inter-process 
      communication channel with Virtuoso, and through a custom Skill 
      interface, Solido pulls all the information set up in ADE 
      automatically.
   5. Solido automatically extracts from Cadence:
         a. Default model sets; both global process corners and statistical
            variables are automatically parsed out of the model files.
         b. Environmental variables from the ADE design variables, as well 
            as their default settings.
         c. Outputs as defined in ADE.
         d. Design hierarchy and device parameters.
   6. Solido automatically detects any changes in the design, so the view 
      in Solido stays in sync with Cadence.
   7. Add additional testbenches by pointing Solido to the additional ADE 
      states that were created.
   8. Specify any subcircuit as the device under test, allowing for 
      targeted variation analysis within higher-level designs.

HSPICE-COMPATIBLE NETLISTS - STEPS FOR USING SOLIDO WITH BDA

   1. Create the netlist, either using a schematic editor and HSPICE 
      netlister, or by writing the HSPICE-compatible netlist by hand.  Set
      up testbenches using HSPICE syntax.
         a. Set up typical environmental conditions using .temp and .param 
            statements for environmental conditions.
         b. Set up measurements using .measure statements in the netlist. 
            Solido supports additional post-processing mechanisms, so if 
            what needs to be measured cannot be expressed in a .measure 
            statement, use Matlab, Octave, or other custom scripts for 
            defining outputs.
   2. Ensure that the testbenches work correctly using BDA at nominal by 
      running in HSPICE compatibility mode from the command line.
   3. Start Solido from the command line and create a project using any of 
      the netlists you created for your project.  If using Cadence Composer
      as the schematic editor, start Solido from the icfb main window to 
      make use of device selection and device highlighting within Composer.
   4. Solido then automatically reads in:
         a. Model files, including automatic extraction of global process 
            corners and statistical variables.
         b. Environmental variables and default values from .temp and 
            .param statements.
         c. Outputs from the .measure statements.
         d. Design hierarchy and device parameters.
   5. Solido polls the netlist file for changes, and automatically updates 
      the design properties in real time to account for changes to the 
      netlist.
   6. Add additional testbenches by specifying more testbench netlists,
      as long as the testbenches all contain a common subcircuit.
   7. Solido, select BDA AFS as your HSPICE-compatible simulator.

STEPS TO SCALING SOLIDO WITH 100'S OF BDA SIMULATORS ON A COMPUTE FARM

In Solido, set up simulation jobs using local multi-core distribution, 
Platform LSF, or Sun Grid Engine (SGE).  Here are the steps:

   1. Select the distribution mechanism from a Solido drop-down
      box [local, LSF, SGE].
   2. If LSF or SGE, pick the queue using a Solido GUI that
      automatically queries all queues.
   3. Specify the number of nodes to use.
   4. Click OK.

Solido then manages the simulation job distribution highly efficiently.  
Solido can be used to run 100's of nodes simultaneously, with far less 
overhead than submitting simulation jobs individually.

Solido's parallelization approach reduces the per-simulation submission 
overhead to near zero.  We have seen this overhead at our customer 
simulation farms range from seconds to hours, depending on how busy they
are.

Here is an example of the time impact for doing a 3-sigma Monte Carlo 
analysis on a voltage-controlled oscillator (VCO) circuit, with 40 
transistors.

      BDA & Standard        BDA & Solido        100 BDA & Solido
        Monte Carlo         Monte Carlo+          Monte Carlo+

         28.3 hours          11.3 hours            7 minutes

Being able to reduce the submission overhead and smart sampling techniques
as shown above makes it feasible to do fast variation analysis during 
design.  From this point, you can run Solido's PVT+, Monte Carlo+ and 
High-Sigma Monte Carlo+ packages using BDA as the simulator to analyze 
variation effects, identify device sensitivities to variation and fix the
design.  Results can be highlighted on a Cadence schematic to show device
sensitive hot spots.

    - Jeff Dyck
      Solido DA                                  Saskatoon, Canada
Join    Index






   
 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)