The basic accesses to an
object are blocking reads and writes. These are accomplished using class
methods. These methods stall (block) execution if a read is attempted
on an empty stream FIFO, a write is attempted to a full stream FIFO,
or until a full handshake is accomplished for a stream mapped to an
A stall can be observed in C/RTL co-simulation as the continued execution of the simulator without any progress in the transactions. The following shows a classic example of a stall situation, where the RTL simulation time keeps increasing, but there is no progress in the inter or intra transactions:
// RTL Simulation : "Inter-Transaction Progress" ["Intra-Transaction Progress"] @ "Simulation Time" /////////////////////////////////////////////////////////////////////////////////// // RTL Simulation : 0 / 1 [0.00%] @ "110000" // RTL Simulation : 0 / 1 [0.00%] @ "202000" // RTL Simulation : 0 / 1 [0.00%] @ "404000"