zoukankan      html  css  js  c++  java
  • vivado设计三:一步一步生成自己的自定义IP核

    开发环境: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核,并且上板调试。

    转载:http://blog.chinaaet.com/xzy610030/p/37177

  • 相关阅读:
    protobuf 中的嵌套消息的使用
    Mysql++详解
    MYSQL++之Connect类型
    c/c++中宏定义##连接符 和#符的使用
    c指针
    linux学习历程
    linux sar 命令详解
    Linux下多线程查看工具(pstree、ps、pstack)
    知识杂项
    python 使用xrld
  • 原文地址:https://www.cnblogs.com/chengqi521/p/7987714.html
Copyright © 2011-2022 走看看