我曾经通过动态测试来验证由带有一组寄存器的串口组成的模块。其中一项测试是恢复重置测试。时序是(i)从串口将一个随机数据写入寄存器(需要40个时钟周期)(ii)将该寄存器置于复位状态并释放它(iii)从串口读取该寄存器(再花40个时钟周期)
这很容易在动态测试中实现。现在我想正式编写这个时间,但我发现正式的工具很难确定这个断言,因为时间太长,大约82个周期,正式的工具无法探索这么多的空间状态。是否有可能正式编写这样的测试?
此外,常见的复位形式测试很简单,只需要1个周期,正式工具开始从复位状态探索空间状态。但是现在我正在尝试写一个测试,说在DUT做了什么后,把寄存器复位,读出来,值仍然是复位值。
答案 0 :(得分:0)
您的问题可能是该工具正在探索可以应用重置的所有可能状态。也就是说,如果我用4加载寄存器A并且我用8加载寄存器B并且我应用复位,那么会发生什么。现在尝试寄存器A是5,寄存器B是8,我应用复位,会发生什么。现在尝试注册A是6和....你明白了。
您可以编写这些测试,但您需要做一些事情:
注意:这对于重置测试而言往往是一组不同于其他功能测试的约束,所以你需要一个单独的正式运行。