ZYNQ笔记(7):AXI从口自定义IP封装

  使用 AXI_Lite 从口实现寄存器列表的读写,并且自己封装为一个自定义 IP,以便以后使用。本次记录的是 M_AXI_GP0 接口,此接口是 ARM 作为主机,FPGA 作为从机,配置 FPGA 的寄存器或者 RAM。

一、ZYNQ AXI 总线拓扑结构图

  黄色部分即为 FPGA 部分。

二、新建 AXI_Lite 寄存器列表

1..点击主页上方菜单 Tools --- Create adn psckage IP ,点击Next

2.选择第四项,Next

3.选择 IP 名称和存放的路径,Next

4.设置 256 个存储空间(每个存储空间默认位宽为32)

5.选择编辑 IP 看看生成的代码,也可以直接选择第一项。

6.Vivado 打开了一个新的界面,此界面和原界面略有不同,注意分别。

7.可以打开代码看看是什么,可以在里面加入用户逻辑代码。

 8.其实已经创建好了 IP,如果有改动则需要点击下面这项,之后此界面会自动关闭

9.选择 Settings --- IP --- Repository,可以看到这个 IP,也可以在这添加第三方 IP

三、调用IP

1.主界面打开 Create Block Design,点击 + 号,即可添加我们定义好的 IP,有3个口,从口,时钟,复位。

2.AXI IP有从口,因此ZYNQ得添加主口,打开 ZYNQ,添加时钟、复位、UART、DDR、中断等,最重要的还要添加 Master GP0 接口

3.ZYNQ 的 AXI_ACLK 和 FCLK_CLK 手动连在一起,并且进行自动布线即可连好。(此处添加了2个一样的AXI IP)

4.在与视图仪器的选项卡中有个 Address Editor,可以看到系统自动分配的地址,当然用户也可以自定义地址

7.也可以添加一个 ILA IP 来观察 AXI 的波形,点击 + 号添加,按下图连线即可

6.之后就可以综合生成 bit 文件导出 HDF 文件进行软件设计。

四、普通自定义IP

  见本人上篇博客《ZYNQ笔记(6):PL精准定时中断》。

、常用 IP

1.Vector logic :逻辑IP,用于产生与、或、非、异或
2.Concat:总线合并IP,可以将多个单位宽信号合并成一个多位宽信号

参考资料:

[1]V3学院FPGA教程

[2]何宾, 张艳辉. Xilinx Zynq-7000嵌入式系统设计与实现[M]. 电子工业出版社, 2016.

原文地址:https://www.cnblogs.com/xianyufpga/p/11404193.html