• 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. Reversing the contents of an expanded bus in VIVA

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 13889
  • 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

Reversing the contents of an expanded bus in VIVA

CADcasualty
CADcasualty over 7 years ago

In VIVA, when you expand a bus it yields (top to bottom) bus<LSB> ... bus<MSB>. I need the order reversed i.e. MSB on top. Is this possible?

And so we come to the part where you chime in and say "no, you lose".

  • Cancel
Parents
  • CADcasualty
    CADcasualty over 7 years ago

    Just providing some further clarification. I have declared a bus as follows:

    dout_bus = awvCreateBus("dout_bus" list( \
    L("/dout<17>") L("/dout<16>") \
    L("/dout<15>") L("/dout<14>") L("/dout<13>") L("/dout<12>") \
    L("/dout<11>") L("/dout<10>") L("/dout<9>") L("/dout<8>") \
    L("/dout<7>") L("/dout<6>") L("/dout<5>") L("/dout<4>") \
    L("/dout<3>") L("/dout<2>") L("/dout<1>") L("/dout<0>") ) "Binary")

    The L() function is something I wrote to convert a Verilog-A waveform into a digital waveform. When the bus is collapsed I see the contents in HEX and correctly derived from dout<17> ... dout<0>. So here's the part I think isn't so intuitive. When I expand the bus it shows me the waveforms:

    dout_bus[0]

    dout_bus[1]

    ...

    dout_bus[17]

    however the waveforms associated with each of the above are actually 

    dout<17>

    dout<16>

    ...

    dout<0>

    and that makes me confused. Am I doing something dumb?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • CADcasualty
    CADcasualty over 7 years ago

    Just providing some further clarification. I have declared a bus as follows:

    dout_bus = awvCreateBus("dout_bus" list( \
    L("/dout<17>") L("/dout<16>") \
    L("/dout<15>") L("/dout<14>") L("/dout<13>") L("/dout<12>") \
    L("/dout<11>") L("/dout<10>") L("/dout<9>") L("/dout<8>") \
    L("/dout<7>") L("/dout<6>") L("/dout<5>") L("/dout<4>") \
    L("/dout<3>") L("/dout<2>") L("/dout<1>") L("/dout<0>") ) "Binary")

    The L() function is something I wrote to convert a Verilog-A waveform into a digital waveform. When the bus is collapsed I see the contents in HEX and correctly derived from dout<17> ... dout<0>. So here's the part I think isn't so intuitive. When I expand the bus it shows me the waveforms:

    dout_bus[0]

    dout_bus[1]

    ...

    dout_bus[17]

    however the waveforms associated with each of the above are actually 

    dout<17>

    dout<16>

    ...

    dout<0>

    and that makes me confused. Am I doing something dumb?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to CADcasualty

    No, you're not doing something dumb. It doesn't really know what the original signals were once the bus was created - it just outputs them in a fixed order relative to the bits in the bus. I agree, it would be a good idea to have control over the order in which the bits were expanded, so you should contact customer support to request this (I didn't find any existing requests, but that doesn't mean it's not a reasonable request!)

    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