主要内容

使用FIL源块进行算法验证

此示例显示如何使用FPGA-In-in-Loop(FIL)快速有效地验证HDL设计。测试台与测试下的设计合成(DUT),结果下载到FPGA板,并使用FIL运行测试。使用FIL for此过程可实现高速生成和测试刺激处理,结果返回以Simulink进行分析。金宝app此示例对图像处理用例执行这些任务。

需求

此示例所需的工具:

  • 信号处理工具箱

  • FPGA设计软件

  • 其中一个支持的FPGA金宝app开发板和附件(不支持此示例不支持ML403板)。有关支持硬件的更多信息,请参阅金宝app金宝app支持FPGA设备,用于FPGA验证

  • 有关使用以太网的连接:主计算机上安装了千兆以太网适配器,千兆以太网交叉电缆

  • 有关使用JTAG的连接:USB Blaster I或II电缆和用于英特尔FPGA板的驱动器。DigIlent®JTAG电缆和Xilinx FPGA板的驱动器。

  • 有关使用PCIExpress®的连接:FPGA板安装到主机的PCI Express插槽中。

Sobel边缘检测

sobel_edge_hardware子系统是要在FPGA中合成的算法。刺激是包含图像(停止标志)的GIF文件。在该示例中,图像在FPGA内部移动以及算法,为该FPGA设计创建了FIL块。

实现该技术采取的步骤在模型中示出fil_sobel_model..在此模型中,GIF文件由查找表包含,并且计数器用于扫描图像中的线路并将其发送到算法。将FIL块并行地与行为块并行添加到模型中,以便能够将FPGA的输出直接检查在行为模型中作为结果分析的简单示例。单击按钮以打开模型。

生成HDL代码

如果您有HDL编码器,可以使用HDL工作流程顾问或配置参数UI为“SobelEdge_FPGA”子系统生成代码(有关更多信息,请参阅HDL编码器文档)。

如果您没有HDL编码器,则可以使用当前目录中的预生成的HDL文件。

设置FPGA设计软件

在使用FPGA in-the- loop之前,请确保您的系统环境已正确设置,以便访问FPGA设计软件。你可以使用这个函数hdlsetuptoolpath将FPGA设计软件添加到系统路径中,用于当前MATLAB会话。

配置和构建fpga在环

FIL向导指导您配置构建fpga在循环中所必需的设置。使用以下命令启动向导:

filWizard;

1.在硬件选项中,选择连接到主机的FPGA开发板。如有必要,您还可以在高级选项下自定义电路板IP和MAC地址。点击下一个继续。

2.在源文件中,将以下为设计生成的HDL文件添加到源文件表中浏览

SobelEdge_FPGA。DualPortRAM_128x9b vhd。vhd DualPortRAM_128x9b_block。vhd sobel_edge_eml。vhd sobel_edge_hardware。vhd SobelEdge_FPGA_pkg。vhd u_d_ram。vhd u_d_ram_block.vhd

选中旁边的顶级复选框SobelEdge_FPGA.点击下一个继续。

3.在DUT I / O端口,输入和输出端口信息(例如端口名称,方向,宽度和端口类型)自动生成HDL文件。基于端口名称生成的端口类型,例如时钟和数据;您可以根据需要更改选择。对于此示例,所生成的端口类型正确,您可以单击下一个

4.在“生成选项”中,指定用于FIL输出文件的文件夹。本例中可以使用默认值。点击构建.点击构建导致FIL向导为FPGA-In-Loop仿真生成所有必要的文件,并执行以下操作:

  • 在新的Simulink®模型中生成FIL块金宝app

  • 打开命令行窗口编译FPGA项目并生成FPGA编程文件

FPGA项目编译过程需要几分钟。完成过程后,系统将提示您关闭命令行窗口。立即关闭此窗口。

配置FIL块

要准备fpga在循环中的模拟,请按照以下步骤配置FIL块。

1.打开试验台模型fil_sobel_model.并将生成的fil块复制到模型中。

2.双击FIL块以打开块掩码。点击负载使用生成的编程文件编程FPGA。

3.在运行时选择,更改超频的因素为1。这指定每个输入值在输入值改变之前由FPGA时钟采样一次。

4.将输出帧大小设置为20000。

5.在FIL块掩码上,单击Signal Attributes选项卡。将out1的数据类型更改为布尔来匹配行为Sobel块的数据类型。

5.点击好吧关闭块掩码。

结果

本示例中提供的模型将比较从行为块获得的结果与从FPGA获得的结果。您可以运行该模型并观察等价性。您还可以通过创建一个只包含行为路径的新模型和另一个只包含带有FIL块的路径的新模型,来观察行为模拟和FIL模拟的相对模拟性能。分别运行这些模型:

Tic;sim(your_model_name);TOC.

您可以看到,FIL更快。这是因为20000个样本只有一个FIL函数调用,而行为模型需要20000个函数调用来处理所有数据。因此,如果图像的大小更大,您将获得更好的性能。此步骤结束此示例。