If every component executes an sc_wait to model its processing time, the SystemC kernel overheads kill performance.
Instead, we'll pass a time accumulator variable around for various models to augment:
putbyte(char d, sc_time &dt)
{
...
dt += sc_time(140, SC_NS);
}
This is fine for sequential composition of time values.
At any point, any component can execute
sc_wait(dt); dt = 0;
At a parallel fork, we need to make a fresh accumulator variable and at any join we ...