使用IP核生成工作流在Intel纯FPGA板上访问DUT寄存器
这个例子展示了如何使用HDL Coder™IP核心生成工作流来开发英特尔®部件的参考设计,这些部件不使用嵌入式ARM®处理器,但仍然使用HDL Coder生成的AXI接口来控制被测设计(DUT)。本例使用HDL Verifier™AXI Manager IP通过启用参考设计参数选项来访问HDL Coder生成的DUT寄存器插入JTAG AXI管理器.然后,您可以直接从MATLAB®访问DUT寄存器。或者,您可以使用Intel Qsys JTAG到Avalon®Master Bridge IP在Qsys系统控制台中使用Tcl命令访问FPGA寄存器。对于Intel JTAG AXI Master,必须创建自定义参考设计。FPGA设计在Arrow®DECA MAX®10 FPGA评估套件上实现。
需求
Intel Quartus Prime,其支持版本列于金宝appHDL语言支持和支持的第三金宝app方工具和硬件
Arrow DECA MAX 10 FPGA评估套件
用于Intel FP金宝appGA板的HDL编码器支持包
用于Intel FPGA板金宝app的HDL验证器支持包
用于Intel So金宝appC设备的HDL编码器支持包(仅当您想将IP核集成到您自己的自定义参考设计时需要)
箭头DECA MAX 10 FPGA评估套件
此图显示了Arrow DECA MAX 10 FPGA评估套件。
参考设计示例
在不使用嵌入式ARM处理器或嵌入式Coder™支持包的情况下,可以从使用HDL Coder IP核生成工作流中受益,但仍然利用HDL Coder生成的AXI4寄存器的设计可以包括这些IP集之一。金宝app
HDL验证器AXI Manager + HDL编码器IP核
JTAG Master + HDL Coder IP Core
Nios®II + HDL编码器IP核
PCIe®端点+ HDL编码器IP核
此示例包含两个参考设计。
默认系统参考设计使用MathWorks®IP和MATLAB命令行接口,通过启用参考设计参数选项来发出读和写命令插入JTAG AXI管理器.要使用此参数,您必须拥有HDL验证器产品。
Intel JTAG to AXI Master参考设计为JTAG to AXI Master使用Quartus IP,并要求使用Quartus Tcl控制台发出读和写命令。
这两种参考设计的区别仅仅在于它们使用的JTAG Manager IP,如图所示。
HDL验证器AXI管理器参考设计
在HDL工作流顾问的IP核生成工作流中,在设定目标参考设计步骤,选择插入JTAG AXI管理器(需要HDL验证器)该选项将AXI Manager IP自动添加到参考设计中,并使用AXI4-slave接口将添加的IP连接到DUT IP。下一节详细介绍在参考设计中自动插入JTAG AXI Manager IP的步骤。
执行IP Core工作流
按照以下步骤执行Default System参考设计的IP核心工作流,该设计使用JTAG AXI Manager IP。使用这个参考设计,您可以生成一个HDL IP核,在DECA板上闪烁led。要生成HDL IP核,请遵循以下步骤。
1.设置Intel Quartus®工具路径。通过在MATLAB中执行此命令,使用您自己的Intel Quartus安装路径。
hdlsetuptoolpath (“ToolName”,'Altera QUARTUS II',...“路径”,“C: \ intelFPGA \ 20.1 \第四的\ bin64 \ quartus.exe);
2.在MATLAB中执金宝app行此命令,打开实现LED闪烁的Simulink模型。
open_system (“hdlcoder_led_blinking”)
3.启动HDL工作流顾问hdlcoder_led_blinking / led_counter
通过右键单击led_counter
子系统与选择HDL代码紧随其后的是HDL工作流顾问.
4.在步骤1.1中,选择目标工作流程作为IP核生成
而且目标平台作为Arrow DECA MAX 10 FPGA评估套件
.点击运行此任务.
5.在步骤1.2中,选择参考设计作为默认的系统
.下参考设计参数中,选择插入JTAG AXI管理器(需要HDL验证器)作为在
.
6.在步骤1.3中,分配Blink_frequency
,Blink_direction
而且Read_back
端口到AXI4接口。分配领导
港口led通用[0:7]
.
7.运行工作流中的其余步骤来生成位流并为目标设备编程。
从IP核报告中确定地址
HDL Coder IP核的基址定义为0 x00000000
默认系统参考设计,它使用AXI Manager IP。您可以在生成的IP核报告中看到地址设置,如图所示。
IP核报表寄存器地址映射表显示偏移量。
HDL验证器命令行接口
如果您有用于Intel FPGA板的HDL验证器支持包,并金宝app选择AXI Manager参考设计,那么您可以使用MATLAB命令行接口访问由HDL Coder产品生成的IP核。
要从DDR内存中写入和读取数据,请执行以下步骤。
1.创建一个AXI管理器对象。
H = H (“阿尔特拉”)
2.发出写命令。例如,禁用DUT。
h.writememory (“4”, 0)
3.重新启用DUT。
h.writememory (“4”,1)
4.读取当前计数器值。
h.readmemory (“108”,1)
5.删除该对象以释放JTAG资源。如果不删除该对象,则其他JTAG操作(如FPGA编程)将失败。
删除(h)
Intel JTAG到AXI Master参考设计
创建自定义参考设计以在参考设计中使用Intel JTAG到AXI Master IP,然后使用目录
命令。
通过使用在参考设计插件文件中定义的基址,使用Intel JTAG访问HDL Coder IP核寄存器到AXI Master IP。
Qsys系统控制台用于AXI读写的Tcl命令
在打开系统控制台之前,请选择合适的Qsys读写命令。对于本例,因为所有HDL Coder生成的IP核寄存器目前都是32位的,所以使用这些读和写命令。
% master_read_32< 32位值列表> % master_read_32 < 32位倍数大小>
例如,使用先前定义的存储在变量中的服务路径,将32位十六进制值0x12345678写入由偏移量0x100定义的IP核寄存器jtag美元
.
% master_write_32 $jtag 0x100 0x12345678
在生成读和写操作之前,必须首先启动一个系统控制台,并打开到发出寄存器读和写操作的JTAG Master的连接。
要打开到JTAG Master的连接,首先设置一个存储服务路径的变量(在本例中,只有一个Master存在)。
% set jtag [lindex [get_service_paths master] 0]
使用该变量在主模式下打开JTAG Master。
% open_service master $jtag
启动Altera®系统控制台并输入命令打开JTAG Master。
系统(C: \ intelFPGA \ 17.1 \第四的\ sopc_builder \ bin \ system-console&”)
在使用完JTAG Master之后,使用这个Tcl命令关闭连接。
Close_service master $jtag
总结
您可以使用JTAG AXI Manager在没有嵌入式ARM处理器的系统(如MAX 10)中与HDL Coder IP核寄存器进行接口。您可以使用此IP作为调试独立HDL Coder IP核的第一步,而不是用于软处理器的手动编码软件(如Nios II),或者作为在运行系统上调优参数的一种方法。