Project

General

Profile

Using C++TESK and SystemVerilog together » History » Version 1

Mikhail Chupilko, 09/28/2011 09:48 AM

1 1 Mikhail Chupilko
h1. Using C++TESK and SystemVerilog together
2
3
SystemVerilog is a proven approach to create CRV-testbenches, coverages and so on.
4
5
In case of merging a test system created by means of C++TESK and some components based on SystemVerilog,
6
the following tasks can be solved by some or other element of merged test system:
7
8
1) creating of stimuli flow by means of C++TESK FSM traversers
9
2) developing reference model showing correct results by means of SystemVerilog
10
3) checking the implementation reactions be means of C++TESK Test Oracle
11
4) checking functional coverage by means of C++TESK
12
5) checking event sequence coverage by means of SystemVerilog
13
14
How to connect C++TESK and SystemVerilog parts is shown in counter_sv example included into C++TESK distribution package.
15
16
Here we are going to only mention the most important modifications of original test systems (in case of Synopsys'' VCS simulator):
17
18
1) Files with reference model and test coverage written on SystemVerilog should be created (see counter.sv and coverages.sv);
19
2) C-functions for DPI connection should be created near to the C++TESK test system model (see counter_model.h and counter_model.cpp);
20
3) A file with additional setting for DPI-connection should be added (see dut.tab);
21
4) Set of Makefiles may be simply copied to the new test system;
22
5) Files testbench.v, vpi_systf.h, and vpi_systf.cpp should be modified as it is shown in the example: system tasks should be declared as extern "C", the reference model written in SystemVerilog should be instantiated in testbench.v.