FPGA编程与配置

这个例子展示了如何使用HDL Workflow Advisor在Speedg金宝appoat FPGA I/O板上实现Simulink®算法:

  1. 指定FPGA板及其I/O接口。

  2. 合成Simulink算法用于F金宝appPGA编程。

  3. 生成Simulink®金宝appReal-Time™接口子系统模型。

接口子系统模型包含用于编程FPGA和在实时应用程序执行期间与FPGA I/O板通信的模块。将生成的子系统添加到Simulink Real-Time域模型中。金宝app

整个工作流如图所示。

这个例子使用了Speedgoat的IO331。您可以使用Simulink Real-Time和HDL Code金宝appr支持的任何FPGA I/金宝appO模块,满足模型的速度、尺寸和pinout要求。

要求和前提条件

高密度脂蛋白编码器™

在开始之前,完成一个FPGA子系统计划。

对于IO331板,HDL Workflow Advisor需要Xilinx®ISE工具集。要安装此工具集,请在命令窗口中输入:

hdlsetuptoolpath('ToolName', 'Xilinx ISE', 'ToolPath', 'Xilinx ISE')刀具轨迹

在哪里刀具轨迹是合成工具可执行文件的完整路径。

其他单板对工具集的要求请参见支持的第三方工具和硬件(HDL Coder)。金宝app

步骤1。金宝app域模型仿真软件

Simu金宝applink FPGA域模型包含一个要在FPGA芯片上编程的子系统(算法)。使用此模型,您可以在将算法下载到FPGA板之前在模拟环境中测试FPGA算法。

  1. 创建一个包含要加载金宝app到FPGA上的算法的Simulink模型,在本例中是一个环回测试。

  2. 将要编程的算法放在子系统块内的FPGA上。该模型可以包括用于测试的其他块和子系统。但是,一个子系统必须包含FPGA算法。

  3. 设置或确认子系统导入和输出端口名称和数据类型。HDL Coder HDL Workflow Advisor使用这些设置将算法信号路由和映射到I/O连接器通道。

  4. 保存模型。

此模型是FPGA域模型。它表示FPGA板上时钟的模拟采样率。例如,Speedgoat IO331有一个板载125兆赫时钟。一秒的模拟等于模型的125e6次迭代。

有关FPGA域模型的示例,请参见dslrtSGFPGAloopback_fpga.的伺服系统子系统包含FPGA算法。

步骤2。FPGA目标配置

本程序使用dslrtSGFPGAloopback_fpga的例子。您必须已经在FPGA域模型中创建了FPGA子系统(算法)并开发了FPGA子系统计划。

  1. 打开FPGA域模型dslrtSGFPGAloopback_fpga

  2. 在FPGA模型中,右键单击FPGA子系统(伺服系统).从上下文菜单中选择HDL代码>高密度脂蛋白工作流顾问.HDL Workflow Advisor对话框显示了子系统的几个任务。只处理你需要的任务子集。

  3. 扩大设定目标文件夹和选择任务1.1设置目标设备和合成工具

  4. 目标工作流程金宝appSimulink实时FPGA I/O

  5. 目标平台列表,选择安装在您的Speedgoat目标机器上的Speedgoat FPGA I/O板,在本例中Speedgoat IO331.检查HDL工作流顾问是否将合成工具设置为Xilinx®ISE设计套件。

  6. 点击运行这个任务

步骤3。FPGA目标接口配置

您必须已经配置了FPGA目标。

  1. 设定目标文件夹,选择任务1.2设置目标接口

  2. 处理器/ FPGA同步框中,选择自由奔跑

  3. 信号针对hwOut,在目标平台的接口列,选择LVCMOS I/O通道.在范围/地址/ FPGA销列中,输入每个信号的通道值,或采用默认值。

  4. 信号pciReadpciWrite,在目标平台的接口列,选择PCI接口.在范围/地址/ FPGA销列,使用自动生成的值。不要输入PCI地址值。

  5. 点击运行这个任务

步骤4。FPGA目标频率配置

必须已经配置了FPGA目标接口。

  1. 设定目标文件夹,选择任务1.3设置目标频率(可选)。的设置目标频率窗格包含显示FPGA输入时钟频率(固定)和FPGA系统时钟频率的字段。FPGA系统时钟频率默认为FPGA输入时钟频率。

  2. 要指定不同的系统时钟频率(例如,50 MHz),请在字段中键入新值FPGA系统时钟频率(MHz).有关系统时钟速率的允许范围,请参阅Speedgoat板特性表。系统有时会设置一个不同于您指定的值。

  3. 点击运行这个任务

第5步。金宝appSimulink实时接口子系统生成

这个过程为dxpcSGFPGAloopback_fpga示例生成一个接口子系统文件。

为包含不同HDL代码的块分配不同的名称。接口子系统文件的名称直接从块名称派生出来。如果包含不同HDL代码的两个块具有相同的名称,则名称会发生冲突,其中一个块将获得错误的代码。

必须已经配置了FPGA目标接口和所需的目标频率。如果已指定向量导入或输出,则必须已选择Scalarize向量港口复选框。这个复选框在编码风格标签的节点全局设置下,节点HDL代码生成在“配置参数”对话框中。

  1. 扩大下载到目标文件夹,右键单击任务5.2生成Simulink金宝app实时接口

  2. 在此窗格中,单击运行到选定任务

这个动作:

  • 运行剩余的任务。

  • 控件中创建FPGA位流文件hdlsrc文件夹中。Simu金宝applink Real-Time接口子系统在构建和下载过程中引用这个位流文件。

  • 生成一个名为gm_dslrtSGFPGAloopback_fpga_slrt,其中包含Simulink Real-Ti金宝appme接口子系统。

下面是执行此操作后的HDL Coder HDL Workflow Advisor的示例。

生成的接口子系统如图所示。

这个生成的模型包含一个与Simulink FPGA域模型中的子系统同名的掩码子系统。金宝app虽然外观相似,但这个子系统不包含Simulink算法。金宝app相反,算法是在FPGA位流中实现的。您可以从这个子系统引用该算法并将其加载到FPGA中。

步骤6。金宝appSimulink实时域模型

使用Simulink金宝app Real-Time软件,将Simulink或statflow®域模型转换为Simulink Real-Time域模型,并在Speedgoat目标机上执行它,用于实时测试应用程序。创建Speedgoat FPGA接口子系统之后。然后,通过插入接口子系统,可以将FPGA板包含在Simulink Real-Time域模金宝app型中。

  1. 创建一个具有希望用金宝appFPGA算法模拟的功能的Simulink Real-Time域模型。请不要连接FPGA子系统的入口和出口。

  2. 保存模型。

Simu金宝applink实时域模型如图所示。看到示例模型dslrtSGFPGAloopback_slrt

步骤7。金宝appSimulink实时接口子系统集成

在Simuli金宝appnk Real-Time接口子系统掩码中,设置三个参数:

  • 设备指标

  • PCI插槽

  • 样品时间

集成接口子系统:

  1. 在Simuli金宝appnk编辑器中,打开gm_dslrtSGFPGAloopback_fpga_slrt

  2. 复制Simulin金宝appk Real-Time接口子系统并将其粘贴到Simulink Real-Time域模型中。

  3. 保存或丢弃gm_dslrtSGFPGAloopback_fpga_slrt.您可以根据需要使用HDL Coder HDL Workflow Advisor重新创建它。

  4. 在域模型中,将信号连接到接口子系统的导入和输出端口。

  5. 根据Speedgoat目标机器上的FPGA I/O板设置块参数。

  • 如果只有一个FPGA I/O板,请将设备索引和PCI槽保持默认值。您可以设置样本时间或将其设置为1为继承。

  • 如果你有多个FPGA I/O板,给每个板一个唯一的设备索引。

  • 如果您有两个或多个相同类型的单板(例如,两个Speedgoat IO331单板),请为每个单板指定PCI插槽([bus, slot])。使用SimulinkRealTime.target.getP金宝appCIInfo函数获取这些信息。

6保存型号。

更新后的Simulink金宝app实时域模型如下图所示。看到示例模型dslrtSGFPGAloopback_slrt_wiss

步骤8。实时应用程序执行

要完成这个过程,您必须已经创建了一个Simulink Real-Time域模型,其中包括一个由HDL Cod金宝apper HDL Workflow Advisor生成的Simulink Real-Time接口子系统。

  1. 配置Speedgoat目标机并将其连接到开发计算机。

  2. 构建并下载Simulink Real-Time金宝app应用程序。实时应用程序加载到Speedgoat目标机上,FPGA算法位流加载到FPGA上。

  3. 如果您正在使用I/O线(通道),请确认已将这些线连接到正在测试的外部硬件。

Simulink Real-Time模型的启动和停止金宝app控制FPGA算法的启动和停止。FPGA算法按照FPGA I/ O板的时钟频率执行,实时应用程序按照模型采样时间执行。

相关的话题