硬件设计

什么是硬件设计?

硬件设计是将功能编程到自定义电路中所遵循的过程。系统和算法开发人员通常在 Simulink®MATLAB® 中开始硬件设计,然后编写一个规范文档,以供硬件设计团队用来手动创建硬件描述语言 (HDL) 实现。该 HDL 实现随后用来对 FPGA 或 ASIC 硬件进行编程。该硬件通常是片上系统 (SoC) 的一部分。

手动编写底层 HDL 代码会限制硬件设计团队探索不同架构的广度,增加引入的 bug 数量,并使算法难以在其他工程中复用。

借助 MATLAB 和 Simulink,您可以探索各种算法,并确定哪些算法最耗费计算资源,可能会从硬件设计中受益。探索之后,您可以使用 SoC Blockset™SoC 架构进行仿真。

硬件设计细化

您还可以通过下面几个步骤来细化硬件设计,其中每个步骤都可以对照前一个步骤或原始算法进行验证:

  • 调整算法以处理连续的数据流。在硬件设计中,数据通常是以连续流的形式进行传输和处理的。
  • 通过硬件设计组件的定点量化或浮点 实现,在数值准确性和效率之间进行权衡。
  • 添加微架构,如并行机制、时序、反馈回路和实现硬件设计所需的其他功能。
示意图:MATLAB 和 Simulink 中的设计增量细化,以及每个增量阶段的验证。

硬件设计的数字算法细化示意图,以及各步骤的验证。

您可以使用 Simulink 和 MATLAB 中支持 HDL 的模块和函数来细化硬件设计。您还可以将现成的优化 IP 库用于信号处理无线视频/图像处理深度学习应用。根据具体应用的要求,许多研发人员都会用到上述方法的各种组合。

硬件设计验证

您可以对照前一个步骤或原始算法来验证流程中的每个步骤。通过 HDL 协同仿真验证组件生成等方法,您可以复用任一 HDL 表示来帮助硬件设计团队验证其手写 HDL 代码。您还可以通过运行 FPGA 在环测试,在连接到 MATLAB 或 Simulink 的 FPGA 或 SoC 硬件上,构建硬件就绪实现模型的原型。

硬件设计的代码生成

在全连接的硬件设计工作流中,您可以使用 HDL Coder™ 生成功能正确的 Verilog、SystemVerilog 或 VHDL 代码,以开始硬件设计实现过程。这种方法还有一项优势,那就是具有从设计到模型和需求的完全可追溯性。这对于功能安全型工作流(如 DO-254ISO® 26262IEC 61508)至关重要。

另请参阅: 使用 MATLAB 进行 FPGA、ASIC 及 SoC 开发, HDL Coder, SoC Blockset, HDL Verifier, Deep Learning HDL Toolbox, DSP HDL Toolbox, Vision HDL Toolbox, Wireless HDL Toolbox