定义自定义板和参考设计的英特尔SoC工作流程
这个例子展示了如何在HDL Coder™Intel®SoC工作流中定义和注册自定义板和参考设计。
简介
通过本例,您将能够在HDL Workflow Advisor中为Intel SoC工作流注册Terasic DE1-SoC开发工具包和自定义参考设计。
本例使用Terasic DE-1 SoC,但以同样的方式,您可以为其他Intel SoC设备定义和注册自定义板或自定义参考设计。
需求
Intel Quartus®Prime,支持的版本列在金宝appHDL语言支持和支持的第三金宝app方工具和硬件
英特尔SoC嵌入式设计套件
Terasic DE1-SoC开发工具包
Intel SoC设金宝app备的HDL编码器支持包
嵌入式Coder®支持包的英特尔金宝appSoC设备
设置英特尔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镜像然后将原始光盘映像文件写入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工具——> Qsys如下图所示
3.选择Cyclone-V硬处理器系统(HPS)&阿尔特拉锁相环从IP目录到创建的Qsys项目的IP。开启HPS-to-FPGA用户0时钟(h2f_user0_clock
)并连接到refclk
Altera锁相环如下图所示
完成硬处理器系统所需的其他设置,如外围引脚设置和模式设置。
4.保持h2f_axi_master
端口连接打开,以便在工作流IP集成过程中连接到DUT IP。完成Altera PLL IP和HPS IP之间的其余连接,如下图所示
5.保存Qsys文件。此文件将在创建参考设计插件时使用。
在HDL Workflow Advisor中注册DE1-SoC板
在本节中,我们概述了在HDL Workflow 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的Pin Planner获得的。
房地产BoardName
定义DE-1 SoC板的名称为Terasic DE1-SoC开发工具包
在HDL工作流顾问。
函数hB = plugin_board()%板定义
构造板对象hB = hdlcode . board;
hB。BoardName =Terasic DE1-SoC开发工具包;
% FPGA设备信息hB。FPGAVendor =“阿尔特拉”;hB。FPGAFamily =“气旋V”;hB。FPGADevice =“5 csema5f31c6”;hB。FPGAPackage =”;hB。FPGASpeed =”;
%工具信息hB。金宝appSupportedTool = {Altera QUARTUS II};
% 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 Workflow 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 . [d, 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”,Altera QUARTUS II);
hRD。ReferenceDesignName =“演示系统)”;hRD。BoardName =Terasic DE1-SoC开发工具包;
%工具信息hRD。金宝appSupportedToolVersion = {“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
之前从Intel 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工作流
前面的部分讨论了在HDL Workflow Advisor中定义和注册Terasic DE1-SoC以及用于SoC工作流的自定义参考设计的步骤。在本节中,我们使用自定义板和参考设计注册系统来生成一个在Terasic DE1-SoC上闪烁led的HDL IP核。
1.将Terasic DE1-SoC注册文件添加到MATLAB路径。
解压缩(“DE1SOC.zip”)目录(genpath (“DE1SOC”));
2.使用命令打开实现L金宝appED闪烁的Simulink模型,
open_system (“hdlcoder_led_blinking”);
使用HDL工作流顾问生成HDL IP核
1.使用HDL workflow Advisor中的IP Core Generation工作流,您可以从Simulink模型自动生成可共享和可重用的IP Core模块。金宝appHDL Coder从Simulink块生成HDL代码,也为连接IP核和嵌入式金宝app处理器的AXI接口逻辑生成HDL代码。HDL Coder将所有生成的文件打包到一个IP核文件夹中。然后,您可以将生成的IP核与英特尔Qsys环境中的更大的FPGA嵌入式设计集成。
2.启动IP核生成工作流。
2.1.中打开HDL Workflow Advisorhdlcoder_led_blinking / led_counter
的led_counter
子系统和选择HDL代码>HDL工作流顾问.
2.2.在设定目标>设置目标设备和合成工具任务,为目标工作流程中,选择IP核生成.
2.3.为目标平台中,选择Terasic DE1-SoC开发工具包.
2.4.点击运行此任务运行设置目标设备和合成工具的任务。
3.在任务1.2中,选择set target reference design default system。点击运行此任务.
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.遵循以下步骤的第一步将IP核与Intel Qsys环境集成的部分开始瞄准英特尔SoC设备在参考设计中集成IP核并创建Qsys项目的示例。
7.现在让我们来看看英特尔Qsys项目创建SoC工作流程后,完成创建项目下任务嵌入式系统集成.下图显示了我们突出显示HDL IP核的SoC项目。将这个项目与以前在自定义参考设计插件中使用的项目进行比较是有指导意义的,以便更深入地理解自定义参考设计和HDL IP核之间的关系。
8.的步骤2、3和4将IP核与Intel Qsys环境集成的部分开始瞄准英特尔SoC设备以生成软件接口模型为例,分别生成FPGA位流和编程目标设备。
9.在加载比特流后,Terasic DE1-SoC上的led将开始闪烁。此外,您还可以通过执行软件界面模型来控制LED闪烁频率和方向。指生成软件接口模型的部分开始瞄准英特尔SoC设备实例从生成的软件界面模型中控制LED闪烁频率和方向。