Questasim-有可能在新设计上记录和重新加载信号吗



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

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

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

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

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

如果您的UVM基础设施force在接口上,然后重置初始化force在下游节点上,将合成到同一条线路,则下游节点force将获胜,因为这实际上将被映射到逻辑中。

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

最新更新