主要内容

使用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_frequencyBlink_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),或者作为在运行系统上调优参数的一种方法。