×
sc_buffer is a predefined primitive channel derived from class sc_signal. It differs from class sc_signal in that a value-changed event is notified whenever the buffer is written rather than only when the value of the signal is changed. E.g., if current value of a "signal" == 1: write 1 to it won't trigger value update event. if current value of a "buffer" == 1: write 1 to it will trigger value update event.
Learn with Examples, 2020, MIT license | |
| |
| |
| |
declares a signal channel |
|
declares a buffer channel |
|
| |
writes to both signal and buffer |
|
| |
triggered by signal |
|
| |
| |
triggered by buffer |
|
| |
| |
| |
init value |
|
| |
write same value to channel twice |
|
write to signal |
|
write to buffer |
|
wait after 1 s |
|
| |
value change |
|
| |
| |
| |
| |
| |
receives from signal |
|
| |
| |
| |
| |
| |
receives from buffer |
|
| |
| |
| |
| |
| |
| |
| |
| |
receives 1 from signal channel once | 0 s: consumer1 receives 1 |
receives 1 from buffer channel once | 0 s: consumer2 receives 1 |
receives 1 from buffer channel twice | 1 s: consumer2 receives 1 |
receives 2 from signal channel once | 2 s: consumer1 receives 2 |
receives 2 from buffer channel once | 2 s: consumer2 receives 2 |
receives 2 from buffer channel twice | 3 s: consumer2 receives 2 |