0%

Vivado 自定义IP核并实例化调用

概述

作业:将四选一数据选择器封装成IP,用以实现八选一数据选择器。

具体步骤

将项目封装成IP

打开要封装的项目,然后点击工具栏
Tools-Create and Package New IP-Next
打包当前项目即可(选择完Package your current project后一路Next)
(当然,这里也可以手动选择路径进行打包)
然后会出现Packaging Steps窗口
如果不想修改配置的话,可以直接选择最后一步,Review and Package-Package IP

在其他项目中导入

打开需要调用IP的项目,点击左侧
Flow Navigator-IP Catalog
在空白处右键,Add Repository,选择之前打包的文件夹
(如果之前打包的是项目的话,则对应.srcs文件夹,如D:\source\Vivado\mux_8_1\mux_8_1.srcs)
然后双击导入的IP,导入并生成
导入成功后,在Sources-IP Sources中可以看到IP
其中Instantiation Template即为实例化模板

实例化调用

最简单的方法,把实例化代码复制出来,修改一下实例名称以及参数即可
如:

1
2
3
4
5
6
7
8
9
mux_4_1_0 m2 (
.d1(d5), // input wire [1 : 0] d1
.d2(d6), // input wire [1 : 0] d2
.d3(d7), // input wire [1 : 0] d3
.d4(d8), // input wire [1 : 0] d4
.s1(s1), // input wire s1
.s0(s0), // input wire s0
.out(out2) // output wire [1 : 0] out
);

注意,实例化时,output只能是wire类型,不然语法错误

参考

vivado学习之自定义IP和调用自定义IP的步骤
Unknown Error during synthesis of AXI IPs