• 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. RF Design
  3. How to substract bussed analog signals ?

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 63
  • Views 7647
  • 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

How to substract bussed analog signals ?

Guillaume H
Guillaume H over 2 years ago

Hi,

I am facing the following issue with Maestro Assembler / Explorer.

- Output # 1 is [ Test_1 = vtime('tran "/RFFE/HPPA/CORE/CHANNEL<3>/lo_pmos_msb<30:0>") ]. This is actually a bus of 31 analog waveforms. This output is correctly evaluated by Assembler.

- Output # 2 is [ Test_2 = vtime('tran "/RFFE/HPPA/CORE/CHANNEL<3>/MSB<30:0>/local_vss") ]. This is again a bus of 31 analog waveforms, which evaluates correctly.

All waveforms are from the same transient simulation : They share the same time-points.

Now, If I declare a third output as [ Test_3 = Test_1 - Test_2 ], I would expect Test_3 to be a bus of 31 waveforms with [ Test_3<i> = Test_1<i> - Test_2<i>, ], but it fails to evaluate.

Any idea to solve this ?

Thanks

/Guillaume

  • Cancel
  • Guillaume H
    Guillaume H over 2 years ago

    Edit : It works when one of the bus is replaced by a single waveform.

    /Guillaume.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guillaume H
    Guillaume H over 2 years ago

    Forgot to mention : getVersion(t) -> "sub-version ICADVM20.1-64b.500.29 "

    /Guillaume

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to Guillaume H

    Hi Guillaume,

    The trick is to use the function in this article of mine - it explains why this is a challenge and provides a function to adapt the bus-indexed waveforms so that you can do operations that work on buses of different signals: How can I measure the delay between each bit of two analog buses in the ViVA calculator? (the title may not be obvious that it's related - perhaps I should try to generalise the title).

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guillaume H
    Guillaume H over 2 years ago in reply to Andrew Beckett

    Hi Andrew,

    It works perfectly. Thanks a lot !

    However, I still have some trouble with the result of [ abBusToIndex(BusP<2:0>)-abBusToIndex(BusN<2:0>) ].

    Let me explain. Please consider the following outputs :

    • Test0 = vtime('tran "/lo_pmos_msb<2:0>")
    • Test1 = (abBusToIndex(vtime('tran "/lo_pmos_msb<2:0>")) - abBusToIndex(vtime('tran "/MSB<2:0>/local_vss")))
    • Test2 = (abBusToIndex(vtime('tran "/lo_pmos_msb<2:0>") t) - abBusToIndex(vtime('tran "/MSB<2:0>/local_vss") t))
    • Test3_p = abBusToIndex(vtime('tran "/lo_pmos_msb<2:0>"))
    • Test3_m = abBusToIndex(vtime('tran "/MSB<2:0>/local_vss"))
    • Test3_p_m = Test3_p - Test3_m
    • Test4_p = abBusToIndex(vtime('tran "/lo_pmos_msb<2:0>") t)
    • Test4_m = abBusToIndex(vtime('tran "/MSB<2:0>/local_vss") t)
    • Test4_p_m = Test4_p - Test4_m

    Note that :

    • Each of them should include 3 waveforms.
    • Test2 = Test1 but with [ abBusToIndex(vtime('tran "xxxxx"<2:0>")) ] replaced by [ abBusToIndex(vtime('tran "xxxxx"<2:0>") t) ]. Just a trial.
    • Same as point #2 above from [ Test3_* ] to [ Test4_* ]. Same trial.

    Then, please have a look at the screen-shot below and the following observations.

    • Test0 is 3 waveforms as expected, with each waveform perfectly identified. But no calculation can be made on it w.r.t. another bus, as already known.
    • Test1 and test2 seem (?) to be one waveform only ???
    • Test3_p and Test3_m are 3 waveforms as expected, but no clear information about which one is e.g. bit <2>.
    • Test3_p_m seems (?) to be one waveform only ???
    • Same for Test4_*. In other words, using the t) doesn't help.

    My questions : 

    • Are the observation above correct ?
    • How to proceed to plot Tests 1* -> 4* as they should be ?

    I'm not familiar with the bitNum which appears only when using abBusToIndex(). There may be a 'dedicated' way to plot in such cases, but I couldn't find info on it.

    Thanks.

    /Guillaume

    • 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