FAQ » History » Revision 6
Revision 5 (Alexander Kamkin, 03/07/2013 09:42 AM) → Revision 6/7 (Alexander Kamkin, 03/14/2013 10:35 AM)
h1. Frequently Asked Questions * *Where is it possible to get C++TESK Testing ToolKit?* The toolkit is located at the following link: http://forge.ispras.ru/projects/cpptesk-toolkit/files. * *What are the steps to have the toolkit correctly installed?* 1. Download and unpack the archive with C++TESK Testing ToolKit (the lastest version) into a convenient folder; 2. Run install.sh from the folder with C++TESK Testing ToolKit; 3. Wait until "Successfully installed" appears. 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. * *What other programs should be installed for verification of hardware designs?* There are Icarus Verilog and VeriTool being able to be installed by means of $(CPPTESK_HOME)/bin/install-veritool.sh. 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). * *Is it possible to reduce size of the signal dump file (VCD)?* 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. * *What does the following message mean* <pre> tests/src/scenarios/fifo_scen.cpp: In member function ''bool cpptesk::examples::fifo::FIFOScenario::scen_nop(cpptesk::ts::IntAbcCtx&)'': tests/src/scenarios/fifo_scen.cpp:62: error: jump to case label tests/src/scenarios/fifo_scen.cpp:55: error: crosses initialization of ''int i'' </pre> *during compiling of the following code?* <pre><class="cpp"> <pre> 50:bool FIFOScenario::scen_nop(Ctx& ctx) 51:{ 52: IBEGIN 53: IACTION 54: { 55: int i = 0; 56: // Refresh functional coverage 57: dut.refresh_coverage(); 58: // Give control to the simulator for one cycle 59: dut.cycle(); 60: 61: // Take results of reference model working and check them 62: YIELD(dut.verdict()); 63: } 64: IEND 65:} </class></pre> </pre> 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. * *How to call a serializer?* It can be called by means of one of the following macro: START_STIMULUS(SEQUENTIAL|PARALLEL) RECV_STIMULUS(SEQUENTIAL|PARALLEL, Interface iface, Message msg) * *What is the difference between START_STIMULUS and RECV_STIMULUS?* 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.