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
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593616
  • TCL
    TCL
    +关注

    关注

    10

    文章

    1662

    浏览量

    87954
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65238

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

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

收藏 人收藏

    评论

    相关推荐

    一键动态切换IP脚本

    T*o*r*Proxy一键搭建动态代*理,通过利用T*o*r搭建Socks5代*理,最终实现动态切换IP的效果。
    的头像 发表于 12-08 10:25 474次阅读
    一键动态切换<b class='flag-5'>IP</b><b class='flag-5'>脚本</b>

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

    SPI4-P2接口形式可直接采用Altera公司的IP Core实现。Altera的主流FPGA均实现了硬件DPA功能,以Stratix II器件为例,使能DPA的情况
    发表于 11-09 18:43

    采用IP实现PCI总线接口设计

    消息。ICMP回复消息经常被用来调用ping程序测试对方主机是否在线。嵌入式TCP/IP协议栈中,ICMP回送消息用一种十分简单的方式实现,即将ICMP类型的字段由echo类型改变为
    发表于 04-23 07:00

    IP微波现代应急通信的应用

    保障,包括语音、传真等窄带通信业务,以及突发事件现场实时影像、指挥管理视频等大带宽信息的实时、高效的传送。对于进入IP化和宽带多业务时代的移动网等公共通信系统来说,应急保障更需要强大的业务疏导、链路保护
    发表于 07-15 08:06

    【创龙TLZ7x-EasyEVM评估板试用连载】TcL脚本的使用

    。使用Tcl能快速生成Vivado工程及编译工程,生成工程所需要的PL端bit文件。生成工程之后,根据自己的需要,可手动创建Block Design,或者脚本添加IP
    发表于 06-07 13:59

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

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

    Xilinx中的加密 源码和tcl脚本

    工程项目中常常使用xilinx的IP时常会遇到一些加密的verilog和vhdl,打开后是以Xlx开始的十六进制文件,某些IP中的tcl和ttcl也是用这种
    发表于 06-20 17:50

    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

    TCL 定制 Vivado 设计实现流程

    模式管理输入输出文件、进行设计实现都需要使用 Tcl 脚本,但这并不代表非工程模式不支持图形化界面。非工程模式产生的.dcp 文件一样可以
    发表于 06-28 19:34

    利用FFT IP Core实现FFT算法

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

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

    在ISE下,对综合后的网表进行编辑几乎是不可能的事情,但在Vivado下成为可能。Vivado对Tcl的支持,使得Tcl脚本在FPGA设计中有了用武之地。本文通过一个实例演示如何在Vivado下
    发表于 11-18 03:16 7012次阅读
    在Vivado下<b class='flag-5'>利用</b><b class='flag-5'>Tcl</b><b class='flag-5'>脚本</b>对综合后的网表进行编辑过程

    在Vivado下利用Tcl实现IP高效管理

    在Vivado下,有两种方式管理IP。一种是创建FPGA工程之后,在当前工程中选中IP Catalog,生成所需IP,这时相应的
    发表于 11-18 04:22 5511次阅读

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

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

    ip脚本进化的解决办法

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