Vivado是Xilinx最新的FPGA设计工具,支持7系列以后的FPGA及Zynq 7000的开发。与之前的ISE设计套件相比,Vivado可以说是全新设计的。无论从界面、设置、算法,还是从对使用者思路的要求,都是全新的。看了大家很多的博文,基本上都是用GUI创建工程,那我就简单介绍一下Vivado的脚本使用。
在ISE设计套件中,支持多种脚本: 可以用xperl来运行perl脚本,可以用xtclsh来运行Tcl脚本,还可以用windows批处理脚本来运行设计流程。
ISE集成的Tcl脚本解释器为8.4版本。同时,ISE GUI中的Tcl console功能不够强大,部分组件使用的脚本也与Tcl有不同,导致Tcl脚本在ISE上并不十分流行。
在Vivado上,Tcl已经成为唯一支持的脚本。并且,所有 *** 作都有对应的Tcl脚本可以执行。所以,掌握Tcl脚本语言对掌握Vivado的使用有重要帮助。
Vivado上集成的Tcl脚本解释器为8.5版本,也是目前比较流行的Tcl版本。Vivado的核心就是一个脚本解释器,GUI界面只是将各种脚本命令封装为图形化界面而已。
下面以Windows为平台,用脚本的思路,运行一下Vivado:
首先需要设置环境变量,在path环境变量中添加Vivado的路径,路径设置到bin文件夹,例如 C:\Xilinx\Vivado\2014.1\bin
在Windows界面下,“开始”->“运行”,输入cmd,打开windows命令行终端。这个时候 有三个选择:
1. 输入“vivado”,启动Vivado GUI界面,和点击桌面上的图标启动Vivado没什么区别;事实上,直接点击桌面图标,就是调用windows batch命令启动vivado
2. 输入“vivado -mode batch -source file.tcl”,从脚本批处理的形式启动Vivado,运行后直接执行file.tcl文件
3. 输入“vivado -mode tcl”,启动Tcl交互式命令行。
使用第三种方法。启动后显示Vivado的版本,这里使用2014.1
输入命令 “info tclversion”可以查看到Vivado使用的Tcl的版本 8.5
Tcl是一种很容易用户自己定义命令的脚本语言,Xilinx在此基础上增加了大量Vivado的命令。对于Vivado自定义的非标准的Tcl命令,输入该命令后,继续输入空格+“-help”,可以查到该命令的详细解释。
Vivado GUI中的Tcl console和CMD启动的交互命令行功能基本相同,不同在于Vivado 在切换路径时可以利用CMD的自动补缺功能更方便的切换路径。
Vivado有两种设计流程:project模式和non-project模式。
如果已经有设计工程了,可以使用Tcl脚本继续进行project的流程,例如:
open_project TEST.xpr #打开已有的工程文件TEST.xpr
launch_runs synth_1 #运行综合 synth_1
wait_on_run synth_1 #等待综合结束
launch_runs impl_1 -to_step write_bitstream #运行实现impl_1,并生成bit文件
wait_on_run impl_1 #等待实现结束
如果使用non-project模式,则脚本会复杂一些,下面提供一个模板。
注:英文注释是参考Xilinx相关文档,中文注释是为了方便阅读,由于Vivado原生不支持中文,所以为了避免不必要的错误,建议使用时去除中文
place the inst "ram_tdp2_ins" to the location RAMB36_X1Y9place the inst "GT_i" to the location GTP_DUAL_X0Y4
用FPGA editor 看综合产生的NCD文件,就可以看到具体的path 和各个component的位置。各个模块的位置用X Y 轴来表示, 例如这里的 RAMB36_X1Y9 GTP_DUAL_X0Y4。
LOC defines where a design element can be placed within an FPGA. It specifies the absolute placement of a design element on the FPGA die. It can be a single location, a range of locations, or a list of locations. You can specify LOC from the design file and also direct placement with statements in a constraints file.
综合的时候 XST会尽量把相关的inst 放到一起,来缩短path delay。但是XST 一是没有那么智能,二是有很多很多的bug(法国人做的), 有的时候会把相关的inst放的比较远,造成timing error,这个时候可以用这个LOC 来固定一些inst的位置来解决问题。
6.X的确是底了点。我现在用的版本是10.1.03
感觉很好用,编译的速度感觉上快了(也许只是感觉)
我觉得最好的地方在于它可以支持中文输入注释了,以前的版本稍不小心碰到了“Ctrl+空格”开了输入法。ISE就死掉了。
安装10.1,再安装10.1.03补丁。
还有个使用的就是 修正了下装Prom时经常校验错误的问题。
其他修正参考ISE的补丁说明。
补充回答。
对应CPLD不应该不支持的,只要是Xilinx的就应该有。
我的.3补丁不是下载的,是xilinx的技术支持给我同事拷贝的。不装也没什么问题的!具我所知,它修正了下装Prom时经常校验错误的问题(有时出错,校验正确就没有题了)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)