int sc_main(int argc, char* argv[]) { sc_signal<bool> t_a, t_b, t_cin, t_sum, t_cout; full_adder f1 ("FullAdderWithHalfAdder"); // Positional association: f1 << t_a << t_b << t_cin << t_sum << t_cout; driver d1 ("GenerateWaveforms"); d1 << t_a << t_b << t_cin; monitor mo1 ("MonitorWaveforms"); mo1 << t_a << t_b << t_cin << t_sum << t_cout; if (! mo1.outfile) { cerr << "ERROR: Unable to open output file," << " fa_with_ha.out!\n"; return (-2); } sc_trace_file *tf = sc_create_vcd_trace_file ("full_adder"); sc_trace(tf, t_a,"A"); sc_trace(tf, t_b, "B"); sc_trace(tf, t_cin, "CarryIn"); sc_trace(tf, t_sum, "Sum"); sc_trace(tf, t_cout, "CarryOut"); sc_start(100, SC_NS); // mo1.outfile.close(); // d1.infile.close(); sc_close_vcd_trace_file (tf); return(0); }
int sc_main(int argc, char *argv[]){ sc_signal<bool> t_a,t_b,t_cin,t_sum,t_cout; full_adder f1("hierachicalFullAdder"); f1<<t_a<<t_b<<t_cin<<t_sum<<t_cout; driver d1("generateWaveForms"); d1.d_a(t_a); d1.d_b(t_b); d1.d_cin(t_cin); monitor mo1("monitor1"); mo1<<t_a<<t_b<<t_cin<<t_sum<<t_cout; sc_start(100,SC_NS); return(0); }