Jump to content


  • Posts

  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

shiva_2019's Achievements


Member (1/2)



  1. I kind of work on proprietary code. But here is an example of what I have //## test.h #include "systemc.h" #include "tlm.h" class test: public sc_module{ private: // some variables public: test(); sc_port <int> output_port; tlm::tlm_fifo<int> input_fifo; void command_initiator(); } //## test.cpp #include "test.h" void test:test(){ // initialize the variables SC_THREAD(command_initiator); } void test:command_initiator(){ while(true){ // receive command if(!input_fifo.nb_can_get) wait(input_fifo.ok_to_get()); cmd = input_fifo.get(); // do some processing on the command // put the command in the outputport if (! output_port->nb_can_put() ) wait(output_port->ok_to_put); output_port->put(cmd); // this is where the code hangs wait(4, SC_NS) } } The code hangs in command initiator function at the wait statement
  2. Hi all, I have a systemC-tlm code that uses SC_THREAD( ) to implement parallel modules. I am working on latency analysis and hence included a few wait statements in each of the SC_THREAD functions. It was working fine for a long time, until yesterday. The SC_THREAD functions with wait(time, SC_NS) hang exactly at the wait statement. I tried debugging into the wait function, and found that the code throws an SC_REPORT_ERROR in wait( ) function in sc_wait.cpp. I am not sure if that error is caught, because I do not see any error in my console output. Does anyone have a clue on why I am seeing this behavior?
  • Create New...