新网站怎么做论坛推广,找工作的网站,惠州网站建设,广西注册公司网站在之前本公众号写过两篇关于工具更新对仿真调试提高效率的文章#xff0c;《【干货】推荐一款FPGA仿真调试鸟枪换炮的工具#xff01;》以及《NCVerilogSimVisionVivado仿真环境搭建》#xff0c;详细描述了Linux环境下仿真环境搭建可以缩短五倍以上的仿真时间。本文仍是实验…在之前本公众号写过两篇关于工具更新对仿真调试提高效率的文章《【干货】推荐一款FPGA仿真调试鸟枪换炮的工具》以及《NCVerilogSimVisionVivado仿真环境搭建》详细描述了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 模式第一天 妈妈你快回屋里去写作业不准玩电脑。 我好的。第二天、第三天…… 妈妈我之前说的你忘了快去。 我好的。 原本每天重复的长对话后面都只能用一句就代替了。 经过上面的对比相信你已经对Batch mode在流程操作效率上的提升有了明确的认识那么接下来再说说另一方面。2、运行效率 运行效率指的就是Vivado在执行具体操作的时候其自身运行计算的效率、速度。这里我并没有深究让运行效率提升的具体原因个人猜测一部分原因是因为不使用GUI而释放了很多原先被GUI占用的资源可能还有跟GUI占用的系统中断更多有关吧(把这一条归到前一条也没问题)有兴趣的同学可以去具体研究一下我这里只说对比实验的结果。 我用一台CPU为i7-8700,16G DDR4 2666MHz 内存的PC分别使用GUI和Batch mode对同一个Vivado工程从Synthesis跑到Write Bitstream这样一个完整的过程。GUI花了45分钟时间Batch mode花了18分钟。 GUI“我起了被秒了有什么好说的。” Batch mode在运行效率上的优势太明显不需要再说更多了吧。 综合以上两点使用Batch mode既能提高流程操作效率解放自己的双手还可以大幅提高运行效率缩短运行等待时间直接有效的提高使用Vivado的整体效率使开发速度大大加快。这些就是我推荐使用Batch mode的原因。要使用Batch Mode的一些不便 正如前面提到的syn.tcl文件要指挥Vivado执行任何操作都需要用tcl语言来下达命令也就是说你还需要会用tcl语言把要做的事情告诉Vivado才行这就增加了难度。 TCL语言全称是Tool Command Language一般简写成tcl(读音同tickle)它是许多的EDA工具都使用的一种语言既有tcl原生的语法也有各家EDA自己定义的语法Vivado的tcl语法可以参照Xilinx UG835文档很全面的手册。或者你也可以参照着平常使用Vivado工程时出现的vivado.jou这个文件它里面记录了你这一次从打开到关上Vivado整个过程中按顺序每一步使用的tcl命令我个人更偏向于用后者作为主要材料学习然后随时翻看UG835文档作为补充讲解。 另外除了需要tcl语言来写具体的命令还需要一个框架来进行流程控制就好像你知道Synthesis的命令是什么也知道Implement的命令是什么样但是你还需要什么时候用什么命令用完之后再做什么什么时候停止......等等这些都要考虑在内。这个框架根据需求可以很简单也可以很复杂同时它也需要再使用另一种语言来搭建常见的有Shell、Perl以及Python。这些就又为写一个脚本增加了难度。 因为这些原因许多人对Batch mode望而却步毕竟都是从Windows过来的人不看图形界面就发慌关GUI是不可能关的这辈子都不可能关的写脚本又不会就只有点来点去才能勉强应付的了生活这样子。但是不用担心 我给你都准备好了我把一切都放在那里了One Piece是......(不好意思串场了)这是一个一个简陋但是又能实现基本功能的脚本暂且叫它Vivado Batch Mode Tool吧我尽可能让它的在Terminal中能显示出一个类似GUI的操作界面。可能你用了之后会觉得“Batch mode比GUI好多了里面各个东西都实用界面又简洁我超喜欢Batch Mode的”Vivado Batch Mode Tool介绍与使用方法1、Vivado Batch Mode Tool功能介绍 本工具的初衷是能为本人所在实验室的各位同学们提供一个方便的途径去接触使用Vivado Batch mode因此需要方便的与Vivado工程配合使用于是便设计成了类似外置助手工具这样的框架。 Vivado Batch Mode Tool可以使用户方便的使用Vivado的Batch mode仅需要输入提供的选项就可以做到基础的Synthesis、Implement、Write Bitstream以及Program Device这些操作相当于为用户准备了一个不同于GUI的操作界面可以较好的服务于习惯GUI的用户。本工具仅能实现一些基础必要的功能一些更为复杂的特别是需要用户自己定义的(例如Debug Core)仍然需要通过GUI完成在工具中也提供了进入GUI的选项。2、Vivado Batch Mode Tool文件总览Vivado Batch Mode Tool我将其放入一个文件夹内如下图。 其中包含了这样的一个文件夹和两个文件如下图。这其中Vivado_init.tcl的作用我已经写在它的注释里了不希望每一次打开vivado都产生两个备份的.log和.jou的同学可以看一看它。 在tcl_dir内有7个.tcl文件,如下图。 这些就是这个脚本的全貌。3、Vivado Batch Mode Tool使用介绍1)将Vivado_bat_mod_tool文件夹放置在与你的Vivado工程的.xpr同一级目录下如下图。 2)修改文件夹内的Vivado_batch_mode_tool这个文件的权限为允许作为可执行文件可以使用chmod命令也可以右键----Properties----Permission----下方勾选Allow executing file as program。 3)在Vivado_bat_mod_tool文件夹这一级使用Terminal运行Vivado_batch_mode_tool ./Vivado_batch_mode_tool4)如果文件夹放置正确则会检测到Vivado工程显示如下的界面如果文件夹放置不正确则会报错如下图5)下面介绍各个选项的使用请根据需要输入相应的选项并回车即可。syn仅执行Synthesis操作执行完会询问是否需要打开 Synthesis Design的GUI界面请输入y/n来决定是否打开。这里是为了当一些工程需要添加debug core的时候可以在综合完成后进入GUI去set Debug设置完成后再手动关闭GUI即可。imp仅执行Implement操作执行完会询问是否需要打开 Implemention Design的GUI界面请输入y/n来决定是否打开。这里是为了有时需要在实现完成后检查布线图。bit仅执行Write Bitstream操作会将生成的.bit文件和.ltx文件(如果有的话)放置在Vivado_bat_mod_tool文件夹中的bitstream文件夹内。syn_imp连续执行Synthesis和Implement执行完会询问是否需要打开 Implemention Design的GUI界面请输入y/n来决定是否打开。 all连续执行Synthesis、Implement和Write Bitstream。prog将bitstream内的[current_project].bit下载入FPGA。如果没有发现匹配的Device则会报错。注意目前此脚本还仅能下载.bit文件如果有.ltx文件请进入GUI去下载毕竟抓信号有时候还是需要用GUI观察。gui:使用GUI打开这个Vivado工程。 exit退出脚本。6)每一次执行完之后只需要按回车就可以返回主界面不要反复开关脚本。使用实例 接下来我将通过讲解一次完整的从Synthesis到Program Device的操作来为大家提供一个使用这个脚本的实例。1)如前文描述一样放置正确路径并打开脚本得到下图2)单独执行Synthesis(当然也可以一步到位执行all)输入syn并回车得到下图。然后Vivado就会开始对你当前的工程进行Synthesis完成之后会有询问是否要打开Synthesis Design如下图。不需要就输入n然后回车如下图。需要打开Synthesis Design则输入y并回车然后就会打开Synthesis Design的GUI。下图是打开的Synthesis Design GUI界面。之后关掉GUI时也会显示只需要按回车就可以返回主界面。3)直接执行all从Synthesis跑到Write Bitstream输入all并回车如下图。然后Vivado就会开始自动的先执行Synthesis再执行Implemention最后执行Write Bitstream。完成后会有如下图的提示。同时bitstream文件夹下会出现.bit文件有debug core时还会出现.ltx文件。4)最后我要进行Program Device操作此时我的PC上没有连接任何FPGA板如果此时执行prog则会出现下图的报错。我现在就去拿块板子插上。好的板子插上了我们现在再来prog一下。Program完成后会有提示如下图。并且此时开发板上是这样的没错它就是个流水灯。全程完成操作少速度快易掌握。只需要执行all和prog就能完成这一系列的操作。写在最后 希望看完了以上内容的你能够掌握这种Vivado的Batch mode用法并能够去开发自己的脚本工具。 希望本工具能够起到抛砖引玉的作用带给以前没有接触过使用脚本进行开发的同学们一个新的体验然后打开一个新的大门提高更多的能力。 目前这个Vivado Batch Mode Tool V1.0也是我关于Vivado Batch mode的第一个脚本比较简陋的shell脚本也希望后面我也加强学习等到V2.0的时候给大家带来更功能强大的Python版本的脚本。全文完。