This section defines built-in TLM channel classes.
TLM Channel Classes | This section defines built-in TLM channel classes. |
uvm_tlm_req_rsp_channel #(REQ,RSP) | The uvm_tlm_req_rsp_channel contains a request FIFO of type REQ and a response FIFO of type RSP. |
uvm_tlm_transport_channel #(REQ,RSP) | A uvm_tlm_transport_channel is a uvm_tlm_req_rsp_channel #(REQ,RSP) that implements the transport interface. |
The uvm_tlm_req_rsp_channel contains a request FIFO of type REQ and a response FIFO of type RSP. These FIFOs can be of any size. This channel is particularly useful for dealing with pipelined protocols where the request and response are not tightly coupled.
REQ | Type of the request transactions conveyed by this channel. |
RSP | Type of the reponse transactions conveyed by this channel. |
uvm_tlm_req_rsp_channel #(REQ,RSP) | ||||||||||||||||||||||
The uvm_tlm_req_rsp_channel contains a request FIFO of type REQ and a response FIFO of type RSP. | ||||||||||||||||||||||
Class Hierarchy | ||||||||||||||||||||||
| ||||||||||||||||||||||
Class Declaration | ||||||||||||||||||||||
| ||||||||||||||||||||||
Ports | ||||||||||||||||||||||
put_request_export | The put_export provides both the blocking and non-blocking put interface methods to the request FIFO: | |||||||||||||||||||||
get_peek_response_export | The get_peek_response_export provides all the blocking and non-blocking get and peek interface methods to the response FIFO: | |||||||||||||||||||||
get_peek_request_export | The get_peek_export provides all the blocking and non-blocking get and peek interface methods to the response FIFO: | |||||||||||||||||||||
put_response_export | The put_export provides both the blocking and non-blocking put interface methods to the response FIFO: | |||||||||||||||||||||
request_ap | Transactions passed via put or try_put (via any port connected to the put_request_export) are sent out this port via its write method. | |||||||||||||||||||||
response_ap | Transactions passed via put or try_put (via any port connected to the put_response_export) are sent out this port via its write method. | |||||||||||||||||||||
master_export | Exports a single interface that allows a master to put requests and get or peek responses. | |||||||||||||||||||||
slave_export | Exports a single interface that allows a slave to get or peek requests and to put responses. | |||||||||||||||||||||
Methods | ||||||||||||||||||||||
new | The name and parent are the standard uvm_component constructor arguments. |
The put_export provides both the blocking and non-blocking put interface methods to the request FIFO:
task put (input T t); function bit can_put (); function bit try_put (input T t);
Any put port variant can connect and send transactions to the request FIFO via this export, provided the transaction types match.
The get_peek_response_export provides all the blocking and non-blocking get and peek interface methods to the response FIFO:
task get (output T t); function bit can_get (); function bit try_get (output T t); task peek (output T t); function bit can_peek (); function bit try_peek (output T t);
Any get or peek port variant can connect to and retrieve transactions from the response FIFO via this export, provided the transaction types match.
The get_peek_export provides all the blocking and non-blocking get and peek interface methods to the response FIFO:
task get (output T t); function bit can_get (); function bit try_get (output T t); task peek (output T t); function bit can_peek (); function bit try_peek (output T t);
Any get or peek port variant can connect to and retrieve transactions from the response FIFO via this export, provided the transaction types match.
The put_export provides both the blocking and non-blocking put interface methods to the response FIFO:
task put (input T t); function bit can_put (); function bit try_put (input T t);
Any put port variant can connect and send transactions to the response FIFO via this export, provided the transaction types match.
Transactions passed via put or try_put (via any port connected to the put_request_export) are sent out this port via its write method.
function void write (T t);
All connected analysis exports and imps will receive these transactions.
Transactions passed via put or try_put (via any port connected to the put_response_export) are sent out this port via its write method.
function void write (T t);
All connected analysis exports and imps will receive these transactions.
Exports a single interface that allows a master to put requests and get or peek responses. It is a combination of the put_request_export and get_peek_response_export.
Exports a single interface that allows a slave to get or peek requests and to put responses. It is a combination of the get_peek_request_export and put_response_export.
function new ( string name, uvm_component parent = null, int request_fifo_size = 1, int response_fifo_size = 1 )
The name and parent are the standard uvm_component constructor arguments. The parent must be null if this component is defined within a static component such as a module, program block, or interface. The last two arguments specify the request and response FIFO sizes, which have default values of 1.
A uvm_tlm_transport_channel is a uvm_tlm_req_rsp_channel #(REQ,RSP) that implements the transport interface. It is useful when modeling a non-pipelined bus at the transaction level. Because the requests and responses have a tightly coupled one-to-one relationship, the request and response FIFO sizes are both set to one.
uvm_tlm_transport_channel #(REQ,RSP) | ||||||||||||||||||||||
A uvm_tlm_transport_channel is a uvm_tlm_req_rsp_channel #(REQ,RSP) that implements the transport interface. | ||||||||||||||||||||||
Class Hierarchy | ||||||||||||||||||||||
| ||||||||||||||||||||||
Class Declaration | ||||||||||||||||||||||
| ||||||||||||||||||||||
Ports | ||||||||||||||||||||||
transport_export | The put_export provides both the blocking and non-blocking transport interface methods to the response FIFO: | |||||||||||||||||||||
Methods | ||||||||||||||||||||||
new | The name and parent are the standard uvm_component constructor arguments. |
The put_export provides both the blocking and non-blocking transport interface methods to the response FIFO:
task transport(REQ request, output RSP response); function bit nb_transport(REQ request, output RSP response);
Any transport port variant can connect to and send requests and retrieve responses via this export, provided the transaction types match. Upon return, the response argument carries the response to the request.
function new ( string name, uvm_component parent = null )
The name and parent are the standard uvm_component constructor arguments. The parent must be null if this component is defined within a statically elaborated construct such as a module, program block, or interface.
The uvm_tlm_req_rsp_channel contains a request FIFO of type REQ and a response FIFO of type RSP.
class uvm_tlm_req_rsp_channel #( type REQ = int, type RSP = REQ ) extends uvm_component
A uvm_tlm_transport_channel is a uvm_tlm_req_rsp_channel #(REQ,RSP) that implements the transport interface.
class uvm_tlm_transport_channel #( type REQ = int, type RSP = REQ ) extends uvm_tlm_req_rsp_channel #(REQ, RSP)
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void
The uvm_report_object provides an interface to the UVM reporting facility.
class uvm_report_object extends uvm_object
The uvm_component class is the root base class for UVM components.
virtual class uvm_component extends uvm_report_object
The name and parent are the standard uvm_component constructor arguments.
function new ( string name, uvm_component parent = null, int request_fifo_size = 1, int response_fifo_size = 1 )
The name and parent are the standard uvm_component constructor arguments.
function new ( string name, uvm_component parent = null )