跳转到主要内容

手把手教你设计一个属于自己的AXI接口IP

judy 提交于

本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s?__biz=MzA5NjI1NDk0NQ==&mid=2247484712&idx=1&…;根究FPGA微信公众号</a></span>

在FPGA程序设计的很多情形都会使用到AXI接口总线,以PCIe的XDMA应用为例,XDMA有两个AXI接口,分别是AXI4 Master类型接口和AXI-Lite Master类型接口,可通过M_AXI接口对数据进行读取操作,此时设计一个基于AXI-Slave接口的IP进行数据传输操作就非常的方便。

封装的形式并不复杂,只是略微繁琐,接下来一步一步演示如何封装AXI_SLAVE接口IP:

1、创建工程
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104006-1.p…; alt=""></center>

2、选择Create AXI4 Perpheral,点击next

设置保存路径,也可默认:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104007-2.p…; alt=""></center>

3、设置保存路径:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104008-3.p…; alt=""></center>

4、设置封装的接口类型:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104009-4.p…; alt=""></center>

5、选择Verify Peripheral IP using AXI4 IP
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104010-5.p…; alt=""></center>

6、对IP进行修改:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104011-6.p…; alt=""></center>

在顶层和总线文件中添加自定义的端口和信号:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104012-7.p…; alt=""></center>

在S00_AXI.v中编辑:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104013-8.p…; alt=""></center>

7、保存工程
如果不慎将初始的IP封装界面关掉的话,在Tools下选择Create and Package New IP,选择Package your current project,NEXT之后选择open(你会看到的)。

设置ID位宽,该选项主要用于outstanding传输:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104014-9.p…; alt=""></center>

设置数据位宽,根据需要自行设计:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104015-10…; alt=""></center>

如果出现Merge提示的话,点击,选择覆盖参数。

最后选择重新封装IP,就得到属于自己的AXI_SLAVE接口IP啦!

在刚刚设置的ip_repo2文件目录下可以看到IP:
<center><img src="http://xilinx.eetrend.com/files/2020-08/wen_zhang_/100050928-104016-11…; alt=""></center>