I have written a code and trying to generate vcd file in systemc, but I had a error that I can't fix.
// File : pe_main.cpp
#include "driver.h"
#include "monitor.h"
#include "pe.h"
#include "systemc.h"
int sc_main(int argc , char *argv[] )
{
sc_signal< int > t_data,t_weight;
sc_signal< int > t_inputpsum,t_outdata;
sc_signal <bool> b1,b2;
pe pe1("pe");
pe1.data(t_data);
pe1.weight(t_weight);
pe1.inputpsum(t_inputpsum);
pe1.outdata(t_outdata);
pe1.accinpsum(b1);
pe1.resacc(b2);
driver d1("GenerateWaveforms");
d1.d_data(t_data);
d1.d_weight(t_weight) ;
d1.d_inputpsum(t_inputpsum);
monitor m1("MonitorWaveforms");
m1.m_data(t_data);
m1.m_weight(t_weight);
m1.m_inputpsum(t_inputpsum);
m1.m_outdata(t_outdata);
sc_trace_file *tf=sc_create_vcd_trace_file("PE");
sc_trace(tf, t_data, "InputData");
sc_trace(tf, t_weight, "InputWeight");
sc_trace(tf, t_inputpsum, "InputPsum");
sc_trace(tf, t_outdata, "OutData");
sc_start(100, SC_NS);
return 0;
}
The code has no error, but for vcd file, I get the following error:
Error: (E115) sc_signal cannot have more than one driver: signal 'signal_2' (sc_signal) first driver 'MonitorWaveforms.port_3' (sc_inout) second driver 'GenerateWaveforms.port_2' (sc_inout) In file: c:\users\asus\desktop\systemc\system- 2.3.0a\src\sysc\communication\sc_signal.cpp:75