文章目录
前言
本文主要记录一下UVM中TLM2.0中,阻塞和非阻塞两种传输方式,以及传输过程中payload夹带的属性和方法。
一、UVM TLM2.0
UVM的TLM2.0中,包括blocking和non-blocking传输两种方式。TLM2.0相比TLM1.0,最大的区别是TLM2.0中加入了传输延时参数。
二、Blocking Transport
Blocking传输分为阻塞发起者(Blocking Initiator)和阻塞接收者(Blocking target)。
2.1 Blocking Initiator
在发起者中,声明并构造好initiator socket,调用对应的b_transport任务。
2.2 Blocking target
在接收者中,声明并构造好target socket,b_transport任务在接收者中具体实现,最后在上层组件中(例如env)将initiator socket和target socket连接好。
三、Non-Blocking Transport
Non-Blocking传输分为非阻塞发起者(Non-Blocking Initiator)和非阻塞接收者(Non-Blocking Target)。
3.1 Non-Blocking Initiator
在发起者中,声明并构造initiator socket,调用nb_transport_fw任务,同时要对nb_transport_bw任务做具体的实现。
3.2 Non-Blocking Target
在接收者中,声明并构造target_socket,调用nb_transport_bw任务,同时要对nb_transport_fw做具体的实现。
四、TLM2.0 Generic Payload
总结
本文主要简单记录一下UVM中的TLM2.0。