Creating HSPICE netlist without primitives cell subcircuits

Discussion in 'Cadence' started by ShamShoon, Feb 16, 2006.

  1. ShamShoon

    ShamShoon Guest

    I am trying to run an HSPICE simulation from within Analog Design
    Environment. The design is in a Composer Schematic imported from a
    Verilog structural netlist. Since I have the Spice models for all the
    primitive gates in another file, I only want the netlister to netlist
    only the design instances and then I can include the file containing
    all the library cells models in the model setup dialog.

    However every time, the HSPICE netlister creates a separate subcircuit
    for each primitive cell which conflicts with the subcircuit definition
    in the library model file and aborts the simulation. I tried changing
    the name of the primitive cell view from "schematic" to something else
    and then put it in both the switch view and stop view lists (The
    documentation says this will prevent the netlister from netlisting
    those cells), however I get the error "Cannot find any info on instance
    NAND2_3 ...". The same happens if I copy the schematic view of the
    primitive to another view named "hspiceD" or any other name that exists
    in both the switch and stop list. And if I remove the schematic view of
    the primitive cell altogether and only keep the symbol view, I get the
    same error.

    Is there any way I can make the netlister add only the higher level of
    hierarchy without adding the empty .SUBCKT and .ENDS pairs for each
    primitive. The only workaround I am doing now is to create the netlist
    first, then edit it externally to remove all .SUBCKT .ENDS pairs, and
    then run the simulation.

    I am referring here to hspiceD

    I hope I've been clear describing the problem. Any help appreciated

    Thanks!
     
    ShamShoon, Feb 16, 2006
    #1
  2. ShamShoon

    mk Guest

    I am not familiar with your tool but in general schematic entry tools
    have a way of putting a level property on the cells which the
    netlister uses to decide when to stop netlisting. Check the
    documentation of your tool to see if such a feature exists. But you
    have to also add that property to all the standard cell instantiations
    in your verilog sourced netlist. The import process maybe able to add
    the relevant property. This is a pretty tools speficif feature which
    requires you to do some RTFM. If all else fails, you can write a small
    perl script to do the removal for you and call it after your
    netlister. Hopefully you can automate that process.
    HTH.
     
    mk, Feb 16, 2006
    #2
  3. For each of the standard cells, you'd need to create a stopping view
    (typically called hspiceD). This is usually just a copy of the symbol.

    Then you'd have to set up the CDF so that it knows how to netlist the
    component.

    Tools->CDF->Edit CDF
    Set the CDF Type to "Base"
    Fill in the library name and cell name
    Scroll down to the simulation information section and hit the Edit button.
    On the form that pops up, Choose Simulator "£hspiceD"
    Enter the subcircuit name as the componentName
    namePrefix: X
    termOrder: this needs to use the pin names of the symbol, in the order that
    they appear in the external SPICE file.
    All other fields on the siminfo form should be blank.

    OK the forms.

    This needs to be done for each standard cell, and then the netlister
    should stop at the standard cell, and write it out as a subcircuit instance,
    with the pins in the right order.

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 16, 2006
    #3
  4. ShamShoon

    ShamShoon Guest

    This worked like a charm. Thank you very much and now I have a better
    understanding of the whole purpose of CDF editor.
     
    ShamShoon, Feb 16, 2006
    #4
  5. Well, I was assuming he didn't have a schematic - otherwise he'd have been using
    that in the first place.

    Anyway, the hspiceD view needs to be the first view in the view list that it
    finds for any of the standard cells - otherwise it won't stop there...
    There's no need to have a schematic if you don't have a schematic ;-)

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 16, 2006
    #5
  6. ShamShoon

    ShamShoon Guest

    Andrew Beckett wrote:
    Since the high level netlist was imported from Verilog, I had to create
    a Verilog stub for each standard cell. I thought that this is the way I
    can preserve proper port order since the Verilog netlist was connected
    by name (e.g.: .A(net1234), ...). The Verilog stub had the same port
    order as that in the spice standard cells. This caused VerilogIn to
    create a schematic for each standard cell that contains only the ports
    and nothing else. When I tried deleting this view, I got the
    aforementioned error message. However now I know that I didn't need the
    schematic I just needed the CDF info entered properly.
    Yes I knew that and it was the default that the first view is hspiceD
    *sigh*

    Thanks again for all the help!
     
    ShamShoon, Feb 16, 2006
    #6
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.