0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Tcl脚本在Manage IP方式下实现对IP的高效管理

OpenFPGA 来源:OpenFPGA 2024-04-22 12:22 次阅读

在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所示。

981f2f60-0054-11ef-a297-92fbcf53809c.jpg

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

9827f60e-0054-11ef-a297-92fbcf53809c.jpg

采用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所示。

982f4d78-0054-11ef-a297-92fbcf53809c.jpg

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

983a43ae-0054-11ef-a297-92fbcf53809c.jpg

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

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

984615c6-0054-11ef-a297-92fbcf53809c.jpg

第三种情况: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命令将其添加到当前工程中。


98510e72-0054-11ef-a297-92fbcf53809c.jpg

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

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

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603017
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1722

    浏览量

    88566
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66474

原文标题:在Vivado下利用Tcl实现IP的高效管理

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用FPGA和IP Core实现定制缓冲管理

    如何使用FPGA和IP Core实现定制缓冲管理
    发表于 04-29 06:01

    Vivado图形化界面IDE中运行和调试Tcl命令

    IP内部的代码。实现(Implementation)过程中,发现某资源占用过多,导致无法通过,我们可以考虑使用tcl命令,remove多余的资源。下面的例子中,例化了两个axi_ch
    发表于 06-17 14:52

    介绍IP数据报的格式及IP相关功能在Lwip中的实现方式

    。本文主要介绍IP数据报的格式,以及IP相关功能在Lwip中的实现方式,希望能对同样在学习Lwip的小伙伴们有所帮助。IP基础知识介绍
    发表于 08-23 17:38

    利用面向对象威廉希尔官方网站 进行可配置的FFT IP设计与实现

    利用面向对象威廉希尔官方网站 进行可配置的FFT IP 设计与实现摘要:为了缩短产品上市时间并降低设计成本,IP 复用已经成为IC设计的重要手段。以往利用
    发表于 07-04 11:42 8次下载

    利用FFT IP Core实现FFT算法

    利用FFT IP Core实现FFT算法 摘要:结合工程实践,介绍了一种利用FFT IP Core实现
    发表于 01-16 10:04 6912次阅读
    <b class='flag-5'>利用</b>FFT <b class='flag-5'>IP</b> Core<b class='flag-5'>实现</b>FFT算法

    LabVIEW中利用TCP_IP协议实现网络通信_labview程序案例

    程序案例 LabVIEW 中利用TCP_IP协议实现网络通信
    发表于 01-12 15:45 679次下载

    LabWindowsCVI 中利用TCP_IP协议_labview程序案例

    程序案例 LabWindowsCVI 中利用TCP_IP协议实现网络通信
    发表于 01-12 15:45 25次下载

    Vivado利用Tcl脚本对综合后的网表进行编辑过程

    ISE,对综合后的网表进行编辑几乎是不可能的事情,但在Vivado下成为可能。Vivado对Tcl的支持,使得Tcl脚本
    发表于 11-18 03:16 7526次阅读
    <b class='flag-5'>在</b>Vivado<b class='flag-5'>下</b><b class='flag-5'>利用</b><b class='flag-5'>Tcl</b><b class='flag-5'>脚本</b>对综合后的网表进行编辑过程

    Vivado利用Tcl实现IP高效管理

    Vivado,有两种方式管理IP。一种是创建FPGA工程之后,在当前工程中选中IP Cata
    发表于 11-18 04:22 5807次阅读

    网站总被攻击?写个自动封禁IP脚本给你

    个人网站总被攻击?写个自动封禁IP脚本给你!
    的头像 发表于 01-29 11:44 1112次阅读

    ip脚本进化的解决办法

    上次给大家分享过一个封IP脚本。我搞那个脚本的目的是为了把访问量太大的IP地址给封掉,然后每隔半小时解封。
    的头像 发表于 06-11 17:03 685次阅读
    封<b class='flag-5'>ip</b><b class='flag-5'>脚本</b>进化的解决办法

    IP 地址XSS中的利用与防范

    ​随着互联网的普及和Web应用的广泛使用,跨站脚本攻击(XSS)成为了网络安全领域中的一个重要威胁。XSS攻击中,攻击者常常会巧妙地利用各种元素,包括用户的IP地址,来
    的头像 发表于 08-07 16:43 250次阅读

    高效管理代理IP,关键操作步骤与技巧来了!

    高效管理代理IP是提高网络工作效率和安全性的重要环节
    的头像 发表于 09-14 08:08 236次阅读

    云计算环境IP地址分配方式

    之前我们聊过计算机环境IP地址的分配方式,但在云计算环境IP地址的分配
    的头像 发表于 12-19 14:02 104次阅读