Vivado 自定义AXI IP核

一、引言

        本文为个人理解,用于记录学习经验,有任何错误可以指出讨论。

二、创建AXI IP核(记得芯片选型选择对应的)

b85b3896a9f4f7ae7d3774a286d09e67.png

 

6b9913bcb3bf03bf12d25677bd4d09d6.png

可以选择覆盖现有的IP核(更新IP核)。

a99c7299fcba57c98961e3cf21fa82e9.png

Interface Type : Lite,简化版AXI4接口,用于数据量较小的存储映射通信(BRAM);

                         Full,高性能存储映射接口,用于数据量较大的存储映射通信(DDR);

                         Stream,高速数据流传输,非存储映射接口。

其他的设置默认即可,详细可以看其他文章。

450ab43484d57f3fd3a3596b500b9f8d.png

下一步就是选择“Add IP to the repository”添加本工程。

56e5fd111999857c6150aca293eb7960.png

然后IP库里面就会有用户专属的IP库了。

16a0f613aeeed965b3abbb915d91ecab.png

右键直接选择“Edit in IP Packager”编辑IP核,路径自行选择,默认就是本工程的路径。

0de5788f7c6aeaf071b7e376ba48a718.png

Sources中顶层模块用户可以添加输入输出和参数,子模块可以添加用户的逻辑代码。

36c06a782d9bd9d1bace4c0394cb42d2.png

打开顶层模块,此处添加用户的参数,该管脚为输出信号是PL端的,后文的slv_reg中的是才是受PS端控制的。

ccf86c9b8be634ef05ac5c4d8e45fbe7.png

这里添加用户输入输出管脚。

27b749554e1fd02d6f274ba6bab8e312.png

这里添加用户新添加的输入输出例化。

44211a7a62682ad0df16d92ead442257.png

这里可以添加用户逻辑代码,也可以在子模块中添加,自行选择。

390e3c2b64e54a660d386437ba6ae528.png

再到子模块这里,信号定义同上。

15bc9c4fc3a346a2574cd55d6b00041f.png

此处可以添加逻辑代码的例化,后文会再单独创建一个子模块专门用来写逻辑代码。

此处的例化作用是将led开关和闪烁频率存入寄存器中,本ip核共定义了4个寄存器,相当于AXI的4条数据线。

led开关一位就够用了,闪烁频率我是直接给到32位。

注意:存入寄存器的是输入信号,由PS端提供数据。

818119d6c1ad07dc9d4a816e042eeea8.png

然后就是编写逻辑代码了,此代码很简单,不多赘述。

0a354c3b45d258e083548fbe104f07e4.png

点击左边的“Package IP”封装即可

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值