• 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. Using systemVerilog files with AMS simulator

Stats

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

Using systemVerilog files with AMS simulator

forXTer
forXTer over 6 years ago

I am having some trouble running a mixed signal simulation that references systemVerilog files. Typically what I do is set the digital block view to symbol in the hierarchy editor. I then include a file in AMS Options > Option files that has all of the .v/.sv files needed for the digital block. Running at this point will give syntax errors in the .sv file because the simulator does not know how to handle certain systemVerilog constructs. I can solve this by adding -sv under additional arguments. When I do that it then says disciplines.vams cannot be found and I get the following set of errors for each instance of a vsource.

vsource #(.type("dc")) IMess (\VDDP! , net09);
ncvlog: *E,EXPIDN (./netlist.vams,21273|14): expecting an identifier [7.2.3(AMSLRM)].


vsource #(.type("dc")) IMess (\VDDP! , net09);
ncvlog: *E,EXPLPA (./netlist.vams,21273|14): expecting a left parenthesis ('(') [7.2.3(AMSLRM)].


vsource #(.type("dc")) IMess (\VDDP! , net09);
ncvlog: *E,ILLPRI (./netlist.vams,21273|14): illegal expression primary [4.2(IEEE)].

I have used this same flow successfully in the past so I am not sure what is going wrong.

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    Which IC version are you using? Which simulator version? On Simulation->Netlist and Run Options, which netlist mode is it running - is it "AMS Unified Netlister with irun/xrun", "OSS-based netlister with irun/xrun" or "Cellview-based netlister ..."?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • forXTer
    forXTer over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    I am using IC6.1.6 and irun 15.20. The netlister is set to UNL, OSS and cell based are disabled for me by company admin.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to forXTer

    I just tried this. First of all, I would recommend that you use Right Mouse->Set CellView -> Mark as External HDL in the hierarchy editor rather than setting the view to symbol - that gives more info about the intent that this will be supplied externally. That said, I don't think that's the root cause here (although I was trying with the latest IC616 hotfix - ISR14.

    What should happen is that if a file with .sv is given to irun, it should treat it as SystemVerilog file by default, unless you've overridden the default file extensions (maybe using IRUNOPTS in an hdl.var file).

    In the terminal window, if you type "irun -helpfileext" it should tell you the extensions for SystemVerilog (and other file types):

    systemverilog SystemVerilog HDL -sysv_ext .sv,.svp,.SV,.SVP,.svi,.svh,.vlib,.VLIB

    If I (for example) created an hdl.var file with:

    DEFINE IRUNOPTS -sysv_ext .SV,.SVLOG -vlog_ext +.sv

    then if I then do "irun -helpfileext" I see (not showing all the lines):

    verilog Verilog HDL -vlog_ext .v,.vp,.vs,.V,.VP,.VS,.sv
    systemverilog SystemVerilog HDL -sysv_ext .SV,.SVLOG

    Then that causes the kind of problem you're seeing. You can check if there's an hdl.var file in use by going to Simulation->Options->AMS Simulator, Miscellaneous tab, and clicking the "Display hdl.var used by irun/simulator" to see it.

    So maybe that's the reason?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • forXTer
    forXTer over 6 years ago in reply to Andrew Beckett

    I do not have any hdl.var file listed in the  Miscellaneous tab. I also see the same item you have when running irun -helpfileext.   

     Is there a way I can check which version on verilog my current setup supports? I tried removing the -sv switch again and I noticed that most of my .v/.sv files parse without issue. This tells me that irun is recognizing systemverilog be default like you suggested. The file I have issues with is a piece of imported IP, it doesn't like the line " task read(input string fname); " I'm thinking maybe that particular structure is only supported in newer versions? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • forXTer
    forXTer over 6 years ago in reply to Andrew Beckett

    I do not have any hdl.var file listed in the  Miscellaneous tab. I also see the same item you have when running irun -helpfileext.   

     Is there a way I can check which version on verilog my current setup supports? I tried removing the -sv switch again and I noticed that most of my .v/.sv files parse without issue. This tells me that irun is recognizing systemverilog be default like you suggested. The file I have issues with is a piece of imported IP, it doesn't like the line " task read(input string fname); " I'm thinking maybe that particular structure is only supported in newer versions? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to forXTer

    It's almost certainly not due to a change in the SystemVerilog version, although a new version of the IEEE standard, 1800-2017 was approved about a year ago and so wouldn't be in the Incisive version you're using. However, as with all standards, no tool offer completes support of the entire standard, so it may be due to a specific feature you're using that isn't supported, or it may be due to an actual error in the code you're using.

    The best way forward would be to contact customer support over this as without seeing the precise details of the model that is failing to compile and the error messages, I can't really advise. The task definition you said above doesn't sound particularly unique to any version of SystemVerilog, so I'm not sure that's enough info to debug this.

    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