While most UVM Agents are Initiators (driving requests into the DUT), many systems require Reactive (Slave) Agents. These components wait for the DUT to initiate a transaction (like a memory read) and provide the appropriate response.
| Feature | Master (Initiator) | Slave (Reactive) |
|---|---|---|
| Flow Control | Agent starts transaction cycle. | DUT starts transaction cycle. |
| Driver Logic | Asks sequencer, then drives pins. | Watches pins, then asks sequencer. |
| Sequence body() | Finite loop (e.g., 10 packets). | Forever loop (waiting for requests). |