• 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. Tip of the Week: Easily program digital bus values for analog...

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 124
  • Views 23712
  • 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

Tip of the Week: Easily program digital bus values for analog sims

archive
archive over 18 years ago

There exists in the "bmslib" library a Veriloga test block that takes any decimal value and loads a digital bus with the binary equivalent.  Very useful for setting the value of digital buses for simulation. 
 
The component is called "busset8" (for the 8-bit version) or "busset4" (a 4-bit version), but one nice feature is that you can easily copy it and create any arbitrary bus size simply by changing the pin on the symbol, and changing the "NUMBITS" variable inside the Veriloga.  Even a non-Veriloga writer like myself can easily do it.
 
As an example of its use, if you wanted to set an 8-bit bus to 00001001, you would program the "setval" parameter on the symbol to "9".  (NOTE - you must set the "Tools Filter" radial button to "veriloga" to see the setval parameter to edit it.)  The output high and low levels are programmable.  The setval can also be set to a simulation parameter so that you can easily modify it in your Artist State setups.

These components also have Verilog-AMS views (which are similarly easy to modify) if you are running AMS instead of Spectre.
 
- Hugh


Originally posted in cdnusers.org by Hugh
  • Cancel
Parents
  • archive
    archive over 18 years ago

    You are right - I guess I assumed that copying and renaming the cell (hopefully to a library under your own control!) went without saying, but I should have included that step.

    Regarding whether (or how) you would change the setval during simulation, I can not think of how you would be able to do that with the cell as it is.  Of course, you could use a couple of them, set to different values, and then analog switches to toggle between, but that's a bit messy.  I think ideally a knowledgable Veriloga writer (which I am not) would probably be better off building a version of this cell that takes a voltage input as the "setval" parameter.  Then, a vpwl or vpulse could be used to dynamically change the setval property. 

    - Hugh


    Originally posted in cdnusers.org by Hugh
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • archive
    archive over 18 years ago

    You are right - I guess I assumed that copying and renaming the cell (hopefully to a library under your own control!) went without saying, but I should have included that step.

    Regarding whether (or how) you would change the setval during simulation, I can not think of how you would be able to do that with the cell as it is.  Of course, you could use a couple of them, set to different values, and then analog switches to toggle between, but that's a bit messy.  I think ideally a knowledgable Veriloga writer (which I am not) would probably be better off building a version of this cell that takes a voltage input as the "setval" parameter.  Then, a vpwl or vpulse could be used to dynamically change the setval property. 

    - Hugh


    Originally posted in cdnusers.org by Hugh
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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