• 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. Functional Verification
  3. Efficient way to create vpi handles and callbacks

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 65
  • Views 14918
  • 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

Efficient way to create vpi handles and callbacks

varunRI
varunRI over 6 years ago

Hello Everyone,

Currently I am using following VPI calls to create handles and callbacks to my design hierarchal signals.

vpiHandle handle = vpi_handle_by_name( , );

cb_handle = vpi_register_cb(&cb_data);

Issue is that, for "n" number of nodes I need to call these commands "n" times and as the number of signals increases this whole process becomes significantly time taking.

 Is there any more efficient and  faster way to create multiple handles/callbacks in one go. I need to create millions of such handles and call backs.

I will really appreciate any inputs on this.

Thanks,

  • Cancel
  • StephenH
    StephenH over 6 years ago

    As far as I'm aware there is no other way to do this, and frankly if you create millions of callbacks, your simulation performance is going to be really bad... What are you trying to achieve (at a high level)? Maybe we can offer an alternative solution that doesn't depend on VPI at all...

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varunRI
    varunRI over 6 years ago in reply to StephenH

    Hi Stephen,

    Thanks for your response. In a Netlist simulation we are trying to keep track of multiple (which I need to create callbacks for) wire/nets in my design and on basis of some rules I force/release some other nodes (for which I just create handles). This C program work in parallel to my TB and is connected to design through VPI calls. Do you think something else can be done to achieve this?

    Regards

    Varun

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 6 years ago in reply to varunRI

    Thanks for the explanation. So for a smaller number of signals, I would have suggested Tcl value-change callbacks as a more generic and maintainable flow, but since you've already got a C program working(?) and you have "millions" of signals to monitor, frankly I can't think of anything better.

    I would have some concern about why you need to modify the netlist behaviour so radically. I presume you're doing something like fault injection, rather than fixing a faulty netlist ;-) so perhaps the only other idea I could offer would be to look at using Cadence's fault simulator, if that is indeed what you're doing...

    • 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