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 trying to optimize the propagation delay of a comparator using ADE GXL. The propagation delay of the comparator is characterized using a transient simulation, but I also need to run a DC analysis to compute the actual threshold voltage when the parameter values of the circuit (e.g. transistor sizes) change.
I thus set up the two simulations (DC and tran) and wrote an expression that uses the result of the DC analysis inside the formula to extract the propagation delay from the transient analysis. The expressions are reported below as a reference.
DC analysis expression: xmax(deriv(v("/out" ?result "dc")))
TRAN analysis expression (the above expression is used within the long formula below):
delay(?wf1 v("/vout" ?result "tran") ?value1 xmax(deriv(v("/out" ?result "dc"))) ?edge1 "falling" ?nth1 1 ?td1 0.0 ?wf2 v("/out" ?result "tran") ?value2 (VAR("vrefval") / 2.0) ?edge2 "falling" ?nth2 1 ?td2r0 0.0 ?stop nil ?multiple nil)
This approach runs fine when I run the two simulations in ADE L, returning the desired value.
When I plug it in ADE GXL though, only the DC expression gets evaluated, and I get an "error eval" message for the transient simulation. My best guess is that the transient expression gets evaluated before the DC simulation is run, thus resulting in an error in the evaluation.
How can I enforce the correct order of simulation to fix the problem? Is there another way to do what I am trying to achieve?
Thank you in advance for your help!
Are both analyses run in the same test? If so, the order of the analyses is based on the order in the test editor - double click on the name of the test, and drag and drop the analyses the way around you want.
That said, since the calculations would not be run until all the analyses in that test have completed, so that's probably not your problem. So maybe you've put the DC and TRAN in separate tests? If so, you'd need to use calcVal() to set up dependencies between the expressions - probably simplest to bring up the help (from a help menu in the tools) or run cdnshelp from the command line, and search for calcVal. Or just put the DC and TRAN in the same test...