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
Continuing on our exploration of ADE XL (see here and here for previous articles), today let's take a look at the Outputs area in the center of the screen.
Any output signals or expressions which appear in the ADE XL Test Editor (or the ADE L window if you created the setup in there) will show up automatically in the Outputs Setup tab. You can still work with them the same way you always have by bringing up the Test Editor (RMB on the test name in the Data View Assistant and select Open Test Editor...).
But I'm not here to tell you how to do things the same way you've always done them...
Let's start by taking a look at the row of icons at the top of the Outputs Setup tab. The first one on the left is a pulldown that allows you to add various types of outputs and measurements to each test. So if you want to add an expression, select the appropriate test and choose "Expression". A new blank line of type "expr" will show up at the bottom of the pane. Now, double-click in the field under the column "Expression/Signal/File." You'll be able to type into the field, and you'll also see 2 cryptically labelled buttons.
Anyway, back to adding an expression. In case you didn't catch the hint, hover your mouse over the 2 buttons in the "Expression/Signal/File" field to see what they do. Now, use one of them (hint: "...") to open the calculator.
I'm not going to get into how to use the calculator in this article. I did an article on it late last year and I'll probably fill up one or two more later this year as well.
Let's fast forward to the part where you've got an expression in the calculator buffer that you want to get it back into ADE XL. Go back to the ADE XL window and click on the other mysterious icon in the "Expression/Signal/File" field (hint: "<") to pull the contents of the calculator buffer into the field.
Tip: There's another way to do this if you've already got the calculator open. To save yourself some window hopping, verify that the test name showing in the "Test" pulldown at the top of the calculator is the one you want to work with, then select Tools->Send to ADE XL Test from the calculator banner menu. This automatically creates a new expression for that test in the Outputs Setup tab and sends the contents of the calculator buffer to populate it.
Earlier this year I wrote about the exciting news that dependent expressions are now supported in IC 6.1.4 for ADE L. Well, that goes for ADE XL as well. If you want to build an expression which is built from other expressions, all you have to do is use the name of the expression (which, of course, you can assign in the Name column of the Outputs Setup panel) and off you go.
This works for creating multiple expressions within the same test. To build expressions using results from multiple tests, you use what we refer to as...
To create an output expression using results from multiple tests, just drag the desired expressions (one at a time) starting from any field in the line containing that expression in the Outputs Setup pane and drop them into the calculator buffer. When you drop in an expression, you'll see that it has morphed into a different syntax: calcVal("expression_name" "test_name"). You can use the calculator as usual to build the expression and then use either of the 2 methods described above to get it back into ADE XL.
Bonus Tip: You can create combinatorial expressions for variables in the same way, by dragging from the Outputs Setup pane into the desired Value field in the Global Variables or Design Variables sections of the Data View or Variables and Parameters Assistants (we'll talk more about variables in a future article). In this way, you can set a design variable value, such as a voltage or current source based on results from another test.Obviously, you'll need to avoid creating a cyclic dependency when you do this (a variable value which depends on results from a test which uses that variable). ADE XL will scold you if you try.
Bonus Tip: You can create combinatorial expressions for variables in the same way, by dragging from the Outputs Setup pane into the desired Value field in the Global Variables or Design Variables sections of the Data View or Variables and Parameters Assistants (we'll talk more about variables in a future article).
In this way, you can set a design variable value, such as a voltage or current source based on results from another test.
Obviously, you'll need to avoid creating a cyclic dependency when you do this (a variable value which depends on results from a test which uses that variable). ADE XL will scold you if you try.
Quick ways to create more output expressions
Sometimes you might need to use the same (or similar) expressions in several tests. To do this, simply RMB over the expression you want to use in another test, select Copy to Test and choose the test(s) you want to copy it to. You can also use Ctrl-Select or Shift-Select to grab multiple expressions and copy them all to another test. Of course you can edit them as desired after you copy them.
Tip: Double-click on an expression in the Outputs Setup pane and click that "..." icon I mentioned above to push the expression into the calculator buffer if you want to edit it more easily.
Ctrl-C and Ctrl-V also work to copy just the contents of a particular field from one place to another.
Well, I thought I'd have time for a lot more in this article, but it'll have to wait until next time. As always, leave a comment if you find any tips of your own to share or if there are any topics you'd like to see discussed further.
Hi Vamshiky, Yes, that is a known issue. In an upcoming ISR of IC6.1.7, we plan to incorporate some advanced filtering capabilities which should help. Thanks, Stacy
one annoying thing about adding new measurement expressions is that the new one goes to the last in the list. one would usually like to see all the measures related to a test together. Same thing happens when we try to copy a measurement also.
Yes, from the ADE XL Results pane, you can use the save icon (looks like a floppy disk with a pencil on it). You have the choice of saving to CSV format or to an HTML table.
Is it possible to take output of ade_xl as table?
Hi, Spectre supports using .vec, .vcd or .evcd files for digital stimulus. You can include these files in the Setup->Simulation Files form in the Vector Files tab.
hi , how can i give digital input to dac for testing (analog design)
Hi Parameswaran, You don't need to use the calcVal syntax for the measurement coming from same test as the measurement. So, for example, you could add your expression to TEST_DIFF:1 and it would be: (DIFF_G - calcVal("COMM_G" "TEST_COMM:1"))
I am not being able to use results from multiple tests. I am testing a diff amp and have two tests together for finding differential and common mode gain. I created an output expression just like you've shown and it comes to :
(calcVal("DIFF_G" "TEST_DIFF:1") - calcVal("COMM_G" "TEST_COMM:1"))
where DIFF_G and COMM_G are the output names for differential and common mode gain.
This produces an 'eval_err'.
This seems to be because the calcVal("COMM_G" "TEST_COMM:1") evaluated in the calculator produces the same result as the differential gain because "TEST_DIFF:1" seems to stay in the 'Test' option in the calculator.How to get over this?
Hi, For multi-test expression reuse in Monte Carlo, the best recommendation is to use a pre-run calibration script. You can find more information in the documentation and there is an extensive application note (including examples) here: support.cadence.com/.../cos (or search Cadence Online Support for "Calibrated Verification with ADE XL")
I've been trying to figure out how reusing test results in another test as design variables works. In your article you mention that it's possible, but I can't make it work. I'm calculating calibration data in testA and want to use it as an input in testB and perform a monte carlo analysis. TestB however does not run and doesn't even give an error message. Is what I'm trying to do actually not possible?
Thanks for any help.
Hi, It's not entirely clear to me what you are trying to do. If you are trying to add an expression in ADE L, you could try the sevAddExpression function. In ADE XL, you could use axlAddOutputExpr and axlAddOutputSignal. You can also use the menu pick from ADE L Outputs->Export to export the output signal and expressions to a text file, then you can do some modification and do Outputs->Import to read them back in.
Hi Stacy, I have been working on some scripts that reads the output signals/expressions from the ADE outputs area and operates on them then sets them back to the results of the modified outputs. I got one problem that the procedure "asiGetPlotList" returns only the signals so i used "asiGetOutputList" this one gets both signals and expressions. but any modification in the values returned by this procedure is reflected directly on the ADE output section. If i created the output structure "sevOutputStruct" I can't find a way to add this structure to the output section of the ADE can you help me with that. Thanks a lot for you help
Hi Lance, Thanks for your feedback. You are right that you can't plot across tests, unfortunately. You say that you ran a dc sim. Perhaps you could try a dc sweep instead. Then you could do something like: VS("/OUT") / value( VS("/OUT") 15).
Hi Stacy. I want to sweep a variable, a DAC code 0-15 say and have expressions that operate across that variable. Say I want to normalise all the results from each code setting to that of code 15. This would have been simple with a transient ramp but I chose a dc sim and varied the code across 16 separate tests, each with a unique code setting. I use the calcVal to normailise all the results in each test to test 15. Works great but I can't plot my results across tests. You can plot acros corners or design point but not tests. If I try and ctrl select all the separate test results and then do a plot, the results are in separate waveform windows and not wrt to the intended code setting. So how can i plot a result across test and nominate a variable to plot against? Or maybe ADEXL should sense the only variable different across the tests and plot against this. Or ADEXL should ask what to plot wrt. Then I would run over process corners and have a separate line graph for each process corner. I also read your article on the link above about MAC expressions and plotting expressions across corners. I would then have to assign my variable as a corner but then it would have been mixed up with process corners. I wish I had ramped the code over time in a transient sim now :-(
You may find what you need in my latest post:
Measurements across corners was implemented in 6.1.5 ISR6, so you should have access to it. You'll need to run your sweep as a corners run, then you can make various measurements on the results using the measured values over the swept corners variable(s).
Hope this helps.