Verilog Questasim-是否可以在新设计上记录和重新加载信号?

Verilog Questasim-是否可以在新设计上记录和重新加载信号?,verilog,system-verilog,uvm,questasim,Verilog,System Verilog,Uvm,Questasim,我正在运行一个包含很多组件的测试(UVM)。这是一个顶级测试,但是我正在调试一个内部模块,我只对连接到该模块的接口的信号感兴趣。由于这是一个TL,我需要很长时间才能到达我感兴趣的时间点。这些信号是其他模块的产品,但我现在对这些不感兴趣 目前我正在使用Questa sim,所以我想知道是否有一种方法可以存储这些信号中的事件,这样我就可以只重新运行这些信号。因此,我的意图是更改模块,重新编译并直接使用新版本上的输入,而不必实际运行整个测试并等待那么长时间。在我曾经工作过的一家大型芯片公司内,他们称之

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


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

在我曾经工作过的一家大型芯片公司内,他们称之为“保存和恢复”。不确定EDA供应商如何称呼它。在启动模拟结束时,您应该能够获取信号快照的“矢量变化转储”或“VCD”文件,并将其转换为一组0时间
put
s。您可能需要对电线施加
几个时钟,然后松开

关于你关于与UVM测试基础设施交互的评论,我不太确定多个
put
s或
force
s在一个节点上的行为。我猜最后一个赢了。但是,力是非常特定于节点的。重置
将获胜,并锁定在设计中(如果是下游)。如果您的设计是这样的,则重置代码中的
强制0
将获胜,因为它位于下游:

                +--------------------------------------------+
                |  TopDesign.sv  +------------------------+  |
                |                | SubBlock.sv            |  |
                |                |                        |  |
           1    | 1              |  0 +--------------+ 0  |  |
           ----->---------------->----> register Foo >--  |  |
           ^    |                |  ^ |              |    |  |
    UVM Driver  |                |  | +--------------+    |  |
                |                +--|---------------------+  |
                +-------------------|------------------------+
                                    |0
                                   Reset force
如果你的UVM基础设施在一个接口上强制执行,然后你的重置初始化强制执行在一个下游节点上,该节点将合成到同一根电线上,那么下游节点强制执行将获胜,因为这实际上会被触发到逻辑中


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

这不是关于编程(堆栈溢出主题)的问题,而是关于如何使用特定EDA工具的问题。最好在其他论坛上提问。是的,我曾想过使用vcd转储端口,我已经设法获得了一个包含信号和更改的文件。尽管您知道UVM测试基础设施的性能如何?原力应该超越特工发出的驱动信号吗?非常感谢罗斯给我的回答。这很有帮助,并且澄清了一些细节