感慨于各大论坛里关于vivado的一些冷门功能使用技巧十分匮乏,我决定慢慢更新一些自己经历项目实战后的使用心得,仅作抛砖引玉。

第一篇来介绍下开发完毕后以IP核形式打包工程文件的一些操作。

可能很多人是以纯verilog代码+IP核xci文件的形式开发的,这样移植起来确实算是很方便,但是一旦这个工程文件离开你的电脑,你经常会遇到一些问题:

1、大多数情况下是某些文件缺失,只要在add source里重新添加即可。

2、verilog顶层文件调用的子IP核被锁住,右键upgrade后可以解锁,IP恢复为橙色。

3、综合失败,提示需要在tcl中输入指令来解锁,一般输入相应的操作后就好了,IP会变成白色。

4、verilog里调用带ip的verilog文件,又层层套娃,一般会提示你需要把某些ip移到外边,在source窗口右键有这个选项。

这种程序移植的方式当然是没有问题的,硬说有什么缺点在于你几乎需要复制整个工程路径到新的工程,包含大量的冗余文件,要知道某些地方只能用光驱的(笑。并且,因为一些操作不当和vivado的bug,绝大多数情况下是无法直接使用的,你不得不按照以上4条逐步操作一下(其实问题不大)。

因此我推荐使用IP核形式来打包你的工程,优点很多,使用方便,文件很小,打包速度也很快。最重要的一点,封装成IP核并不意味着不能再修改这套代码了,打包的IP核src文件夹里包含了你这套工程一切的verilog和xci文件,只需要在新工程里添加这个文件夹就好了。

一、IP核的封装

打包功能在tool选项的creat and package new IP下,点击next进入打包范围选择的界面

第一项是打包整个工程,第三项是打包一个文件夹。我比较推荐第二项,按照block design来打包,可以在一个大的工程里分别打包几个小模块,比较灵活。话说vivado用户普遍不喜欢用这种方式开发,理由是所谓的移植性差,嘿嘿,见仁见智吧,至少在这里用block是最方便的,关于block design开发技巧我准备单独总结一下。

下个界面是选好生成路径,一路next就完事了,直接进入最后的配置界面:

第一项自己修改名称、版本号、简介之类的信息,重点是ports and interfaces这个界面

使用block design经常会把中间变量的io口(相当于wire,或者是某个module的io)和真正引至顶层文件的io口(top文件的io)弄错,只有使用external才算是顶层文件的io,直接用快捷键ctrl+T吧。

检查好所有的io口就可以选最后一项package IP了。

这些警告一般没什么问题,实在不放心就点一下看看。

二、自定义IP核的使用

自定义的IP一般包含这几个子文件夹,verilog、xci、xdc文件在src里,testbench在sim里,xgui就是个皮肤。

我曾经都是使用IP的方式添加这个IP的,就是下图这个界面:

一个很有意思的地方在于,如果单独添加某个子文件vivado并不能识别出这个ip,一定是要添加整个文件夹。

添加完成后按照常规的方式生成这个IP就能用了。

现在我已经舍弃了这种使用方式,原因很简单,你失去了修改这个IP核的能力。

居然有篇文章说可以先用global生成白色的ip(虽然图里这个是橙色的,但改成白色的也没用的),然后在这里勾掉managed来取消read-only状态来修改,怕不是活在梦里,论坛里就是这样,真真假假。

三、自定义的IP核的后期修改

我十分推荐使用下面这种方式来调用IP核,其实非常简单,将src文件夹整个添加进新的工程里。

说白了,封装IP时就已经将所有的文件有序打包进src这个文件夹里了,这和直接移植veilog代码并无区别。

很可惜的是,之前查遍论坛无人点出这种方法,也是很神秘。

基于vivado开发xilinx系列FPGA的冷知识(1)——自定义IP核的封装与后期修改相关推荐

  1. FPGA之道(14)IP核介绍

    前言 IP核是FPGA开发者的老朋友了,可以这么说,只要是做FPGA开发的,都会利用FPGA的IP核进行开发设计,这不像IC设计,什么都要自己设计,使用IP可以加快产生开发进程. 下面摘自<FP ...

  2. 【Xilinx AX7103 MicroBalze学习笔记6】MicroBlaze 自定义 IP 核封装实验

    目录 实验任务 实验框图 创建自定义 IP 封装 IP IP 封装界面配置 硬件设计(Vivado部分) Block Design搭建 添加 IP 库 约束文件 软件设计(SDK部分) 往期系列博客 ...

  3. qq自定义diy名片代码复制_「正点原子FPGA连载」第六章自定义IP核-呼吸灯实验

    1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...

  4. Xilinx 系列 FPGA 高速收发器的一些知识

    目录 1.GTX概念 1.1  GT定义 1.2 GTX的分布 1.3 GTX结构 2 . ibert 3. DRP端口 1.GTX概念 1.1  GT定义 GT的意思是Gigabyte Transc ...

  5. (14)Vivado开发流程(FPGA不积跬步101)

    一句话的事:你浪费了多少时间,你就有多少时间:没有人能了解你,只有你自己. 1 Vivado 开发流程 1)建立工程 a.打开vivado Vivado 2019.1. b.Create Projec ...

  6. 一步步学习zynq软硬件协同开发(AX7010/20)【FPGA+ReWorks】:创建自定义IP实现rtc读写

    一.实验环境及目的 板卡:AX7010 Vivado版本:2017.4 开发机:I5  2.2GHZ  8GB  WIN7_X64 参考文档:<ALINX黑金ZYNQ7000开发平台配套教程&g ...

  7. Vivado使用技巧(8):Core Container打包IP核

    XCI与XCIX文件 通常,在生成Vivado IP核时,在工程目录的.srcs/sources_1/ip路径下会生成对应IP核的文件夹,该文件夹中包含了所有与该IP核相关的文件.最主要的一个文件是X ...

  8. FPGA实战(五)时钟IP核(MMCM PLL)

    来自正点原子的学习笔记 (关于开发板资源的相关理论我不太懂) (本文侧重于简单的理解和应用层面) 时钟IP核(MMCM PLL) 1时钟资源简介 2 硬件设计 3时钟IP核的使用 3.1 创建和配置时 ...

  9. 野火FPGA征途Pro学习笔记(IP核)

    分频器 偶分频器 通过always语句,对系统时钟进型分频,例如4分频:对系统时钟进行计数四次,产生一个高电平的flag信号. 在后级模块中使用时,采用 系统时钟&&flag==1 的 ...

最新文章

  1. [你必须知道的.NET]第二十二回:字符串驻留(上)---带着问题思考
  2. win7没有个性化如何把计算机放到桌面,win7系统家庭版右键没有个性化设置桌面壁纸...
  3. 百度地图与所托瑞安达成深度合作 共同推进商用车安全智能驾驶领域创新
  4. 关于JDBC的一些笔记
  5. 编写sonar 插件:No SqaleSubCharacteristic annotation was found on class xxx
  6. PHP Smarty template for website
  7. coffeescript html5,HTML5——前端预处理技术(Less、Sass、CoffeeScript)
  8. 信息学奥赛一本通 1130:找第一个只出现一次的字符 | OpenJudge NOI 1.7 02
  9. Centos7最小化安装
  10. 分享三:mysql跨库查询
  11. ubuntu jdk 安装 【转载】
  12. html返回顶部动画,基于JavaScript实现回到页面顶部动画代码
  13. 路由器 刷rom php,路由器刷固件常用命令Openwrt 之mtd/mtd_write烧写固件
  14. 个人“乱七八糟”笔记和摘要
  15. kotlin写android,Kotlin安卓开发
  16. Windows操作系统基础
  17. Spring单例Bean与单例模式的区别
  18. js中window。location.search的用法和作用。
  19. [下载]视频转换工具超级解霸Total Video Converter破解版
  20. 读书笔记——《我们时代的神经症人格》

热门文章

  1. 第六次自考总结——英语二
  2. 微信自动聊天和定时发送祝福--亲测ok
  3. oracle oci的好处,oracle的oci和thin区别
  4. 阿里云IoT2018年度十佳合作伙伴20强入围企业公布...
  5. Apache Kudu架构
  6. DWG./DXF.图纸转PDF的方法
  7. 第二篇--PCI设备解析
  8. TSO与GSO简单区分
  9. Windows取证——隐藏术
  10. 我的世界服务器整人系列,我的世界:六种整蛊方案,你敢用吗?小心你的小伙伴因此退游...