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. |