[source]

Class uvm_tlm_req_rsp_channel

uvm_pkg::uvm_tlm_req_rsp_channel <REQ, RSP> + blocking_get_peek_request_export : uvm_get_peek_export #(REQ) + blocking_get_peek_response_export : uvm_get_peek_export #(RSP) + blocking_get_request_export : uvm_get_peek_export #(REQ) + blocking_get_response_export : uvm_get_peek_export #(RSP) + blocking_master_export : uvm_master_imp #(REQ, RSP, uvm_tlm_req_rsp_channel, uvm_tlm_fifo, uvm_tlm_fifo) + blocking_peek_request_export : uvm_get_peek_export #(REQ) + blocking_peek_response_export : uvm_get_peek_export #(RSP) + blocking_put_request_export : uvm_put_export #(REQ) + blocking_put_response_export : uvm_put_export #(RSP) + blocking_slave_export : uvm_slave_imp #(REQ, RSP, uvm_tlm_req_rsp_channel, uvm_tlm_fifo, uvm_tlm_fifo) + get_peek_request_export : uvm_get_peek_export #(REQ) + get_peek_response_export : uvm_get_peek_export #(RSP) + get_request_export : uvm_get_peek_export #(REQ) + get_response_export : uvm_get_peek_export #(RSP) + master_export : uvm_master_imp #(REQ, RSP, uvm_tlm_req_rsp_channel, uvm_tlm_fifo, uvm_tlm_fifo) + nonblocking_get_peek_request_export : uvm_get_peek_export #(REQ) + nonblocking_get_peek_response_export : uvm_get_peek_export #(RSP) + nonblocking_get_request_export : uvm_get_peek_export #(REQ) + nonblocking_get_response_export : uvm_get_peek_export #(RSP) + nonblocking_master_export : uvm_master_imp #(REQ, RSP, uvm_tlm_req_rsp_channel, uvm_tlm_fifo, uvm_tlm_fifo) + nonblocking_peek_request_export : uvm_get_peek_export #(REQ) + nonblocking_peek_response_export : uvm_get_peek_export #(RSP) + nonblocking_put_request_export : uvm_put_export #(REQ) + nonblocking_put_response_export : uvm_put_export #(RSP) + nonblocking_slave_export : uvm_slave_imp #(REQ, RSP, uvm_tlm_req_rsp_channel, uvm_tlm_fifo, uvm_tlm_fifo) + peek_request_export : uvm_get_peek_export #(REQ) + peek_response_export : uvm_get_peek_export #(RSP) + put_request_export : uvm_put_export #(REQ) + put_response_export : uvm_put_export #(RSP) + request_ap : uvm_analysis_port #(REQ) + response_ap : uvm_analysis_port #(RSP) + slave_export : uvm_slave_imp #(REQ, RSP, uvm_tlm_req_rsp_channel, uvm_tlm_fifo, uvm_tlm_fifo) + type_name : string + connect_phase(): void + create(): uvm_object + create_aliased_exports(): void + get_type_name(): string uvm_pkg::uvm_tlm_transport_channel <REQ, RSP> <REQ : REQ, RSP : RSP>

Inheritance Diagram of uvm_tlm_req_rsp_channel

CLASS

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

Type parameters:

REQ

Type of the request transactions conveyed by this channel.

RSP

Type of the response transactions conveyed by this channel.

Parameters

Name

Default value

Description

REQ

int

RSP

REQ

Variables

Name

Type

Description

type_name

string

put_request_export

uvm_put_export#(int)

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.

get_peek_response_export

uvm_get_peek_export#(int)

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.

get_peek_request_export

uvm_get_peek_export#(int)

put_response_export

uvm_put_export#(int)

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.

request_ap

uvm_analysis_port#(int)

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.

response_ap

uvm_analysis_port#(int)

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.

master_export

uvm_master_imp#(int, int, uvm_tlm_req_rsp_channel#(int, int), uvm_tlm_fifo#(int), uvm_tlm_fifo#(int))

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.

slave_export

uvm_slave_imp#(int, int, uvm_tlm_req_rsp_channel#(int, int), uvm_tlm_fifo#(int), uvm_tlm_fifo#(int))

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.

blocking_put_request_export

uvm_put_export#(int)

port aliases for backward compatibility

nonblocking_put_request_export

uvm_put_export#(int)

get_request_export

uvm_get_peek_export#(int)

blocking_get_request_export

uvm_get_peek_export#(int)

nonblocking_get_request_export

uvm_get_peek_export#(int)

peek_request_export

uvm_get_peek_export#(int)

blocking_peek_request_export

uvm_get_peek_export#(int)

nonblocking_peek_request_export

uvm_get_peek_export#(int)

blocking_get_peek_request_export

uvm_get_peek_export#(int)

nonblocking_get_peek_request_export

uvm_get_peek_export#(int)

blocking_put_response_export

uvm_put_export#(int)

nonblocking_put_response_export

uvm_put_export#(int)

get_response_export

uvm_get_peek_export#(int)

blocking_get_response_export

uvm_get_peek_export#(int)

nonblocking_get_response_export

uvm_get_peek_export#(int)

peek_response_export

uvm_get_peek_export#(int)

blocking_peek_response_export

uvm_get_peek_export#(int)

nonblocking_peek_response_export

uvm_get_peek_export#(int)

blocking_get_peek_response_export

uvm_get_peek_export#(int)

nonblocking_get_peek_response_export

uvm_get_peek_export#(int)

blocking_master_export

uvm_master_imp#(int, int, uvm_tlm_req_rsp_channel#(int, int), uvm_tlm_fifo#(int), uvm_tlm_fifo#(int))

nonblocking_master_export

uvm_master_imp#(int, int, uvm_tlm_req_rsp_channel#(int, int), uvm_tlm_fifo#(int), uvm_tlm_fifo#(int))

blocking_slave_export

uvm_slave_imp#(int, int, uvm_tlm_req_rsp_channel#(int, int), uvm_tlm_fifo#(int), uvm_tlm_fifo#(int))

nonblocking_slave_export

uvm_slave_imp#(int, int, uvm_tlm_req_rsp_channel#(int, int), uvm_tlm_fifo#(int), uvm_tlm_fifo#(int))

Typedefs

Name

Actual Type

Description

this_type

uvm_tlm_req_rsp_channel#(REQ, RSP)

Constructors

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

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.

Functions

virtual function void connect_phase ( uvm_phase phase ) [source]

function void create_aliased_exports ( ) [source]

virtual function string get_type_name ( ) [source]

get_type_name

virtual function uvm_object create ( string name ) [source]

create