Many times we need to generate a transaction reactively
based on the response. One of the protocols i can think of which requires
reactive generation of transaction is USB. UVM has non-blocking transport which is an appropriate fit for reactive random stimulus
generation. Non blocking transport can be used by the initiator and target to update each other’s progress. We
have method like nb_transport_fw () which is used to send the transaction from initiator
to target. nb_transport_bw () method is used to send transaction from the target
to the initiator. The initiator modifies
the transaction before the call to the nb_transport_fw() after which the object
should not be modified. The target can
modify the transaction object before the call to nb_transport_bw () after which the object should not be modified. Each call
to the forward and backward methods are accompanied by phase change , different
type of phases are UNINTIALIZED_PHASE, BEGIN_REQ, END_REQ, BEGIN_RESP & END_RESP.
Forward and backward function return a status UVM_TLM_ACCEPTED,UVM_TLM_UPDATED
& UVM_TLM_COMPLETED these status indicate the status of the transaction - accepted , updated and completed.
Sunday, August 19, 2012
Subscribe to:
Posts (Atom)