Difference between revisions of "SystemVerilog "std" package"

From Verific Design Automation FAQ
Jump to: navigation, search
 
Line 17: Line 17:
 
  veri_file::AddLibraryPath("std", "verilog_packages/sdbs/std") ;
 
  veri_file::AddLibraryPath("std", "verilog_packages/sdbs/std") ;
 
The binary dump file "std.sdb" should be in "verilog_packages/sdbs/std" directory.
 
The binary dump file "std.sdb" should be in "verilog_packages/sdbs/std" directory.
 +
 +
* tcl commands:
 +
 +
setveriloglibrarypath -default ../sdbs
 +
 +
or
 +
 +
setveriloglibrarypath -associate std=../sdbs/std

Latest revision as of 17:05, 28 February 2024

Q: Support for SystemVerilog semaphore/process/mailbox.

When I analyzed my SystemVerilog file, Verific issued error message:

test.sv(4): ERROR: process is not declared (VERI-1128)

(similarly for "mailbox" and "semaphore").

Does Verific support those SystemVerilog constructs?


According to SystemVerilog LRM, "process", "mailbox", and "semaphore" are classes defined in package "std" in library "std". Before analyzing the file using these classes, you need to load the "std" package. You can use either of the following ways:

  • Analyze the package before loading the design:
veri_file::Analyze("verilog_packages/std.sv", veri_file::SYSTEM_VERILOG, "std") ;
  • or load the library on demand using binary/restore method:
veri_file::AddLibraryPath("std", "verilog_packages/sdbs/std") ;

The binary dump file "std.sdb" should be in "verilog_packages/sdbs/std" directory.

  • tcl commands:
setveriloglibrarypath -default ../sdbs

or

setveriloglibrarypath -associate std=../sdbs/std