【ZYNQ】自定义IP核的封装

自定义IP核的封装介绍

  • IP核打包器的配置
  • IP核打包的基础知识
  • IP核顶层接口的命名规范
    • Reset接口
    • Clock接口
    • 差分Clock接口
    • AXI接口
  • 升级自定义IP
  • 创建和打包IP向导
  • 自定义IP核的调用

IP核打包器的配置

  在Block Designer设计中,使用官方IP核能够大大减少开发难度,增强代码的可阅读性和简洁性,我们只需阅读IP核的相关文档,就能对IP核进行配置并使用它,但是在某些情况下,并不存在符合我们设计要求的IP核,此时就需要我们将自主设计的模块功能封装成IP核的形式,并能够与其它IP核相连接,投入使用,在本文中主要介绍将当前工程封装成IP核的流程
选中Tools>Settings>IP>Packager便可弹出IP核打包器的配置界面:
【ZYNQ】自定义IP核的封装_第1张图片
Default Values:
Vendor:在打包新IP时,提供供应商名称,例如公司域名;
Library:设置IP核的关联库,此分类联通供应商一起与IP名称使用,以创建唯一标识符;
Category:指定IP目录中要放置IP的类别,例如/UserIP;
IP Location:指定打包IP的位置;
Automatic Behavior:
Create archive of IP此选项自动创建IP核的存档(ZIP格式);
Add IP to the IP Catalog of the current project:将当前IP添加到IP目录;
Close IP Packager wiindow:完成IP打包后,自动关闭打包IP的窗口;
Delete project after packaging:选中或取消打包后删除项目复选框,以在重新打包后IP后删除迭代编辑项目。

IP核打包的基础知识

选中Tools>Create and Package New IP会出现三个不同的选项:
1、Package your current project,选中后就会使用当前的Vivado项目作为创建新IP定义的HDL源,注意:*打包含有BD的项目将丢失BD的边界属性或元数据(例如FREQ_HZ、X_INTERFACE_属性等),要保留此信息,必须手动将其从BD包装文件(例如:design_1.v)添加或复制到项目的顶部源文件中,此外不允许使用DCP源打包项目
2、Package a block design from the current project,此选项仅使用当前Vivado工程中的blocker designer源来创建新IP,向导完成后,将BD项目打包成IP以包含在用户IP存储库中,此选项的好处在于如果用户意图是仅用top_level HDL打包器来包装BD(blocker designer),那此选项是首选项,另外此选项还将保留BD设计中所有的寻址信息;
3、Package a specified directory,此选项将会使用指定文件作为创建新IP的HDL源,向导完成后,它会将指定目录的内容打包为IP,以包含在IP存储库中,此选项好处在于不需要查看Vivado项目中的文件结构即可打包IP,相反,IP Packager从指定目录的内容和结构推断打包所需的文件类型,因此需要在指定目录下包含不同类型IP源的文件夹类型。

Top-Level HDL 要求:这里只提一点,如果是Verilog语言,模块声明不支持复杂端口或拆分端口。
注意:IP打包的程序不支持自定义的函数。

IP核顶层接口的命名规范

Reset接口

Vivado打包程序可以自动推断出时钟和复位接口,这有助于使用自定义IP来验证block中的时钟和复位接口,如果复位接口不包含所需要的术语,可以手动创建接口并相应设置属性。下表描述了是如何根据接口的命名来推断复位接口的,注意:[**_ ]和[_*]是可选的,*匹配任何文本。另外,请注意,命名不区分大小写。
【ZYNQ】自定义IP核的封装_第2张图片
对于以 n n n结尾的复位接口,如resetn和aresetn,这意味着为低电平有效信号,接口会自动将POLARITY参数设置为active_Low。

Clock接口

接着来看时钟接口是如何推断的,为了正确推断出时钟接口,时钟信号也需要一个必要的命名法,如果时钟接口不包含所需的术语,可以手动创建接口并为其设置相应属性
【ZYNQ】自定义IP核的封装_第3张图片

差分Clock接口

为了正确推断差分时钟接口,差分对的每个引脚都需要相同的命名法,如下表所示
在这里插入图片描述

AXI接口

推断AXI接口的正确命名方法是确保端口名由接口名后跟AXI信号组成。只要每个端口的名称一致,就可以对接口使用任何名称。下表是一个命名的约定示例,用于推断具有接口名称s0_axis的AXI4 Stream接口
【ZYNQ】自定义IP核的封装_第4张图片

升级自定义IP

对于自定义的IP核,当IP目录中有更新的版本可用时,不必升级,所有版本都可以定制和使用。但是,在自定义IP中使用Xilinx IP时,迁移到新的Vivado版本时,可能会导致自定义IP被锁定。此IP被锁定是因为自定义IP中使用的IP必须升级。如果不想更新自定义IP的任何信息,则必须确保所有的输出产品都是从以前支持的版本中完全生成的。对于Xilinx IP,每个版本的Vivado Design Suite中只提供一个IP版本。若在IP Status报告中提示缺少子核心,则说明创建自定义的IP核中使用的是以前版本的IP核,已不存在。

创建和打包IP向导

  • Tools>Create and Package New IP>Next,选择适合自己的封装方式
    【ZYNQ】自定义IP核的封装_第5张图片
    1、选中Package your current project后点击Next,便会弹出如下界面:
    【ZYNQ】自定义IP核的封装_第6张图片
    IP打包器会在IP Location中创建指定IP的目录,默认其情况下,IP位置是在项目的/source目录。在这里我选择更改路径,单独存放ip,要说明一下指定的目录会生成多个文件夹,vivado会把工程大体复制一遍到这里,便于以后修改更新后re-package,然后勾选Include .xci files ,完成以后,新建的工程会多出来一个选项Package IP,对封装IP进行设置,界面如下:
    【ZYNQ】自定义IP核的封装_第7张图片
    Identification中Categories就是封装完后,IP存放的目录,如果在顶层文件中再次增添或修改了端口名称,打开Package IP 窗口后会出现一个合并更改的横幅,叫Merge changes from Ports and Interfaces wizard。在Review and Package选项中点击Edit packaging settings会回到IP打包器的配置界面,在前面已介绍,提示:勾选Delete project after packaging后,就会删除新建的IP工程,想要更改IP配置,就需要找到源工程,重新打包成IP,若不勾选,则只需对新建的工程再次修改并重新打包即可,所有的配置好以后,就可以点击Package IP 。

自定义IP核的调用

至此,自定义IP核已封装完成,使用时需要将封装好的IP核文件夹复制到工程文件夹下,然后选中工程的IP Catalog,右击Vivado Repository,点击Add Repository,选中封装好的IP核文件夹,即可将其添加到工程的IP核库中,进行使用。

考虑到我说的可能不够完善,不够直接,在这里我添加两个链接,大家可以去看看。
自定义IP核的封装
IP核的管理和使用
封装IP核官方文档ug1118

你可能感兴趣的:(#,ZYNQ_IP核的使用,tcp/ip,fpga开发,服务器)