Project

General

Profile

FAQ » History » Version 4

Alexander Kamkin, 03/07/2013 09:42 AM

1 4 Alexander Kamkin
h1. Frequently Asked Questions
2
3
{{toc}}
4 1 Alexander Kamkin
5 2 Mikhail Chupilko
* *Where is it possible to get C++TESK Testing ToolKit?*
6
The toolkit is located at the following link: http://forge.ispras.ru/projects/cpptesk-toolkit/files.
7
8
* *What are the steps to have the toolkit correctly installed?*
9
1. Download and unpack the archive with C++TESK Testing ToolKit (the lastest version) into a convenient folder;
10
2. Run install.sh from the folder with C++TESK Testing ToolKit;
11
3. Wait until "Successfully installed" appears.
12
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.
13
14
* *What other programs should be installed for verification of hardware designs?*
15
There are Icarus Verilog and VeriTool being able to be installed by means of $(CPPTESK_HOME)/bin/install-veritool.sh.
16
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).
17
18
* *Is it possible to reduce size of the signal dump file (VCD)?*
19
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.
20
21
* *What does the following message mean*
22
<pre>
23
 tests/src/scenarios/fifo_scen.cpp: In member function ''bool cpptesk::examples::fifo::FIFOScenario::scen_nop(cpptesk::ts::IntAbcCtx&)'':
24
 tests/src/scenarios/fifo_scen.cpp:62: error: jump to case label
25
 tests/src/scenarios/fifo_scen.cpp:55: error:   crosses initialization of ''int i''
26
</pre>
27
 *during compiling of the following code?*
28
<pre>
29
 50:bool FIFOScenario::scen_nop(Ctx& ctx)
30
 51:{
31
 52:    IBEGIN
32
 53:    IACTION
33
 54:    {
34
 55:        int i = 0;
35
 56:        // Refresh functional coverage
36
 57:        dut.refresh_coverage();
37
 58:        // Give control to the simulator for one cycle
38
 59:        dut.cycle();
39
 60:
40
 61:        // Take results of reference model working and check them
41
 62:        YIELD(dut.verdict());
42
 63:    }
43
 64:    IEND
44
 65:}
45
</pre>
46
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.
47
48
* *How to call a serializer?*
49
It can be called by means of one of the following macro:
50
START_STIMULUS(SEQUENTIAL|PARALLEL)
51
RECV_STIMULUS(SEQUENTIAL|PARALLEL, Interface iface, Message msg)
52
53
* *What is the difference between START_STIMULUS and RECV_STIMULUS?*
54
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.