How to control test flow based on a sequence being finished some time later by rtl

My DUT is a processing block. I simply have to send it data, and then at the other end, process the expected data and keep track of the processed data so I know when it is “done”.

The idea would be to then send more data in, wait for “done” and then loop through.

I think I should be doing this in the test, so the test would start my sequence at agent A, while agent B could capture the processed data and know when it is done.

But I don’t know how agent B can signal to the test that it is done. What is the best way to solve this?

Sequences can not only be used to send data to the DUT, but they can also be used to capture data from the DUT. You can create a sequence for agent B that is designed to receive the required amount of data from the DUT, and when the sequence is complete, you know that you are finished.

In reply to cgales:

Interesting. I understand in principle, but not necessarily practice. Do you have any examples you could point me to?