
The constructor just calls the base class constructor, passing on all its arguments.
The BusReadWrite callback has the same
structure as the version in the base class. Like the base class
it calls the original UartSC version to carry
out most of the functionality.
![]() | Caution |
|---|---|
The call is therefore to the base class of the base
class of this class. The call cannot be to the base
class, since that would call |
The difference is in updating the delay. The synchronous base class waited to model the timing delay and set the delay in the response to zero. In this version the code just increments the delay (which is the local time offset) by the additional time to carry out the read or write.
switch( payload.get_command() ) {
case tlm::TLM_READ_COMMAND:
delay += sc_core::sc_time( UART_READ_NS, sc_core::SC_NS );
break;
The implementation of the UART module class with decoupled timing,
UartDecoupSC may be found in
sys-models/decoup-soc/UartDecoupSC.cpp in the
distribution.
