blob: fbdad87105852bf27c4944f431899ea6d054c8ab [file] [log] [blame] [edit]
Verification Methodology Manual
version 1.1.1
(C) Copyright 2004-2009 Synopsys, Inc.
All Rights Reserved Worldwide
To be able to succesfully compile the SystemVerilog code in this
distribution using VCS2006.06-SP2, some conditional code has been
included to work around some limitations in the SystemVerilog
constructs supported by this version of VCS. The directives and
release notes mentionned in this document are not necessary if you are
using a later release of VCS.
You *MUST* use version VCS2006.06-SP2-9 or later.
You *MUST* define the symbol `VCS2006_06 when compiling the
SystemVerilog source code. This can be accomplished from the command
line using the +define option as shown below:
% vcs -sverilog +define+VCS2006_06 +incdir=$VMM_HOME/sv ...
The only user-visible limitation of VCS2006.06-SP2 is the lack of
support for calling static methods from outside the class using the
class-scope operator. For example, the following statement is not
supported:
int speed = vmm_opts::get_int("speed", 10, "Transmit/Receive speed");
When defining the `VCS2006_06 symbol, these methods are no longer
static. They must thus be called through an instance of the container
class. The statement above must be implemented as follow:
vmm_opts opts = new;
int speed = opts.get_int("speed", 10, "Transmit/Receive speed");
This work-around will remain forward compatible with these methods
returning to static methods when using a later version of VCS.
The following methods documented as class-static are non-static when
VCS2006.06 is used and must be called using the work-around shown
above:
vmm_opts::get_bit(...)
vmm_opts::get_string(...)
vmm_opts::get_int(...)
vmm_opts::get_help();
vmm_test_registry::run(...);
vmm_test_registry::list();
vmm_ral_tests::hw_reset(...);
vmm_ral_tests::bit_bash(...);
vmm_ral_tests::mem_walk(...);
vmm_ral_tests::reg_access(...);
vmm_ral_tests::mem_access(...);
vmm_ral_tests::shared_access(...);