请问:为什么我的sequence会卡在`uvm_send环节了呢?
时间:10-02
整理:3721RD
点击:
各位:正在学习使用UVM的VIP。目前情况是sequence已经跟sequencer绑定,能顺利执行body中的`uvm_create()和随机化部分,但是却卡在`uvm_send()了。
driver是VIP提供的,内部代码是加密的,没办法在里面增加打印信息来debug。嗯,VIP使用的transaction是base_transaction,我在自己的sequence中使用的是cust_transaction,cust_transaction从base_transaction extend 而来。我在想,是否是driver中执行$cast不对导致的问题呀?如果是的话,该怎么解决呢?
如果不是transaction类型不匹配的问题的话,还有哪些可能会导致这个问题呀?
先谢谢各位了。
driver是VIP提供的,内部代码是加密的,没办法在里面增加打印信息来debug。嗯,VIP使用的transaction是base_transaction,我在自己的sequence中使用的是cust_transaction,cust_transaction从base_transaction extend 而来。我在想,是否是driver中执行$cast不对导致的问题呀?如果是的话,该怎么解决呢?
如果不是transaction类型不匹配的问题的话,还有哪些可能会导致这个问题呀?
先谢谢各位了。
我晕,我都放弃在sequence中使用cust_transaction,直接使用base_transaction了,但是还是同样的问题,没看见`uvm_send()后面的代码有执行的迹象。
有哪些问题可以导致这样的问题呢?
你可以重载一下uvm_sequence里面的task pre_do(), function void mid_do(), function void post_do(), 在这几个methd里面加上打印message,在跑一下,看看停在那个地方
谢谢!我加了message一个都出不来
这个应该是driver还没有执行get_next_item(),可能是interface的上的signal状态还不允许driver执行动作
谢谢!看样子还是绕不过driver去呀。我先看看interface上有什么不妥吧。好像我另外一个帖子也是你回的。再次感谢!
你看下是不是卡死在monitor了。