All primitive channels connect modules together.
Predefined channels include buffer, fifo, signal, mutex semaphore and clock.
RTL-style compute/commit is provided by the SystemC signals.
A signal is an abstract (templated) data type that has a current and next value.
Reads are of the current value. Writes are to the next value.
int nv; sc_out < int > data; sc_signal < int > mysig; ... nv += 1; data = nv; mysig = nv; printf("Before nv=%i, %i %i\n'', nv, data.read(), mysig.read()); wait(10, SC_NS); printf("After nv=%i, %i %i\n'', nv, data.read(), mysig.read()); ...Before nv=96, 95 95 After nv=96, 96 96
Instantiable channel provides implementations of methods read, write, update and value_changed.