Uvm_tlm_fifo

Hi ,

I have a question related to uvm_tlm_fifo,
as seen in port and export communication , the implementation of the port is given by the consumers implementation port and connected via the export , so in case of put method , the producer’s put will call the consumer’s put method, but in the case of tlm_fifo does the fifo provide the implementation of producer’s put ?
and if not, the fifo is then connected to the consumer which implements a get port , so how does the consumer get the implementation?

any help in this regard will be of great help!!

Cheers,
Dheeraj

See the UVM Cookbook.
As with any TLM communication in UVM, the uvm_tlm_fifo includes a put_export that connects to the producer’s put_port. When the producer calls put(), the implementation in the fifo puts the data into the fifo queue.
On the other side of the uvm_tlm_fifo, the consumer can call get() from its get_port and the get_export in the fifo implements the function to return the data.

In reply to Dhee_27:

The uvm_tlm_fifo has only an export and it is provding a set of blocking methods (get, put, peek) and nonblocking methods try_put, try_get, try_peek. Additionally there are more methods defined like can_put …
By connection a component with a port to the uvm_tlm_fifo export per definition the component with the port can execute all the methods provided by the uvm_tlm_fifo.