I don't know how to fix this error, help me please
#define SC_INCLUDE_DYNAMIC_PROCESSES #include "systemc" using namespace sc_core; using namespace sc_dt; using namespace std; #include "tlm.h" #include "tlm_utils/simple_initiator_socket.h" #include "tlm_utils/simple_target_socket.h" #include "Initiator.h" #include "Router.h" #include "Memory.h" int sc_main(int argc, char* argv[]) { Initiator* initiator; Router<4>* router; Memory* memory[4]; initiator = new Initiator("initiator"); router = new Router<4>("router"); for (int i = 0; i < 4; i++) { char txt[20]; sprintf(txt, "memory_%d", i); memory[i] = new Memory(txt); } // Bind sockets initiator->socket.bind( router->target_socket ); for (int i = 0; i < 4; i++) router->initiator_socket[i]->bind( memory[i]->socket ); sc_time t(100, SC_PS); sc_signal<bool> a,b,c; sc_signal<int> d; initiator->a(a); initiator->b(b); initiator->c(c); memory[0]->d(d); sc_trace_file *wf= sc_create_vcd_trace_file("and2"); sc_trace(wf, initiator->a, "a"); sc_trace(wf, initiator->b, "b"); sc_trace(wf, initiator->c, "c"); sc_trace(wf, memory[0]->d, "d"); a.write(0); b.write(0); sc_start(t); a.write(0); b.write(1); sc_start(t); a.write(1); b.write(0); sc_start(t); a.write(1); b.write(1); sc_start(t); a.write(0); b.write(0); sc_start(t); sc_stop(); sc_close_vcd_trace_file(wf); return 0; }
it's error in this lines
memory[0]->d(d); sc_trace(wf, memory[0]->d, "d");