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(...);