本文转载自: FPGA入门到精通微信公众号
在FPGA设计中,使用IP核是提高开发效率的关键,不用重复造轮子。然而,Vivado中自带的IP核并不能满足所有需求。在这种情况下,设计自己的IP核非常有用,因为它可以根据具体需求定制化。本文将介绍如何在Vivado中创建自定义IP核。
一、 IP核概述
IP核是一种可重用的硬件模块,能够在不同的FPGA设计中使用。在Vivado中,IP核包含可配置、可生成和可定制的模块,通过IP Integrator工具集成到设计中,简化了硬件设计流程。
使用Vivado提供的IP核可以减少设计时间和成本,但是并不是所有的需求都能够满足,有时候需要设计自定义的IP核以实现特定功能或加速系统性能。
二、创建自定义IP核
在Vivado中创建自定义IP核的步骤如下:
1、打开Vivado工程
首先,打开一个新的Vivado工程或原有的工程。

2、选择自定义IP核选项
在Vivado GUI的“Tools”中,选择Create and Package New ip向导。


3、打包选项
选择Package your current project,点击Next。如果需要AIX4接口,则选择Create a new AXI4 peripheral

4、选择将要生成 ip核文件存放的位置
勾选“include .xci files” ,点击next,再点击finish,等待启动打包IP核工程。


5、 配置参数
根据IP核的所需参数配置向导,包括数据位宽、时钟频率、输入输出等。
如果不小心关了这个界面,可以在最左边的“Package IP”

Identification:修改ip核的名字、公司、属性等等
Compatibility:增加或者删除适用于哪些型号的FPGA芯片,一般默认
File Groups:文件类别,可以选择是否包含 综合和仿真文件
Customization Parameters:可配置参数的名字、默认值等等
Ports and Interfaces:设置输入和输出端口
Addressing and Memory:设置地址,如果PS通过AXI总线访问PL,PS可通过这个地址识别到这个IP核,可以理解为IP核的ID
Customazation GUI: 定制GUI界面
6、生成IP核
Review and Packaga 可看到IP核的信息,点击 "Package IP" ,ip核已经封装完成。
封装完成后,可在Ip Catelog看到刚定义到的IP。

三、在工程中使用自定义IP核
使用自定义IP和xilinx官方IP的方法一样,但如果在其他的工程里面使用封装好的ip核,还需要将ip核文件添加到ip核库里面。

四、总结
本文介绍了在Vivado中创建自定义IP核的步骤。通过利用自定义IP核,可以实现特定的功能或加速系统性能。在实际设计过程中,需要结合具体需求灵活应用IP核,以提高设计效率、降低成本和缩短上市时间。