主要内容

从 Simulink 模型进行 HDL 代码生成和 FPGA 综合

R2026b

此示例说明如何使用 Simulink® HDL 工作流顾问为简单计数器模型生成 HDL 代码,并在 AMD® FPGA 上综合生成代码。要创建此模型,请参阅创建 HDL 兼容的 Simulink 模型。

HDL 工作流顾问在 Simulink Online™ 中不可用。

Simulink HDL 工作流顾问

HDL 工作流顾问指导您完成为 Simulink 子系统生成 HDL 代码以及 FPGA 设计过程,例如:

  • 检查模型的 HDL 代码生成兼容性并自动修复不兼容的设置。

  • 生成 HDL 代码、测试平台以及用于编译和运行代码与测试平台的脚本。

  • 生成联合仿真或 SystemVerilog DPI 测试平台和代码覆盖率(需要 HDL Verifier™)。

  • 通过集成第三方综合工具进行综合和时序分析。

  • 使用在综合期间获得的关键路径信息和其他信息对模型进行回注。

  • 针对选定 FPGA 开发目标器件和 Simulink Real-Time™ FPGA I/O 工作流的完整自动化工作流,包括 FPGA 在环仿真。

简单计数器模型

此模型从零向上计数到阈值 15,然后绕回到零。通过更改连接到 count_threshold 端口的 Constant 模块值,您可以更改阈值。使能端口指定计数器是向上计数还是保持先前的值。通过更改连接到使能端口的 Constant 模块值,您可以更改计数器动作。值为 1 表示计数器向上计数。值为 0 表示保持先前的计数值。

设置工具路径

要在目标平台上综合您的设计,请在打开 HDL 工作流顾问并运行工作流之前,设置综合工具的路径。此示例使用 AMD Vivado®,因此您必须已安装 AMD Vivado。要设置工具路径,请使用 hdlsetuptoolpath 函数。

hdlsetuptoolpath(ToolName="Xilinx Vivado",ToolPath="C:\Xilinx\Vivado\2025.1\bin\vivado.bat")
如果您使用不同综合工具,请使用 hdlsetuptoolpath 设置该综合工具的路径。要了解最新支持的工具,请参阅HDL 语言支持以及支持的第三方工具和硬件。

如果您要生成 HDL 代码但不综合您的设计,则不必设置工具路径。

打开 HDL 工作流顾问

要从 Simulink 模型启动 HDL 工作流顾问,请执行以下操作:

  1. 在 App 选项卡中,选择 HDL Coder。

  2. 在模型中选择 DUT 子系统 HDL_DUT,并确保此名称出现在 HDL 代码选项卡上的以下项的代码选项中。要记住所选内容,请固定此选项。点击工作流顾问。

当您打开 HDL 工作流顾问时,代码生成器可能会发出警告,指示工程文件夹不兼容。要打开该顾问,请选择删除并继续。

HDL 工作流顾问在左窗格中显示按文件夹分组的一组任务。展开文件夹会显示每个文件夹中的可用任务。选择一个任务或文件夹会在右窗格中显示有关该任务或文件夹的信息。右窗格具有用于运行任务到若干参数的简单控件以及用于代码或测试平台生成的选项,并包含用于状态消息和其他任务结果的显示区域。

要了解有关每个单独任务的更多信息,请右键点击该任务,然后选择这是什么?。

'What's This' help option after right-clicking the task in HDL Workflow Advisor

请参阅HDL 工作流顾问快速入门。

生成 HDL 代码

  1. 在设置目标 > 设置目标器件和综合工具步骤中,对于综合工具,选择 Xilinx Vivado,然后选择运行此任务。另请参阅 Workflows in HDL Workflow Advisor。要生成 HDL 代码但不综合代码,请将综合工具设置保留为 No Synthesis Tool Specified。

    HDL Workflow Advisor dialog box for task 1.1 'Set Target Device and Synthesis Tool'

  2. 在设置目标频率任务中,使用目标频率参数指定您需要设计达到的目标频率。对于此示例,将目标频率(MHz) 设置为 200。

  3. 要检查模型的代码生成兼容性,请运行准备模型以生成 HDL 代码文件夹中的任务。右键点击检查采样时间任务并选择运行到选定任务。如果运行任务生成警告,请选择全部修改,然后重新运行该任务。

  4. 要修改代码生成,请使用设置代码生成选项中的任务。例如,要自定义目标 HDL 语言和目标代码生成文件夹,请使用设置基本选项任务。进行更改后,点击应用。

  5. 要生成代码,请右键点击生成 RTL 代码和测试平台任务并选择运行到选定任务。

执行 FPGA 综合和分析

  1. 在 FPGA 综合和分析 > 执行综合和布局布线 > 运行实现任务中,清除跳过此任务并点击应用。然后,右键点击此任务并选择运行到选定任务。

    该任务显示设计消耗的资源量和数据路径延迟。裕量是组合路径的必需时间与到达时间之间的差值。在本例中,裕量为正值,这意味着数据到达的时间远早于必需时间。

    Resource and timing report summary information.

  2. 右键点击用综合结果注解模型并选择运行到选定任务。如果您选择 Microchip Libero SoC 作为综合工具,则用综合结果注解模型任务不可用。要查看关键路径,请将工作流运行到综合,然后打开时序报告。有关分析布线前或布线后时序信息以及在模型中直观地突出显示关键路径的详细信息,请参阅Annotate Model with Synthesis Result。

查看模型中注解的关键路径。

Generated model showing the highlighted critical path.

关键路径是输入和输出之间具有最大延迟的组合路径。计数器模型的关键路径延迟为 2.77ns。运行实现任务中报告的数据路径延迟大于关键路径,因为它将目标 FPGA 上的布线延迟考虑在内。要节省资源、优化关键路径并改进设计在目标 FPGA 上的时序,请在 HDL Coder™ 中使用速度和面积优化。要了解详细信息,请参阅Introduction to Optimizations in HDL Coder。

使用脚本在命令行中运行工作流

要在 MATLAB® 命令提示符下运行 HDL 工作流,请将工作流顾问设置导出到脚本。要导出到脚本,请在 HDL 工作流顾问窗口中,选择文件 > 导出到脚本。在“导出工作流配置”对话框中,输入文件名并保存脚本。请参阅Run HDL Workflow with a Script。

另请参阅

| |

主题