• 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. Plot analog bus with non-overlayed traces in ViVa

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 126
  • Views 17500
  • 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

Plot analog bus with non-overlayed traces in ViVa

HoWei
HoWei over 5 years ago

Hi,

I do have an analog bus "vout<31:0>" and a output expression "VT("/vout<31:0>")", and I want to plot the transient signals.

In ViVa it plots all signals on top of each other (overlayed).

But I want to see each signal in a seperate trace (e.g. like in a logic analyzer).

The only way I found is to have an extra output expression for each signal, e.g. VT("/vout<0>") VT("/vout<1>") VT("/vout<2>") and so on.

But I stronlgy belief (hope) that there is a better way to plot a analog bus transient signal.

Having 16,32 or 64 bit busses and each signal its own output equation would be really annoying.

Please tell me how to plot the analog bus signals each in a seperate trace -  pleeease ;-)

  • Cancel
Parents
  • HoWei
    HoWei over 5 years ago

    i am aware of the Measurements->AnalogtoDigital functionality in ViVa, but how can I use this via an output expression ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 5 years ago in reply to HoWei

    Sorry for bothering - I found the correct expression eventually:

    analog2Digital(VT("/vout<31:0>")  "center" ?vCenter 0.5)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 5 years ago in reply to HoWei

    Well actually this is "digitizing" my analog signal - it removes all over/undershoots and amplitude noise.

    Is there a way to keep the signal "analog" and plot it like this ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to HoWei

    Well, if you plot them you can then use the Split All Strips icon in ViVA and pick "bit' or "leaf" in the cyclic next to it.

    What ought to be possible if  you're using ADE Explorer or Assembler, and IC618/ICADVM181 is that you should be able to do this once and then save that as a plotting template, then plot using that template. 

    Except it doesn't work for this right now. It plots everything in a single strip again when using the template, and worse it uses the same colour for all bits. I'll file a CCR and report that back here.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Andrew Beckett

    I filed CCR 2206122 - if you want to track this, please contact customer support and ask for a duplicate to be filed.

    Thanks,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 5 years ago in reply to Andrew Beckett

    Thanks Andrew - once again you made the life for me and my colleagues much easier.

    No one of my colleagues was aware that one can simply switch from "family" (which is default) to "trace" or "leave" - not even the people with many decades of experience.

    I think Cadence has so much (too much) functions and buttons, that most of the designers just resigned and work around the problem "somehow" - in this case, all the colleagues told me push the split-button, and if its not working on a bus-signal - its a bug and just accept it. But the function of the drop-down list was not known by anybody - this really sucks. And I guess its not the only useful function that is not obvious to find.

    In addition I am very very very very surprised that the plotting template was introduced just now, in IC6.18 - this is one of the very basic things in a design project: Setup your plots/figures and reload them the same way the next time you open a project. Sometime I only can wonder about Cadence.

    Anyways - thanks that you are here in the forum and can help on a very short notice !

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to HoWei

    Plotting templates are one of those things that have been needed for a long long time (so it's not surprising that you're surprised!), and in fact VIVA did have graph files to do the same idea. The tricky part was ensuring that it does the right thing when things change - for example, when you go from a single run to running with corners, or running with a different set of corners in a subsequent run. Graph files were good where the results were in the same directory each time, but didn't work with ADE Assembler, and so this needed some careful architecture to make work properly, and a few abortive attempts to do this were abandoned in earlier releases. Unfortunately there were always other high priority things that had to be done too.

    So the issue was really that to get this working correctly sounds simple, but is in fact quite complex in practice to get right. In IC618 it is pretty much right (this is one of a very small number of issues with plotting templates that I've seen, so I think the final implementation is good as a whole).

    Whilst you mention not knowing about the ability to alter how the split to strips is done, I should also mention the Customise Trace Group assistant. This allows you to split into strips, or change the color or symbol used for the current sub window or all subwindows based on one of the swept variables. That's a pretty flexible way of assigning (say) one color per temperature, one symbol per vdd value, and then the strip based on the model corner) for example. That's something else that often people don't know about...

    There's a lot of power in the waveform tool - it's worth designers spending a little time working through the videos or rapid adoption kits to be aware of at least the existence of the capabilities. The ability to split by a variable has been there a very long time now - it's not new (I think it's been there since early IC615), and the Customise Trace Group has also been there since some time during IC615 (the oldest build I have to hand is IC615 ISR12 from 2012, and it's there).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to HoWei

    Plotting templates are one of those things that have been needed for a long long time (so it's not surprising that you're surprised!), and in fact VIVA did have graph files to do the same idea. The tricky part was ensuring that it does the right thing when things change - for example, when you go from a single run to running with corners, or running with a different set of corners in a subsequent run. Graph files were good where the results were in the same directory each time, but didn't work with ADE Assembler, and so this needed some careful architecture to make work properly, and a few abortive attempts to do this were abandoned in earlier releases. Unfortunately there were always other high priority things that had to be done too.

    So the issue was really that to get this working correctly sounds simple, but is in fact quite complex in practice to get right. In IC618 it is pretty much right (this is one of a very small number of issues with plotting templates that I've seen, so I think the final implementation is good as a whole).

    Whilst you mention not knowing about the ability to alter how the split to strips is done, I should also mention the Customise Trace Group assistant. This allows you to split into strips, or change the color or symbol used for the current sub window or all subwindows based on one of the swept variables. That's a pretty flexible way of assigning (say) one color per temperature, one symbol per vdd value, and then the strip based on the model corner) for example. That's something else that often people don't know about...

    There's a lot of power in the waveform tool - it's worth designers spending a little time working through the videos or rapid adoption kits to be aware of at least the existence of the capabilities. The ability to split by a variable has been there a very long time now - it's not new (I think it's been there since early IC615), and the Customise Trace Group has also been there since some time during IC615 (the oldest build I have to hand is IC615 ISR12 from 2012, and it's there).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • HoWei
    HoWei over 5 years ago in reply to Andrew Beckett

    I just now watched the video tutorial for  IC6.18 ViVa and know the Customize Trace Groups function - but i also learned that I do not understand the basic difference between "family", "leaf" "trace"  "DesignPoint" - and I did not find any information (quick search) about what is meant by these terms.

    So far, whatever I selected, the graphs did not change - or at least I was not aware of any change.

    Do you mind to send a link to a tutorial or give a short explanations what is meant by  "family", "leaf" and "trace", how they difffer and when they are used ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to HoWei

    I'm travelling at the moment (and out most of next week too) so I have a limited chance to hunt down the right bit of documentation or a tutorial. However, I think the documentation from a search for "Split All Strips" is badly worded - it kind of repeats itself and doesn't describe well what is going on.

    Luckily, it's not that complicated. Imagine that you have two signals myOutP and myOutN, and have done a corners or parametric sweep in ADE, so each signal consists of (say) 12 waveforms for all the sweep combinations. The term "family" is used to describe a collection of waveforms associated with a single signal or expression (when sweeps have been done for example). So splitting by:

    • family - each collection (i.e. each signal/expression) is put into a separate strip. So you'd get one strip for myOutP and one for myOutN
    • leaf - the set of sweeps may be over several variables (so you may have 3 by 2 by 2, making 12). Plotting by leaf will mean that you get 12 strips, each with myOutP and myOutN (i.e. each strip represents one of the sweep combinations)
    • trace - each individual waveform gets plotted in a separate strip - so this would give  you 24 strips (each leaf combination and waveform would be in separate strips)

    You then have other choices dependent upon the sweep variable names. That will give you all signals/expressions in each strip for each combination of that individual sweep variable.

    I'll try to file a CCR against the documentation and ask them to improve it along the lines of what I say here - ideally with some pictures to show the results!

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 5 years ago in reply to Andrew Beckett

    Thanks for your explanation - this helps a lot.

    • 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