Vivado中的TCL脚本语言

匿名 (未验证) 提交于 2019-12-03 00:03:02

本文介绍了Tcl在Vivado中的基础应用,希望起到抛砖引玉的作用,指引使用者在短时间内快速掌握相关技巧,更好地发挥Vivado在FPGA设计中的优势。

 Vivado TCL脚本语言


使用Tcl作为它的命令语言的好处:
















基本语法和基础命令




命令格式

一条Tcl的命令串包含了多条命令时,用换行符或分号来隔开,而每一条命令包含了一个域的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。

02

数据类型

Tcl只支持一种数据结构:字符串。所有的命令、命令里的所有的参数、命令的结果、变量全部都是都是字符串。

简单实例:
















03

设置变量

%set myVar"Hello World!" //设置一个名为myVar的变量,其值为Hello World!



04

使用$符号引用变量



其中puts是打印命令

05

使用[]将命令返回值,作为新命令的参数

Vivado set i [set j 232] ; puts $i 232








06

数组






引用的时候直接$i(1,2,3)即可


















Vivado set k<0> 11 ; set k<2> 22 ; set k<0> xx ; array name k

x 0 2

Vivado array startsearch k

s-1-k

Vivado array nextelement k s-1-k

x

Vivado array nextelement k s-1-k

0

Vivado array nextelement k s-1-k

2

Vivado array anymore k s-1-k

0

Vivado array donesearch k s-1-k




07

字符串命令

string命令:










Vivado string trim ----abc-def------









Vivado string tolower abvASDA






append命令:
字符串追加,可以无限拼接










Vivado split sddsfsdf s



08





incr命令:








Vivado expr 222>111

1

Vivado expr 5/4.0

1.25

Vivado set a [expr 1 ? 123 : 321]

123

Vivado expr cos<0>

1.0


09



proc:










用于将过程中的局部变量变成外界可操作的全局变量







return命令:




return命令没啥好说的,上述代码的结果是,将i变量赋值为world字符串

10

控制流和循环命令



具体使用可以参考如下示例:












例子如下,一目了然:








case流控制:










循环读取myVar变量的值并打印,那就需要这个foreach了


TCL的for循环也是很类似C语言的:



}123



while循环:

判断变量的值,打印,变量再赋值就OK了

11






eval将字符串的内容,作为命令,执行

12



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!