基于Matlab/Simulink平台的FPGA开发
基于 Matlab/Simulink 平台进行 FPGA 开发是一种高效的 "算法驱动" 设计方法,尤其适合从算法原型到硬件实现的快速迭代,广泛应用于电力电子、通信、控制、图像处理等领域。其核心优势在于通过可视化建模和自动代码生成,减少手动编写 HDL(硬件描述语言)的工作量,同时保证算法与硬件实现的一致性。
一、FPGA建模与仿真
基于Simulink建模:使用Simulink搭建算法模型(如信号处理、控制系统等),通过仿真验证功能正确性。
定点化处理:通过Fixed-Point Designer工具将浮点算法转换为定点模型,优化硬件资源占用。
仿真验证:通过 Simulink 仿真验证模型功能正确性,重点测试边界条件和异常场景,确保算法逻辑无误。

二、FPGA代码生成
HDL Coder 是 MathWorks 公司推出的一款核心工具,主要用于将 MATLAB 算法和 Simulink 模型自动转换为可综合的硬件描述语言(HDL,包括 VHDL 和 Verilog),从而实现从算法设计到 FPGA/ASIC 硬件实现的高效流程。
XSG(Xilinx System Generator)是 Xilinx 公司推出的基于 Simulink 的 FPGA 设计工具,它允许用户通过 Simulink 模块搭建硬件逻辑,并直接生成可综合的 HDL 代码及 FPGA 配置文件,简化了从算法建模到 FPGA 实现的流程。
1. HDL 代码生成(HDL Coder 工具)
模型准备:对 Simulink 模型进行优化,如添加Subsystem封装、设置采样时间、指定数据类型(避免默认的double类型)。
代码生成配置:通过HDL Coder设置目标器件(如 Xilinx Zynq、Altera Cyclone)、HDL 语言(VHDL/Verilog)、优化选项(如资源共享、流水线设计)。
自动生成代码:一键生成可综合的 HDL 代码及测试 bench,同时输出资源预估报告(LUT、FF、DSP 等占用量)。
2. XSG 代码生成的基本流程
模型搭建
在 Simulink 中使用 XSG 提供的专用模块库(如Xilinx Blockset)构建硬件逻辑,包括加法器、乘法器、寄存器、FIFO 等基本元件,以及 DSP、通信等领域的专用模块。这些模块预先针对 Xilinx FPGA 进行了优化,确保生成的代码可综合。
参数配置
设定目标 FPGA 器件(如 Kintex7、Kintex -UltraScale 系列)和型号。
配置时钟频率、采样率等时序约束,确保设计满足硬件时序要求。
选择实现策略(如资源优先或速度优先),XSG 会根据策略自动优化逻辑结构。
模型验证
通过 Simulink 仿真验证模型功能正确性,重点检查数据通路、状态机逻辑等是否符合预期。XSG 支持与 Matlab 工作区的数据交互,方便对比算法理论结果与硬件模型输出。
代码生成与实现
点击 "Generate" 按钮后,XSG 会自动完成以下操作:
- 生成 Verilog/VHDL 代码(默认 Verilog)及测试向量。
- 生成 Xilinx ISE 或 Vivado 工程文件,包含综合、实现所需的约束文件。
- 进行初步的资源预估(LUT、FF、DSP48 等占用量)和时序分析。
三、实例操作过程
基于实时机工具链,可将编译后的位流文件直接烧录到FPGA板卡中运行,支持多FPGA架构同时运行。
1. XSG 创建FPGA模型过程
从"Vitis Model Composer 2024.1"启动Matlab:

将Vitis Model Composer Hub block("AMD Toolbox\Utilities\Code Generation")放入Simulink模型中。


根据FPGA芯片类型,设置合适的FPGA时钟周期:

离线仿真运行正常后,打开Export窗口,开始创建并生成bitstream文件。


待编译完成后,生成的bitstream文件可以直接烧录到FPGA硬件中运行。
2. HDL 创建FPGA模型过程
从开始菜单启动Matlab:

将Bin Generator block模块放入Simulink模型中:

如下图创建一个子系统,因为HDL Coder需要使用子系统进行FPGA代码生成。

待模型离线仿真正确后,打开Workflow Advisor,设置pipeline register为不使能。


双击BinGenerator模块,生成bin文件。


待编译完成后,生成bitstream文件,就可以直接烧录到FPGA硬件中运行。
在Matlab/Simulink平台中,支持FPGA建模并代码生成的两大工具XSG/HDL,均无缝集成于实时机中,充分发挥了FPGA 技术强大的生态支撑能力。