-1

我正在运行一个包含很多组件的测试(UVM)。这是一个顶级测试,但是我正在调试一个内部模块,我只对连接到该模块的接口的信号感兴趣。因为它是一个 TL,所以我需要很长时间才能到达我感兴趣的时间点。这些信号是其他模块的产物,但我现在对那些不感兴趣。

目前我正在使用 Questa sim,所以我想知道是否有一种方法可以存储这些信号中的事件,以便我可以只重新运行这些信号。因此我的意图是更改模块,重新编译并直接使用新版本的输入,而不必实际运行整个测试并等待那么长时间。

4

1 回答 1

1

在我曾经工作过的一家大型芯片公司内部,他们称之为“保存和恢复”。不确定您的 EDA 供应商如何称呼它。您应该能够在启动模拟结束时获取信号快照的“Vector Change Dump”或“VCD”文件,并将其转换为put电线上的一堆 0-time s。您可能需要force连接几个时钟,然后释放force's.

关于您关于与 UVM 测试基础设施交互的评论,我不确定多个puts 或forces 在一个节点上的行为。我猜最后一个赢了。然而,力是非常非常非常特定于节点的。force如果您在下游,重置将获胜并被锁定到设计中。如果您的设计看起来像这样,那么force <path> 0来自重置代码的将获胜,因为它在下游:

                +--------------------------------------------+
                |  TopDesign.sv  +------------------------+  |
                |                | SubBlock.sv            |  |
                |                |                        |  |
           1    | 1              |  0 +--------------+ 0  |  |
           ----->---------------->----> register Foo >--  |  |
           ^    |                |  ^ |              |    |  |
    UVM Driver  |                |  | +--------------+    |  |
                |                +--|---------------------+  |
                +-------------------|------------------------+
                                    |0
                                   Reset force

如果你的 UVM 基础设施force在一个接口上,然后你的复位初始化force在一个下游节点上,这将综合到同一条线路上,那么下游节点force将获胜,因为这实际上会被放入逻辑中。

您仍然需要注意将 UVM 检查器或记分板初始化为重置后状态。

于 2019-11-07T16:22:30.653 回答