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'm not going to beat around the bush here. I could tell you about all the things that are new in ADE (Analog Design Environment) in IC 6.1.4. I could tell you about the fact that the individual subwindows are now resizeable, rearrangeable (is that a word?), undockable and tabbable (I know that's not a word, but it's fun to say) just like the assistants in the main Virtuoso window. I could tell you that the Parametric Analysis UI has been redesigned. I could also remind you to read my earlier post about all the new features added to ADE in previous IC 6.1 releases.
But I won't. Why? Because there is one new feature in ADE in IC 6.1.4 that tops all the others in terms of fulfilling widespread long-awaited user requests. Dependent expressions. Being able to use the name of one expression in others expressions based on it instead of having to repeat the entire definition of the first expression. No longer do you have to go cross-eyed trying to parse enormous paragraph-long expressions. Break them up into smaller, more sensible expressions and build from there. It's logical, it's intuitive and it's here today in IC 6.1.4.
There is a great video available here in the Cadence Online Support Video Library showing you how this works. I have a favorite example I use in demos. The original expression (which was created in IC 6.1.3) looks like:
((1 - (average((VT("/OUTM") - VT("/INM"))) / ((value((VT("/OUTM") - VT("/INM")) 4.3e-09) + value((VT("/OUTM") - VT("/INM")) 1.23e-08) + value((VT("/OUTM") - VT("/INM")) 2.03e-08) + value((VT("/OUTM") - VT("/INM")) 2.83e-08) + value((VT("/OUTM") - VT("/INM")) 3.63e-08) + value((VT("/OUTM") - VT("/INM")) 4.43e-08)) / 6))) * 100)
Egads! That 33 sets of parentheses (hopefully in the right places), and 7 repetitions of the expression (VT("/OUTM") - VT("/INM")). Not to mention I'm also interested in the values of several of the subexpressions individually (so those will have to be repeated again on their own).
So now in IC 6.1.4 that above expression can be created as:
((1 - (GainDiffAvg / GainDiffErr6Avg)) * 100)
Granted, it's still pretty involved, but by breaking up the expression into more manageable bits, it's a whole lot easier to see what's going on (and to make sure you've got it right).
Expressions can be added in any order and can be based on any number of other expressions. No cyclic dependencies, please.
Hopefully, this improvement will help make it a bit easier to create the measurements your really interested in.
I have not had a problem using dependent expressions for waveforms as well as for scalars. You may want to contact Customer Support with the specific problem.
These dependant expression work fine on numerical dependencies but what if you want to build an expression that has a wave as its result and depends on other wave expressions? This doesn't seems to work just using the expression names within the dependant expression
You're absolutely right, Mark. Thanks for the comment. I was going to mention this in the article, but decided I didn't want to confuse things for anyone who might not be aware of that old "trick". The new way is much more straightforward. I also wanted to add that dependent expressions work in ADE XL as well.
BTW, another new feature in ADE in IC 6.1.4 is the ability to drag-'n-drop to reorder the rows in the Outputs, Variables and Analysis subwindows. Dependent expressions don't depend on the order of definition, but being able to rearrange the rows does make things easier to read. Also, reordering the analyses redefines the order in which the analyses are run.
I would point out that this is available in past releases. However there are some caveats. You have to use the following syntax in the expression. Y = 2 and X = 2. Then you can use Z = X + Y. The order matters and the equal signs in the output expression make the expression a skill expression. However it does work. Not having to worry about the order with the new version is a very good thing, since changing the order of expressions in the ADE window is not simple. Thanks for the info