• 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. System Verilog outputs connected in parallel causes voltage...

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 127
  • Views 17344
  • 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

System Verilog outputs connected in parallel causes voltage division

HoWei
HoWei over 5 years ago

Hi,

for functional verification we started to model our cells and top-level blocks in SystemVerilog.

For logic signals we are using the "logic' datatype.

For the analog signals we are using the 'real' datatype.

If  "logic" outputs are connected together, one can set all unused outputs hi-Z ("1'bz") and just have the one selected output drive the common output node.

But if "real" outputs are connected together, the interface elements (IE) are creating a voltage divider due to their finite output resistance.

The question is, if it is possible to declare a "real" output as high-Z or equivalent ?

And/or what is the better way to model "real-valued" parallel connected outputs ?

In my case I do have several DAC outputs in parallel. Each output has an internal transmission-gate to enable/disable the output. Only one DAC output is active at the time and drives/gives a "real" value to the output.

How to model this without getting a voltage divider due to parallel connection ?

  • Cancel
  • ShawnLogan
    ShawnLogan over 5 years ago

    Dear HoWei,

    HoWei said:

    But if "real" outputs are connected together, the interface elements (IE) are creating a voltage divider due to their finite output resistance.

    The question is, if it is possible to declare a "real" output as high-Z or equivalent ?

    And/or what is the better way to model "real-valued" parallel connected outputs ?

    It may be my ignorance, and excuse me if it is, but why would you not want to include the impact of their output impedance? It seems your simulation results will not be accurate unless you include the real output impedance.

    Shawn

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

    Hi Shawn,

    I am open for any suggestion - can you elaborate more on your proposal ?

    How can I include the impact of their output impedance ?

    The goal is to have a correct output signal for a single cell and for multiple cells connected together.

    In Verilog-A I could evaluate the currents and voltages of the output node, but in System Verilog ?

    HoWei

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 5 years ago

    I now found some description of using the "EE_pkg" definitions within Cadence.

    There are some examples available on how to solve the interface connections in terms of V,I,R.

    This seems the way to go forward with SystemVerilog, as its resolution functions are already defined in the Cadence environment.

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

    This is definitely a good solution. You will probably need an Xcelium DMSO license for this, however.

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

    Yes, that is correct - and luckily we do have it.

    I already ran the EEnet examples and was able to create my own cells.

    The node voltage with multiple outputs is solved correctly.

    What I am missing is a tutorial or documentation/presentation on the EEnet package.

    Currently I only have the text-files within the cadence environment.

    Do you know a good resource / tutorial /documentation of the EEnet package ?

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

    You will find a lot of resources if you search support.cadence.com for EE_pkg or EEnet. One of them is the RAK Using EEnet to perform Electrical Equivalent Modeling in SystemVerilog. You can also take a look at the Mixed Signal Rapid Adoption Kits (RAK) Download Landing page.

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

    Thanks Frank - very helpful !

    One (last) question - as it seems you have also used this EEnet within AMS simulations:

    From time to time it happens that I cannot extract SV files/modules, which were working without error before ( "package cannot be bound" or other errors). It turned out that I have to search for "*.pak" files within all  involved libraries and delete them manually to be able to compile/extract again - thats really bullsh*t - and it seems that there is no clear structure to overcome this. Well, I have to read the above mentioned documents.

    The Cadence Forum and Support Cases were not very helpful …

    If you have any trick or suggestion how to avoid this problems, please let me know !

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

    You could try the -cleanlib option of xrun, see https://support.cadence.com/apex/techpubDocViewerPage?path=xrun/xrun20.03/The_XRUN_Command.html#TheXRUNCommand-xrunOptionsCommand-LineOptions. The other -clean... options might be useful as well.

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

    That is doing what I was looking for

    BUT when adding the option in a ADE Explorer or Assembler it only is added when starting a simulation, not during compile/extract after a change in the SV file.

    I want to add this option during the compile/extract after changing a file. I tried to find a way to add this option via the text-editor GUI - but no success.

    How can I add this option to the "xrun" command within the text-editor - any idea ?

    Very helpful is to just run "xrun -cleanlib" from inside the workarea where cds.lib is defined.

    Do you think this is dangerous ?

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

    You might want to try the approach described at https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V00000911PEUAY for adding the option to the xrun command within the text editor. It's probably not dangerous to recompile everything each time, but it might be rather time-consuming.

    • 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