UVM:6.7.3 response handler 与另类的response

177 篇文章 142 订阅

1.get_response 和 put_response是一一对应的。当在sequence 中启动get_response 是,进程就会阻塞在那,一直等response_queue 中被放入新的记录。

2.如果被阻塞,不可能发出新的transaction。

3.根本原因是sequence 中发送transaction 与get_response 是在同一个进程中执行的。

4.如果分开,需要使用response_handler:


1)response_handler 默认是关闭的,所以要首先调用use_response_handler。

2)打开response_handler后,需要重载虚函数response_handler。参数是一个uvm_sequence_item 类型的指针,需要cast 成my_transaction,之后根据rsp 的值来决定sequence行为。


5.无论put/get_response 或者response_handler,都是新建一个transaction,并将其返回给sequence。

6.事实上,当uvm_do执行完后,其第一个参数不是空指针,而是指向刚刚被送给driver 的transaction。可以实现一种另类response:

driver:



7.sequence检测这个值:


这种另类的response在很多总线的driver 中用到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值