【发布时间】:2013-10-04 16:52:39
【问题描述】:
有没有办法在模拟过程中停止所有正在运行的序列(比如当你重置时)? 有没有办法在模拟期间的特定时间转储所有运行序列的列表?
【问题讨论】:
标签: verilog system-verilog uvm
有没有办法在模拟过程中停止所有正在运行的序列(比如当你重置时)? 有没有办法在模拟期间的特定时间转储所有运行序列的列表?
【问题讨论】:
标签: verilog system-verilog uvm
是的。 sequencer_h.stop_sequences() 请参阅https://verificationacademy.com/cookbook/Sequences/Stopping,了解您需要做什么以及使用活动驱动程序需要注意什么。
UVM 没有内置任何东西来转储所有正在运行的序列,但如果您使用的是 Questa,则有一个调试命令“uvm findsequences”会为您列出它们。
【讨论】:
sequencer_h 是什么?您的意思是在所有正在运行的音序器上调用 stop_sequences 吗?我无权访问您发布的链接。
sqr.stop_sequences 时,我得到了这个UVM_FATAL。您能否提供有关如何调试此问题的任何提示?错误:Item_done() called with no outstanding requests. Each call to item_done() must be paired with a previous call to get_next_item().
每个序列都有一点received_item_done。在停止任何特定序列之前,您可以等待该位的posedge。您可以使用定序器基类中的current_grabber 函数来获取当前对序列具有锁定或抓取的序列的句柄。
stop_sequences 将停止当前加载到音序器上的序列。
【讨论】: