Home > Community > Forums > Custom IC SKILL > CDF callbacks and ADE design variables?


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 CDF callbacks and ADE design variables? 

Last post Mon, Feb 15 2010 1:47 PM by Andrew Beckett. 1 replies.
Started by berndf 12 Feb 2010 03:30 PM. Topic has 1 replies and 2624 views
Page 1 of 1 (2 items)
Sort Posts:
  • Fri, Feb 12 2010 3:30 PM

    • berndf
    • Top 150 Contributor
    • Joined on Tue, Aug 25 2009
    • Landshut, Bavaria
    • Posts 54
    • Points 840
    CDF callbacks and ADE design variables? Reply

    Dear all,

    I'm looking for satisfactorily method
    for the combination of the usage of CDF callbacks
    and ADE design variables.

    An example:
    For a primitive capacitance there are
     the model parameters, area and perim
     the CDF paramters l, w, c, area, perim.
    Where two of the three params l, w, c are entry params,
    dependent on the users choice. The third
    then always depends form the values entered on
    the two entered.
    Area and perim also depend on the values from w and l.
    In the CDF callback, a range check and the calculation
    of the dependent values is performed.
    This works well up to the point if one wants to use
    design variables for l, w or c.
    At that point you levering range checking and the
    calculation of dependencies.

    Is there any silver bullet method to address this correctly?
    And how would it be implemented in the callback?

    Thanks in advance and with best regards,

    Not to use CDF callbacks is no solution.
    And I knew: SourceLink Solution 11223092 "The Dangers of CDF Callbacks"

    • Post Points: 20
  • Mon, Feb 15 2010 1:47 PM

    Re: CDF callbacks and ADE design variables? Reply

    Hi Bernd,

    What I would do is:

    1. use spectre's "assert" statement to do range checking in the model
    2. Potentially you might be able to use some of the AEL functions (aelSetLineage, and then aelCompile/aelEvaluate) to evaluate the expression in the current hierarchical context. However, that I think is of dubious value because you might not have set the design variable values yet, or may change them later. Or you may have two instances in different hierarchical paths, which actually see different values (due to pPar() type BLOCKED EXPRESSION. So I think this is really a flawed approach
    3. Usually I would just disable any range checking as soon as the expression cannot be evaluated with cdfParseFloatString (say), or even an aelEvaluate which just resolves simple expressions. Fundamentally it is an impossible task for the callback to range check something that it doesn't actually yet know what the value is going to be - only the simulator will see the final value of the expression (what happens if you're doing a sweep of the design variable, for instance?)

    Best Regards,



    • Post Points: 5
Page 1 of 1 (2 items)
Sort Posts:
Started by berndf at 12 Feb 2010 03:30 PM. Topic has 1 replies.