Difference between revisions of "SystemVerilog "std" package"

From Verific Design Automation FAQ
Jump to: navigation, search
(Created page with "'''Q: Support for SystemVerilog semaphore/process/mailbox.''' When I analyzed my SystemVerilog file, Verific issued error message: test.sv(4): ERROR: process is not declare...")
 
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
 
  test.sv(4): ERROR: process is not declared (VERI-1128)
 
  test.sv(4): ERROR: process is not declared (VERI-1128)
  
(similarly for "mailbox" and "semaphore"). Does Verific support those SystemVerilog constructs?
+
(similarly for "mailbox" and "semaphore").
 +
 
 +
Does Verific support those SystemVerilog constructs?
  
  
Line 15: 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 16: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