寄存器在发送数据,而总线的monitor中如果正在通过tlm_analysis_fifo或者tlm_fifo通信,此时如果遇到了复位信号,那么复位信号会导致fifo中的数据无法发出也无法复位,数据会寄存在fifo。
当解复位之后,继续通过寄存器发送数据,寄存在FIFO中的数据会传递出来,造成数据干扰,因此当复位信号到来时,FIFO中数据同样需要被清除。
这里可以用到一个UVM_TLM_FIFO中自带的flush函数,例如apb_fifo.flush(),即可清空FIFO缓存中的数据。
此外还有几个常见函数。used函数用来查询FIFO缓存有多少transaction;is_empty函数用于判断当前FIFO是否为空,is_full判断是否满。
版权声明:本文为qq_55173596原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。