[source]

Class uvm_tlm_transport_channel

uvm_pkg::uvm_tlm_transport_channel <REQ, RSP> + transport_export : uvm_transport_imp #(REQ, RSP, uvm_tlm_transport_channel) + nb_transport(): bit + transport() uvm_pkg::uvm_transport_imp <REQ, RSP, IMP> transport_export

Collaboration Diagram of uvm_tlm_transport_channel

CLASS

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. 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.

Parameters

Name

Default value

Description

REQ

int

RSP

REQ

Variables

Name

Type

Description

transport_export

uvm_transport_imp#(int, int, uvm_tlm_transport_channel#(int, int))

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.

Typedefs

Name

Actual Type

Description

this_type

uvm_tlm_transport_channel#(REQ, RSP)

Constructors

function new ( string name, uvm_component parent ) [source]

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.

Functions

function bit nb_transport ( int req, int rsp ) [source]

Tasks

function transport ( int request, int response ) [source]