Search the Community
Showing results for tags 'sc_trace_file'.
-
Hello, Can I close sc_trace_file dynamically? Can I use sc_close_vcd_trace_file(wf) at any time after sc_trace and sc_create_vcd_trace_file(); I believe so but there is no error in compile time, but it make a Segmentation fault. //constructor . . SC_THREAD ( vcd_ctrl); . . // void vcd_ctrl() { while(1) { getcmd(command); if(command=="off") { sc_close_vcd_trace_file(g_sc_wf); } else if(command=="on") { wf = sc_create_vcd_trace_file("wave"); mod_a->trace(); mod_b->trace(); } } } >> Program received signal SIGSEGV, Segmentation fault. 0x00000019 in sc_get_curr_simcontext (this=0x84a7658, value_=...) at '/systemc/include/sysc/kernel/sc_simcontext.h:379 379 if( sc_curr_simcontext == 0 ) { Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.80.el6_3.6.i686 libgcc-4.4.6-4.el6.i686 libstdc++-4.4.6-4.el6.i686 (gdb) (gdb) where #0 0x00000019 in sc_get_curr_simcontext (this=0x84a7658, value_=...) at '/systemc/include/sysc/kernel/sc_simcontext.h:379 #1 sc_core::sc_signal<sc_dt::sc_logic>::write (this=0x84a7658, value_=...) at '/systemc/include/sysc/communication/sc_signal.h:690 #2 0x0835a73f in sc_core::sc_simcontext::simulate(sc_core::sc_time const&) () #3 0x0835b4e0 in sc_core::sc_start() () #4 0x08106454 in sc_main (argc=6, argv=0xffffbb14) at ./tb/sc_plamo.cpp:81 #5 0x0834d4b3 in sc_elab_and_sim () #6 0x0834d3c2 in main ()
- 4 replies
-
- sc_trace_file
- sc_close_vcd_trace_file
-
(and 1 more)
Tagged with:
-
Hi, I work on a simple System on Chip. I have a cpu, a bus and a ram. When I compile the following code I got a error message. The code is: #include <stdlib.h> #include <stdio.h> #include <string.h> #include "systemc.h" //Use an OVP Microblaze 8.2 processor model #include "xilinx.ovpworld.org/processor/microblaze/1.0/tlm2.0/microblaze_V8_20.igen.hpp" #include "ovpworld.org/modelSupport/tlmPlatform/1.0/tlm2.0/tlmPlatform.hpp" //Use Memory #include "ovpworld.org/memory/ram/1.0/tlm2.0/tlmMemory.hpp" //Use Bus #include "ovpworld.org/modelSupport/tlmDecoder/1.0/tlm2.0/tlmDecoder.hpp" icmAttrListObject *attrsForcpu1() { icmAttrListObject *userAttrs = new icmAttrListObject; return userAttrs; } int sc_main(int argc, char *argv[0]) { //Instantiate OVP platform icmTLMPlatform *platform = new icmTLMPlatform("icm", ICM_VERBOSE | ICM_STOP_ON_CTRLC| ICM_ENABLE_IMPERAS_INTERCEPTS); //Instantiate RAM ram *speicher = new ram("speicher","sp1", 0x100000); //Instantiate Bus decoder<NR_OF_INITIATORS,NR_OF_TARGETS> decoder<1,1> *bus = new decoder<1,1>("bus"); //Instantiate the processor microblaze_V8_20 *core = new microblaze_V8_20("core", 0, ICM_ATTR_DEFAULT, attrsForcpu1()); //Bind CPU with Bus core->INSTRUCTION.socket(bus->target_socket[0]); core->DATA.socket(bus->target_socket[1]); //Bind Bus with RAM bus->initiator_socket[1](speicher->sp1); bus->setDecode(1, 0x00200000, 0x002fffff); // Load application core->loadLocalMemory("application.MICROBLAZE.elf", 1, 1, 1); //Start and stop the simulation sc_core::sc_start(); sc_core::sc_stop(); //Deallocate objects delete core; delete platform; return 0; } The error message on the console is: make -f $IMPERAS_HOME/ImperasLib/so/buildutils/Makefile.TLM.platform PLATFORM=mb_tlm # Compiling Build/Linux32/usr/mb_tlm.o # Linking mb_tlm.Linux32.exe Build/Linux32/tlm/tlmSupport.a(tlmPlatform.o): In function `~sc_trace_file': /usr/local/systemc-2.3.0//include/sysc/tracing/sc_trace.h:168: undefined reference to `vtable for sc_core::sc_trace_file' Build/Linux32/tlm/tlmSupport.a(tlmPlatform.o): In function `time_advance': /Imperas.20130315//ImperasLib/source/ovpworld.org/modelSupport/tlmPlatform/1.0/tlm2.0/tlmPlatform.hpp:93: undefined reference to `sc_core::sc_trace_file::sc_trace_file()' Build/Linux32/tlm/tlmSupport.a(tlmPlatform.o).rodata._ZTV12time_advance[vtable for time_advance]+0x74): undefined reference to `sc_core::sc_trace_file::space(int)' Build/Linux32/tlm/tlmSupport.a(tlmPlatform.o).rodata._ZTI12time_advance[typeinfo for time_advance]+0x8): undefined reference to `typeinfo for sc_core::sc_trace_file' collect2: ld returned 1 exit status make: *** [mb_tlm.Linux32.exe] error 1 I don't know what is wrong with TLM. Could anybody help me? Thx