使用 MATLAB 进行 FPGA、ASIC 和 SoC 的产品级设计和验证

使用 MATLAB 和 Simulink 借助硬件架构完善算法,并生成代码和验证模型

在 FPGA、ASIC 或 SoC 项目中,不同成员可以共同制定高抽象级别的早期关键决策,然后生成代码和模型以推进实现。

借助 MATLAB®和 Simulink®,您可以:

  • 对各种架构选项进行建模和仿真
  • 面向实现自上而下完善算法
  • 实现定点量化
  • 生成产品级 RTL 和嵌入式 C 代码
  • 生成可用于数字或模拟仿真环境的验证模型
  • 遵循功能安全认证工作流

“Simulink 有助于系统架构师和硬件设计人员进行沟通。它就像一种共用的语言,我们通过它来交换知识、构想和设计。Simulink 和 HDL Coder 使我们能够专注于开发算法和通过仿真完善设计,而不是检查 VHDL 语法和编码规则。”

Marcel van Bakel, Philips Healthcare

SoC 架构和自上而下的设计

算法开发人员可以与系统架构师、数字工程师、混合信号工程师以及验证工程师协作,在高抽象级别探索架构选项。这有助于您的团队采用分区策略开展试验,进而借助硬件微架构和定点量化等实现细节来逐步完善各分区。支持 HDL 代码生成的模块有 300 多个,包括经产品级验证的硬件 IP 模块和子系统。

采用这一自上而下的流程,您可以不断集成更多详细模型进行系统级仿真,从而尽早消除功能和性能问题。通过这一流程,您可以创建和管理系统级测试案例套件,并衡量模型覆盖率,从而为顺利实现再添砝码。

SoC 架构和自上而下的设计

在高级层面探索实现方面的各项权衡,对照已知的良好版本验证每一次完善。


验证模型生成

生成 SystemVerilog DPI 或 UVM 组件,以加快创建验证环境。

验证模型生成

您可以直接从支持 C 代码生成的 MATLAB 函数或 Simulink 模型生成模型,以加快创建 RTL 验证环境。这可确保您准确地捕获参考模型的高级行为以及对 RTL 仿真的激励。如果出现高级设计变更,可以重新生成模型。

这些验证组件使用 SystemVerilog 直接编程接口 (DPI),可用于各种支持 SystemVerilog 的仿真器。如果您的 RTL 验证环境使用通用验证方法 (UVM),则您可以选择从 Simulink 生成 UVM 组件。


产品级代码生成

在传统设计流程中,手动编写规范文档以及基于该文档写代码时,往往会引入 Bug。使用 MATLAB 和 Simulink 执行系统级验证后,您可以直接从这些已验证的实现模型生成 HDL 和 C 代码。

生成的 HDL 可读,可追溯至其源模型,并且不依赖于特定目标。您可以控制速度优化(例如流水线插入)、面积优化(例如资源共享),以及多种代码样式和结构选项。您可以通过代码生成菜单自动运行赛灵思 (Xilinx®) 和英特尔 (Intel®) 的综合工具,也可以生成脚本以运行任何 FPGA 或 ASIC 综合工具。

产品级代码生成

可读的 HDL 代码,带有模型注释,并可从代码逐行追溯到模型。


功能安全

检查硬件子系统是否符合 DO-254 建模标准。

功能安全

如果您的项目要求功能安全标准合规,我们的 DO-254ISO 26262IEC 61508 套件已包含 FPGA、ASIC 以及 SoC 开发工作流。这些工作流会运行模型顾问来执行内置检查,确保您的模型符合相应标准的要求。

所生成的 HDL 和 C 代码可读,并可追溯至模型和需求,以便代码审查。为满足验证需求,您可以采用多种方法,例如背对背测试、协同仿真或 FPGA 在环。