HOME       UP       PREV       NEXT (SystemC Structural Netlist)  

Example (Counter)

SC_MODULE(mycounter)
{
   sc_in  < bool       > clk, reset;
   sc_out < sc_int<10> > myout;

   void m() 
   {
      myout =  (reset) ? 0: (myout.read()+1); // Use .read() since channel contains a signal.
   }

   SC_CTOR(mycounter)
     { SC_METHOD(m);
       sensitive << clk.pos();
     }

}

SystemC enables a user class to be defined using the the SC_MODULE macro.

Modules inherit various attributes appropriate for an hierarchic hardware design including an instance name, a type name and channel binding capability..

The sensitive construct registers a callback with the EDS kernel that says when the code inside the module should be run.

A nasty feature of SystemC is the need to use the .read() method when reading a signal.


(C) 2008-10, DJ Greaves, University of Cambridge, Computer Laboratory.