• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. How to add a new component-part in Virtuoso

Stats

  • Locked Locked
  • Replies 14
  • Subscribers 126
  • Views 23129
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to add a new component-part in Virtuoso

Sali
Sali over 5 years ago

Hi ,

I have this spice code from ALADIN website, it is supposed to be the spice file for two nmos transistors connected in a certain way in one chip as in the attached figure.

I want to create this new component in Virtuoso to uses in the schematic.

I searched a lot around and I found CDF editing tutorial but it does not work since the parameters does not show up in the CDF form. Could any one help me in this.

Thank you

Moderator: Removed model contents since it's probably released under license by the part vendor

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    This appears to be a PSPICE model (I'm not sure you really should post it here, but I couldn't find the source to reference it). The simplest way ought to be to just create a new view of type "pspice" (so do File->New->CellView and set the type to be "Pspice". Paste the text of the model (you'll need to ensure your cellName matches the subckt name, so you could call the cell 114913 if you don't want to change that part of the text).

    Spectre however does not support the tolerance parameters in a PSPICE model, so you'd need to remove the lot/4/uniform=-.22 dev/uniform=.04 type specifications for each parameter. Then do a File->Extract and it will prompt you to create a symbol if you don't have one (there are five pins called 1 to 5).

    However, it still won't simulate in spectre because it references a diode model called "dps" which is not defined anywhere. I just added:

    .model dps diode

    and it ran, but of course that's completely invented...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sali
    Sali over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    When I opened new cell view, I chose the view : Spice, Type : Spice but the open application field shows only read HDL which open something like vi editor after I finish copy and past the spice text, I exit by ":wq" command and no  symbol creation window pops up.

    Is there anyway to solve this ?

    Thank you in advance,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Sali

    First of all, I said to use "pspice" not "spice" because this is a PSPICE-compatible model, not SPICE. Secondly, I think you must be using too old a version. So please:

    1. Report which version of the IC tools you're using (Help->About in any window will tell you this - please provide the entire number) and Spectre (this will appear near the top of any spectre log file from simulations  you perform in ADE)
    2. Check if you have access to a later version of either/and the IC tools and spectre - almost certainly you'll need something more recent to make this work. There might be a workaround if using a recent enough spectre, but I'll have to check based on what the latest you have available, rather than me determining every possible solution in advance.

    Thanks,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sali
    Sali over 5 years ago in reply to Andrew Beckett

    Thanks Andrew, the version I am using is IC6.1.5, I tried another version IC6.1.8 and I was able to create the symbol of the model, in this version I did not find resistors,gnd and sin wave generator so I returned back to the version I use and have an error attached below. 

    I also attached the versions of both Virtuoso I use, for the ADE I found it is the same as Virtuoso version.

    This is the version I usually use:

    The error I received:

    The other version I used to create the symbol:

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Sali
    Sali said:
    in this version I did not find resistors,gnd and sin wave generator

    I'm not sure what you mean by that. Do you mean that you didn't have analogLib in your available libraries? The only explanation for that is that you've not got it correctly defined in your cds.lib - you should have this:

    DEFINE analogLib $(inst_root_with:tools/dfII/bin/virtuoso)/tools/dfII/etc/cdslib/artist/analogLib 

    and then it will always pick up analogLib from the current installation.The $(inst_root_with ...) is special syntax to allow it to locate an installation with virtuoso in based on the UNIX path.

    I think it's unlikely to work if you create the pspice view in IC618 and then go back to IC615, because it won't know how to netlist that view as this wasn't supported in such an old version. The specific failure you show is because you need to put "pspice" (or whatever you called the view) in the switch view list in Setup->Environment in ADE - you'll need to do that in IC618. I think that even if you did that in IC615 it will stil fail but in a different way.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sali
    Sali over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Yes I do not have the analogLib.

    I have this error when I tried to install the missing Lib:

    *Error* eval: undefined function - DEFINE
    <<< Stack Trace >>>
    DEFINE(analogLib ((inst_root_with:(tools / dfII / bin / virtuoso)) / tools / dfII / etc / cdslib / artist / analogLib))

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Sali
    Sali over 5 years ago in reply to Sali

    Hi Andrew,

    I was able to use another version (attached below) it is the same ADE version

    I repeated all the steps of creation the pspice symbol then I added pspice in the ADE>setup>environment>switch list beside verilog spectre,....

    Unfortunately I got this error (attached) , also I attached input.scs

    Fullscreen 3326.input.txt Download
    // Generated for: spectre
    // Generated on: Mar 28 22:34:52 2020
    // Design library name: Testing2
    // Design cell name: SchematicspiceALD5
    // Design view name: schematic
    simulator lang=spectre
    global 0
    include "/CMC/kits/cmosp13.V1.8.0.0DM/IBM_PDK/cmrf8sf/V1.8.0.4DM/Spectre/models/design.scs"
    include "/CMC/kits/cmosp13.V1.8.0.0DM/IBM_PDK/cmrf8sf/V1.8.0.4DM/Spectre/models/allModels.scs" section=tt
    
    // Library name: Testing2
    // Cell name: SchematicspiceALD5
    // View name: schematic
    I4 (net2 net08 net3 0 net09) spiceALD6 vtn=-1.3811 vtx=vtn cox=1 ires=0.41 \
            pox=1 __hspicem=1
    R0 (net3 0) resistor r=4K
    V0 (net2 0) vsource type=sine ampl=3.3 freq=1
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
        tnom=25 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
        digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
        checklimitdest=psf 
    tran tran stop=1 errpreset=moderate write="spectre.ic" \
        writefinal="spectre.fc" annotate=status maxiters=5 
    finalTimeOP info what=oppoint where=rawfile
    modelParameter info what=models where=rawfile
    element info what=inst where=rawfile
    outputParameter info what=output where=rawfile
    designParamVals info what=parameters where=rawfile
    primitives info what=primitives where=rawfile
    subckts info what=subckts where=rawfile
    saveOptions options save=allpub
    pspice_include "/home/salibensuleiman/thesis/Testing2/spiceALD6/pspice/design.pspice"
    
    

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Sali
    Sali said:
    *Error* eval: undefined function - DEFINE
    <<< Stack Trace >>>
    DEFINE(analogLib ((inst_root_with:(tools / dfII / bin / virtuoso)) / tools / dfII / etc / cdslib / artist / analogLib))

    I didn't ask you to type it in the CIW, which is what you've done here. This needs to go into the cds.lib which is where it defines the locations of libraries.

    Alternatively, if you're not comfortable with a text editor, you can use the Tools->Library Path Editor and define the library location of analogLib with the path to $(inst_root_with:tools/dfII/bin/virtuoso)/tools/dfII/etc/cdslib/artist/analogLib - this will update the cds.lib for you.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Sali
    Sali said:
    *Error* eval: undefined function - DEFINE
    <<< Stack Trace >>>
    DEFINE(analogLib ((inst_root_with:(tools / dfII / bin / virtuoso)) / tools / dfII / etc / cdslib / artist / analogLib))

    I didn't ask you to type it in the CIW, which is what you've done here. This needs to go into the cds.lib which is where it defines the locations of libraries.

    Alternatively, if you're not comfortable with a text editor, you can use the Tools->Library Path Editor and define the library location of analogLib with the path to $(inst_root_with:tools/dfII/bin/virtuoso)/tools/dfII/etc/cdslib/artist/analogLib - this will update the cds.lib for you.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information