A SystemC templated channel provides general purpose interface between components.
We rarely use the raw channels: instead we use the derived forms sc_in, sc_out and sc_signal.
These channels implement compute/commit paradigm required for delta cycles. This avoids non-determinacy from races in zero-delay models (see earlier).
Other provided channels include the buffer, fifo, mutex, semaphore and clock (non-examinable).
Users can overload the channel class to implement channels with their own semantics if needed. A user-defined channel type can even contain other SystemC components but the importance of this is reduced when using the TLM libraries.