主要内容

访问FPGA的外部内存使用MATLAB作为阿喜的主人

这个例子展示了如何使用MATLAB®AXI大师来访问外部DDR记忆连接到一个FPGA。FPGA设计实例化一个英特尔®DDR内存控制器访问DDR记忆。这个内存控制器提供了一个内存映射的奴隶从FPGA接口来读和写操作。MATLAB作为AXI主功能提供了一个阿喜主IP允许MATLAB访问任何内存映射从FPGA IP。在这个例子中,我们将演示如何集成JTAG MATLAB作为AXI主IP或MATLAB作为AXI主IP以太网转换频率设计,然后从MATLAB DDR内存读写。

需求

  • 第四的英特尔®'软件中列出支持的版本金宝app金宝appEDA工具和硬件支持

  • 英特尔®箭十马克斯®10 FPGA开发工具包

  • 高密度脂蛋白校验™为英特尔F金宝appPGA板支持包

  • USB-Blaster II™下载电缆

  • 以太网电缆

设置为使用JTAG MATLAB作为阿喜的主人

步骤1:设置FPGA板。确保十板连接到主机通过USB JTAG电缆。

步骤2:准备示例在MATLAB

建立了英特尔第四的刀位轨迹。使用自己的英特尔第四的'执行命令时安装路径。例如:

hdlsetuptoolpath (“ToolName”,“阿尔特拉第四的二世”,“路径”,“C: \ intelFPGA \ 18.0 \第四的\ bin64 \ quartus.exe);

对于这个例子创建一个第四的项目。tcl脚本创建第四的项目,将设计文件添加到项目中。

系统(“quartus_sh - t create_project_deca.tcl”)

这个命令需要几秒钟才能完成。当它完成后,一个名为“aximaster_deca第四的项目。qpf”是当前目录中创建。

步骤3:配置第四的主要项目使用MATLAB作为阿喜的主人。将IP复制到项目目录使用以下命令:

setupAXIMasterForQuartus (“aximaster_deca.qpf”)

接下来,打开在GUI模式生成的第四的项目。您可以双击项目文件浏览器,或在MATLAB中执行这个命令:

系统(“第四的aximaster_deca。qpf &’)

步骤4:检查JTAG MATLAB作为AXI主IP在转换频率设计(可选)

在第四的GUI,打开转换频率设计文件系统。转换频率、检查MATLAB作为AXI主IP是如何连接到DDR控制器。

第五步:生成FPGA FPGA编程文件和程序。要生成FPGA编程文件,单击“开始编译”按钮在第四的质数。

生成编程文件之后,在MATLAB程序FPGA使用以下命令:

filProgramFPGA (“阿尔特拉”,“output_file / aximaster_deca.sof”,1)

设置为使用以太网MATLAB作为阿喜的主人

步骤1:设置FPGA板。确保十板连接到主机通过USB导火线II下载电缆和网线。

步骤2:准备示例在MATLAB。

建立了英特尔第四的刀位轨迹。使用自己的英特尔第四的'执行命令时安装路径。例如:

hdlsetuptoolpath (“ToolName”,“阿尔特拉第四的二世”,“路径”,“C: \ intelFPGA \ 18.0 \第四的\ bin64 \ quartus.exe);

对于这个例子创建一个第四的项目。这个tcl脚本将创建第四的项目,并将我们创建的设计文件添加到项目中

系统(“quartus_sh - t create_project_eth_deca.tcl”)

当它完成后,一个名为“eth_aximaster_deca第四的项目。qpf”是当前目录中创建。

步骤3:配置第四的主要项目使用以太网MATLAB作为阿喜的主人。将IP复制到项目目录使用以下命令:

setupAXIMasterForQuartus (“eth_aximaster_deca.qpf”)

接下来,打开在GUI模式生成的第四的项目。在文件浏览器中双击该项目,或在MATLAB中执行这个命令:

系统(“第四的eth_aximaster_deca。qpf &’)

步骤4:检查以太网MATLAB作为AXI主IP在转换频率设计(可选)

在第四的GUI,打开aximaster转换频率的设计文件。转换频率、检查MATLAB作为AXI主IP是如何连接到DDR控制器。

基于以太网的MATLAB作为AXI主IP分配目标的起始IP地址转换成192.168.1.2和UDP端口50101的价值。这些值可以改变通过双击ethernet_mac_hub_IP转换频率。

第五步:生成FPGA FPGA编程文件和程序。要生成FPGA编程文件,单击“开始编译”按钮在第四的质数。

生成编程文件之后,在MATLAB程序FPGA使用以下命令:

filProgramFPGA (“阿尔特拉”,“output_file / eth_aximaster_deca.sof”,1)

FPGA的读和写操作

FPGA编程之后,可以读取和写入到AXI奴隶与MATLAB作为AXI主IP。在本例中,数据将被写入到DDR内存连接到FPGA和检索回MATLAB。

首先,在MATLAB中创建AXI主对象

如果使用JTAG MATLAB AXI大师:

h = aximaster (“英特尔”)

如果使用以太网MATLAB AXI大师:

h = aximaster (“英特尔”,“界面”,UDP的,“deviceAddress”,“192.168.1.2”,“端口”,“50101”);

然后运行这两个命令来写一个字值100到DDR内存地址0,再通过使用读回去AXI主对象:

writememory (h, 0100) readmemory (h, 0,1)

你也可以读和写大向量数据到DDR内存在MATLAB中使用单个读/写命令。这些命令会自动把大量的数据分解成较小的破裂,这样他们可以通过AXI4转让协议。函数使用最大可能破灭的大小对于每个破裂最大化吞吐量性能。以下命令到DDR内存,阅读10000字。它还检查如果读回的数据是正确的和报告的执行时间。

地址= 0;数据= 1∶;writememory (h、地址、数据);r = readmemory (h,地址,100000);断言(所有数据(r = =));

另请参阅

|

相关的话题