开始以英特尔SoC设备为目标

这个例子展示了如何使用软硬件协同设计工作流程在Arrow®SoCKit®评估工具包中闪烁不同频率的led。

介绍

这个例子是一个一步一步的指导,帮助您使用HDL编码器™软件来生成定制的HDL IP核心,闪烁的箭头SoCKit评估套件的LED,并展示了如何使用嵌入式Coder®生成C代码运行在ARM®处理器上,以控制LED闪烁频率。

您可以使用MATLAB®和Simulink®来设万博1manbetx计、模拟和验证您的应用程序,执行带有算法的假设场景,并优化参数。然后,通过决定哪些系统元素将由可编程逻辑执行,以及哪些系统元素将在ARM Cortex-A9上运行,您可以为Altera Cyclone V SoC的硬件和软件实现准备设计。

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

在这个工作流程中,您需要执行以下步骤:

  1. 设置您的Intel SoC硬件和工具。

  2. 分区您的硬件和软件实现设计。

  3. 生成HDL使用工作流顾问的HDL IP核。

  4. 集成IP核到英特尔的Qsys项目和方案的英特尔SoC的硬件。

  5. 生成的软件接口模型。

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

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

欲了解更多信息,请参考其他更先进的例子,和HDL编码器和嵌入式编码的文件。

需求

  1. 的支持版本万博1manbetxHDL编码文档

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

  3. Arrow SoCKit Cyclone V SoC评估试剂盒

  4. HDL编码器支持包英万博1manbetx特尔SoC器件

  5. 嵌入式编码器支持包为英特尔So万博1manbetxC设备

建立英特尔的SoC硬件和工具

1.设置如图所示的Arrow SoCKit评估工具包。要了解更多关于Arrow SoCKit硬件设置,请参阅董事会文件。

1.1设置SW4切换(JTAG chain select),如下图所示。位置1:OFF;位置2:开启。这种配置包括JTAG链中的HPS,并绕过HSMC。

1.2设置JP2如示于下面的调整的I / FPGA / HSMC管脚O标准的附图。短管脚5和6来设置I / O电压到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设置送回在板的背面,如下图所示。该开关设置FPGA配置模式。设置所有6个位置为ON。

1.6使用微USB线将计算机连接到USB UART连接器。确保您的USB设备驱动程序(如FTDI USB to UART)安装正确。如果没有,在网上搜索并安装驱动程序。

1.7用网线把你的电脑和箭牌连接起来。

2.安装HDL编码器和英特尔SoC器件嵌入式编码器支持包,如果你还没有准备好。万博1manbetx要启动安装程序,转到MATLAB工具栏并单击附加组件>获取硬件支持包万博1manbetx。欲了解更多信息,请参阅万博1manbetx支持包安装文档

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

4.成立了由MATLAB命令窗口输入以下命令,箭SoCKit硬件连接:

H = alterasoc

alterasoc函数通过COM端口登录到硬件并运行使用ifconfig命令以获得板的IP地址。该功能还测试了以太网连接。

5.可以使用使用程序如腻子™以下配置任选测试串行连接。波特率:115200;数据位:8;停止位:1;奇偶校验:没有一个;流量控制:没有一个。您应该能够观察到串行控制台时,您的电源循环箭头SoCKit板在Linux上启动日志。您必须关闭使用此之前,串行连接alterasoc函数了。

6。在MATLAB命令窗口中使用以下命令设置了英特尔的Quartus综合工具路径。当你运行该命令使用您自己的Quartus安装路径。

hdlsetuptoolpath(“工具名称”,'Altera公司的Quartus II',“路径”,“C: \ intelFPGA \ 18.0 \第四的\ bin64 \ quartus.exe);

将您的设计划分为硬件和软件实现

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

你想集团所有块可编程逻辑落实到原子子系统。这种原子子系统是您的硬件软件分区的边界。所有这些子系统内的块将可编程逻辑来实现,并且该子系统之外的所有块将ARM处理器上运行。

在本例中,是子系统led_counter是硬件子系统。它的模型,闪烁在FPGA板上的指示灯的计数器。两个输入端口,Blink_frequencyBlink_direction,是决定LED闪烁频率和方向控制端口。所有子系统的外块led_counter用于软件实现。

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

open_system (“hdlcoder_led_blinking_4bit”);

生成使用HDL流程顾问的HDL IP核

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

1.启动IP核生成流程。

1.1。从。打开HDL工作流顾问hdlcoder_led_blinking_4bit / led_counter通过右键单击led_counter子系统,并选择HDL代码>HDL工作流顾问

1.2。设置目标>设定目标设备和综合工具任务,为目标工作流程中,选择IP核生成

1.3。对于目标平台中,选择Arrow SoCKit开发委员会。如果没有此选项,请选择获取更多打开支持包安装程序。万博1manbetx在支持包安装程万博1manbetx序中,选择Intel SoC设备,并按照支持包安装程序提供的说明完成安装。

1.4。点击运行这个任务运行设定目标设备和综合工具的任务。

1.5设置目标>设置目标参考设计任务,选择默认的系统.对于本例,它是默认选择的

1.6。点击运行这个任务运行设置目标参考设计的任务。

2.配置目标接口。

将DUT中的每个端口映射到一个IP核心目标%的接口。在本例中,输入端口*Blink_frequency*和*Blink_direction*%被映射到AXI4接口,所以HDL译码器产生AXI接口访问对他们来说%寄存器。的* LED *输出端口映射到外部接口,% *LED一般用途[0:3]*,它连接到LED硬件上英特尔%的SoC板。%%* 2.1 *在*设置目标*> *设置目标接口*任务,选择* AXI4 **Blink_frequency*、*Blink_direction*和*Read_back*的%。%% *2.2*选择*LED一般用途[0:3]*用于*LED*。%% < < hdlcoder_ip_core_tutorial_alterasoc_interface.png > >%% *2.3*在*设置目标* > *设置目标频率*任务中,选择*目标频率为50 MHz*。%<<%>> hdlcoder_ip_core_tutorial_alterasoc_target_freq.png%%* 3 *生成IP核。%%要生成的IP核,用鼠标右键单击*生成RTL代码和IP核*任务%,并选择*运行到选定的任务*。%% < < hdlcoder_ip_core_tutorial_alterasoc_ipcore.png > >%%* 4 *生成并查看IP核报告。%生成自定义IP核之后,IP核文件位于*ipcore*文件夹中%项目文件夹内。一个HTML自定义IP核心报告与自定义IP核心一起生成。%本报告所描述的行为和生成的自定义IP核的内容。%<<%>> hdlcoder_ip_core_tutorial_alterasoc_report.png

将IP核与Intel Qsys环境集成

在这部分工作流程,您插入生成的IP核为嵌入式系统参考设计,生成FPGA比特流,与串流下载到英特尔的SoC硬件。

该参考设计是一个预定义的Qsys英特尔项目。它包含所有元素的英特尔软件需要部署设计的英特尔SoC器件,除了自定义IP核和嵌入式软件,你产生。

1.为了与英特尔的Qsys环境整合,选择创建项目任务下嵌入式系统集成,然后单击运行这个任务。生成一个Intel Qsys项目和一个Intel Quartus项目,并在对话窗口中提供到这些项目的链接。您可以选择打开项目来查看。

2.如果你有一个嵌入式编码许可,您可以在接下来的任务生成软件界面模式,生成软件接口模型。软件界面模型的细节在这个例子中的下一节,“生成界面模型软件”。

3.建立在FPGA比特流构建FPGA比特流的任务。确保在外部运行构建过程选项被选中,所以英特尔综合工具将在从MATLAB单独的进程中运行。等待合成工具处理到结束在外部指令窗口中运行。

4.生成位流之后,选择计划目标设备的任务。选择下载对于编程方法下载FPGA比特流到英特尔的SoC板SD卡,让您的设计将自动重新加载时,重新打开电源英特尔的SoC板。点击运行这个任务英特尔的SoC硬件编程。

当你编程的FPGA硬件中,指示灯开始闪烁在你的英特尔的SoC板。

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

生成软件接口模型

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

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

跑过生成软件接口模型任务,并查看生成的新模型。任务对话框显示了到模型的链接。

在所生成的软件接口的模型中,“led_counter”子系统被置换成产生ARM处理器和FPGA之间的接口逻辑的AXI驱动程序块。

运行在Intel的SoC硬件软件界面模型

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

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

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

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

  2. 选择求解并设置“停止时间”到“INF”。

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

  4. 双击滑块增益块。改变滑块增益值,观察Intel SoC硬件上LED阵列闪烁频率的变化。双击手动开关块来切换发光二极管的方向。

  5. 属性连接的范围回过头再读输出端口,观察FPGA IP核的输出数据被捕获并发送回Simulink作用域。万博1manbetx

  6. 当您完成改变模型参数,请点击停止按钮在模型上。注意,在前面步骤中打开的系统命令窗口表明模型已经停止。此时,您可以关闭系统命令窗口。

摘要

这个例子显示了如何将硬件和软件协同设计的工作流程可以自动完成您的MATLAB和Simulink设计到英特尔的SoC设备的部署。万博1manbetx您可以探索的最佳途径分区,通过工作流迭代部署设计。

下图显示了您在本例中经历的工作流的高层图。有关软硬件协同设计工作流程的详细信息,请参阅HDL编码文档