Project

General

Profile

FAQ » History » Version 3

Alexander Kamkin, 09/29/2011 04:03 PM

1 1 Alexander Kamkin
h1. FAQ
2
3 2 Mikhail Chupilko
* *Where is it possible to get C++TESK Testing ToolKit?*
4
The toolkit is located at the following link: http://forge.ispras.ru/projects/cpptesk-toolkit/files.
5
6
* *What are the steps to have the toolkit correctly installed?*
7
1. Download and unpack the archive with C++TESK Testing ToolKit (the lastest version) into a convenient folder;
8
2. Run install.sh from the folder with C++TESK Testing ToolKit;
9
3. Wait until "Successfully installed" appears.
10
The toolkit is installed into $(CPPTESK_HOME) folder. If this environment variable is missing, it will be assigned to $(ISPRAS_HOME)/tools/cpptesk-toolkit. If the varible $(ISPRAS_HOME) is missing, this varible first will be assigned to $HOME.
11
12
* *What other programs should be installed for verification of hardware designs?*
13
There are Icarus Verilog and VeriTool being able to be installed by means of $(CPPTESK_HOME)/bin/install-veritool.sh.
14
Icarus Verilog is installed into $(ICARUS_HOME), and VeriTool is installed into $(VERITOOL_HOME). If the variables are missing, they will be created like $(CPPTESK_HOME).
15
16
* *Is it possible to reduce size of the signal dump file (VCD)?*
17
E.g. in Icarus Verilog it is possible to choose different dump file format LXT2. The running command would be as follows: $(ICARUS_HOME)/bin/vvp -M. -mdb $(DB_VVP) -lxt2 -M. +scen=$@ +argv="$(TEST_ARGV)". To use GTKWave for viewing the file is possible if testbench.vcd is renamed to testbench.lxt.
18
19
* *What does the following message mean*
20
<pre>
21
 tests/src/scenarios/fifo_scen.cpp: In member function ''bool cpptesk::examples::fifo::FIFOScenario::scen_nop(cpptesk::ts::IntAbcCtx&)'':
22
 tests/src/scenarios/fifo_scen.cpp:62: error: jump to case label
23
 tests/src/scenarios/fifo_scen.cpp:55: error:   crosses initialization of ''int i''
24
</pre>
25
 *during compiling of the following code?*
26
<pre>
27
 50:bool FIFOScenario::scen_nop(Ctx& ctx)
28
 51:{
29
 52:    IBEGIN
30
 53:    IACTION
31
 54:    {
32
 55:        int i = 0;
33
 56:        // Refresh functional coverage
34
 57:        dut.refresh_coverage();
35
 58:        // Give control to the simulator for one cycle
36
 59:        dut.cycle();
37
 60:
38
 61:        // Take results of reference model working and check them
39
 62:        YIELD(dut.verdict());
40
 63:    }
41
 64:    IEND
42
 65:}
43
</pre>
44
There is an agreement not to declare local variables inside of IACTION first block. If a nested into IACTION block is used, the problem will disappear. Also it is possible to declare variables before IBEGIN.
45
46
* *How to call a serializer?*
47
It can be called by means of one of the following macro:
48
START_STIMULUS(SEQUENTIAL|PARALLEL)
49
RECV_STIMULUS(SEQUENTIAL|PARALLEL, Interface iface, Message msg)
50
51
* *What is the difference between START_STIMULUS and RECV_STIMULUS?*
52
START_STIMULUS starts serializer with default parameters (interface and message are the same as those given to the stimuli process). RECV_STIMULUS allows modifing both message and name of the interface used. The macro is also useful if there is a stimulus with more than one serializer call inside.