• 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 SKILL
  3. Something is missing in this command

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 144
  • Views 17052
  • 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

Something is missing in this command

jazzmatazz
jazzmatazz over 10 years ago

Hello All,

I'm using the function awvPlotSignals the syntaxis is awvPlotSignals(signal  ?plotStyle ?graphType) , but I can't understand how to set what type of signal to plot ( terminal or net ) by default seem to be net and when I try to plot terminal appears error for missing waveform.

Does anyone know how to define the signal type?

Regards,

Nikolay

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    You don't set the "signal type" - you have to pass the function a waveform object. You can access the waveform object using (say):

    v("/signalName" ?result 'tran)

    or

    i("/R1/PLUS" ?result 'tran)

    and then pass this to the awvPlotSignals function.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 10 years ago

    Thanks Andrew!

    It's much better now :)

    Regards,

    Nikolay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 10 years ago

    And one additional question.

    Which function I could use for set of  Context Results Database?

    Regards,

    Nikolay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    Nikolay,

    So do you mean the results database you get when you do v(...) without needing to pass ?resultDir ... within the v() call?

    If so, you can use openResults() for this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 10 years ago

    openResults() is what I needed. It's too easy when you know the right commands :D

    Thanks.

    Regards,

    Nikolay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Matth83
    Matth83 over 8 years ago

    Dear Andrew,

    After 1 year... I'd be interested in representing the stability of my circuit in a polar chart.
    I'm running a simple STB analysis but somehow I can't get the following working:

    awvPlotSignals(getData("/loopGain" ?result "stb") ?graphType "polar")
    "(\"foreach\" 0 t nil (\"*Error* foreach: second argument must be a list\" srrWave:0x288c70f0))"

    Expecting a list, not taking a Waveform.
    I've then checked the Help and tried to adapt the syntax from given

    awvPlotSignals((("./ampsim.raw" (("ac-ac" ("net10"))))) ... )

    to a 'wonky'

    awvPlotSignals((("openResults()" (("stb" ("/loopGain"))))) ?graphType "polar")
    "(\"eval\" 0 t nil (\"*Error* eval: not a function\" (\"openResults()\" ((\"stb\" (\"/loopGain\"))))))"

    I don't get the syntax needed here...
    Target would be to get a proper visual of Gain and Phase margins (which tend to be sometimes masked in the Bode representation) - getData("phaseMargin" ?result "stb_margin") and gainMargin are nice but I wouldn't trust them 100%...

    Thanks in advance for your possible feedback,
    Kind regards,
    Matth (on 6.1.6)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Matth,

    awvPlotSignals is a pretty horrible interface. I'd use the simpler OCEAN interface:

    newWindow()
    displayMode("smith")
    smithType("polar")
    plot(getData("loopGain" ?result 'stb))

    I would have expected: 

    awvPlotSignals(list(list(openResults() list(list("stb" list("loopGain"))))) ?plotStyle "New Window" ?graphType "Polar")

    to work, but I can't get it to behave. I get the graph, of Polar type, but there's no trace on it... whereas the 4 line approach above (which is much more readable) works fine. Note that you have to create a new window or sub window because you can't convert an existing rectangular graph into a smith or polar chart.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 7 years ago

    Hello,

    How should be expressed the argument for the signal which I would like to plot if it is in a hierarchy?

    For example my signal is called signal_1 and it is in block called block_2.

    If the signal is on top level the function probably should be something like this.

    awvPlotSignals(list(list(openResults() list(list("tran-tran" list("signal_1"))))) ?plotStyle "New Window" ?graphType "Default")

    But what about if it is in block_2

     

    Regards,

    Nikolay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 7 years ago

    OK, nevermind! I found the solution :)

    Regards,

    Nikolay

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Nikolay,

    You have to use the netlist name with “.” as the hierarchy separator when using this API (I think). You can see these names by using:

    outputs(?result “tran-tran” ?map nil)

    So for example (in my case openResults() didn’t have the “/psf” on the end - hence the strcat):

    awvPlotSignals(list(list(strcat(openResults() "/psf") list(list("tran-tran" list("I7.net022"))))) ?plotStyle "New Window" ?graphType "Default”)

    Personally I would just have used:

    plot(v(“/I7/net022”) ?result ‘tran)

    if this had come from ADE. If from a standalone netlist, the same as above, but with “I7.net022”. Essentially a leading slash means it is a schematic name which should be mapped using the info in the map/amap directory - if present. If not present in the netlist dir, you have to use the netlist hierarchy separators instead.

    Regards,

    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