– the smallest container of functionality with states,
behavior and structure
– It may contains
Member channel instance
Member data instance
Member module instance
Process member function
similar to software thread
It gains control from the system until it returns it to simulator.
called only once and return
can suspend itself using wait().
Blocked because of blocking operation such as read/write
Simpler and more efficient
Run completely and return
Cannot suspend internally
Called by the simulation kernel repeatedly based on sensitivity.
Similar to always@ in Verilog.
Implied waits can be implemented by calling SystemC built-in blocking
methods such as read and write of sc_fifo.
2 Ways to Register and Initialize a
– C++ uses constructor before the process method.
– In the constructor, the methods of implementing the
process is defined.
– It is a cpp macro.
– It is usually used when one wants to place the
constructor in the implementation.
– Use arguments to specify the specifications of models.
– If you are making an IP, this is the better way to do.
Jobs of SC_CTOR/SC_HAS_PROCESS
Initialization of its sub-modules
Build connections among sub-modules
Registering processes to simulation kernel