• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Viva delta marker

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 126
  • Views 7358
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Viva delta marker

Brad RFeng
Brad RFeng over 1 year ago

Hi,

For Viva delta markers the slope can displayed in the marker label using format [dx:%W] [dy:%H] [s:%S]. Instead of the slope I'd like to display 1/slope. On a long shot I tried [s:%1/S] and [s:%(1/S)] but no luck. 1/slope would be very useful to display considering it represents the resistance of a diode i-v curve. An even better feature would be the ability to specify an expression dependent on the dx,dy,x,y values.

Regards,

Brad

  • Cancel
Parents
  • Brad RFeng
    Brad RFeng over 1 year ago

    Hi Shawn,

    Using 1/deriv(wave1) in the outputs setup list works well, thanks for the suggestion.

    In the case of a single marker, there is an expression property however I have not found any examples of how to use it. I tried setting the marker expression to 1/deriv(wave1) but it returns the following error.

    ERROR (VIVA-6443):Illegal marker evaluation return type. Legal types: Bool, Int, Long, Double, Complex, String

    This expression, abs(i("/Q0/B" ?result "dc")), returns the same error.

    Do you know of any examples that show how to use the marker expression?

    Regards,

    Brad

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 1 year ago in reply to Brad RFeng

    Dear Brad RFeng,

    Brad RFeng said:
    Using 1/deriv(wave1) in the outputs setup list works well,

    Thank you for letting me know - one step in the right direction for you anyway I hope!

    Brad RFeng said:

    In the case of a single marker, there is an expression property however I have not found any examples of how to use it. I tried setting the marker expression to 1/deriv(wave1) but it returns the following error.

    ERROR (VIVA-6443):Illegal marker evaluation return type. Legal types: Bool, Int, Long, Double, Complex, String

    This expression, abs(i("/Q0/B" ?result "dc")), returns the same error.

    I believe the Expression defined in the GUI shown in Figure 1 needs to be a scalar. Your example 1/deriv(wave1) is a waveform and hence I wold expect an error message. In your second attempt, the expression also appears to be a waveform as the "dc" refers to a DC analysis and not a DC operating point (dcOp).

    You might try something like the following scalar expression:

    1/value(deriv(wave1) %X)

    to annotate the inverted slope at the x coordinate of the marker (%X). I assume it will recognize the "%X" as the x coordinate.

    You can verify this produces a scalar in the Calculator by entering a constant value for "%X" within the x range of your simulation and evaluate the expression. If that succeeds, copy that expression (with the constant value) to the marker Expression entry box in the GUI of Figure 1 and verify the Calculator result is also shown adjacent the marker in the ViVA window.

    Shawn

    Figure 1

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to ShawnLogan

    There is no support for accessing the marker point (e.g. using %X, %Y) in the expression - all you can do is have a fixed expression that is then displayed using %E. I'm sure I've asked for this and have an enhancement request for it, but I can't find it right now (probably the wrong search terms - and I'm in a hotel on a slow internet connection so my capacity to search is a bit limited).

    Similarly I have also asked in the past to be able to show the slope or tangent from a point marker (you can only show the slope on delta markers) - CCR 1061138.

    There's no support for adding expressions of %S in the delta markers either.

    Some of the challenge here is that potentially needing to evaluate an expression dynamically as you drag the marker could be expensive - imagine it doing some complex FFT type calculation - but it would be very helpful if this was possible. You should contact customer support and request the capability to have expressions that reference the marker location in the arguments.

    The expression must return a scalar (as Shawn said) but that's not going to help you if you can't make it dynamic (well, you can just manually update the expression whenever you move it, I guess).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 1 year ago in reply to Andrew Beckett

    Dear Andrew,

    Andrew Beckett said:
    There is no support for accessing the marker point (e.g. using %X, %Y) in the expression - all you can do is have a fixed expression that is then displayed using %E.

    ...

    Andrew Beckett said:
    (well, you can just manually update the expression whenever you move it, I guess).

    Thank you for both reading my comments and taking the time to provide your insight and the information regarding the CCR for the tangent/slope for a point marker.  I was also thinking that a manual update of the expression might be possible in case the "%X" was not recognized as part of a valid expression.

    I am sure Brad RFeng will find them helpful...at least I did anyway!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 1 year ago in reply to Andrew Beckett

    Dear Andrew,

    Andrew Beckett said:
    There is no support for accessing the marker point (e.g. using %X, %Y) in the expression - all you can do is have a fixed expression that is then displayed using %E.

    ...

    Andrew Beckett said:
    (well, you can just manually update the expression whenever you move it, I guess).

    Thank you for both reading my comments and taking the time to provide your insight and the information regarding the CCR for the tangent/slope for a point marker.  I was also thinking that a manual update of the expression might be possible in case the "%X" was not recognized as part of a valid expression.

    I am sure Brad RFeng will find them helpful...at least I did anyway!

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Brad RFeng
    Brad RFeng over 1 year ago in reply to ShawnLogan

    Can a marker's x or y value be accessed in a design variable or global variable, something like myVar = VAR("M1")? 

    Btw - using a marker's value in an expression has been possible in another simulation tool for a long time. I've created multiple plots on a display page that all update practically instantaneously when I drag a marker on the master plot. I have not tried doing that with an FFT but I suppose there is a limit on the response time.

    Brad   

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 1 year ago in reply to Brad RFeng

    Brad,

    In AWD (so a long time ago) you used to be able to get the value of a marker (I think this was just vertical markers) using the special variables M1, M2, M3 (these were just SKILL variables not design variables accessed via VAR()). This was deprecated in ViVA because it wasn't scalable, but the alternative (using %X, %Y in expressions) was not implemented. I found the CCR on this - 176826.

    I've always wanted this behaviour (yes, other tools have such ability) and if used with care, interactive performance should be fine. That wasn't really the reason for it not being implemented - I suggest you request a duplicate of CCR 176826 be filed on your behalf.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. 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. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information