13、逻辑与故障仿真算法解析

逻辑与故障仿真算法解析

1. 真值模拟算法

1.1 编译代码模拟器的问题

编译代码模拟器存在一些局限性。首先,诸如毛刺、竞争条件等情况在编译代码模拟器中无法被建模。虽然当迭代不收敛时,模拟器能够检测到振荡,但除非有未知(X)状态,否则很难处理这种情况。其次,当只有少数信号可能发生变化时,评估整个代码会导致效率低下。在数字电路中,通常任何时候只有 1 - 10% 的信号会发生变化。因此,事件驱动模拟器在门级模拟时速度要快得多。最后,任何详细的时序(如多延迟或最小 - 最大延迟)几乎不可能在编译代码中进行模拟。由于这些原因,编译代码模拟器的使用通常仅限于高级设计验证。

1.2 事件驱动模拟

事件驱动模拟是一种非常有效的离散事件模拟方法。它基于这样的认识:任何信号变化(事件)都必有其原因,而这个原因也是一个事件。因此,一个事件会引发新的事件,新事件又可能引发更多事件。事件驱动模拟器会跟踪事件的路径。

考虑一个门级电路。假设在向主输入施加新向量时,所有信号都处于稳态。一些输入发生变化,从而在这些输入信号上产生事件。输入出现事件的门被称为活动门,并被放入活动列表。模拟过程是从活动列表中移除一个门并对其进行评估,以确定其输出是否有事件。如果输出发生变化,则会使所有扇出门变为活动状态,并将它们添加到活动列表中。当活动列表为空时,评估过程停止。

事件驱动模拟器只进行必要的工作。对于逻辑电路,通常一次只有极少数信号发生变化,这可以显著节省计算工作量。然而,这种技术的最大优势在于它能够模拟任何任意延迟,这通过事件调度来实现。

假设对一个活动门的评估在其输出端产生了一个事件。如果该门的开关延迟为 (d) 个单位,那

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值