主要内容

开始瞄准英特尔SoC设备

此示例显示如何使用硬件-软件协同设计工作流在Arrow®SoCKit®评估套件上以不同频率闪烁LED。

介绍

这个例子是一个逐步指导,帮助您使用HDL编码器™ 用于生成自定义HDL IP核心的软件,该核心使Arrow SoCKit评估工具包上的LED闪烁,并演示如何使用嵌入式编码器®生成在ARM®处理器上运行的C代码,以控制LED闪烁频率。

您可以使用MATLAB®和Simulink®来设万博1manbetx计、模拟和验证您的应用程序,使用算法执行假设情景,并优化参数。然后,您可以通过确定哪些系统元件将由可编程逻辑执行,以及哪些系统将由em元素将在手臂皮质-A9上运行。

使用本例中所示的引导式工作流,您可以使用HDL编码器自动生成可编程逻辑的HDL代码,使用嵌入式编码器为ARM生成C代码,并在Intel SoC设备上实现设计。

在此工作流中,您将执行以下步骤:

  1. 设置英特尔SoC硬件和工具。

  2. 为硬件和软件实现对设计进行分区。

  3. 使用HDL Workflow Advisor生成HDL IP核心。

  4. 将IP核集成到英特尔Qsys项目中,并对英特尔SoC硬件进行编程。

  5. 生成软件接口模型。

  6. 从软件接口模型生成C代码,并在ARM Cortex-A9处理器上运行。

  7. 使用外部模式从英特尔SoC硬件调整参数并捕获结果。

有关更多信息,请参阅其他更高级的示例,以及HDL编码器和嵌入式编码器文档。

要求

  1. 英特尔Quartus Prime,支持的版本列在万博1manbetxHDL编码器文档

  2. 英特尔SoC嵌入式设计套件

  3. Arrow SoCKit Cyclone V SoC评估工具包

  4. 适用于英特尔SoC设万博1manbetx备的HDL编码器支持包

  5. 针对英特尔SoC设备的嵌入式编万博1manbetx码器支持包

设置英特尔SoC硬件和工具

1.如下图所示,设置Arrow SoCKit评估套件。要了解有关Arrow SoCKit硬件设置的更多信息,请参阅电路板文档。

1.1设置SW4开关(JTAG chain select)如下图所示。位置1:关闭;位置2:打开。该配置包括JTAG链中的HPS,并绕过HSMC。

1.2设置JP2如下图所示,调整FPGA/HSMC引脚的I/O标准。短接针脚5和针脚6,将输入/输出电压设置为2.5V。

1.3设置J17-J19如上图所示,从SD卡引导HPS。J17:短插脚1和2;J18:短插脚1和2;J19:短插脚2和3。

1.4设置J15-J16如上图所示,用于HPS时钟设置。J15:短插脚2和3;J16:短插脚2和3。

1.5设置SW6在板的背面,如下图所示。此开关设置FPGA配置模式。将所有6个位置设置为ON。

1.6使用微型USB电缆将计算机连接到USB UART接口。确保您的USB设备驱动程序(如FTDI USB到UART)安装正确。如果没有,请联机搜索并安装驱动程序。

1.7使用以太网电缆连接计算机和箭头插座板。

2.如果尚未安装英特尔SoC设备的HDL编码器和嵌入式编码器支持包,请安装。若要启动万博1manbetx安装工,转到MATLAB工具条并单击附加组件>获取硬件支持包万博1manbetx. 有关更多信息,请参阅万博1manbetx支持包安装文档.

3.确保您使用的是英特尔SoC设备嵌入式编码器支持包提供的SD卡映像。如果需要更新SD卡映像,请参阅万博1manbetx硬件设置部分本文件的附件。

4.通过在MATLAB命令窗口中输入以下命令,设置Arrow SoCKit硬件连接:

h=alterasoc

这个奥特拉索克函数通过COM端口登录到硬件并运行命令命令获取板的IP地址。此功能还测试以太网连接。

5.您可以选择使用PuTTY之类的程序,使用以下配置测试串行连接™. 波特率:115200; 数据位:8.;停止位:1.;平价:没有一个; 流量控制:没有一个. 在关闭Arrow SoCKit板的电源时,您应该能够在串行控制台上观察Linux引导日志。在使用之前,必须先关闭此串行连接奥特拉索克再次发挥作用。

6.在MATLAB命令窗口中,使用以下命令设置“英特尔Quartus合成”工具路径。运行该命令时,请使用自己的Quartus安装路径。

刀具轨迹(“工具名”,“四轮交替II”,“刀具路径”,'C:\intelFPGA\18.0\quartus\bin64\quartus.exe');

为硬件和软件实现对设计进行分区

“英特尔SoC软硬件协同设计”工作流程的第一步是决定设计的哪些部分要在可编程逻辑上实现,哪些部分要在ARM处理器上运行。

将要在可编程逻辑上实现的所有块分组到一个原子子系统中。这个原子子系统是硬件-软件分区的边界。该子系统内的所有模块将在可编程逻辑上实现,该子系统外的所有模块将在ARM处理器上运行。

在本例中,子系统发光二极管计数器是硬件子系统。它模拟了一个计数器,使FPGA板上的LED闪烁。两个输入端口,闪烁频率闪烁方向,是确定LED闪烁频率和方向的控制端口。子系统外部的所有块发光二极管计数器用于软件实现。

在Si万博1manbetxmulink中,可以使用滑动增益手动开关块来调整硬件子系统的输入值。在嵌入式软件中,这意味着ARM处理器通过写入AXI接口可访问寄存器来控制生成的IP核。硬件子系统的输出端口,发光二极管,连接到LED硬件。输出端口,回读,可用于将数据读回处理器。

开放式系统(“hdlcoder\u led\u闪烁\u 4位”);

使用HDL Workflow Advisor生成HDL IP核心

使用HDL workflow Advisor中的IP Core生成工作流,您可以从Simulink模型自动生成可共享和可重用的IP Core模块。生成的IP Core设计为连接到FPGA设备上的嵌入式处理器。HDL编码器从Simulink块生成HDL代码,并为e将IP核连接到嵌入式处理器的AXI接口万博1manbetx逻辑。HDL编码器将所有生成的文件打包到IP核文件夹中。然后,您可以将生成的IP核与Intel Qsys环境中更大的FPGA嵌入式设计集成。

1.启动IP核心生成工作流。

1.1.从中打开HDL工作流顾问hdlcoder\u led\u闪烁\u 4位/led\u计数器通过右键单击发光二极管计数器子系统及其选择硬体描述语言程式码>HDL工作流顾问.

1.2.设定目标>设置目标设备和合成工具任务目标工作流选择IP核心生成.

1.3.对于目标平台选择Arrow SoCKit开发板. 如果没有此选项,请选择得到更多打开支持包安装程序。在支万博1manbetx持包安装程序中,选择“英特尔SoC设备”,然后按照支持包安装程序提供的说明完成安装。

1.4.点击运行此任务运行设置目标设备和合成工具任务

1.5设定目标>设定目标参考设计任务,选择默认系统。在此示例中,默认情况下选择该选项

1.6.点击运行此任务运行设定目标参考设计任务

2.配置目标接口。

将DUT中的每个端口映射到一个IP核心目标接口。在本例中,输入端口闪烁频率闪烁方向映射到AXI4接口,因此HDL编码器为它们生成AXI接口可访问寄存器。这个发光二极管输出端口映射到外部接口,通用发光二极管[0:3],它连接到Intel SoC板上的LED硬件。

2.1设定目标>设置目标接口任务,选择AXI4对于闪烁频率,闪烁方向回读.

2.2选择通用发光二极管[0:3]对于发光二极管.

2.3设定目标>设定目标频率任务,选择目标频率为50兆赫.

3.生成IP核心。

要生成IP核心,请右键单击生成RTL代码和IP核任务并选择运行到所选任务.

4.生成并查看IP核心报告。

生成自定义IP核心后,IP核心文件位于知识产权核项目文件夹中的文件夹。将与自定义IP核心一起生成HTML自定义IP核心报告。该报告描述生成的自定义IP核心的行为和内容。

将IP核与Intel Qsys环境集成

在工作流程的这一部分中,将生成的IP核插入嵌入式系统参考设计,生成FPGA位流,并将位流下载到英特尔SoC硬件。

参考设计是一个预定义的英特尔Qsys项目。它包含英特尔软件将设计部署到英特尔SoC设备所需的所有元素,但生成的自定义IP核和嵌入式软件除外。

1.要与英特尔Qsys环境集成,请选择创建项目任务嵌入式系统集成,然后单击运行此任务. 将生成“英特尔Qsys”项目和“英特尔Quartus”项目,并在对话框窗口中提供指向这些项目的链接。您可以选择打开项目进行查看。

2.如果您有嵌入式编码器许可证,您可以在下一个任务中生成软件接口模型,生成软件接口模型. 软件接口模型的详细信息将在本示例的下一节“生成软件接口模型”中解释。

3.构建FPGA比特流任务确保从外部运行构建过程选项已选中,因此“英特尔合成工具”将在与MATLAB分离的过程中运行。等待合成工具进程在外部命令窗口中完成运行。

4.生成比特流后,选择程序目标设备任务选择下载对于编程方法将FPGA位流下载到英特尔SoC板上的SD卡上,以便在英特尔SoC板断电时自动重新加载设计。点击运行此任务对英特尔SoC硬件进行编程。

编程FPGA硬件后,英特尔SoC板上的LED开始闪烁。

接下来,您将生成在ARM处理器上运行的C代码,以控制LED闪烁频率和方向。

生成软件接口模型

在HDL Workflow Advisor中,生成IP core并将其插入Qsys参考设计后,可以选择在中生成软件接口模型嵌入式系统集成>生成软件接口模型任务

软件界面模型包含在软件中运行的设计部分。它包括HDL子系统之外的所有块,并用AXI驱动程序块替换HDL子系统。如果您拥有嵌入式编码器许可证,您可以从软件接口模型自动生成嵌入式代码,构建它,并在ARM处理器上的Linux上运行可执行文件。生成的嵌入式软件包括从AXI驱动程序块生成的AXI驱动程序代码,用于控制HDL IP核心。

运行生成软件接口模型任务,并查看是否生成了新模型。“任务”对话框显示指向模型的链接。

在生成的软件接口模型中,“led_计数器”子系统被替换为AXI驱动块,该驱动块生成ARM处理器和FPGA之间的接口逻辑。

在英特尔SoC硬件上运行软件接口模型

在工作流程的这一部分中,您将配置生成的软件接口模型,自动生成嵌入式C代码,并在ARM处理器上以英特尔SoC硬件的外部模式运行模型。

当您对算法进行原型设计和开发时,在算法在硬件上运行时监视和调优算法是非常有用的。Simulink中的外部模式功能支持此功能。在此模式下,算法首先部署到Intel SoC硬件中的ARM处理器,然后通过以太网连接与主机上的Simulink模型链接。万博1manbetx

Simulink模型的主要作用是调整和监控万博1manbetx硬件上运行的算法。由于ARM处理器通过AXI接口连接到HDL IP核,因此您可以使用外部模式调整参数,并从FPGA捕获数据。

  1. 在生成的模型中,打开配置参数对话框。

  2. 选择解算器并将“停止时间”设置为“inf”。

  3. 硬件菜单中,单击监视和调谐按钮,在英特尔SoC硬件的ARM处理器上以外部模式运行您的模型。嵌入式编码器构建模型,将ARM可执行文件下载到英特尔SoC硬件,执行它,并将模型连接到英特尔SoC硬件上运行的可执行文件。

  4. 双击滑动增益块。更改滑块增益值并观察Intel SoC硬件上LED阵列闪烁频率的变化。双击手动开关块以切换闪烁LED的方向。

  5. 双击连接到服务器的作用域回读输出端口,观察FPGA IP核的输出数据是否被捕获并发送回Simulink示波器。万博1manbetx

  6. 修改完模型参数后,单击停止按钮。请注意,在上一步中打开的系统命令窗口表示模型已停止。此时,您可以关闭系统命令窗口。

总结

此示例显示了硬件和软件协同设计工作流如何帮助将MATLAB和Simulink设计自动部署到Intel SoC设备。通过迭代工作流,您可以探索划分和部署设计的最佳方法。万博1manbetx

下图显示了您在此示例中执行的工作流的高级图片。要了解有关硬件和软件协同设计工作流的更多信息,请参阅HDL编码器文档.