1 2#include <systemc.h> 3 4sc_trace_file* sc_tf; 5 6class Mod : public sc_module 7{ 8 public: 9 10 sc_in_clk clk; 11 12 sc_in<sc_uint<37> > a; 13 sc_inout<bool > b; 14 15 16 17 SC_HAS_PROCESS(Mod); 18 19 void foo() 20 { 21 cout << sc_time_stamp() << "\n"; 22 cout << " a = " << a << " b = " << b << "\n"; 23 cout << "\n"; 24 return; 25 } // foo() 26 27 Mod(const sc_module_name& name) : sc_module(name), a("a") 28 { 29 SC_METHOD(foo); 30 sensitive << clk.pos(); 31 dont_initialize(); 32 } 33 34 void start_of_simulation() { 35 36 sc_trace(sc_tf, a, a.name()); 37 sc_trace(sc_tf, b, b.name()); 38 } 39 40}; // class Mod 41 42 43 44 45 46int sc_main(int argc, char* argv[]) 47 48{ 49 sc_clock clk("clk", 50, SC_NS, 0.5, 0, SC_NS); 50 sc_signal<sc_uint<37> > a; 51 sc_signal<bool> b; 52 sc_tf = sc_create_vcd_trace_file("test14"); 53 Mod mod("mod"); 54 mod.clk(clk); 55 mod.a(a); 56 mod.b(b); 57 sc_trace(sc_tf, clk, clk.name()); 58 sc_start(50, SC_NS); 59 a = 12; 60 b = true; 61 sc_start(50, SC_NS); 62 return 0; 63} // sc_main() 64 65 66