cuter

【原创】Vivado Tcl你用过吗? ——Tcl实现GUI个性化

0
阅读(9926)

鲜果阅读器订阅图标

Vivado Tcl你用过吗?

——Tcl实现GUI个性化

摘要:本文是采用Tcl脚本,利用Vivado提供的GUI定制接口,将自主命令按钮添加至Vivado工具栏,一键搞定zynq ps内核的添加。

 

1、引言

从之前对Vivado的使用,要肯定的是Vivado提供了高集成度、功能强大、操作便捷的图形用户界面。然而,从官方的一些宣传资料可以看出,很多时候都在强调一个东西:Tcl。关于Tcl,毫无疑问是很强大的,但是如何利用Tcl提高我们的开发效率是一个值得深思的问题。今天我从一个小的侧面,利用Tcl缩短了开发时间,分享给ChinaAET的朋友们,抛砖引玉,希望大家能多多学习、讨论Tcl的使用,分享心得体会

Vivado所有的工具和工具选项栏都是使用原生的工具命令语言格式编写,这样一来,我们在开发时既能使用Vivado GUI又能使用Tcl shell。相应地,Vivado有两种设计模式:Project模式和Non-Project模式。两种模式大同小异,一种是使用图形用户界面,另一种是使用Tcl脚本。

由于大多数人都习惯了基于GUI的开发模式,通常情况下对Non-Project模式都不会太感冒,所以完全抛弃GUI的开发方式,暂时就不考虑了。我们在使用GUI创建工程完毕的基础上,利用Vivado提供的GUI定制接口,定制自主命令,实现zynq ps内核的快速添加。

2、自主功能的添加

Vivado提供了界面定制的接口,可以添加命令按钮至主菜单或者工具栏,按钮功能利用用户自定义Tcl命令实现。

具体方法:

Tools > Custom Commands > Customize Commands,如图1所示:

 

 

1

   点击Customize Commands,弹出图2所示对话框。

 

2

点击图2中高亮的”+”按钮,添加一个新的命令。

然后为add_zynq按钮,添加tcl文件,点击图3所示的按钮,选择设计好的tcl文件。指令文件源码附于文章结尾,文件存储位置自行选择即可,我是放在工程目录下的。

 

3 配置命令按钮

选中Add to the toolbar,然后为我们的按钮选择一个图标:

 

4 为按钮选择个性化图标

设置完毕的对话框如图5所示,关键点用红色椭圆标出来了。

 

5 按钮属性配置完毕

点击OK,返回主界面,发现按钮添加成功,如图6所示。

 

6 主界面出现个性化命令按钮

3、功能测试

建一个空工程,如图7所示。

 

7

点击我们自定义的指令:

 

8

进度条跑完,结果如图9所示。

 

9 个性化命令运行结果

关闭Vivado,随意打开一个工程,按钮仍然存在,不是临时的!我们完成的是对Vivado GUI的定制,和工程无关!

4、总结

毫无疑问,这种方法比我们手动创建Block Design > 手动添加zynq7 ps > 手动运行Block Automation要方便的多,而且实测时发现,速度快了很多,button点下,30秒就完成了所有工作,不得不赞啊!!!

利用tcl脚本,我们可以实现从工程创建到PS内核添加的快速完成;也可以根据自己的需要,手动创建Block Design,脚本添加IP、实现自动连接等功能。总而言之,tcl的引入,使得Vivado设计过程也变得可编程控制,设计流程变得更加灵活多变!

 

5、一键添加PStcl源码

      命令按钮对应的tcl文件源码


create_bd_design design_1

# create_bd_cell [-vlnv arg] [-type arg] [-quiet] [-verbose] name

# vlnv: Vendor:Library:Name:Version

create_bd_cell -vlnv xilinx.com:ip:processing_system7:5.4 -type IP arm

 

# apply_bd_automation [-config args] -rule arg [-quiet]

# [-verbose] objects ...

 

# set_property location {1 70 48} [get_bd_cells arm]

apply_bd_automation -rule xilinx.com:bd_rule:processing_system7 -config {make_external "FIXED_IO, DDR" apply_board_preset "1" Master "Disable" Slave "Disable" }  [get_bd_cells arm]


 

版权声明:

本文由博主“cuter”发布。欢迎转载,但不得擅自更改博文内容,也不得用于任何盈利目的。转载时不得删除作者简介和版权声明。如有盗用而不说明出处引起的版权纠纷,由盗用者自负。

博客官方地址:

ChinaAET:http://blog.chinaaet.com/cuter521

EDN China: http://bbs.ednchina.com/BLOG_cuter521_356737.HTM

Baidu
map