blob: 130bcfd7c891df97fcf75cf2acd59856046a9fd9 [file] [log] [blame] [edit]
--------------------------------------------------------------------------------
VMM Kit 1.1.1
--------------------------------------------------------------------------------
This kit contains a version of VMM 1.1.1 that is qualified to run on Questa and
IUS and intended to run on all three simulators. Modifications were needed to
make it SV-compliant and to workaround differences in simulator implementations.
Setup typically involves the setting of two environment variables, as
precompiled DPI shared libraries for Linux, Windows, and SunOS platforms are
provided.
--------------------------------------------------------------------------------
Library Setup
--------------------------------------------------------------------------------
Simulator requirements:
Mentor Questa - 6.4b or later
Cadence IUS - 8.2-p001 or later
Synopsys VCS - See RELEASE.txt
make - (IUS only) GNU make v3.80 or later
Platforms supported:
linux - Intel and AMD x86-based architectures;
SUSE Linux Enterprise Server 9.0, 9.1, 10;
Red Hat Enterprise Linux 3, 4, 5; 32- and 64-bit;
sunos5 - v8, 9, and 10, 32-bit only
sunos5x86 - v10, 32 and 64-bit
Windows - (Questa only) XP and Vista, 32-bit only (tested on XP)
Environment variables:
The following environment variables must be set before running the
examples.
VMM_HOME - the VMM library install location, if running outside
the current installation area.
VMM_DPI_DIR - Needed when running the included examples, this variable
specifies the path to the pre-compiled DPI libraries in
$VMM_HOME/shared. Dependent on the platform used, the
path's default value is set to
$VMM_HOME/shared/lib/linux_x86_64.
Windows cygwin users must follow special requirements for setting
these environment variables. See instructions toward the bottom of this
README file.
--------------------------------------------------------------------------------
Running the Examples
--------------------------------------------------------------------------------
All examples can be found at $VMM_HOME/sv/examples.
Before attempting to run the examples, review <Interop Library Setup> to check
that your environment meets minimum version and platform requirements and that
the appropriate environment variables have been set.
To run all examples residing in a leaf-level directory, first cd to the
directory.
prompt> cd $VMM_HOME/sv/examples/std_lib/wishbone
Then type one of the following commands, depending on your simulator:
prompt> ./run_questa.sh Questa
prompt> make -f Makefile.ius all IUS
prompt> make -f Makefile.vcs all VCS
To clean a directory of all run-time files, type one of the following
commands:
prompt> ./run_questa.sh clean Questa
prompt> make -f Makefile.ius clean IUS
prompt> make -f Makefile.vcs clean VCS
To run all the examples (Questa only), cd to the top-level examples
directory and execute the run_questa.sh shell script:
prompt> cd $VMM_HOME/sv/examples
prompt> ./run_questa.sh
To clean all examples of run-time files, type:
prompt> ./run_questa.sh clean
Platform-specific dependencies and limitations:
All examples import DPI-C routines and shared libraries. This kit ships with
precompiled libraries for Linux, Windows, Sun Sparc, and Sunos5x86 platforms.
The examples have the following platform-specific limitations.
- The perf/tl_bus example has two sub-examples: sqltxt and sqlite. The latter
will not run on Sun Sparc platforms at this time.
- Synopsys ships the ralgen utility as a binary for Linux and Sun Solaris
platforms only. Thus, on win32 and Sunos5x86 platforms, examples that would
otherwise require running ralgen instead use pre-generated output from
a supported platform.
Note- VCS users may run the examples using the Makefiles that ship with the
original distribution. For convenience, these same Makefiles are included in
this kit as Makefile.vcs.
Warnings when running the examples:
The original VMM source code contains non-compliant SystemVerilog usage that
produce warnings in both Questa and IUS. The following warnings are benign,
but most can be suppressed via a command-line option.
- No return statement in function returning a value.
Example: function bit f(); endfunction
Questa: this warning can not be suppressed.
IUS: no warning.
- Implicit void cast of a function returning a value
Example: Calling function above as f() not void'(f());
Questa: use -suppress 2240 on the vlog command-line
IUS: use -nowarn FUNTSK on the irun or ncvlog command-line
- Constraint block never defined for prototype
Example: extern constraint ex1;
Questa: use -suppress 2227 on the vlog command-line
IUS: use -nowarn ECBICP on the irun or ncvlog command-line
--------------------------------------------------------------------------------
Special Instructions for Windows Users
--------------------------------------------------------------------------------
Windows users running on cygwin must take care to specify paths in env
variables to work around the different filepath formats used between
Windows OS and cygwin.
Setting VMM_HOME:
These env variables must start with C: and use backslashes as the delimiter.
| setenv VMM_HOME 'C:\cygwin\installs\vmm_1.1c'
We enclose the path in tick quotes to prevent the cygwin shell from
interpreting the backslashes.
Setting PATH:
You need to augment your PATH env variable so that Windows can
find dependent DLLs when loading.
| setenv PATH "$VMM_HOME\\shared\\bin\\win32:$PATH"
The double quotes are used in case your existing PATH contains spaces.
We must preceed each backslash in the path with the escape character,
which also happens to be a backslash.
Setting VMM_DPI_DIR:
The VMM_DPI_DIR must be set in a particular way to work around the different
filepath specs between cygwin and vsim. With VMM_HOME set as above,
the VMM_DPI_DIR should be set as follows
| setenv VMM_DPI_DIR \\cygwin/installs/vmm_1.1c/shared/bin/win32
Note that the path starts with a backslash and omits the drive letter.
Thereafter, the path is a normal Unix path with forward-slash as the
delimiter.
--------------------------------------------------------------------------------
License
--------------------------------------------------------------------------------
Copyright 2008-2009 Mentor Graphics Corporation
Copyright 2009 Cadence Design Systems, Inc.
All Rights Reserved Worldwide
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.