In reply to chr_sue:
Yes, I understand what you are saying. Isolate the pin interactions to the transactors.
Delays are no problem.
It gets a little more strange when the sequence needs to wait on some oddball register that has nothing to do with the interface in question.
Or, the transaction (say, a UDP packet) is being passed through several layering agents, so by the time it gets down to the lowest pin-level activity, it supposed to know to wait on some signal before pumping in bytes?
udp_txn_t txn = udp_txn_t::type_id::create("txn");
<------- TLM: what am I going to put here to get my driver to wait for the DUT to
wait until it's initialized before driving the pins? You can assume there's a
register, or even a pin that asserts when init is done.
start_item(txn);
finish_item(txn);