【问题标题】:How do I stop all running sequences in UVM?如何停止 UVM 中的所有正在运行的序列?
【发布时间】:2013-10-04 16:52:39
【问题描述】:

有没有办法在模拟过程中停止所有正在运行的序列(比如当你重置时)? 有没有办法在模拟期间的特定时间转储所有运行序列的列表?

【问题讨论】:

    标签: verilog system-verilog uvm


    【解决方案1】:

    是的。 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().
    【解决方案2】:

    每个序列都有一点received_item_done。在停止任何特定序列之前,您可以等待该位的posedge。您可以使用定序器基类中的current_grabber 函数来获取当前对序列具有锁定或抓取的序列的句柄。

    stop_sequences 将停止当前加载到音序器上的序列。

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 2020-10-31
      相关资源
      最近更新 更多