• 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. Custom IC Design
  3. Virtuoso SystemVerilog errors

Stats

  • Locked Locked
  • Replies 14
  • Subscribers 125
  • Views 14288
  • 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

Virtuoso SystemVerilog errors

HoWei
HoWei over 2 years ago

Hi,

I am using Virtuoso for AMS simulations with SystemVerilog modules. The modules are not stored in the cellview-folder itself (e.g. cell-name is "tbKernel")  - instead they are in another folder of an SVN working copy. To access those SVN files from the Virtuoso Libmanager, I created symbolic links from the cellview folder "./tbKernel/systemVerilog" to the SVN - e.g. "./tbKernel/systemVerilog/verilog.sv --> ../../svn/testbench/tbKernel.sv". This is working fine for a simple SV module !

Another (more complex) SV file imports modules and packages, some are located in the same SVN folder, others are standard packages such as "cmath". Since the SV files are typically simulated in another environment than Virtuoso (e.g. Questasim), I am sure the syntax is correct and working properly in the other environment.

The "check&save" for this more complex SV file shows the following errors:

 22 package cmath;
 23 import "DPI-C" function real sin(input real x);
 24 endpackage // cmath

 26 import cmath::*;                                   <-- ERROR-1: Package cmath cannot be bound !

 28 // import tbObjPkg::*;                           <-- ERROR-2: Package tbObjPkg cannot be bound !
 29 `include "/...some_path_here.../svn/testbench/tbObjPkg.sv"  <-- absolut path fixes ERROR-2, but is not a solution - I need relative pathes to keep consistency in the SVN for other environments.

799 //always @ (*) begin                           <-- ERROR-3: Using "*" grays out the rest of the code until the next "*" 
800 always @ (/*AUTOSENS*/) begin      <-- this fixes ERROR-3
801 if (sdEnable==1) begin
802 sdin1 = sdInterface1.sdout_sd;

Now my questions on those errors are:

ERROR-1: This is a package that comes with the tool - how can I make it available and bind it in Virtuoso - is there a dedicated entry in the "hdl.var" file required (we are using XCELIUM for AMS simulations) ?

ERROR-2: How can I make the tool looking in the same folder (relative pathes) for modules/files to be included - especially with my linked "verilog.sv" to the SVN folder ?  

ERROR-3: Why does "*" work in the pure digital environment (e.g. questasim) but not in the Virtuoso environment ?

Thanks in advance for some suggestions !

  • Cancel
  • HoWei
    HoWei over 2 years ago in reply to Saloni Chhabra

    According to the XCELIUM AGILE SystemVerilog reference manual, the classes cannot be declared globally (yet).

    See under "Classes-Declaring a Class datatype" (why is there no chapter number given in the manual ?) !

    I see this as a significant limitation for code-compatibility between tools for SystemVerilog.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 2 years ago in reply to HoWei

    One more thing is, that the SV code uses " 'include " statements, which I do not find in the Cadence SystemVerilog reference manual under "Compiler Directives" or any other chapter.

    But I think it is a standard thing to use.  

    Do you have a reference where "  'include  " is used and documented ?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Saloni Chhabra
    Saloni Chhabra over 2 years ago in reply to HoWei

    I can see chapter numbers in SV reference guide (Classes are in Chapter 9). 

    But I think at this point, it's best you contact Cadence Customer Support to get more information on working with Classes.

    Regards,
    Saloni

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • HoWei
    HoWei over 2 years ago in reply to Saloni Chhabra

    Yes, but discussions in the forum are progressing much faster than with customer supprt - unfortunately.

    • 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