前言
本文主要记录一下UVM中TLM1.0的几种传输方式和使用方法。具体包括:push mode、pull mode、fifo mode、analysis port、port pass-through这几种模式。
一、UVM TLM1.0
UVM中的TLM1.0按照传输方式划分,可以分为一对一和一对多(多对一)两大类。其中一对一的传输方式包括push mode、pull mode、fifo mode;一对多(多对一)的传输方式主要是analysis port。
二、Push Mode
push mode的数据传输方向,是将生产者(发起方)的数据发送给消费者(接收方)。在生产者中调用put任务,而put任务的具体实现在消费者中。
三、Pull Mode
pull mode的数据传输方向,是生产者(发起方)从消费者(接收方)获取数据。在消费者中调用get任务,而get任务的具体实现在生产者中。
四、FIFO Mode
fifo mode就是在生产者和消费者之间,增加一个uvm自带的fifo模块。更多关于uvm自带的fifo模块的介绍可以参考张强的《UVM实战》4.3.3节使用FIFO通信。
五、Analysis Port
上述的四种数据传输方式,只能实现一对一的传输,analysis port能够实现一对多传输。在生产者中调用write任务,在消费者中对write任务做具体的实现。
六、Port Pass-Through
相同的port可以通过内建的connect连接起来。
总结
这里主要总结了一下,UVM的TLM1.0中的几种数据传输方式。具体的端口又可以分为block和non-block两种方式,详细介绍也可以参考张强的《UVM实战》第4章UVM中的TLM1.0通信。