基于AXI-Lite的用户自定义IP核设计
这里以用户自定义led_ip为例:
1.建立工程
和设计一过程一样
这样我们就进入了主界面
2.创建IP
Tools –》Create and Package IP
来到IP创建欢迎界面:Next
接下来我们要选择AXI4 peripheral,如下图
Next之后,我们可以看到IP的信息,可以自己修改某些信息:
然后修改一下Name,其余的保持默认:
下面要勾选一下Generate Drivers
然后Next之后,我们选第二个:如下图
点击finish,就进入了编辑IP的界面
3.编辑IP
既然是自定义IP核,那么我们需要修改led_ip_v1_0.v
双击文件,在15行添加output wire [3:0]led, 如下图所示:
添加用户定义的port
接下来,将我们用户的port,连接到led_ip_v1_0_S_AXI,在48行:
.LED(LED),
在led_ip_v1_0_S_AXI模块中还没有LED端口,因此展开source文件:
双击图上文件:在15行添加output wire [3:0]led,
如下图所示:
接下来就是新建用户逻辑文件了,user_logic.v
编写verilog文件:
然后这个用户逻辑模块要在led_ip_v1_0_S_AXI中例化:
例化如下:在397行左右:
保存所有文件,然后编译,在IP封装之前,确保无误:
果然编译出错,是上面有些写成了led,有些写成了LED,全部修改成LED吧:图我就不重新贴了:这次编译通过了
编译成功后,这里我们选择cancal了,就是不Run Implementation了、
接下来就是:
4.封装IP
点击左侧的Package IP
现在就一个一个来看,在IP Identification中
在IP Compatibility,可以看到已经支持zynq了,如果要添加family 右键添加即可
IP File Groups
点击红色框中的,有两警告,忽略之
在IP Customization Parameter中同样点击红色框中内容
在IP Ports里面可以看到LED这个端口了
Review and Package
可以IP核路径,点击Re-Package IP
然后出现一个警告,忽略,点击ok
这样我们就完成了自定义IP的设计和封装,然后也就回到了project_2主界面,注意之前的界面一直是在edit Ip的这个界面完成的、