编译环境设置:
1)软件安装
安装ActiveTCL
2)编写tcl脚本文件
https://wenku.baidu.com/view/fd6a9a8bba1aa8114531d942.html
简介
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所有信息