定义定制板和参考设计的英特尔SoC工作流程
这个例子展示了如何在HDL Coder™Intel®SoC工作流中定义和注册一个自定义板和参考设计。
简介
使用这个例子,您将能够注册Terasic DE1-SoC开发工具包和在HDL工作流顾问中为英特尔SoC工作流定制参考设计。
本例使用Terasic DE-1 SoC,但以同样的方式,您可以为其他英特尔SoC设备定义和注册自定义板或自定义参考设计。
需求
Intel Quartus®Prime,其支持版本列于HDL语言支持和支持的第三方工具和硬件
英特尔SoC嵌入式设计套件
Terasic DE1-SoC开发工具包
用于Intel SoC设备的HDL编码支持包
嵌入式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闪烁频率和方向。