在Vivado下,有两种方式管理IP。一种是创建FPGA工程之后,在当前工程中选中IP Catalog,生成所需IP,这时相应的IP会被自动添加到当前工程中;另一种是利用Manage IP,创建独立的IP工程,缺省情况下,IP工程的名字为magaged_ip_project。在这个工程中生成所需要的IP,之后把IP添加到FPGA工程中。Xilinx推荐使用第二种方法,尤其是设计中调用的IP较多时或者采用团队设计时。Tcl作为脚本语言,在FPGA设计中被越来越广泛地使用。借助Tcl可以完成很多图形界面操作所不能完成的工作,从而,可提高设计效率和设计自动化程度。Vivado对Tcl具有很好的支持,专门设置了Tcl Shell(纯脚本模式)和Tcl Console(图形界面模式)用于Tcl脚本的输入和执行。本文介绍了如何利用Tcl脚本在Manage IP方式下实现对IP的高效管理。

Manage IP的特点:

(1)Vivado在Manage IP模式下只显示IP Catalog,便于直观地定制IP;

(2)IP工程目录独立于FPGA工程目录,可独立管理并便于IP复用;

(3)对IP采用OOC(Out-of-Context)的综合方式,生成相应的DCP文件,添加到FPGA工程中,无需再次综合;

与ISE Core Generator的不同之处:

(1)ISE Core Generator不同IP的生成文件会在同一目录下,而Vivado下每个IP有独立的文件夹,该文件夹下包含了IP所有相关文件,这为IP复用提供了便利;

(2)ISE Core Generator生成的IP定制文件为.xco,Vivado生成IP的定制文件为.xci;

(3)ISE Core Generator生成的网表文件为.ngc,Vivado生成的网表文件为.dcp,DCP不仅包含网表文件还包含约束文件;

(4)ISE Core Generator不支持Tcl脚本,Vivado则支持Tcl脚本;

Vivado下IP生成文件:

(1)用于综合的RTL文件和约束文件;

(2)实例化模板文件;

(3)行为级仿真文件;

(4)综合后的网表文件DCP;

(5)用于第三方综合工具的Stub文件;

(6)例子工程;

生成文件是可以定制的,这可通过generate_target命令完成,同时,生成的文件也可以通过reset_target被清除掉,如Tcl脚本 1所示。

Vivado下每个对象都有自己的属性,这些属性可通过report_property显示。managed_ip_project的属性如图 1所示。图中绿色线条标记了该工程所在目录;红色方框MANAGED_IP属性值为1,表明该工程为IP工程;蓝色方框是我们创建或修改IP工程设置时最常用的一些属性。Tcl脚本 2中第1行语句用于显示IP工程属性,第2~4行语句用于设置仿真工具、目标语言和芯片型号。set_property命令的第一个参数为属性名,第二个参数为属性值,第三个参数为属性所属对象。

采用Vivado Manage IP创建IP工程后,可能会遇到以下情况:(1)软件版本升级,例如Vivado由2013.4升级至2014.2;(2)芯片型号改变,例如芯片型号由XC7K325TFFG676-2变为XC7K160TFFG676-2;(3)A项目中的一些IP在B项目中也被使用,且这些IP参数配置完全相同。上述三种情况均可通过Tcl命令完成。

第一种情况:软件版本升级

假如用Vivado 2013.4创建的IP工程,当软件版本升级至2014.2时,需要将IP重新生成。此时,若用Vivado 2014.2打开该工程会弹出如图 2所示的对话框。选择图中蓝色方框标记的选项打开工程,通过report_ip_status命令显示当前IP状况,如图 3所示。

图 3中蓝色方框显示了IP处于锁定状态,可通过get_property查看IS_LOCKED属性确定;红色方框显示了IP当前版本号和建议升级到的新版本号。相应的Tcl脚本如Tcl脚本 3所示。对处于锁定状态的IP可选择升级,这可通过Tcl脚本 4完成指定IP的升级。Tcl脚本 4可内嵌到Vivado中作为用户常用命令。

第二种情况:芯片型号改变

若芯片型号改变,首先要对旧型号芯片对应的工程做备份处理,这可通过archive_project命令完成;然后修改芯片型号。相应的Tcl脚本如Tcl脚本 5所示。完成这些操作之后,会发现IP处于锁定状态,此时可通过Tcl脚本 4对IP升级。

第三种情况:A项目中的一些IP在B项目中也被使用,且这些IP参数配置完全相同

在这种情况下,可将A项目中的IP导入到B项目的IP工程中,这可通过import_ip命令完成,如Tcl脚本 6所示。Import_ip的第一个参数为原始IP所在目录,第二个参数为该IP的新名字,缺省情况下与原始IP名一致。导入之后,可通过Tcl脚本 4重新生成IP。

如前所述,Vivado下生成的IP都有独立的文件目录,在添加IP到Vivado FPGA工程中时,若采用图形界面方式就需要一个一个地浏览到IP所在文件目录,找到.xci文件,然后添加到工程中,如果调用的IP较多,显然这种方式不够高效。此时可用Tcl脚本 7所示的Tcl命令找到所有IP相关文件,文件类型可以是xci或dcp。该命令会返回完整的文件路径,如Tcl脚本 6中的文件路径。然后通过add_files命令将其添加到当前工程中。

此外,有些IP会有例子工程,这些例子工程带有完整的测试激励,可对IP进行仿真,以理解IP的输入/输出时序,也可单独生成bit文件。可通过open_example_project命令打开例子工程,如Tcl脚本 8所示。

与ISE Core Generator相比,Vivado Manage IP对IP的管理更加便捷,加之Vivado对Tcl脚本的支持,利用Tcl脚本可实现对IP更高效的管理,进一步加强FPGA设计自动化的程度。

参考文献:

[1] Xilinx. Ug896 (V2014.1) Designing with IP.

[2] Xilinx. Ug835 (V2014.2) Vivado Design Suite Tcl Command Reference Guide

[3] http://m.elecfans.com/article/581796.html

NOW

推荐阅读

AXI总线详解

AXI总线详解-总线、接口以及协议

AXI接口协议详解-AXI总线、接口、协议

AXI协议中的通道结构

AXI总线详解-AXI4读写操作时序及AXI4猝发地址及选择

高级FPGA设计技巧!多时钟域和异步信号处理解决方案

AXI总线详解-AXI4交换机制

计算机基础知识总结与操作系统.PDF

IC技术圈期刊 2020年第09期

ZYNQ中DMA与AXI4总线-DMA简介
AXI总线详解-不同类型的DMA

不了解FPGA工作原理?看看世界第一颗FPGA芯片级拆解

点击上方字体即可跳转阅读哟

在Vivado下利用Tcl实现IP的高效管理相关推荐

  1. linux添加ip白名单_centOS7 下利用iptables配置IP地址白名单的方法

    编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能 #vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FO ...

  2. linux+Qt 下利用D-Bus进行进程间高效通信的三种方式

    linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...

  3. 5_Windows下利用批处理切换IP地址

    作为IT从业人士,我们经常需要在公司上网(严格意义上来说本人不算IT人士,顶多算个计算机科学的爱好者,也许连个爱好者 也算不上),但是公司和家里的IP地址通常不一样(也许有人会说,公司和家里的IP一定 ...

  4. vivado利用tcl文件一键生成ram ip

    vivado的目录结构: 1.*.xpc : 项目管理文件,里面记录了该工程的文件索引 2.*.src : 项目源文件目录,ip目录下是ip核生成的文件 3.*.runs : 内部有许多名为(name ...

  5. Vivado 下 IP核 之ROM 读写

    目录 Vivado 下 IP核 之ROM 读写 1.实验简介 2.ROM IP 核简介 3.ROM IP 核配置 3.1.创建 ROM 初始化文件 3.2.单端口 ROM 的配置 加载数据文件,将 . ...

  6. FPGA — Vivado下ILA(逻辑分析仪)详细使用方法

    使用软件: Vivado 开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA 使用程序:按键案例 ILA详细使用方法 一.ILA简介 二.ILA的使用方法 ...

  7. vivado如何评估_在Vivado下进行功耗估计和优化

    资源.速度和功耗是FPGA设计中的三大关键因素.随着工艺水平的发展和系统性能的提升,低功耗成为一些产品的目标之一.功耗也随之受到越来越多的系统工程师和FPGA工程师的关注.Xilinx新一代开发工具V ...

  8. Centos6.3下利用open***部署远程×××服务

    Centos6.3下利用open***部署远程×××服务 open***是一款在LINUX网关服务器使用的开源的×××软件,顾名思义,其实就是用来打通一条安全的虚拟专用通道,实现用户远程办公,获取内网 ...

  9. linux添加审计账户_Linux下利用psacct审计系统帐号连接时间, 用户操作

    Linux下利用psacct审计系统帐号连接时间, 用户操作 一般情况下需要查询用户的历史命令,连接时间,连接IP需要查询多个命令或日志 : history 查询用户的历史命令 默认HISTSIZE= ...

最新文章

  1. java未将对象引用设置_未将对象引用到实例怎么解决_常见问题解析,java
  2. 《互联网运营智慧》十一月进展
  3. 看图轻松理解数据结构与算法系列(合并排序)
  4. Linux内核的l2tp实现,Linux Kernel gdth实现内核内存破坏漏洞
  5. 运用计算机辅助电话调查的方法,第二章 统计数据的搜集、整理与显示
  6. Struts2_HelloWorld_2
  7. 海洋分享lol皮肤插件_LOL战斗之夜客户端BUG频出服务器爆满!如何提前领取皮肤?...
  8. java 设备集成,java 集成 海康 SDK
  9. JavaScript 工作必知(九)function 说起 闭包问题
  10. matlab平行因子_基于MATLAB某客车悬置系统优化与运动仿真
  11. linux mysql 数据按表名称备份
  12. 让我们的linux的shell命令待颜色
  13. 设计一个简易的有道词典
  14. Hadoop组件启动的三种方式及配置SSH无密码登入
  15. mysql给用户授权_mysql创建用户与授权(实例)
  16. 手机通达信正在连接服务器,通达信服务器全部连接超时
  17. 文本特征提取:词袋模型/词集模型,TF-IDF
  18. 计算机专业该如何学习:准大一篇
  19. php图片素描化,ps怎么把图片变成素描图片
  20. GoLang之Map深度讲解

热门文章

  1. Java事务编程-弱隔离级别之写倾斜与幻读
  2. 冰封王座1.20(转载)
  3. js canvas图片素描画处理工具
  4. 好的营销软文应该怎么写?高质量软文攻略
  5. 2012团购网能HOLD得住吗
  6. loder导致的安全沙箱的2122错误
  7. 百度语音转换技术,让失聪人和盲人独立对话成为可能!
  8. ad中电容用什么封装_电容笔有什么用?如何选择一款实用的电容笔!
  9. 年轻人的第一本深度学习面试书
  10. 真正有效压缩虚拟磁盘文件VHDX