Home > Community > Blogs > RF Design > tip of the week how to simulate a subcircuit netlist with spectre in ade
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the RF Design blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

How to Simulate a Subcircuit (Netlist) With Spectre in ADE

Comments(15)Filed under: Circuit design, Virtuoso Spectre, Virtuoso Spectre Simulator GXL, Spectre, Spectre RF, Virtuoso Spectre Simulator XL

Many users ask, "How do I instantiate a netlist into my schematic and simulate with spectre in ADE?"

To instantiate a subcircuit (netlist) in your schematic and simulate with spectre in ADE you need to create a cell with a CDF parameter 'model' which will point to the text subcircuit that you want to use for simulating. Here is the recipe:

Create a symbol view for the text subcircuit.

Make a copy of this symbol view and call the new view "spectre."

Open the base CDF for the cell, add a component parameter called "model."

In the Add CDF Parameter form, specify only these values in order:






prompt:Model Name

Click "Apply"

This parameter holds the name of the subcircuit file to use during simulation for this cell.

Edit the simInfo section of the netlist for the spectre simulator (assuming you will simulate in spectre)

You must modify the simulation information to recognize the model property and support the parameters passed into the subcircuit file.

For example, in the Simulation Information section of the form, click Edit.

Update the following fields in this order (insert your own name for myParameters if you have instance parameters and insert your own terminal names for termOrder):

Choose Simulator: spectre

otherParameters: model

instParameters: myParameters

componentName: (leave blank)

termOrder: "input1" "input2" "output"

You also need to define your terminals (termOrder).

Instantiate the created symbol in a schematic and give the name of the subcircuit as the model name.

Then in ADE, provide the path to the file containing the text description of the subcircuit (i.e. the netlist) through Setup -> Model Libraries.

Note: if the netlist is in spice syntax, at the top of the file you should add the following statement:

simulator lang=spice

For more information, similar tips, and design topics, please visit sourcelink.cadence.com.


By Frank Wiedmann on January 12, 2009
A method that I find more convenient uses the scasubckt component and is described at www.designers-guide.org/.../YaBB.pl.

By Tawna on January 14, 2009
Thank you for your comment, Frank!
The scasubckt component in analogLib was part of the SCA and RFIC Package Modeler tool flow which was "End of Life" several years ago.   As such, scasubckt was removed from analogLib in IC6.1 .
There is a sourcelink.cadence.com solution 11013814: "How to create parameterized symbol for external subckt" which you may find useful.   Sourcelink users may access this information by clicking on the link below.
best regards,
Tawna Wilsey

By Frank Wiedmann on January 15, 2009
Thanks for your hints, Tawna. It would be really nice if a component similar to the myparsubckt described in the Cadence Solution you mentioned were a standard component in analogLib so that one does not have to load it each time one starts a session. Could you possibly file a CCR to that effect?

By Frank Wiedmann on January 21, 2009
In the meantime, my local AE has filed CCR 631521 for me on this.

By Tawna on February 10, 2009
Hi Frank,
I'm glad that you were able to have your local AE file an enhancement request for you!  In the future, you may file a Service Request for an enhancement request (CCR) using our interface at sourcelink.cadence.com .  
best regards,

By Hrh on August 14, 2012
I believe a correction is needed on this article. Copying the symbol view with the new name "spectre"must be done at the end when the symbol view has been already modified. Otherwise, the proposed solution doesn't work.

By Nick on September 28, 2012
This works nicely in IC6 with ADE for me; while adding a rational model *.cir spectre file in the model list and running it from config view (the symbol points to spectre view). Thank you. However, when I create an ADEXL bench of the same circuit schematic/config and load the previous ADE test-bench it does not simulate, I get an error with the netlist, the netlist is not produced. But if I open a Debug Environment from the failed result list in ADEXL then the circuit does run and plot. What am I missing here; bug or different flow for ADEXL? -Nick

By Tawna on November 5, 2012
Hi Hrh,
Yes, copy the symbol view to the new name "spectre" once the symbol view has been modified.
best regards,

By Tawna on November 5, 2012
Hi Nick,
You may want to contact Cadence Customer Support http://support.cadence.com .
An application engineer will be able to troubleshoot and assist you.  (Sorry, I can't do it right now.)
best regards,

By reddy1553 on March 6, 2013
In the prompt, should i have to mention a text as "Model Name" ??

By Mark Gehring on December 16, 2013
How about using spicein ? From CIW: file...import...Spice . Read document on how to import. It also makes a schematic from the netlist, which can be handy sometimes.

By Tawna on December 17, 2013
Hi Mark,    spicein is also an option.   Please see the Article on Cadence Online Support:  Looking for an Example of Using SpiceIn to Import a Spectre Netlist.   support.cadence.com/.../cos                                                                                                                                   Best regards,   Tawna

By Tawna on December 17, 2013
Hi Mark,  One more thing....  In the Cadence Online Support Solution, I have mentioned SpiceIn.   See Article 11557304 at  support.cadence.com/.../cos      --best regards,  Tawna

By Erik on August 15, 2014
Did anyone manage to get this running in ADEXL? Trying to do Monte Carlo on an extracted netlist here and i cannot get nestlisting to work in ADEXL, only works in ADE.

By Tawna on August 19, 2014
Hi Erik,  You may want to create a Case with http://support.cadence.com .  You not only are trying to instantiate a netlist/subckt into a schematic (which is what the original blog post was about), but you have monte carlo and ADE XL on top of it (complicating the matter).  
Best regards,

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
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.