The existing UART module processes interrupts, but does not generate
an external interrupt signal. To generate an interrupt signal,
UartDecoupSC
is further extended by a new
derived class, UartIntrSC
, which provides a
signal port and a new thread to drive that signal port
An extra thread is required, because both the
rxMethod
and busThread
processes may wish to drive signals, but SystemC requires that a
signal is driven by a single process. Just as in hardware design a
simple wire would not normally have more than one driver.
The new process communicates with the existing processes via a FIFO
internal to the UART, allowing rxMethod
and
busThread
to both request interrupt activity
and for those requests to be processed in the order they were
generated.