零基础入门TCL语言(五)

 下面Tcl脚本示例虽然看似简单,但清楚阐述了Tcl语法的本质!

目录

1.  脚本、命令和单词

2.  解析和执行

3.  置换


1.  脚本、命令和单词

#Tcl脚本包含一条命令或多条命令。
#多条命令之间可通过两种方式隔开。
#1:换行符  2:分号。
set x 1
set y 2
set z 3
#上述代码是三条命令组成的脚本,命令间用换行符隔开。
#也可用分号隔开,写成如下形式:
set x 1; set y 2; set z 3
#每条命令包含多个单词,第一个单词是命令名,其余的是参数。
#command argument1 argument2 argument3
#单词之间通过空白符隔开
#上述命令中:空白符、换行符及分号都不属于单词的一部分。

2.  解析和执行

#Tcl处理命令分两步走:解析和执行。
#解析阶段:Tcl解释器,认为所有的命令参数均是字符串,没有任何具体意义,并对字符串进行替换操作。
#执行阶段:命令中单词均有具体含义,Tcl把第一个单词作为command,剩余单词作为argument。

#语法结构:set valName value
set x 1
puts $x
#输出结果是1,通过set赋值命令将字符串1赋给变量x。

set y x+2
puts $y
#输出结果是x+2,同样将字符串x+2赋给变量y。

#如果想要获取变量x的值,则必须使用Tcl置换功能中的变量置换符号$。
set y $x+2
puts $y
#输出结果是1+2,解析阶段,美元符号的存在,使得字符$x被字符1替换。

#如果想要计算表达式的则,则必须使用Tcl的数学运算命令expr。
set y [expr $x+2]
puts $y
#输出结果是3,上述中括号[]为Tcl的命令置换功能。
#如果没有该中括号,会因不符合set命令的规则而报错。
#这是应为Tcl解释器执行set命令过程时,认为其后面接了y、expr、$x+2三个字符串。

3.  置换

#Tcl提供三种置换形式,1.变量置换$ 2.命令置换[] 3.反斜线置换\
#置换操作是在Tcl解释器执行命令过程之前,可对所有单词进行置换操作。
#1.变量置换 美元符号$
set x 1
puts $x
#输出结果是1,字符串$x被字符1替换。
set x+1 100
puts $x+1
#输出结果是1+1,字符串$x被字符1替换。
set x-1 100
puts $x-1
#输出结果是1-1,字符串$x被字符1替换。
set x.1 100
puts $x.1
#输出结果是1.1,字符串$x被字符1替换。
set x*1 100
puts $x*1
#输出结果是1*1,字符串$x被字符1替换。
set xa 100
puts $xa
#输出结果是100,字符串$xa被字符100替换。
set x1 100
puts $x1
#输出结果是100,字符串$x1被字符100替换。
set x_1 100
puts $x_1
#输出结果是100,字符串$x_1被字符100替换。
#由此可见,Tcl解释器在进行变量置换时变量名,仅包括$符号及往后的数字、字母、下划线。
#遇到如+、-、*、.等符号,则截止。

#命令置换[]
#Tcl解释器遇见方括号,将启动命令置换。
#[方括号中所有内容,作为一个独立的Tcl脚本处理]。
#方括号及其里面所有内容将被Tcl脚本的最终结果替换。
set x 1
set y 2
set z 3
set a [expr $x*$y-$z]
puts $a
#输出结果是-1,Tcl解释器遇到[]时,会将里面的expr $x*$y-$z这一条命令当作独立的脚本。
#脚本的执行结果为-1,所以字符串[expr $x*$y-$z]被-1替换。相当于set a 1。

puts [set a [expr $x*$y-$z]]
#输出结果是-1,这条命令是为了表达命令是可以嵌套的。
#内层命令的结果作为外层命令的参数了。相当于puts -1。

set a [expr $x*$y-$z ; set b 100]
puts $a
puts [set a [expr $x*$y-$z ; set b 100]]
#输出结果是100,表明[中括号里面脚本的结果为最后一条命令的返回值]。

#反斜线置换\
#对于换行符、空白符、[]、{}、$等,Tcl解释器当作特殊符号处理。
#反斜线的作用则是,取消特殊字符的特殊含义;以及给普通字符添加特殊含义。
set x 1
puts $x     ; #输出结果是1。
puts \$x    ; #输出结果是$x。

puts HelloTcl     ;#输出结果是HelloTcl。
#当我们想在Hello与Tcl之间输入空格时,可用\取消空白符的特殊意义。
puts Hello\ Tcl   ;#输出结果是Hello Tcl。
puts Hello Tcl    ;#因空白符存在而报错。

set price Eggs:\ \$2.5/dozen\nCoke:\ \$0.5/bottle
puts $price
#输出结果如下
Eggs: $2.5/dozen
Coke: $0.5/bottle
#第一个\取消空白符特殊含义,第二个\取消$特殊含义,第三个\n赋予普通字符n特殊含义。
#\n等价于换行符。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vivado是一款由赛灵思(Xilinx)公司开发的综合性设计工具,用于FPGA的设计与开发。而Tcl(Tool Command Language)则是Vivado中使用的一种脚本语言,用于自动化执行一系列的命令和操作。 对于零基础的用户来说,学习Vivado/Tcl入门可以按照以下步骤进行: 1. 安装Vivado:首先,需要在电脑上安装Vivado软件。可以从Xilinx官方网站下载合适版本的Vivado,并按照安装向导进行安装。 2. 理解Vivado的基本概念:Vivado是一个功能复杂的工具,需要了解其中的基本概念和工作流程。可以阅读Vivado的官方文档和教程,了解项目、IP核、约束等概念。 3. 学习Tcl语法基础:Tcl是Vivado中进行脚本编写的语言,需要学习Tcl的基本语法和结构。可以通过参考Tcl的官方文档或者在线教程,理解Tcl的变量、控制流、函数等概念。 4. 编写简单的Tcl脚本:学习Tcl语法后,可以编写一些简单的Tcl脚本来熟悉语言的使用。可以尝试定义变量、进行数值计算、使用条件语句等等。 5. 在Vivado中应用Tcl脚本:学习了Tcl基础后,可以将Tcl语言应用于Vivado工具中。可以尝试使用Tcl脚本自动创建项目、添加IP核、进行综合、实现和生成比特流等操作。 6. 提升Tcl脚本技巧:随着对Vivado和Tcl的进一步了解和实践,可以逐渐掌握更高级的Tcl编程技巧。例如,使用循环结构、使用自定义函数、调用Vivado中的API等。 通过不断的学习和实践,您可以逐渐成为一名熟练的Vivado/Tcl用户。同时,还可以查找更多的Tcl和Vivado的学习资源,如论坛、社区或相关课程,以便更深入地了解和应用这些工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值