更新时间:2022-08-25 16:34
逻辑仿真(英语:logic simulation),或称逻辑模拟,是对硬件描述语言所定义数字电路行为的预测与检验,通常可以利用计算机仿真实现。逻辑仿真可以在具有不同物理抽象层次(级别)下进行,例如晶体管级、逻辑门级、寄存器传输级和行为级。其基本原理是使用计算机软件模拟一个激励信号,然后观察所设计电路的响应行为。
逻辑仿真可以用作设计硬件中的验证过程的一部分。模拟具有为用户提供熟悉的外观和感觉的优点,因为它由设计中使用的相同语言和符号构成。通过允许用户直接与设计交互,模拟是设计师获得设计反馈的自然方式。
调试然后验证设计所需的工作量与设计的成熟度成正比。也就是说,在设计的早期阶段,通常会很快发现错误和不正确的行为。随着设计的成熟,模拟将需要更多的时间和资源来运行,并且错误将逐渐变得更长。在模拟现代系统的组件时,这尤其成问题;在模拟的单个时钟周期中改变状态的每个组件都需要几个时钟周期来模拟。
解决此问题的直接方法可能是在现场可编程门阵列上模拟电路。也可以探索形式验证作为模拟的替代方法,尽管正式证明并非总是可行或方便。
加速逻辑仿真的一种前瞻性方法是使用分布式和并行计算。为了帮助评估模拟的彻底性,存在用于评估代码覆盖率,功能覆盖率和逻辑覆盖率工具的工具。
事件仿真允许设计包含简单的定时信息 - 信号从一个地方传播到另一个地方所需的延迟。在模拟期间,以事件的形式跟踪信号变化。某个时间的更改会在一定延迟后触发事件。事件按其发生的时间排序,并且当处理了特定时间的所有事件时,模拟时间将提前到下一个计划事件的时间。事件模拟的运行速度取决于要处理的事件数(模型中的活动量)。
虽然事件模拟可以提供有关信号时序的一些反馈,但它不能代替静态时序分析。在周期模拟中,无法指定延迟。使用周期精确模型,并在每个周期中评估每个门。因此,无论模型中的活动如何,循环模拟都以恒定速度运行。优化的实现可以利用低模型活动来通过跳过其输入未改变的门的评估来加速模拟。与事件模拟相比,循环模拟趋向于更快,更好地扩展,并且更适合于硬件加速/仿真。
然而,芯片设计趋势指向事件仿真由于电路中的活动因子减少而获得相对性能(由于诸如时钟门控和功率门控之类的技术,这些技术正变得越来越常用于降低功耗)。在这些情况下,由于事件模拟仅模拟必要的事件,因此性能可能不再是循环模拟的劣势。事件仿真还具有更大灵活性的优势,处理难以通过循环仿真处理的设计特征,例如异步逻辑和不适合的时钟。由于这些考虑,几乎所有商业逻辑模拟器都具有基于事件的能力,即使它们主要依赖于基于循环的技术。