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.
Get email delivery of the Cadence blog featured here
I know, it's been a long time since my last post. You see, we've finally arrived at a topic near and dear to my heart -- ADE XL. The reason for my hesitation in approaching this topic is not that it's difficult, but rather that there's so much to talk about that it's hard to know where to start. It's a bit like trying to write a guidebook for the Louvre. The place is enormous. Do you describe the building itself? The Antiquities? the Renaissance? That crazy looking glass pyramid?
I plan this to be a series of articles on all the great features of ADE XL. There's plenty to write about, but for those of you already familiar with the subject, please use the comments to give me feedback on any aspects of ADE XL you'd like to know more about and I'll be sure to include any "things you didn't know" that I can think of.
Well, I guess the guidebook won't make any sense unless you know what the Louvre is, so it's probably best to start with the basics. (BTW, I'm really not trying to compare ADE XL to the Louvre. That would be silly. Besides, you don't have to wait in line nearly as long to use ADE XL -- nor do you have to wear comfortable shoes.)
What's in it for me? Glad you asked...
During the design of a circuit block, you may have a half dozen testbenches, each with several different measurements. Then you need to run each of those over dozens or hundreds of corner conditions and parametric sweeps. And don't forget Monte Carlo, which is a common requirement for most designers today. Once you've run all those hundreds of simulations, you could be looking at an enormous, complex snarl of data.
Not only do you as a designer need to sort through and evaluate all that data, but you also need to present it to your manager in a coherent format he or she can easily understand (and, of course, be duly impressed by your superhuman circuit design skills). Then, heaven forbid, a device model or circuit spec changes and you have to do the whole thing over again. Are you confused yet?
I like to think of ADE XL as a means to reach the optimum place on the information/confusion curve. You know that place where you've got plenty of information to solve your problem, but not so much that you can no longer remember what the problem was.
First, a few basic definitions
ADE XL is centered around the concept of tests. A test is something that you are already using every day. It's nothing more than a circuit schematic that you're using to do some sort of simulation. A typical use for ADE XL is to group together all the simulations (or "tests") you need to do on a particular circuit block. Or you could use ADE XL to group a bunch of (possibly similar) simulations for different sub-blocks in your design. Or (and this is probably the most common usage of ADE XL today -- if only because it is the closest thing to The Way We've Always Done It) you can use it for just one test (simulation) that you want to run over corners and Monte Carlo. In any case, you know best how you want to organize your work.
ADE XL stores its information just as other Virtuoso applications -- in a particular type of cellview. An adexl view can be created under any cell and contain any number of tests which reference that cell and/or other cells. It can be seen in the Library Manager and can be managed like any other cellview.
Just as in ADE L, you can create and use design variables in ADE XL. These variables can be shared globally among all your tests, or they can be unique to an individual test. In addition to the types of variables you're used to using (i.e. using a variable name in the property value of a schematic instance), don't forget the new VAR() syntax which allows you to parameterize pretty much anything in the simulation environment such as model file name/section or transient stop time.
In addition to variables, as defined above, ADE XL allows you to create parameters, in which you can directly change the values of schematic instance properties without having to edit the schematic. This is done using the Variables and Parameters Assistant. I'll discuss this capability in detail in a later article, so just file this definition away for future reference.
Variables and parameters are what you use in ADE XL to run sweeps (sometimes referred to as point sweeps). Sweeps are most simply defined as lists (2,4,6) or min:step:max ranges (1u:1u:20u), but more complex sweep ranges can also be defined (center/span%, log steps etc.). These sweep ranges are also basic elements in running more advanced analyses like sensitivity and optimization (more on that in later articles).
I'm sure you're all familiar with running simulations over corners. However, it's interesting that every customer I visit seems to have a different definition of what constitutes a "corner" for their particular design flow. So in ADE XL, we've got a pretty broad definition of corners. Corners can include not only temperature, supply voltage and process model, but also any combination of design variables and parameters (as defined above).
The mechanisms for setting up and viewing simulation outputs and measurements in ADE XL is very similar to that of ADE L (with a few extra features we'll talk about later). Additionally, in ADE XL, you can apply a specification to any scalar output (an output expression that evaluates to a single number). This is a numerical target value, range or tolerance, to which the simulation results will be compared. Specifications are useful not only for quick visualization of design performance, but also used for optimization and yield analysis.
Enough with the glossary, how do I start the darn thing?
I suppose I probably should at least tell you that. Just open a schematic and select Launch->ADE XL. You'll feast your eyes on the "Welcome to ADE XL" home screen, which is intended to guide you through what you need to do next (hint: "To define Tests, click here").
Also note the assistant in the upper left, called "Data View". We'll be using this a lot.
I think I'll leave you in suspense for now, but you can watch some introductory videos on ADE XL here and here.
So watch this spot over the next few posts, and as always, feel free to comment on things you'd like to see discussed, or things you've found that others can benefit from.
The particular Job Policy used is saved (by name) with the ADE XL view, but if you make changes to settings within a job policy, you have to save those changes to that job policy (using the Save button at the top of the Job Setup form) in order for them to stick. You can create as many job policies as you like and switch amongst them for different tasks. The Save options, as you mention, are not saved with the ADE XL, but can be controlled by cdsenv environment variables. I don't believe the save options are changed that often, but perhaps you have a particular use model?
It seems 'Save' and 'Job Setup' options do not get saved in the ADE-XL views. If I close the view and re-open, the previously set Save/Job Setup options are gone. One must reset them again. Painful.
Hi, There are several options to get what you want. The best is probably to switch to the Detail-Transpose view. The pulldown is located in the upper left corner of the Results area. This will switch the display so that each measurement appears in a separate column. So you can see all your bandwidth values in one column, for example.
Once I have run ADEXL and have the results (monte carlo in my case), how to I reorder the table? Reordering in the "outputs" tab does not affect the order in the "results-summary" tab. I'd like to be able to see all the bandwidth numbers one after the other, the Gain numbers together etc. Its got them interspersed in some random fashion (output tab reordering is straightforward, but no knobs in the "results" tab.).
Hi Yannis, It's hard to say without seeing exactly what you are doing. You could create measurements for the currents you are interested in (and/or the differential currents), then run Monte Carlo and then view histograms of how much those currents change as the statistical mismatch parameters are varied. Don't know if that is what you are looking for...
i'm using virtuoso version 6.1.5-64b.500.6 and i want to run a monte carlo simulation on a differential VCO in order to estimate the current mismatch between the MOSFETS but i cant find the right expression to put as an output in the ADE XL. Could you please enlighten me?
Yes, you can do this. By double-clicking in the value field for a variable or parameter, you should see an icon that looks like "...". This will open up a "Parameterize" dialog, which allows you to add lots of different types of definitions in any combination.
For your example, you would create a "From/To" type setup (from 100 to 500 w/ step size 20) and also use the "Inclusion List" field at the top of the form to include the specific values of 50 and 60.
Then the variable definition would include both types and just the values you want.
Hope this helps!
I want to use a mixed list of parameters in the following way:
50, 60, 100:20:500.
I want to get the following when expanded:
50, 60, 100, 120, 140,...
I normally get:
50, 70, 90, ... it adds 20 as per the step definition. Adding parentheses does not help.
How can I perform this?
I don't know if I can provide a "monte carlo for dummies", but I'll try to point out a couple of things.
First of all, ADE XL Monte Carlo only works with Spectre, APS and AMS(Spectre solver).
Monte Carlo analysis uses parameters defined with statistical distributions set up using "statistics" blocks in your netlist--nearly always in the model files.
Then, from ADE XL, you set the Run Mode pulldown to be "Monte Carlo Sampling" (instead of "Single Run, Sweeps and Corners" as it usually says). Click the icon next to the pulldown to set up the options for Monte Carlo, then click the green Run button. That's really all there is to it.
I'd recommend the "Virtuoso Spectre Circuit Simulator Reference" manual first. The section on Monte Carlo Analysis describes what the simulator does and what the statistics block contains.
Then, the "Virtuoso Analog Design Environment XL User Guide" has a chapter on "Performing Monte Carlo Analysis" which describes how to run and the Simulation Options form.
Hope this helps a bit. I'll eventually be writing more about this topic, so keep an eye on this space.
I am totally new to the field of Monte Carlo simulations. I am still a student who has just started Masters and I need to learn monte carlo.
I tried to follow the instructions, but the instructions are vague and its assumed that the reader is an expert of the field.
Can i have 'monte carlo for dummies?'
Thanks for the feedback. I'm planning to do an article on the different ways of specifying what and where to store data. I'll be sure to include information on job policy and run option setups too. Job distribution can be a pretty customer-specific topic, but I'll see what tips I can dig up.
Please contact your AE and he/she would be glad to answer these questions. Alternatively you can send me your contact info (email: email@example.com) and I would be glad to pass on the information and ask your AE to get in touch with you.
I would like to see the Job policy and Run Options explained for running distributed jobs on say Sun Grid Engine. How the information is stored etc. Where a designer can get to his simulation data and check results etc.. within gui and commandline.