在之前本公众号写过两篇关于工具更新对仿真调试提高效率的文章,《【干货】推荐一款FPGA仿真调试鸟枪换炮的工具!》以及《NCVerilog+SimVision+Vivado仿真环境搭建》,详细描述了Linux环境下仿真环境搭建可以缩短五倍以上的仿真时间。本文仍是实验室学生张仲禹所写,介绍了自己开发的小工具Vivado Batch Mode Tool,通过使用它可以很简单的做到从GUI过渡到命令行使用,希望大家都能用上更好更快的工具,在紧张的工作时间里创造更多的价值!
手点Vivado GUI也太低效了,关注“Z胖实验室”公众号,公众号内回复 Vivado脚本 获得链接,也可在头条给我留言告知我邮箱。
Vivado Batch Mode就如其字面意思,就是Vivado的批处理模式,用另一种说法也就是使用shell的非GUI(图形界面)交互模式。但是要注意,非GUI模式还有一种tcl Mode,也就是使用tcl命令的交互模式,这不等同于我们这里所说的Batch mode。或者你可以更简单的把它理解为通过命令行与Vivado进行交互。
在Batch mode下Vivado使用起来更加快速,操作更加明确简洁,可以大大的提高工作效率,提高生产力。
为此,为了实验室同学们能更加方便的使用Vivado Batch mode,我写了这个小工具Vivado Batch Mode Tool,通过使用它就可以很简单的做到从GUI过渡到命令行使用,希望大家都能用上更好更快的工具,在紧张的工作时间里创造更多的价值!
需要一提的是,本工具仅仅是一个简单的脚本,使用Shell和tcl进行实现(十分简陋且结构简单),主要用于实现我们日常开发的基础功能,这里作为抛砖引玉的作用,希望大家有更好的想法也可以动手去实现,推荐大家学习使用Python进行脚本编写,这样更有助于编写更加强大的脚本。
为什么要使用Batch Mode?
这里从两个方面分别进行说明,为什么要使用Vivado的Batch mode。
1、流程操作效率
我所谓的流程操作效率,是指在使用Vivado时,通过键盘输入、鼠标点击以及进行等待等实际外部操作的效率。例如我需要打开一个Vivado工程,并进行Synthesis,那么在GUI下是这样的流程操作:点击打开Vivado GUI并等待----用Vivado点击打开对应的.xpr文件并等待----点击run Synthesis并点击确认----等待----Synthesis完成。
而如果使用Batch mode,那么只需要在Terminal输入以下命令:
Vivado -mode batch -source syn.tcl XXX.xpr
其中syn.tcl是一个提前写好了tcl命令用于指示Vivado进行Synthesis操作的tcl文件,这也仅需要几行简单的代码即可。
从这里已经可以看出,在有一个提前准备好的脚本的情况下,通过脚本指挥,自动的去下达命令,可以极大地减少流程操作,可能只需要输入几个字母再按一下回车,就可以执行一套较为复杂的操作。
上面举例中的进行Synthesis还算是一个较为简单的操作,很明显在越复杂的操作中,使用Batch mode越能带来更高的流程操作效率提升。
一种简单的理解方式是,你提前将需要做的事情都告诉了电脑,然后你就玩去了,电脑按照你提供给他的事务列表逐个逐个自己去进行,这期间不会再来烦你。
更为生动的GUI和Batch mode在流程操作上的对比就像这样:
GUI模式:
第一天
妈妈:你快回屋里去。 我:好的。
妈妈:坐下来。 我:好的。
妈妈:快写作业。 我:好的。
我:我能玩电脑吗? 妈妈:不行。
第二天、第三天……
相同的对话每天重复。
Batch 模式:
第一天
妈妈:你快回屋里去写作业,不准玩电脑。
我:好的。
第