我正在尝试编写一个简单、足够准确的过滤器来验证 RTL 模拟中的硬件。我们通过将设计中的所有触发器随机初始化为 0 或 1 来模拟芯片触发器中固有的随机性。这对应于芯片触发器在上电期间获得一些随机值。我们还随机化了重置树中的触发器(重置树没有反馈循环),这意味着您可能会在重置线上出现错误的故障。
例如
||| VVV Nth 复位树触发器 +----+ +----+ +----+ / / +----+ 重置 | | 0 | | 1 | | 0 // | | 重置输出 -------->D Q>-->D Q>----->D Q>---- / ... / -->D Q>---- | | | | | | \ \ | | | | | | | | \ \ | | +^---+ +^---+ +^---+ / / +^---+ | | | // | clk ------+------------+------------+---------/ / ---+
你会看到一个 0->1->0 看起来像重置,但实际上是一个小故障。
我想构建一个过滤器来查找一定数量的连续1 值,以确定我刚刚看到的重置是来自重置控制器的重置还是虚假重置。
我知道这是统计数据,可能与泊松分布有关,但是如何确定一组 N 位中任何 X 个连续位为 1 的概率?
PS是的。我知道 4-val RTL 模拟。我们也在这样做,但是一些 Verilog 构造在传播 X 和 Z 时没有足够的悲观情绪。