接口 IP 嵌入式软件在仿真和模拟环境中的调试指南
1. 固件调试方法概述
当前的 EDA 环境提供了多种固件调试方法,以下是常见的几种:
- 使用硬件的 SystemC 模型进行仿真 :无需访问硬件即可尽早开始固件开发,并在模型准确的情况下测试代码功能。但缺乏系统视图,且(取决于模型准确性)硬件时序可能不准确(行为模型)。
- 在模拟器 CPU 上原生执行固件的硬件仿真 :这是结合实际 RTL 的最简单方法,可用于代码原型设计。需要一些 SystemC 包装器来访问寄存器和中断,缺乏系统视图,无法验证固件在其他系统元素存在时的行为。
- 记录系统仿真会话的回放(支持双向播放) :可对记录的仿真会话进行回放调试。
- 使用全系统模型的硬件仿真 :这是一种同步混合模式,RTL 和软件在同一仿真过程中运行,可分为:
- 使用 CPU 快速模型 :代码执行速度非常快(如 Linux 启动约 1 分钟),但由于 TLM 到 RTL 的转换缺乏周期准确性,且全 RTL 仿真启动时速度会显著减慢。
- 使用全系统 RTL :速度通常较慢,在合理时间内只能测试简单操作(少于 10k CPU 指令)。
- 全系统的硬件仿真 :可分为:
- 混合模式(快速模型 CPU 和仿真 RTL) :对于接口 IP 提供快速执行,但需要在快速模型和仿真设备之间进行良好的内