在使用AXI-VIP验证时,需要检查AXI的outstanding数,由于VIP的monitor port本身仅监测单笔burst,而outstanding涉及多笔burst,可以采用回调机制实现:
从svt_axi_port_monitor_callback 类扩展用户自定义回调类 cust_svt_axi_monitor_callback。
2. 在callback类内定义变量如 num_outstanding_xact 来存储上述用户定义类中outstanding事务的总数,或也可定义num_read_outstanding_xact/num_write_outstanding_xact变量分别存储读/写outstanding事务数。
在callback类内实现 new_transaction_started 和 transaction_ended 方法以统计outstanding数,并可添加一些log打印信息:
现在,变量num_outstanding_xact内存储了相应的outstanding事务数,可以在 new_transaction_started 方法内检查相应outstanding值是否超过规定值了,例如:
最后需要在 axi_basic_env.sv 内为 slave agent 添加callback对象。
好好学习,天天向上!
领取专属 10元无门槛券
私享最新 技术干货