• 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. expecting a valid compiler directive error in vams that...

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 64
  • Views 7262
  • 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

expecting a valid compiler directive error in vams that is not in systemVerilog

MikeVP
MikeVP over 2 years ago

I have a single test bench that has two views:  one is all digital using sv models for analog blocks, and the other has analog blocks along with digital content.

I was not able to compare wreal nodes in hierarchy because the simulator was adding interface elements.  I was able to find Unified VerilogAMS monitor to probe electrical/real/wreal/logic signals in a test bench (cadence.com) from the support website.  This fixed my issue for my all digital test bench.

However, when I try the same code in the mixed signal bench, it fails, saying "expecting a valid compiler directive" for the `define create_monitor macro.  The top level stimulus for that bench is a verilog.vams file.  The all digital stimulus is a verilog.sv file.

This is easily reproducible using the example that is located in the link above.  That example runs for me (changing the "run" file to use xrun instead of irun).  But, rename the file "top.sv" to "top.vams", and change the "run" file to use top.vams, and you get the error:

`create_monitor(I_monitor_1,top.I1.net1,,,1)
|
xmvlog: *E,EXPCPD (top.vams,10|43): expecting a valid compiler directive [16(IEEE)].
(`define macro: create_monitor [top.vams line 1], file: top.vams line 10)
`create_monitor(I_monitor_2,top.I2.net2,,,1)
|
xmvlog: *E,EXPCPD (top.vams,11|43): expecting a valid compiler directive [16(IEEE)].
(`define macro: create_monitor [top.vams line 1], file: top.vams line 11)
`create_monitor(I_monitor_3,top.I3.net3,,,1)
|
xmvlog: *E,EXPCPD (top.vams,12|43): expecting a valid compiler directive [16(IEEE)].
(`define macro: create_monitor [top.vams line 1], file: top.vams line 12)
`create_monitor(I_monitor_4,top.I4.net4,,,1)
|
xmvlog: *E,EXPCPD (top.vams,13|43): expecting a valid compiler directive [16(IEEE)].
(`define macro: create_monitor [top.vams line 1], file: top.vams line 13)

Since vams should be able to handle `define macros, what could be going on?

  • Cancel
  • MikeVP
    MikeVP over 2 years ago

    From Cadence Support:

    As per R&D VAMS doesn’t support such compiler directive, which means you can’t use this in VAMS TB.

    Use SV wrapper over VAMS to probe current. Anyways this approach support OOMR like top.I1.net1, so specifying the hierarchy should not be an issue for SV wrapper.

     

    I have filed enhancement JiRA on your behalf to support this kind of compiler directive in VAMS:

    AVSREQ-190277 : Support "double tick" and "tick followed by quote" in VAMS like one supported in SV

     

    Let me know if this case can be closed.

    Looking forward to your reply.

     

    Regards,

    • 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