Harris 加快信号处理 FPGA 验证

挑战

简化测试信号处理 FPGA 实现所用的耗时的手工流程

解决方案

使用 EDA Simulator Link 从 MATLAB 内部验证 HDL 设计

结果

  • 功能验证时间缩短 85% 以上
  • 100% 完成计划的测试用例
  • 无缺陷地实现设计

“EDA Simulator Link 为我们的 MATLAB 模型与逻辑仿真程序提供了直接协同仿真接口,大大缩短了功能验证开发时间。因此我们可以更早地对设计进行验证,更快地发现问题,完成更多的测试并缩短整个开发周期。”

Jason Plew, Harris Corporation
Harris 的基于 FPGA 的系统

Harris 公司的工程师们经常在紧迫的时限内交付基于 FPGA 的复杂信号处理系统。为了满足客户时常十分严格的要求以及自身的质量标准,工程师们会在综合各个系统前彻底验证 HDL 设计。

在过去,HDL 验证需要多步手工操作。现在,Harris 工程师们使用 HDL Verifier™ 实现了 MATLAB® 系统模型与在 Cadence® Incisive® 中进行仿真的 HDL 设计之间的双向链接,从而实现了验证流程的自动化。这种新的流程消除了算法规范和 HDL 验证之间的不明确性,减少了重复工作量,并改进了系统与 HDL 工程师之间的通讯。

Harris 高级工程师 Jason Plew 说:“使用 MATLAB 和HDL Verifier进行协同仿真不仅简化了子系统级别的仿真,而且让我们可以更加彻底地验证整个系统。这大大缩短了我们开发子系统测试工作台所需的时间,从而使设计的验证和调试时间大大提前。”

挑战

Harris 工程师需要设计和验证一种跨多个 Xilinx® Virtex® FPGA 的信号处理系统。在这种人工密集型流程中,完成对子系统定点模型的仿真后,该团队要导出包含这些仿真生成的激励数据和预期结果的大型文本文件,然后将这些文件导入到 Cadence Incisive 中。之后,由经验丰富的工程师在 HDL 中编写测试工作台,以读入数据、应用激励并验证结果。如果结果不匹配,则团队必须对大量的结果文件进行仔细检查,以查明仿真失败的环节和原因。对于测试特性的每个变化,他们必须重新导出仿真数据,这需要 8 个小时单调乏味的手工操作才能完成。

Plew 回忆说:“我们在每个子系统的手工步骤中耗费了大量时间,这导致我们在截止期限之前只能完成 30% 的预期系统级测试用例。”

Harris 需要一种能直接将输入信号推入逻辑仿真程序的方法,从而免去编写 HDL 测试工作台的麻烦,并消除管理大型测试数据文本文件的系统开销。

解决方案

Harris 工程师们使用 MATLAB 对其信号处理系统进行建模和仿真。MATLAB 模型变成了可重复使用的测试工作台,在这个工作台中,工程师们可以使用HDL Verifier通过交互方式对 Cadence Incisive 仿真程序进行协同仿真。

借助 MATLAB 和 DSP System Toolbox™,工程师们开发了理想的基带信号处理数据通道浮点模型,并使用该模型验证设计是否满足功能要求。

在将该模型转换为定点模型后,工程师们对算法进行了优化,以便于在硬件中实现。还使用 MATLAB 中执行了其他一些仿真,以确保按照规范执行定点实现。

由于将定点模型作为可执行规范,因此 Harris 工程师们可以在 HDL 中实现系统。

该团队使用HDL Verifier使 MATLAB 代码可以作为实现的测试工作台。通过协同仿真接口,使用 MATLAB 向 HDL 仿真结果提供激励并对结果进行分析。

为了加快多个测试用例的执行,Harris 工程师们开发了一种 MATLAB 控制脚本,用于跨整个 Linux 计算网格管理多个并行协同仿真。

该团队使用此方法在综合以及成功论证设备之前,快速验证了各个子系统以及整个信号处理链。Harris 工程师们已开始在其他项目中应用相同的方法,包括一个需要百万点快速傅里叶变换 (Fourier transform) 的项目。

结果

  • 功能验证时间缩短 85% 以上. Plew 说:“以前准备一个子系统测试工作台,需要一名经验丰富的工程师花费 8 小时的时间。有了HDL Verifier,我们只需一个小时便可创建一个测试工作台,而且因为 MATLAB 可生成激励并执行分析,所以我们可以在 MATLAB 中准备好所有测试结果以用于后期处理。”

  • 100% 完成计划的测试用例. Plew 说:“我们以前的流程太复杂,以至于我们通常只能执行极少的子系统级验证,所以在我们的时限到期之前,我们所执行的系统级测试用例还不到计划的 30%。在 MathWorks 工具的帮助下,我们使用自动化流程生成并仿真了所有这些测试用例,同时该流程还使我们发现了大多数的子系统级缺陷。”

  • 无缺陷地实现设计. Plew 说:“我们节省了几周的实验室调试时间,因为我们使用HDL Verifier在 MATLAB 和 Cadence Incisive 中对我们的 HDL 代码进行了协同仿真,对设计进行了彻底验证。事实上,FPGA 的数据通道单元从一开始便是按照设计执行的。”