Cadence® system design and verification solutions, integrated under our System Development Suite, provide the simulation, acceleration, emulation, and management capabilities.
System Development Suite Related Products A-Z
Cadence® digital design and signoff solutions provide a fast path to design closure and better predictability, helping you meet your power, performance, and area (PPA) targets.
Full-Flow Digital Solution Related Products A-Z
Cadence® custom, analog, and RF design solutions can help you save time by automating many routine tasks, from block-level and mixed-signal simulation to routing and library characterization.
Overview Related Products A-Z
Driving efficiency and accuracy in advanced packaging, system planning, and multi-fabric interoperability, Cadence® package implementation products deliver the automation and accuracy.
Cadence® PCB design solutions enable shorter, more predictable design cycles with greater integration of component design and system-level simulation for a constraint-driven flow.
An open IP platform for you to customize your app-driven SoC design.
Comprehensive solutions and methodologies.
Helping you meet your broader business goals.
A global customer support infrastructure with around-the-clock help.
24/7 Support - Cadence Online Support
Locate the latest software updates, service request, technical documentation, solutions and more in your personalized environment.
Cadence offers various software services for download. This page describes our offerings, including the Allegro FREE Physical Viewer.
Get the most out of your investment in Cadence technologies through a wide range of training offerings.
This course combines our Allegro PCB Editor Basic Techniques, followed by Allegro PCB Editor Intermediate Techniques.
Virtuoso Analog Design Environment Verifier 16.7
Learn learn to perform requirements-driven analog verification using the Virtuoso ADE Verifier tool.
Exchange ideas, news, technical information, and best practices.
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.
It's not all about the technlogy. Here we exchange ideas on the Cadence Academic Network and other subjects of general interest.
Cadence is a leading provider of system design tools, software, IP, and services.
I am using Cadence 6.1.5 and spectre to run transient simulations. I wish to run parametric simulations on a few variables in my design.
The workstation I have access to has 32 cores and typically more than half of them are free.
May I know how I can set the parametric simulations in a way that parallel transient simulations can be run simutaneously by different cores? Like each core runs a simulation in which the variables take on different values?
Thank you in advance.
If you have access to ADE XL, you can define a parametric simulation by importing an already existing ADE L state or creating a test with a design variable, which you can parameterize by adding a variable specification in the ADE XL "Data View". In the run summary, you can verify the number of sweep points by inspecting the "Run Summary" where it'll report "N Point Sweeps" where N is the number of parametric simulations you have defined
Then, under Options -> Job Setup you can define the distribution method to be local and increase the number of jobs to the number of processor cores you have. This will ensure ADE XL creates parallel jobs for your parametric simulations, and it'll take considerably less time than serializing the jobs. However, I have found that it's better to use the number of physical processor cores than the number of cores provided by hyperthreading; the former usually yields faster simulation times for me.
In reply to cgurleyuk:
Using ADE XL is the simplest approach, but another possibility is to set up distributed simulation in ADE L - doesn't need to be very distributed though ;-)
For example, I do this sometimes on my machine (mainly for testing or demo purposes). Create a file, queue_config, with this contents:
myqueue 1localhost 4
In this file, the first line gives the name of the queue and the number of machines contained within that queue (I just used localhost, as that's always the local machine). Then the number after the localhost is the number of parallel jobs that can be run in that queue. You can define multiple queues if you want, or involve other machines - for that read the Distributed Processing guide in the documentation.
Then run "cdsqmgr /path/to/queue_config".
setenv LBS_CLUSTER_MASTER localhost
depending on the shell you're using (csh for the first, bash/ksh for the second).
And then run virtuoso - and in ADE L, under Setup->Simulator/Dir/Host pick distributed simulation.
That's it really - not too complicated.
That said, if you are sharing the compute resource with others, this should be set up more centrally because only one cdsqmgr can be run at once (see the docs for more detail, again). If you need to change the config file, you'll need to kill cdsqmgr and restart it.
But the ADE XL approach is probably simpler!
Thank you very much. Your solution works.
It did speed up my simulation tremendously.
In reply to Andrew Beckett:
In reply to whlinfei:
I followed your instruction for ADE L but I get the following problem when I run
the parametric simulation:
I have a design variable that is dependent on the parametric simulation sweeping
var_word = 1 // sweeping variable
var_bit_1 = ((var_word & 1)/1)
var_bit_2 = ((var_word & 2)/2)
If I run a serial parametric simulation, everything is fine. But if I run a
parallel parametric simulation, I get the following error:
*Error* in the Design Variables. AEL's message: data type error
on first operand: operator not defined for
Is there something that I missed?
In reply to NcfC:
We had an earlier reported issue which sounds similar, which is CCR 601256. However, in that case, whilst you got an error the simulations actually ran - and so the fix has not been prioritized.
Did the simulations actually run in your case?
If not, you should report it to customer support. Might be wise to do this anyway, even if they do run successfully. Note I didn't check that the issue still exists in current versions (you didn't say which version of the IC tools you're using).
The issue that I had reported before was something that only happened in IC61 and not in IC5141, so must be a slightly different issue.
Unfortunately I don't have time to investigate it myself (IC5141 has not been supported for a couple of years now). Sorry!