There are several different approaches that you can take, depending on your slave requirements:
- For a simple memory slave, you can store the memory data in the driver. When a write/read request is received, the slave can try to get a response from the sequencer. If there isn’t a sequence_item available, the slave can respond with a default response.
- If the slave can have multiple outstanding requests, then it can maintain a queue of outstanding requests, responding to each one as it gets the sequence_items from the sequencer.
Remember that there should be no delay in receiving the response sequence_item from the sequencer since the testbench is untimed.