主要内容

用fpga在环验证PID控制器的HDL实现

本示例向您展示如何使用HDL Verifier™设置一个FPGA-in-the-Loop (FIL)应用程序。该应用程序使用Simulink®和FPGA金宝app开发板来验证比例-积分-导数(PID)控制器的HDL实现。在本例中,Simulink生成电机金宝app的期望位置,并对该PID控制器控制的电机进行仿真。

要求和前提条件

除了列出的MathWorks产品外,其他需求包括:下载188bet金宝搏

  • FPGA设计软件(Xilinx®ISE®设计套件,或Xilinx®Vivado®设计套件,或Intel®Quartus®II设计软件,或Microsemi®Libero®SoC设计软件)

  • 支持的FPGA开发板之金宝app一。支持的硬金宝app件,请参见金宝appFPGA校验支持的FPGA设备

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

  • 使用JTAG连接:用于Intel FPGA板的USB Blaster I或II电缆和驱动器。Digilent®JTAG电缆和驱动器用于Xilinx FPGA板。

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

先决条件:

MATLAB®和FPGA设计软件既可以安装在您的计算机上,也可以安装在网络可访问的设备上。如果您使用来自网络的软件,则需要在计算机中安装第二个网络适配器,以便为FPGA开发板提供专用网络。要了解如何安装网络适配器,请参阅计算机的硬件和网络指南。

步骤1:搭建FPGA开发板

如果您正在使用PCI Express连接进行模拟,则跳过此步骤和步骤2。如果您还没有设置PCI Express连接,请使用支持包安装软件来指导您完成PCI Express设置。金宝app

使用以下步骤来设置您的FPGA开发板。

  1. 确保电源开关没关

  2. 将交流电源线接到电源插头上。将电源适配器线缆插入FPGA开发板。

  3. 使用交叉网线将FPGA开发板上的以太网连接器直接连接到计算机上的以太网适配器。

  4. 使用JTAG下载线连接FPGA开发板和计算机。

  5. 确保FPGA开发板上的所有跳线都处于出厂默认位置,Microsemi PolarFire除外,因为需要特殊设置。看到安装Microsemi极化火评估套件(Microsemi FPG金宝appA板的HDL验证支持包)

步骤2:建立主机-板机连接

如果您正在使用JTAG连接进行模拟,则跳过此步骤。为了与以太网连接,您的计算机上必须有一个千兆以太网网络适配器才能运行此示例。

在Windows®上,执行以下步骤:

  1. 打开控制面板

  2. 类型查看网络连接在搜索栏。选择查看网络连接在搜索结果中。

  3. 右键单击到FPGA开发板的连接图标并选择属性从弹出式菜单。

  4. 此连接使用以下项中,选择因特网协议第4版(TCP/IPv4)并点击属性

  5. 选择使用如下IP地址:.集IP地址192.168.0.1。如果网络上的另一台计算机正在使用该地址,请将其更改为该子网上的任何可用IP地址,例如192.168.0.100。这是您的主机地址。设置子网掩码255.255.255.0。您的TCP/IP属性现在应该与下图所示相同:

在Linux®:

使用ifconfig命令设置本地地址。例如:

% ifconfig eth1 192.168.0.1

在本例中,eth1是Linux计算机上的第二个以太网适配器。检查您的系统,确定哪个以太网适配器连接到FPGA开发板。本端IP地址设置为192.168.0.1。如果网络上的另一台计算机正在使用该地址,请将其更改为该子网上的任何可用IP地址,例如192.168.0.100。

步骤3:准备资源示例

1.搭建FPGA设计软件

在使用FPGA-in- loop之前,请先设置访问FPGA设计软件的系统环境。你可以使用这个函数hdlsetuptoolpath将ISE、Vivado、Quartus或Libero SoC添加到当前MATLAB会话的系统路径中。下面给出了每个工具的示例命令行。如果是不同的,用实际的可执行文件代替。

对于使用ISE设计软件的Xilinx FPGA板,请执行以下命令:

hdlsetuptoolpath (“ToolName”“Xilinx ISE”“路径”“C: \ Xilinx ISE \ 13.1 \ ISE_DS \ \ bin \ nt64 \ ise.exe”);

对于使用Vivado设计软件的Xilinx FPGA板,执行以下命令:

hdlsetuptoolpath (“ToolName”“Xilinx Vivado”“路径”“C: \ Xilinx \ Vivado \ 2016.4 \ bin \ vivado.bat ');

对于Intel板,运行:

hdlsetuptoolpath (“ToolName”Altera Quartus II“路径”“C: \ \ 16.0 \负责第四的\ bin \ quartus.exe ');

对于Microsemi板,运行:

hdlsetuptoolpath (“ToolName”Microsemi Libero SoC“路径”“C: \ Microsemi \ Libero_SoC_v11.8 \设计\ bin \ libero.exe”);

2.打开fil_pid模型。

该模型包含一个用基本Simulink块实现的定点PID控制器。金宝app该模型还包含由该PID控制器控制的直流电机模型,以及作为输入刺激的所需直流电机位置。

现在运行这个模型,观察在瞄准镜中期望和实际的电机位置。

步骤4:启动fpga -in- loop (FIL)向导

通过以下步骤启动FPGA-in-the-Loop向导:

打开应用程序图库和选择费尔向导代码验证、验证和测试部分。

或者,您也可以在MATLAB命令提示符中输入filWizard命令。

filWizard

步骤5:在FIL向导中指定硬件选项

设置FPGA开发板的FIL选项。

1.指定向导将生成filsimulink块还是FILSimulation MATLAB系金宝app统对象。对于本例,选择金宝appFIL模拟金宝app仿真软件。

2.为董事会的名字,选择与主机相连的FPGA开发板。如果您的电路板不在列表中,请选择以下选项之一:

  • “获取更多单板…”下载FPGA单板支持包(此选项将启动支持包安装程序)。金宝app

  • “创建自定义板…”,为特定的FPGA板创建FPGA板定义文件(此选项将启动新FPGA板管理器)。

3.选择用于模拟的连接。可用的连接方式有Ethernet和JTAG。并非所有单板都支持这两种连接方金宝app式。

4.仅以太网连接:如果您将计算机的IP地址更改为与192.168.0不同的子网。如果默认的单板IP地址192.168.0.2被其他设备占用,请扩容高级选项然后改变单板IP地址根据以下准则:

  • 子网地址一般为单板IP地址的前三个字节,需要与主机IP地址保持一致。

  • 单板IP地址的最后一个字节不能与主机IP地址相同。

  • 单板的IP地址不能与其他计算机的IP地址冲突。

例如,如果主机IP地址是192.168.8.2,那么可以使用192.168.8.3。不要改变单板MAC地址

5.可选:如果您想更改DUT时钟频率从默认值(25MHz),您可以展开高级选项然后改变FPGA系统时钟频率(MHz)

6.点击下一个继续。

步骤6:在FIL向导中指定HDL文件

指定要在FPGA中实现的HDL设计。

1.单击Add并浏览到您在Prepare Example Resources中创建的目录。

2.在pid_hdlsrc目录中选择以下HDL文件:

  • Controller.vhd

  • D_component.vhd

  • I_component.vhd

这些是要在FPGA板上验证的HDL设计文件。

3.在源文件表中,选中文件行上的复选框Controller.vhd以指定该HDL文件包含顶级HDL模块。

“FIL向导”自动填充顶级模块名称字段中显示所选HDL文件的名称;在这种情况下,控制器.在本例中,顶级模块名与文件名匹配,因此不需要更改它。如果顶级模块名称和文件名不匹配,您将在此对话框中手动更正顶级模块名称。

点击下一个继续。

步骤7:在FIL向导中检查I/O端口

FIL向导解析Controller中的顶级HDL模块Controller。vhd获取所有I/O端口并在DUT中显示它们I / O端口表格解析器试图通过查看端口名称自动确定可能的端口类型,并在port Type下显示这些信号。

1.查看端口清单。如果解析器为任何给定端口分配了不正确的端口类型,您可以手动更改信号。对于同步设计,请指定时钟、复位或时钟使能信号。在本例中,FIL向导将自动正确地填充表。

2.点击下一个继续。

步骤8:在FIL向导中设置输出数据类型

1.对于HDL输出control_signal改变数据类型定点标志签署而且部分长度28.这将使生成的FIL块将FPGA待测设计(DUT)的输出信号设置为正确的数据类型。

2.点击下一个继续。

步骤9:检查FIL向导中的构建选项

1.为输出文件指定文件夹。对于本例,使用默认选项,即名为Controller_fil在当前目录下。

总结显示FPGA工程文件和FPGA编程文件的位置。您可能需要这两个文件进行高级操作。

2.点击构建启动构建过程。

在构建过程中,会发生以下操作:

  • 在新的模型中会生成一个名为Controller的FIL块,如下图所示。不要关闭这个模型。

  • 在新模型生成后,FIL向导将打开一个命令窗口,FPGA设计软件将在其中执行合成、拟合、位置和路由、时序分析以及FPGA编程文件生成。

  • 当FPGA设计软件过程完成时,命令行窗口中的一条消息告诉您可以关闭窗口。关闭窗口并执行下一步。

步骤10:设置模型

在fil_pid模型中,替换控制器子系统,并在新模型中生成FIL块。修改后的fil_pid模型现在如下图所示:

步骤11:FPGA编程

1.开关FPGA开发板电源

2.双击fil_pid模型中的FIL块,打开块掩码。

3.在打开的块掩码中,单击负载

如果您的单板通过JTAG线缆与上位机连接正常,则会弹出提示窗口,提示FPGA编程文件加载成功。点击好吧取消这个对话框。

4.仅以太网连接:可以通过ping测试FPGA板与主机是否连接正常。启动命令行窗口,输入以下命令:

C:\MyTests> ping 192.168.0.2

如果您在设置网络适配器时更改了板卡IP地址,请将192.168.0.2替换为您的板卡IP地址。如果千兆以太网连接已经正确建立,您应该会看到来自FPGA开发板的ping应答。

步骤12:查看FIL Block参数

1.在“FIL块掩码”中,单击信号的属性选项卡。

2.验证数据类型HDL信号的control_signal32岁的fixdt (1 28).如果不是,那就改变它。

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

步骤13:执行FIL命令

1.开始模拟fil_pid模型。

2.仿真完成后,在范围内查看电机期望位置和实际位置的波形。注意,FIL模拟的结果应该与您在其中进行模拟的Simulink参考模型的结果相匹配金宝app准备示例资源