Using C++TESK and SystemVerilog together » History » Version 2
Mikhail Chupilko, 09/28/2011 09:50 AM
1 | 1 | Mikhail Chupilko | h1. Using C++TESK and SystemVerilog together |
---|---|---|---|
2 | |||
3 | 2 | Mikhail Chupilko | SystemVerilog is a HDL-language developed for creation CRV-testbenches, coverages, and so on, with many proven approaches based upon it. |
4 | 1 | Mikhail Chupilko | |
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. |