Xilinx的新一代设计套件 Vivado 相比上一代产品 ISE, 在运行速度、算法优化和功能整合等很多方面都有了显著地改进。 但是对初学者来说,新的约束语言 XDC 以及脚本语言 Tcl 的引入则成为了快速掌握 Vivado 使用技巧的最大障碍,以至于两年多后的今天,仍有很多用户缺乏升级到 Vivado 的信心。
买芯片网专注整合全球优质赛灵思代理商现货资源,是国内领先的Altera(英特尔)、Lattice(莱迪思)、Xilinx(赛灵思 AMD)芯片采购服务平台,买芯片网轻松满足您的芯片采购需求.
本文介绍了 Tcl 在 Vivado 中的基础应用,希望起到抛砖引玉的作用,指引使用者在短时间内快速掌握相关技巧,更好地发挥 Vivado 在 FPGA 设计中的优势。
1 Tcl 的背景介绍和基础语法
Tcl(读作 tickle) 诞生于 80 年代的加州大学伯克利分校,作为一种简单高效可移植性好的脚本语言,目前已经广泛应用在几乎所有的 EDA 工具中。 Tcl 的最大特点就是其语法格式极其简单甚至可以说僵化, 采用纯粹的 [命令 选项 参数] 形式, 是名副其实的“工具命令语言”( 即 Tcl 的全称 Tool Command Language) 。
实际上 Tcl 的功能可以很强大,用其编写的程序也可以很复杂,但要在 Vivado 或大部分其它 EDA 工具中使用,则只需掌握其中最基本的几个部分。注: 在以下示例中, % 表示 Tcl 的命令提示符,执行回车后, Tcl 会在下一行输出命令执行结果。 // 后是作者所加注释,并不是例子的一部分。
打印主要通过 puts 语句来执行,配合特殊符号, 直接决定最终输出内容。
1.3 文件 I/O
写文件 读文件
可以看到 Tcl 对文件的操作也是通过设置变量、改变属性以及打印命令来进行的。 上述写文件的例子中通过 puts 命令在 my_file.txt 文件中写入两行文字,分别为“Hello World!”和 myVar 变量的值,然后在读文件操作中逐行读取同一文件的内容。
1.4 控制流和循环命令
Tcl 语言中用于控制流程和循环的命令与 C 语言及其它高级语言中相似,包括 if、while、 for 和 foreach 等等。
具体使用可以参考如下示例,
1.5 子程序/过程
Tcl 中的子程序也叫做过程( Procedures) , Tcl 正是通过创建新的过程来增强其内建命令的能力,提供更强的扩展性。具体到 Vivado 的使用中,用户经常可以通过对一个个子程序/过程的创建来扩展或个性化 Vivado 的使用流程。
Xilinx中国海量优质的信息资源、行业资讯、最新开发方案等资讯信息平台。