如何选择软件仿真、硬件仿真与 FPGA 原型

从验证目标、可见性和工程投入出发,选择当前阶段的验证方法。

先修知识了解 RTL 与测试激励。

适用环境通用 RTL 方法;具体工具与器件选项以项目版本为准

验证状态官方资料对照与原创教学示例 · 板卡 / Palladium 步骤待设备验证

本文目录先定义要回答的问题比较完整工程成本做一次可比的试验原理与信号关系动手步骤与预期结果典型故障:从现象到复测

先定义要回答的问题

先写下本轮验证的输出:协议功能正确、长时间工作负载通过,还是驱动完成真实接口交互。再记录设计规模、测试长度、调试需要以及交付时间。没有这些输入,单独比较频率无法决定方案。

比较完整工程成本

软件仿真适合快速修改测试环境并观察详细行为;硬件仿真把可映射部分放到专用资源运行,仍需要准备模型和交互边界;FPGA 原型需要处理器件资源、时序约束与板级接口。每种方法都应比较准备、编译、运行、定位问题和再次迭代的总时间。

若缺陷尚不稳定,先用易复现的小测试定位。若功能已有基础且长测试成为瓶颈,再做加速试验。若目标是外设联调或软件运行,检查原型接口、启动环境和调试能力是否覆盖需求。

做一次可比的试验

选择相同 RTL 修订、输入和检查点,先在软件仿真建立黄金结果。迁移到另一环境后先证明结果一致,再统计耗时;把编译、运行和波形导出分别记录。不同测试、不同调试配置得到的速度不能直接相除。

原理与信号关系

可观测性、运行速度和准备成本是三种不同的约束。软件仿真能逐事件解释行为,但长软件负载可能耗时很长;硬件仿真将可映射逻辑交给专用硬件,软件侧模型与通信仍可能限速;FPGA 原型则需要把 RTL、存储与接口落实到特定器件和板级条件。不能把芯片目标频率直接当成原型可运行频率,也不能用硬件核频率代替测试的端到端吞吐。

如何选择软件仿真、硬件仿真与 FPGA 原型:关键关系验证目标功能 / 软件 / 接口代表性负载相同输入与检查器候选平台测量整个流程决策记录结果 + 成本先证明结果可比,再比较每次迭代耗时
如何选择软件仿真、硬件仿真与 FPGA 原型:关键关系(原创示意,非器件引脚图;窄屏可横向滑动)

动手步骤与预期结果

按下面的顺序执行,每一步都留下可复核的证据。若当前步骤的预期条件未满足,先停在该阶段定位原因;不要继续累积后续错误。涉及工具、板卡或专用硬件的步骤,需要使用本工程实际版本和配置,示例数值不能直接替代设备规格。

  1. 建立一条黄金用例

    预期与判定:固定 RTL 修订、随机种子、输入序列和输出摘要;不以“没有报错”代替功能判定。

  2. 分别记录准备和执行成本

    预期与判定:记录移植、编译、运行、导出和定位时间;只比较相同事务数及相同观测范围。

  3. 计算重复运行的收益

    预期与判定:假设软件每次 40 分钟,另一方案准备 180 分钟、每次 10 分钟,则第 7 次起总耗时更少;这些数字仅为教学假设。

  4. 写出退出条件

    预期与判定:若结果不一致、无法观测关键失败点或外设条件不满足,先解决正确性与覆盖范围,再做平台选择。

原创成本计算,可直接用 Python 3 运行;输入为教学假设。

Python
prep_a, run_a = 0, 40
prep_b, run_b = 180, 10
for n in (1, 6, 7, 20):
    print(n, prep_a + n*run_a, prep_b + n*run_b)

典型故障:从现象到复测

下面的案例是为说明定位方法而构造的教学场景,不代表真实客户事故或本平台设备实测。实践时先确认现象与证据相符,再采用相应修复;若证据不同,应回到前一步缩小范围,避免把同一种表象都归因于同一个问题。

完成检查

  • 写出验证问题及通过标准
  • 记录迁移成本和资源约束
  • 同一测试在不同环境核对结果

延伸阅读与来源

本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。

继续阅读

基础

读懂 DUT、Testbench 与软硬件分工

明确设计边界、激励、检查器与交互接口各自的职责。

12 分钟
基础

时钟和复位为何决定验证结果

从采样边沿与初始状态理解设计启动过程。

10 分钟
基础

如何准备一个可复现的问题工程

用最少信息重现故障,让同事和 FAE 能够接手分析。

10 分钟