In this example a C++ class is defined using the the SC_MODULE macro.
SC_MODULE(mycounter) { sc_in < bool > clk, enable, reset; sc_out < sc_int<10> > sum; void m() // Behaviour { if (reset) sum = 0; else if (enable) sum = sum.read()+1; // Use .read() since sc_out makes a signal. } SC_CTOR(mycounter) // constructor { SC_METHOD(m); sensitive << clk.pos(); } }
Modules inherit various attributes appropriate for an hierarchic hardware design including an instance name field and a channel binding capability.
18: (C) 2012-17, DJ Greaves, University of Cambridge, Computer Laboratory. | ![]() |