FPGA开发之Tcl项目设计一

现在在教学的时候看到的一般都是UI进行FPGA的项目建立,但是使用Tcl命令的脚本文件实现FPGA的项目建立。

一、啥是Tcl,做什么的?

Tcl是工具命令语言(tool command language),一条命令就是完成某项工作,比如综合,仿真之类的。不用再用鼠标点来点去,好像有点装逼。确实是有点。

Tcl的格式一般是:command arg1 arg2 。。。。。。

二、Tcl的机制是怎么样的呢?怎么工作呢?

(1)变元数组;

(2)对嵌套命令,变量和反斜杠进行数值替换;

(3)调用命令,用最终命令对变元进行解释。

三、一些常用的Tcl命令:

(1)变量赋值。set命令是将值赋给变量,它接受两个变元,第一个是变量名,第二个是值。第一次对变量赋值时解释器自动创建变量后,可以通过$获取该变量的值。

set var 5 //var = 5;
set b $var // b = var = 5;

(2)命令替换:在方括号里嵌套命令,先执行方括号里面的嵌套命令,得出结果后再替换之前的嵌套指令。

比如:set len [string length ChinaFootball] //方括号里面的string length是求后面字符串的长度。那么先执行括号里面的内容,string length ChinaFootball

得到 的是13,那么最后指令就是执行set len 13

(3)数学表达式:Tcl本身只完成分组,替换和命令的调用工作,用expr命令对数学表达式进行分析和计算。expr的计算和c还是一样的,可以处理整数,浮点数和布尔值。

逻辑返回true或者false。

数学表达式可以嵌套命令和变量应用。

set x 7
set len [expr [string length foobar] + $x]

表达式支持许多内建的函数:
set pi [expr 2*asin(1.0)] 得到3.141592653589793

使用大括号:
expr { 7.2 / 4}
set len [expr {[string length footbar]} + $x ]
14
set pi {expr {2 * asin(1.0)}]

(4)反斜杠替换:引用特殊意义的字符,比如通过它的引用形式指定一个纯粹的美元符号,大括号或者方括号。反斜杠还经常用于在多行续写一条很长的指令。

比如:
set len [expr {[string length \
footbar]} + $x ]
14