【原创】Vivado Tcl你用过吗? ——Tcl实现GUI个性化
0赞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、一键添加PS的tcl源码
命令按钮对应的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