1. 前言
Tcl脚本语言,在FPGA的开发中经常被用到,什么是Tcl脚本语言,Tcl脚本语言有何优点,如何开发Tcl脚本语言。是FPGA工程师必须掌握的技能。
2. 参考博文
3. 什么是Tcl脚本语言
- Tcl全名Tool Command Language,是一种解释执行的脚本语言(解释执行就是边解释边执行,区别于编译)。
- 包括两个部分:一个语言和一个库。
- 语言是指: Tcl是一种简单的脚本语言,主要使用命令给一些交互程序如文本编辑器,调试器和shell。
- 库是指:由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上又可以把TCL看作C库。
4. 基本语法
[命令 字符串 #注释]
set a 1 #设置参数a=1;
对于Tcl来说,说有的变量都是字符串!
Tcl解释器一般分两步:分析和执行。
set x 10 ; #定义变量x,并把x的值赋为10
10
set y x+100 ;#y的值是x+100,而不是我们期望的110
x+100
如果想要带入x的值要使用置换。
置换有三种:
- 变量置换
- 命令置换
- 反斜杠置换
变量置换
set y $x+100; #y的值是10+100,这里x被置换成它的值10
10 + 100
命令置换
set y [expr $x+100];
110
[]中的内容是一个完整的命令,计算完[]括号中的结果会给y。
反斜杠置换
类似于C语言中的转义符,把\后面的内容当做符号。
set msg multiplex\ space; #msg的值为multiple space。
multiple space
双引号和花括号
除了使用反斜杠外,TCL提供另外两种方法来使得解释器把分隔符和置换符等特殊字符当作普通字符,而不作特殊处理,这就要使用双引号 " " 和花括号 {} 。
set y "$x ddd";
100 ddd
5. 变量
变量的名字可以是任意字符串,tcl变量可以直接赋值无需声明。
set a 2 #设置a的值为2
2
set a.1 4; #设置a.1的值为4
4
set b $a.1;
2.1
set b ${a.1};#使用{}能使用a.1整体的值
4
set a {kdfj kjdf} #变量a的值是kdfj kjdf
set a #省略变量名后的参数时,读取变量a的值
kdfj kjdf
6. 数组
set day(monday) 1; #生成一个名为 day 的数组 , 同时在数组中生成 一个名为monday的数组元素,并把值置为1
set day(tuesday) 2; #生成一个名为tuesday的数组元素,并把值置为2
7. 常见命令
- unset 删除变量,可以一次性删除多个
unset a b day(monday);
- append 把一个文本加到变量后面
set txt hello; #hello
append txt"! How are you"; #hello! How are you
- incr命令把一个变量值加上一个整数。incr要求变量原来的值和新加的值都必须是整数。
set b 2; incr b 3; #结果为5