瑞萨半导体采用基于模型的设计来设计并实现ASIC 图像处理 IP 核

“与传统的设计流程相比,采用基于模型的设计,我们能更早地验证我们的算法和系统功能,更快地适应需求指标变更,评估更多的设计替代方案。基于模型的设计帮助在算法专家和 RTL 工程师之间架起桥梁。”

挑战

为汽车显示器和数字成像设备开发核心图像处理算法

解决方案

使用 MATLAB 和 Simulink 的基于模型的设计对算法建模,将其转换成定点数,通过仿真进行验证,然后生成可综合的 HDL 代码

结果

  • 探索了多个设计优化和替代方案
  • 生成了高效 HDL 代码
  • 快速获得了至关重要的工程技能
用于早期验证的图像处理算法的可执行规格模型,具有输入图像(左上角)、浮点结果(右上角)和定点结果(右下角)。

用于早期验证的图像处理算法的可执行规格模型,具有输入图像(左上角)、浮点结果(右上角)和定点结果(右下角)。

Renesas Electronics 旗下的一家设计和应用技术公司 Renesas System Design 开发 ASIC、大规模集成电路 (LSI) 系统和微型电子计算机以及电子产品的核心技术。在这些核心技术中,有一项是在汽车显示器系统和数字成像设备中使用的高级图像处理和滤波算法。

为加快 ASIC 图像处理IP核的设计和实施,Renesas 工程师采用了 MATLAB® 和 Simulink® 的基于模型的设计。

Renesas System Design 公司的高级设计工程师 Mamoru Kamiya 表示:“因为我们开发的 IP 核将在多款产品中使用,所以必须做到高质和灵活。基于模型的设计通过在开发的早期阶段产生实时原型,系统性地探索设计替代方案,并通过大量的测试用例仿真来树立我们在设计中的信心,使我们达到高质和灵活的目标。”

挑战

在以前的工作流程中,Renesas 工程师在静止图像上验证图像处理算法的早期版本。当在 HDL 中实施这些算法并在一个视频流上测试时,该团队发现了静止图像测试未暴露出的算法问题。在后期阶段进行所需的更改十分困难,而且按照项目节点没有多余的时间来实施和测试所做的更新。

那时Renesas 工程师用 C 语言编写浮点数版本的算法。为了将浮点数代码转换为定点数代码,Renesas 依赖一些既懂算法又熟悉寄存器传输级别 (RTL) 硬件设计的有经验的工程师。于是依赖少数工程师完成耗时的关键型任务,造成了项目瓶颈。然后再基于定点 C 代码用手工编写HDL 代码,由此造成了进一步的延迟。

Renesas 需要一种能够使他们在开发早期阶段就完成算法实时验证的开发方法。他们还力求最大限度地减小有关从浮点数转换为定点数,以及编写 HDL 代码的瓶颈。

解决方案

Renesas 工程师为图像处理算法开发和实施采用了基于模型的设计。

工程师首先根据设计指标要求,使用 MATLAB 和 Simulink,开发图像处理系统的浮点算法模型。他们凭借通过仿真产生的输出图像,对图像处理算法的效果进行可视化,从而完成了模型的早期功能验证。

该团队使用 Computer Vision Toolbox™ 对系统模型中的输出图像进行可视化。

他们使用 Fixed-Point Designer™进行浮点模型到定点的转化。利用 Fixed-Point Designer 中的 Fixed-Point Advisor 工具,他们实现了转换步骤的自动化,并可检测上溢和下溢。

在比较定点版本和浮点版本的仿真结果后,该团队使用 HDL Coder™ 从他们优化的 Simulink 模型中生成可综合的 HDL 代码。

该团队使用 HDL Coder 和 HDL Verifier™ 生成了一个测试平台,他们使用该平台,通过与 Simulink 和 Cadence® Incisive® 进行协同仿真来验证 HDL。

他们使用 MATLAB 脚本优化设计,实现满足指标要求的速度和面积。该脚本使用一系列 HDL Coder 资源共享因子和流水线选项,生成多个版本的代码,然后使用 Synopsys® Design Compiler 综合每个版本的代码。然后,该团队比较综合结果,找出最优设计。

在将综合后的代码部署到 Altera® Stratix II FPGA 进行原型验证后,他们使用从同一个 Simulink 模型中生成的 HDL 代码综合为 ASIC 的 IP 核。

Renesas 工程师使用 Simulink 和 HDL Coder 完成了图像处理系统的开发,并打算将基于模型的设计应用于未来的图像处理项目。

结果

  • 探索了多个设计优化和替代方案。Kamiya 表示:“采用基于模型的设计,通过更改位宽、资源共享因子、流水线寄存器的数量,然后生成 HDL 代码,我们能够系统性地优化设计。利用此功能,很容易探索替代设计选项和执行参数优化,从而满足指标要求。”
  • 生成了高效 HDL 代码。Kamiya 称:“在进行优化后,自动生成的代码与我们最好的手工编写代码相比,基本上具有相同的区域和速度特性。由 HDL Coder 生成的 HDL 代码与我们手工编写的同等 HDL 代码相比,在 120 MHz 和 275 MHz 目标时钟频率上使用的资源稍微少一些。”
  • 快速获得了至关重要的工程技能。Kamiya 表示:“通过使用 Simulink 和 HDL Coder,早前没有硬件经验的工程师在大概六个月内学会了 RTL 设计。此能力对于让只有三个工程师组成的团队在同样时间范围内在 FPGA 上设计和部署复杂的图像处理算法起到了重要作用。”