本文介绍了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
来源:51CTO
作者:yc2020021699
链接:https://blog.csdn.net/yc16032399/article/details/100762245