xzy610030

一起探讨,一起进步,一起分享!

vivado设计三:一步一步生成自己的自定义IP核

0
阅读(17108) 评论(6)

开发环境:xp  vivado2013.4

基于AXI-Lite的用户自定义IP核设计

这里以用户自定义led_ip为例:

1.建立工程

和设计一过程一样,见vivado设计一http://blog.chinaaet.com/detail/35736

这样我们就进入了主界面

2.创建IP

Tools –》Create and Package IP

clip_image002

来到IP创建欢迎界面:Next

clip_image004

接下来我们要选择AXI4 peripheral,如下图

clip_image006

Next之后,我们可以看到IP的信息,可以自己修改某些信息:

clip_image008

然后修改一下Name,其余的保持默认:

clip_image010

下面要勾选一下Generate Drivers

clip_image012

然后Next之后,我们选第二个:如下图

clip_image014

点击finish,就进入了编辑IP的界面

3.编辑IP

clip_image016

既然是自定义IP核,那么我们需要修改led_ip_v1_0.v

双击文件,在15行添加output wire [3:0]led, 如下图所示:

clip_image018

添加用户定义的port

接下来,将我们用户的port,连接到led_ip_v1_0_S_AXI,在48行:

.LED(LED),

clip_image020

在led_ip_v1_0_S_AXI模块中还没有LED端口,因此展开source文件:

clip_image022

双击图上文件:在15行添加output wire [3:0]led,

如下图所示:

clip_image024

接下来就是新建用户逻辑文件了,user_logic.v

clip_image026

编写verilog文件:

clip_image028

然后这个用户逻辑模块要在led_ip_v1_0_S_AXI中例化:

例化如下:在397行左右:

clip_image030

保存所有文件,然后编译,在IP封装之前,确保无误:

果然编译出错,是上面有些写成了led,有些写成了LED,全部修改成LED吧:图我就不重新贴了:这次编译通过了

clip_image032

编译成功后,这里我们选择cancal了,就是不Run Implementation了、

接下来就是:

4.封装IP

点击左侧的Package IP

clip_image034

现在就一个一个来看,在IP Identification中

clip_image036

在IP Compatibility,可以看到已经支持zynq了,如果要添加family 右键添加即可

clip_image038

IP File Groups

点击红色框中的,有两警告,忽略之

clip_image040

在IP Customization Parameter中同样点击红色框中内容

clip_image042

在IP Ports里面可以看到LED这个端口了

clip_image044

Review and Package

可以IP核路径,点击Re-Package IP

clip_image046

然后出现一个警告,忽略,点击ok

这样我们就完成了自定义IP的设计和封装,然后也就回到了project_2主界面,注意之前的界面一直是在edit Ip的这个界面完成的、

在之前ise中也完成过自定义IP核:http://blog.chinaaet.com/detail/34661,相对而言,vivado设计的步骤更加的清晰明了,也简单一些。

下一次博客将在该工程中使用该自定义IP核,并且上板调试。

  1. 楼主,怎么从端口读数据啊

  2. @dupf    期待

    我是不是要先学习verilog,才能进行IP核的开发。因为我知道这个步骤,但是不会编写约束文件。

  3. 期待
  4. @fushenjiu
    你好,不同版本可能是些差异的,我没有装你那个版本,所以暂时无法验证,抱歉。
  5. 你好楼主,我用的vivado 2014.2  在Tools –》Create and Package IP步骤里没看到选择驱动这项 请教楼主解答。QQ:1132094595
  6. 赞,期待下一篇~~~