UVM(五)

本文详细介绍了UVM中的TLM(Transaction Level Modeling)机制,包括put和get两种事务传输方式及其对应的port类型,如uvm_put_port、uvm_get_port等。同时,讲解了put模式、get模式和FIFO模式的使用方法,并提到了在reference_model、monitor、scoreboard中的应用,以及如何通过FIFO进行组件间的通信。
摘要由CSDN通过智能技术生成

UVM TLM(Transaction level modeling)
TLM为组件之间的通信建立专门的通信信道,避免通信出现混乱
(例如reference model只能从master_agent的monitor获取数据)
在这里插入图片描述
transaction事务的传送分为put(producer主动发起事务的传输)和get(consumer主动从producer获取数据)其中使用port.put()函数(在consumer中定义),以及port.get()函数(在producer中定义)

常见的TLM port:
uvm_put_port #(T);//(port要传输的transaction的类型)
uvm_blocking_put_port#(T);
uvm_unblocking_put_port#(T);
uvm_get_port#(T);

put()//put()是一个task,可能会阻塞当前进程直到transaction传输成功
try_put()//try_put()是一个function,不会阻塞当前进程,不管transaction是否完成传输都会立刻返回
can_put()//can_put()是一个function,不会阻塞当前进程,不会发生transaction传输,只是检查对方是否准备好接受
get()//get()是一个task,会阻塞当前进程直到成功获取了一个transaction之后返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值