仿真引擎

本页介绍了仿真引擎的内部结构。

仿真引擎通过在 Verilator C++ 仿真模型顶部应用以下循环来使用事件驱动仿真器(类似 VHDL/Verilog):

../../_images/simEngine.png

在底层,仿真引擎管理以下原语:

  • 敏感回调,允许用户在每个仿真增量周期中调用函数。

  • 延迟回调,允许用户在未来的仿真时间调用函数。

  • 仿真线程,允许用户描述并发的进程。

  • 命令缓冲区,允许用户延迟对 DUT(被测设备)的写入访问,直到当前仿真增量周期结束。

这些原语有一些实际用途:

  • 当给定条件发生时,例如时钟的上升沿,敏感回调可用于唤醒仿真线程。

  • 延迟回调可用于安排激励,例如在给定时间后取消复位,或翻转时钟。

  • 敏感回调和延迟回调都可用于恢复仿真线程。

  • 例如,可以使用仿真线程来产生激励并检查 DUT 的输出值。

  • 命令缓冲区的目的主要是避免 DUT 和测试平台之间的所有并发问题。