主要内容

定义定制板和参考设计的英特尔SoC工作流程

这个例子展示了如何在HDL Coder™Intel®SoC工作流中定义和注册一个自定义板和参考设计。

简介

使用这个例子,您将能够注册Terasic DE1-SoC开发工具包和在HDL工作流顾问中为英特尔SoC工作流定制参考设计。

本例使用Terasic DE-1 SoC,但以同样的方式,您可以为其他英特尔SoC设备定义和注册自定义板或自定义参考设计。

需求

  1. Intel Quartus®Prime,其支持版本列于HDL语言支持和支持的第三方工具和硬件

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

  3. Terasic DE1-SoC开发工具包

  4. 用于Intel SoC设备的HDL编码支持包

  5. 嵌入式Coder®支持包的英特尔SoC设备

设置Intel SoC硬件和工具

1.通过阅读板参考手册,了解Terasic DE1-SoC上可用的功能。

2.设置Terasic DE1-SoC如下图所示:

3.确保您已经正确安装USB COM端口设备驱动程序在您的计算机上。

4.将Terasic DE1-SoC上的UART和USB爆破口连接到您的计算机。

5.使用以太网线将Terasic DE1-SoC连接到计算机。默认的Terasic DE1-SoC IP地址为192.168.1.101

6.下载Terasic DE1-SoC Linux映像解压GZ文件,然后将原始磁盘映像文件写入microSD卡。将microSD卡插入连接器J11

7.使用以下命令设置Intel Quartus工具路径:

hdlsetuptoolpath('ToolName', 'Altera Quartus II', 'ToolPath', 'C:\intelFPGA\20.1.1\ Quartus \bin64\ Quartus .exe');

执行该命令时,请使用您自己的Intel Quartus安装路径。

8.使用以下命令建立Terasic DE1-SoC硬件连接:

h = alterasoc (“192.168.1.101”“根”“cyclonevsoc”);

参考设计创建使用英特尔Quartus Prime

参考设计捕获了SoC设计的完整结构,定义了不同的组件及其互连。HDL Coder SoC工作流生成一个与参考设计集成的IP核,然后用来编写SoC板。下图描述了参考设计、HDL IP核和SoC板之间的关系

在本节中,我们将概述使用Intel Quartus和QSys环境创建和导出简单参考设计所需的基本步骤。有关QSys系统集成工具的更多信息,请参考Altera®/Intel文档。

1.使用新建项目向导创建一个空Quartus项目,设备部件号如下图所示

2.通过导航初始化Quartus中的Qsys工具- >转换频率如下图所示

3.选择Cyclone-V硬处理器系统阿尔特拉锁相环IP从IP目录到创建的Qsys项目。启用HPS-to-FPGA用户0时钟(h2f_user0_clock)并连接到refclk的Altera PLL,如下图所示

完成硬处理器系统所需的其他设置,如外设引脚设置和模式设置。

4.保持h2f_axi_master打开端口连接,以便在工作流IP集成过程中连接到DUT IP。完成Altera PLL IP和HPS IP之间的其余连接,如下图所示

5.保存Qsys文件。当你创建参考设计插件时,这个文件将被使用。

在HDL工作流Advisor中注册DE1-SoC板

在本节中,我们概述了在HDL工作流Advisor中注册Terasic DE1-SoC开发工具包所需的步骤。

1.创建一个带有该名称的板注册文件hdlcoder_board_customization.m并将其添加到MATLAB®路径。

单板注册文件包含单板插件列表。板插件是一个MATLAB包文件夹,包含板定义文件和所有与板相关的参考设计插件。

下面的代码描述了包含单板插件的单板注册文件的内容DE1SoCRegistration在HDL Workflow Advisor中注册Terasic DE1-SoC开发工具包。

函数r = hdlcoder_board_customization单板插件注册文件% 1。任何在MATLAB路径上具有此名称的注册文件都将被获取% 2。的位置返回一个单元格数组%板插件% 3。板插件必须是一个包文件夹从MATLAB路径访问,%,包含一个板定义文件
r = {...“DE1SoCRegistration.plugin_board”...};结束

2.创建板定义文件。

单板定义文件包含SoC单板的相关信息。

下面的代码描述了DE1-SoC板定义文件的内容plugin_board.m驻留在板插件内DE1SoCRegistration

有关FPGA I/O引脚位置的信息(“FPGAPin”)及标准(“IOSTANDARD”)从Intel Quartus-II的引脚规划器中获取。

房地产BoardName定义DE-1 SoC板的名称为Terasic DE1-SoC开发工具包在HDL工作流顾问。

函数hB = plugin_board ()%板定义
%构造板对象hB = hdlcoder.Board;
hB。BoardName =“Terasic DE1-SoC开发工具包”
% FPGA设备信息hB。FPGAVendor =“阿尔特拉”;hB。FPGAFamily =“气旋V”;hB。FPGADevice =“5 csema5f31c6”;hB。FPGAPackage ='';hB。FPGASpeed =''
%的工具信息hB。SupportedTool = {“阿尔特拉第四的二世”};
% FPGA JTAG链位置hB。JTAGChainPosition = 2;
% %添加接口标准“外部端口”接口hB.addExternalPortInterface (...“IOPadConstraint”, {”IO_STANDARD 2.5 v”});
自定义单板外部I/O接口hB.addExternalIOInterface (...“InterfaceID”led通用的...“InterfaceType”“出”...“PortName”gpl授权的...“PortWidth”10...“FPGAPin”, {“V16”“W16”“15,17”“V18”“W17”“W19”“Y19”“W20”“21”“Y21”},...“IOPadConstraint”, {”IO_STANDARD 3.3 - v LVTTL”});
hB.addExternalIOInterface (...“InterfaceID”“开关”...“InterfaceType”“在”...“PortName”“西南”...“PortWidth”10...“FPGAPin”, {“AB12”“AC12”“AF9”“AF10”“AD11”“AD12”“AE11”“AC9”“AD10”“AE12”},...“IOPadConstraint”, {”IO_STANDARD 3.3 - v LVTTL”});
hB.addExternalIOInterface (...“InterfaceID”“按钮”...“InterfaceType”“在”...“PortName”“关键”...“PortWidth”4...“FPGAPin”, {“AA14”“AA15”“W15”“造成”},...“IOPadConstraint”, {”IO_STANDARD 3.3 - v LVTTL”});

在HDL工作流Advisor中注册自定义参考设计

在本节中,我们概述在HDL Workflow Advisor中注册定制参考设计所需的步骤。

1.创建一个名为hdlcoder_ref_design_customization.m包含与SoC板相关的参考设计插件列表。

参考设计插件是一个MATLAB包文件夹,包含参考设计定义文件和所有与SoC设计项目相关的文件。参考设计注册文件还必须包含相关板的名称。

下面的代码描述了包含参考设计插件的DE1-SoC参考设计注册文件的内容DE1SoCRegistration.qsys_base_170与董事会相关Terasic DE1-SoC开发工具包

函数[rd, boardName] = hdlcoder_ref_design_customization . [rd, boardName] = hdlcoder_ref_design_customization .%参考设计插件注册文件% 1。板插件文件夹中带有此名称的注册文件%将被拾取% 2。任何在MATLAB路径上具有此名称的注册文件也将被拾取% 3。的位置返回一个单元格数组%参考设计插件% 4。注册文件还返回与其关联的板名% 5。参考设计插件必须是一个可访问的包文件夹MATLAB的路径,并包含一个参考设计定义文件
rd = {“DE1SoCRegistration.qsys_base_170.plugin_rd”...};
boardName =“Terasic DE1-SoC开发工具包”结束

2.创建参考设计定义文件。

参考设计定义文件定义了自定义参考设计和HDL IP核之间的接口,该接口将由HDL Coder SoC工作流生成。

下面的代码描述了DE1-SoC参考设计定义文件的内容plugin_rd.m与董事会相关Terasic DE1-SoC开发工具包它驻留在参考设计插件中DE1SoCRegistration.qsys_base_170.房地产ReferenceDesignName将参考设计的名称定义为演示系统在HDL工作流顾问。

函数hRD = plugin_rd ()%参考设计定义
构造参考设计对象hRD = hdlcoder。ReferenceDesign (“SynthesisTool”“阿尔特拉第四的二世”);
hRD。ReferenceDesignName =“演示系统)”;hRD。BoardName =“Terasic DE1-SoC开发工具包”
%的工具信息hRD。SupportedToolVersion = {“17.0”“17.1”};
添加自定义设计文件%添加自定义Qsys设计hRD.addCustomQsysDesign (...“CustomQsysPrjFile”“system_soc.qsys”);
% %添加接口%添加时钟接口hRD.addClockInterface (...“ClockConnection”“pll_0.outclk0”...“ResetConnection”“hps_0.h2f_reset”...“DefaultFrequencyMHz”, 50岁,...“MinFrequencyMHz”5,...“MaxFrequencyMHz”, 500,...“ClockModuleInstance”“pll_0”...“ClockNumber”, 0);
%增加AXI4和AXI4- lite从接口hRD.addAXI4SlaveInterface (...“InterfaceConnection”“hps_0.h2f_axi_master”...“BaseAddress”“0 x0000”);

DE1-SoC参考设计插件文件夹DE1SoCRegistration.qsys_base_170必须包含Qsys文件system_soc.qsys之前从英特尔Quartus Prime项目中保存的。DE1-SoC参考设计定义文件plugin_rd.m通过以下语句标识SoC设计项目文件:

hRD.addCustomQsysDesign (“CustomQsysPrjFile”“system_soc.qsys”);

除了SoC设计项目文件,plugin_rd.m还通过语句定义了自定义参考设计和HDL IP核之间的接口连接,如下图所示:

hRD.addClockInterface (...“ClockConnection”“pll_0.outclk0”...“ResetConnection”“hps_0.h2f_reset”...“DefaultFrequencyMHz”, 50岁,...“MinFrequencyMHz”5,...“MaxFrequencyMHz”, 500,...“ClockModuleInstance”“pll_0”...“ClockNumber”, 0);hRD.addAXI4SlaveInterface (...“InterfaceConnection”“hps_0.h2f_axi_master”...“BaseAddress”“0 x0000”);

执行Terasic DE1-SoC的SoC工作流程

前面的章节讨论了定义和注册Terasic DE1-SoC的步骤,以及在HDL工作流Advisor中为SoC工作流定制的参考设计。在本节中,我们使用自定义板和参考设计注册系统来生成一个HDL IP核,该核可以在Terasic DE1-SoC上闪烁led。

1.将Terasic DE1-SoC注册文件添加到MATLAB路径中。

解压缩(“DE1SOC.zip”)目录(genpath (“DE1SOC”));

2.使用命令打开实现LED闪烁的Simulink模型,

open_system (“hdlcoder_led_blinking”);

使用HDL工作流顾问生成一个HDL IP核

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

2.启动IP核生成工作流。

2.1.打开HDL Workflow Advisorhdlcoder_led_blinking / led_counter通过右键单击led_counter子系统,并选择HDL代码>高密度脂蛋白工作流顾问

2.2.设定目标>设置目标装置和合成工具任务,为目标工作流程中,选择IP核心代

2.3.目标平台中,选择Terasic DE1-SoC开发工具包

2.4.点击运行这个任务运行设置目标装置和合成工具的任务。

3.在任务1.2中,设置目标参考设计默认系统被选中。点击运行这个任务

4.配置目标接口。

将DUT中的每个端口映射到一个IP核心目标接口。在本例中,输入端口Blink_frequency而且Blink_direction被映射到AXI4.的领导输出端口映射到外部接口,led通用[0:9],连接到Terasic DE1-SoC开发工具包上的LED硬件。

5.按照步骤3和步骤4使用HDL工作流顾问生成一个HDL IP核的部分开始瞄准英特尔SoC设备使用实例生成IP核,并查看IP核生成报告。

6.按照第1步将IP核与Intel Qsys环境集成的部分开始瞄准英特尔SoC设备在参考设计中集成IP核的实例,并创建Qsys项目。

7.现在,让我们在完成SoC工作流之后检查一下Intel Qsys项目创建项目下任务嵌入式系统集成.下图显示了SoC项目,其中我们突出显示了HDL IP Core。将这个项目与在定制参考设计插件中使用的前一个项目进行比较,可以更深入地理解定制参考设计和HDL IP Core之间的关系,这是有指导意义的。

8.按照步骤2、3和4将IP核与Intel Qsys环境集成的部分开始瞄准英特尔SoC设备实例生成软件接口模型,分别生成FPGA位流和程序目标设备。

9.Terasic DE1-SoC上的led会在加载比特流后开始闪烁。此外,您还可以通过执行软件接口模型来控制LED闪烁的频率和方向。指生成一个软件接口模型的部分开始瞄准英特尔SoC设备示例从生成的软件界面模型控制LED闪烁频率和方向。

Baidu
map