This UVM/SystemC Demonstration Project provides a demonstration of the UVM methodology and tools implemented using SystemC.
Existing, simple, verified modules implemented in SystemC were used as the targets of this project. The original tests used to verify the target modules were constructed using an ad-hoc mechanism which was composed atop SystemC. In this project, the ad-hoc mechanism used previously is replaced using the elements of the UVM/SystemC beta reference implementaiton.
The Accellera SystemC and UVM/SystemC reference libraries are used for this project. These implementations were selected, as they are 1) open source, and 2) compatable with both Windows and Linux.
See the separate LICENSE and NOTICE files to determine your rights and responsibilities for using the UVM/SystemC Demonstration Project.
THE CONTRIBUTORS AND THEIR LICENSORS MAKE NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THIS SOFTWARE IS FOR DEMONSTRATION AND EXPERIMENTAL PURPOSES, ONLY. USE IT AT YOUR OWN RISK.
Supporting documents regarding the modules and mechanisms used in this project are located in the documents directory.
See the INSTALL.md file for project installation instructions.
All known project dependencies and instructions are in the file for both Window and Linux.
A "caveat" is a warning or a caution. In this project several choices were at the outset due to technology, compilation, and tools' compatibility issues. These include:
The SystemC 2.3.4 reference implementation was selected, as the available reference implementation of UVM/SystemC (1.0-beta5) was not compatible with the available SystemC 3.0.0 implementation.
The C++ 2020 standard was selected, as it is the most recent standard compatible with the SystemC and UVM/SystemC reference implementations. The C++ 2023 standard deprecates, or alters, several language features used by the reference implementations. As the project goals do not include active maintenance of the reference implementations, the most-recent, compatible standard was used.
Several compilation issues were found in the Windows reference implementations of SystemC and UVM/SystemC. For example, some MSVC library incompatibilities were found. The issues identified during the development of this project were resolved as part of the install process.
This project's use of the C++ 2020 standard is incompatible with most of the default SystemC library packages installed under the contemporary Linux distributions. Local builds and static linking are used to avoid problems which would otherwise occur from dynamic linking with nominal SystemC library installations.
See the separate RELEASE_NOTES.md file, which provides up-to-date information about this release of UVM/SystemC Demonstration Project.
Douglas John Moore: lives and works in the Raleigh, North Carolina.
His skills include engineering for lower-level integration of
hardware, software, and firmware for embedded designs.
Experienced in technical leadership of teams and projects for the
full lifecycle. Able to architect, code, develop interfaces, and
excells at debugging.
Scott Meyer Peimann: software manager and engineer with a broad range of skills in the software arena. Experienced in handling projects from concept and requirements collection through product end-of-life. Uses mentoring methods to bring continuous improvement to his teams.
End of file.