• 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. Analog value fetch functions : issue with incisiv 15.20...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 65
  • Views 15468
  • 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

Analog value fetch functions : issue with incisiv 15.20.004

bhanu27
bhanu27 over 7 years ago

Hi All,

I am using $cgav and $caiv functions in TB to access a analog signal value and I get following error.

ncsim: *E, MSSYSTF ..... User Defined system task or function ($caiv) registered during elaboration and used within the simulation has not been registered during simulation

Let me know if anyone observed a similar issue and solution for it.

BR

  • Cancel
  • StephenH
    StephenH over 7 years ago

    $cgav is a Cadence-defined function for integrating Incisive with Spectre AMS. I don't see any reference to $caiv in the docs, so perhaps you made a typo?

    Anyway, the error message is telling you that the simulator cannot find a shared library function that implements the $caiv PLI/VPI call.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • bhanu27
    bhanu27 over 7 years ago
    Hi Steve,

    Thanks for the reply. I am using $cds_analog_is_valid (short form caiv) first to check signal is a analog signal and then $cds_get_analog_value (short form cgav). When i use these functions I get the error message.
    Even when I use verbose form of these functions, I get errors

    ncsim: *E, MSSYSTF ..... User Defined system task or function ($cds_analog_is_valid) registered during elaboration and used within the simulation has not been registered during simulation

    ncsim: *E, MSSYSTF ..... User Defined system task or function ($cds_get_analog_value) registered during elaboration and used within the simulation has not been registered during simulation

    I am not sure why these functions calls are not working

    Let me know path to this VPI routine so that i can load it using -loadvpi *

    BR
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tpylant
    tpylant over 7 years ago

    These functions only get loaded with the analog solver. So if you don't have any electrical or Spice models, then only the discrete engine is used and those functions are not available.

    Using a function to change the functionality of $cgav is the most flexible way to switch between discrete and electrical versions.

    function automatic real cgav(string path, string qualifier="potential");
      `ifdef WREAL cgav=0;
      `else        cgav=$cgav(path, qualifier);
      `endif
    endfunction

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • bhanu27
    bhanu27 over 7 years ago

    Hi Tim,

    Thanks for your input.

    Analog solver was not being called in my sims.

    The issue is fixed at my end

    BR

    • 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