• 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. Mixed-Signal Design
  3. Loading third party shared libraries needed by custom C...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 64
  • Views 9845
  • 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

Loading third party shared libraries needed by custom C-code function used in Verilog-A with CDS_VA_DPI

Herge
Herge over 3 years ago

Description of the problem

  • A verilog-A block calls a custom C-code function through the CDS_VA_DPI interface.
  • The C-code function relies on third-party shared libraries to perform calculations.
  • The custom code with the function referenced in VerilogA is compiled w/o errors using the mmsim_genplugin.sh script.
  • After compilation by mmsim_genpluging.sh, several symbols still remain "undefined" because I am relying on the third party libraries to provide them.

Question

  • How can I get Spectre to load the third-party libraries and have the corresponding symbols available to my custom C-code function that will be called by my VerilogA module  ?
  • Should I use the cmiConfig scripts to set the search path for third party libraries and load them ? Or is this interface only for libraries complying to the CMI  API (i.e. providing certain specific functions which are target entry points, instead of having all public symbols loaded) ?
  • Should I use the Spectre netlist statement "ahdl_include <third_party_library_path> -cds_va_dpi" ?
  • Is there a difference between the effect of loading libraries through cmiConfig or using the CDS_VA_DPI mechanism ?

Thanks.

 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    Wild guess without having actually tried the - I would expect you just need to have the directory containing the shared libraries in $LD_LIBRARY_PATH. Does that work?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Herge
    Herge over 3 years ago in reply to Andrew Beckett

    OK, I cared to have all the lib paths defined in the GNUMakefile generated by mmsim_genplugin.sh, but did not check that it was passed to Spectre.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to Herge
    Herge said:
    OK, I cared to have all the lib paths defined in the GNUMakefile generated by mmsim_genplugin.sh, but did not check that it was passed to Spectre.

    Are you saying it worked if you set $LD_LIBRARY_PATH before running Spectre?

    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