TCL脚本语言学习(一)

简介

         Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。是tool command language的缩写,发音为 "tickle”。 实际上包含了两个部分:一个语言和一个库 首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一 些互交程序如文本编辑器、调试器和shell。它有一个简单的语法 和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你扩充(定义新的 过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。 但Tcl库收到命令后将它分解并执行内建的命令,

经常会产生递归的调用。

学习初衷

       学习专业为数字集成电路方向,在电路设计过程中,接触到FPGA相关。用到XILINX的相关设计套件Vivado,物理约束文件和时序约束文件由tcl语言编写完成,界面友好且支持tcl命令进行相关设计;其次仿真过程中接触modelsim,命令窗口也支持tcl语言,省去了图形界面操作的缺点,等相关原因。因此,考虑学习tcl语言方便相关软件的使用。

基本语法

1.命令结构:

每条命令之间通过换行或者;隔开。例如:

set foo 0
set bar 1;

2.注释:

使用#注释,不过要注意的是下面的注释是错误的:

set aa 0 #注释内容

因为tcl解析器总是认为一条命令应该以换行或者分号结束,其他的在同一行中都认为是参数。所以正确的应该是

set bb 0; #注释内容

3.数据类型:

tcl不支持形如int , double ,char等等类型,唯一支持的就是string类型。

一个变量可以在不同的时刻理解为不同的类型。

4.变量:

tcl可以定义两种类型的变量:变量和数组。

变量:在tcl变量不需要声明就可以直接赋值。给变量赋值的例子:

set aa 1;
set ba “a good man”;#加引号的作用是为了告诉编译器包括空格

 取得变量的值可以在对应的变量名前面加$来取得,例如:

puts $ba;  #表示打印出ba的值

 数组:数组也不需要声明,直接赋值,例如:

set arry(0) 1;
set arry(1) 2;

          数组下标可以不按照顺序来写,也不一定是数字,可以是字符串。例如:

set Arry(3) f;
set Arry(9) fs;
set Arry(abc) yes;

         使用puts $Arry(3);的形式来获得数组的内容。当然tcl数组也支持多维数组,声明形式为: 

set Arry(1,1,1,1,1) fs; #随便多少维

如果我们要查看某个已经赋值的数组的信息,可以使用parray命令:如:   

parray $Arry;打印数组Array所有信息
发布了12 篇原创文章 · 获赞 0 · 访问量 271

猜你喜欢

转载自blog.csdn.net/dxz44444/article/details/105060137