#include SC_MODULE(ports_access) { sc_in a; sc_in b; sc_in en; sc_out > out; // Method to manipulate output void body () { // Ports should use read() method to read values if (en.read() == 1) { // Should use write() method of write values out.write(a.read() + b.read()); } } // Method to monitor ports void monitor () { cout << "@" << sc_time_stamp() <<" a : " << a << " b : " << b << " en : " << " out : " << out.read() < a; sc_signal b; sc_signal en; sc_signal > out; ports_access prt_ac("PORT_ACCESS"); prt_ac.a(a); prt_ac.b(b); prt_ac.en(en); prt_ac.out(out); sc_start(0); // Open VCD file sc_trace_file *wf = sc_create_vcd_trace_file("ports_access"); sc_trace(wf, a, "a"); sc_trace(wf, b, "b"); sc_trace(wf, en, "en"); sc_trace(wf, out, "out"); // Start the testing here sc_start(1); a = sc_bit('0'); b = sc_bit('0'); en = 1; sc_start(1); a = sc_bit('1'); sc_start(1); b = sc_bit('1'); sc_start(2); sc_close_vcd_trace_file(wf); return 0;// Terminate simulation }