| Verification Methodology Manual |
| version 1.1.1 |
| |
| (C) Copyright 2004-2009 Synopsys, Inc. |
| All Rights Reserved Worldwide |
| |
| |
| The VMM distribution is licensed under the Apache License, |
| Version 2.0 (the "License"); you may not use the content of |
| this distribution except in compliance with the License. |
| |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| |
| |
| Content of distribution |
| ----------------------- |
| |
| This distribution contains the following: |
| |
| - Source code for the VMM Standard Library (v1.11) |
| - Source code for the VMM Register Abstraction Layer (v1.13) |
| - Source code for the VMM Scoreboard Package (v1.4) |
| - Source code for the VMM Performance Analyzer (v1.1) |
| - Source code for the VMM Hardware Abstraction Layer (v2.0) |
| - VMM template generator |
| - Linux and Solaris binaries for RAL Model Generator (v1.14) |
| - PDF for the VMM Standard Library User's Guide |
| - PDF for the VMM Register Abstraction Layer User's Guide |
| - PDF for the VMM Scoreboard Package User's Guide |
| - PDF for the VMM Performance Analyzer User's Guide |
| - PDF for the VMM Hardware Abstraction Layer User's Guide |
| - HTML class documentation for VMM developers |
| - Source code for examples |
| |
| The Environment Composition Package (vmm_subenv, vmm_consensus) is |
| included as part of the VMM Standard Library. |
| |
| The Memory Allocation Manager (vmm_mam) is included as part of the VMM |
| Register Abstraction Layer. |
| |
| The main elements of the directory structures in this distribution |
| are: |
| |
| README.txt .................... This file |
| NOTICE.txt .................... Intellectual property notice |
| RELEASE.txt ................... Release notes from version 1.1 |
| VCS2006.06-SP2.txt............. Release notes for using VCS2006.06-SP2 |
| VCS2008.09.txt................. Release notes for using VCS2008.09 |
| VCS2008.12.txt................. Release notes for using VCS2008.12 |
| VCS2009.06.txt................. Release notes for using VCS2009.06 |
| vmm_versions .................. Distribution verification script |
| patch_vcs ..................... Script to patch a VCS installation(*) |
| doc/ .......................... User and Developer Documentation |
| html/ ..................... HTML User Guides |
| index.html ........... Top-level HTML file |
| pdf/ ...................... PDF User Guides |
| devel/ .................... Developper's Class Reference |
| index.html .......... Top-level HTML file |
| sv/ |
| vmm.sv ..................... Standard library top-level file |
| vmm_ral.sv ................. RAL/MAM top-level file |
| vmm_sb.sv .................. Scoreboard package top-level file |
| vmm_perf.sv ................ Performane Analyzer package top-level file |
| vmm_hw.sv .................. HAL top-level file |
| std_lib/ ................... Standard Library source files |
| RAL/ ....................... RAL source files |
| sb/ ........................ Scoreboard package source files |
| perf/ ...................... Performance Analyzer package source files |
| HAL/ ....................... HAL source files |
| examples/ .................. Examples |
| std_lib/ .......... Basic VMM examples |
| subenv/ ........... Environment composition example |
| RAL/ .............. RAL example |
| sb/ ............... Scoreboard package example |
| perf/ ............. Performance Analyzer package example |
| HAL/ .............. HAL example |
| shared/ |
| bin/ ................... Tool binaries and Scripts |
| lib/ |
| templates/ ......... Code templates used by 'vmmgen' |
| |
| (*) Use at your own risk! Will disable OpenVera/SystemVerilog |
| interoperability! |
| |
| To maintain OpenVera/SystemVerilog interoperability, |
| use the 1.1.1-SvOv distribution to apply the patch. |
| |
| |
| IEEE Compliance |
| --------------- |
| |
| The SystemVerilog source code is believed to be 100% compliant with |
| the IEEE P1800-2005 standard. Any non-compliant usage is unintentional |
| and will be fixed if reported. |
| |
| The examples are provided with Makefiles targetted for the VCS |
| simulator. They are intended as a demonstration only and do not imply |
| that VCS is required to use the VMM code. Any simulator compliant with |
| the IEEE P1800 standard should be able to compile and execute the |
| examples, after a suitable modification of the Makefiles. |
| |
| The source code contains some VCS-specific code included within |
| "`ifdef VCS/`endif" regions. The VCS-specific code enables some |
| additional VMM-awareness functionality with VCS and/or DVE as well as |
| provides some built-in functions for greater run-time performance |
| rather than using the DPI. The VCS-specific code is *NOT* required to |
| correctly simulate the VMM source code. |
| |
| Any reference to the OpenVera (OV) language in the documentation |
| refers to the OV implementation of the VMM library, which is not |
| included in this distribution. OpenVera or an OpenVera simulator is |
| not required to use VMM. Any reference to the Vera or VCS simulator in |
| the documentation is for illustration of how to use VMM with those |
| specific tools. The Vera or VCS simulators are not required to use |
| VMM. |
| |
| This version of the VMM library and examples require the following |
| version of the VCS simulator: |
| |
| VCS2006.06-SP2-9 or later (see VCS2006.06-SP2.txt) |
| VCS2008.09-4 or later (see VCS2008.09.txt) |
| VCS2008.12 or later (see VCS2008.12.txt) |
| VCS2009.06 or later (see VCS2009.06.txt) |
| |
| |
| |
| |
| |
| |
| Installing the distribution |
| --------------------------- |
| |
| Installation of VMM requires only unpacking the distribution in a |
| convenient location. No additional installation procedures or scripts |
| are necessary. |
| |
| % mkdir /some/path |
| % cd /some/path |
| % gunzip -c path/to/vmm-1.1.1.tar.gz | tar xvf - |
| |
| |
| Using VMM |
| --------- |
| |
| You must define the environment variable "VMM_HOME" to the path |
| containing the unpackaged distribution. This environment variable |
| is required to run some examples and scripts. It also eases the |
| specification of the location where to pick-up the source file. |
| |
| % setenv VMM_HOME /some/path/vmm-1.1.1 |
| |
| If you have the VCS simulator installed and properly set-up, you can |
| check the content of the distribution by using the command: |
| |
| % $VMM_HOME/vmm_versions |
| |
| You should add $VMM_HOME/shared/bin to your command search path to |
| be able to use the tools and scripts included in the distribution. |
| |
| % setenv PATH $VMM_HOME/shared/bin:$PATH |
| |
| Scripts require that "perl" be visible in your command path. Tools are |
| distributed in binary form for Linux and Solaris. Should you be |
| running on a different operating system or hardware architecture, |
| please contact Synopsys to obtain a suitable version of the tool |
| binaries. |
| |
| You can make the VMM Standard Library visible to your SystemVerilog |
| code by including the file "vmm.sv". |
| |
| `include "vmm.sv" |
| |
| It will be necessary to specify where the VMM source files are located |
| on the compilation command line. This can easily be done via the |
| +incdir command-line option and the VMM_HOME environment variable. |
| |
| % ... +incdir+$VMM_HOME/sv ... |
| |
| When used on a non-VCS simulator, it will be necessary to include the |
| file $VMM_HOME/sv/std_lib/vmm_str_dpi.c to supply the regular |
| expression string matching library. Similarly, it may be necessary to |
| include the file $VMM_HOME/sv/std_lib/vmm_xvc_dpi.c to supply the XVC |
| command parsing and execution library. Please refer to your |
| simulator's documentation on how to include a DPI library. |
| |
| You can make a VMM Application package visible to your |
| SystemVerilog code by including the file corresponding to the |
| application package: |
| |
| Register Abstraction Layer vmm_ral.sv |
| Scoreboarding Package vmm_sb.sv |
| Performance Analyzer Package vmm_perf.sv |
| Hardware Abstraction Layer vmm_hw.sv or vmm_hw_rtl.sv |
| |
| Using the VMM Hardware Abstraction Layer with an architecture other |
| than the VMM_HW_ARCH_NULL architecture requires software and hardware |
| provided by emulation, acceleration or prototyping vendors. This |
| software is not included in this distribution and must be obtained |
| from the appropriate sources. |