欢迎来到天天文库
浏览记录
ID:43485886
大小:216.03 KB
页数:12页
时间:2019-10-08
《tcl脚本语言学习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、TCL脚本语言学习前言Tcl和Java一样,是平台无关的语言,windows、linux下面都可运行;Tcl和Perl一样,是脚本语言,无须编译,解释执行;QuartusII支持Tcl;Modelsim支持Tcl,.do文件就是按照Tcl语法写的;学会了Tcl,QuartusII的项目设置可以随身带走,项目维护简便至极;学会了Tcl,可以把QuartusII的STA工具用起来,时序分析从此不难;学会了Tcl,自己就能EDA。语法基本操作命令1、输出:语法为:puts?-nonewline??channelled?String例如:putshello,如果是写
2、成puts-nonewlinehello,就是表示不输出回车换行。如果是puts{"hello,world!"},此时输出的结果是“hello,world!”注意:putsstdout{"hello,world!"},与上面的输出是一样的,这里stdout是表示标准输出I/O流,它同stderr(用于标识标准出错输出),stdin(标准输入)一样,是和其他文件的I/O命令的约定。2、变量赋值与取消定义:语法为:setvanName[value]unsetvarNameset:变量定义和赋值命令,为变量赋值时,会为变量开辟一段内存空间来存储变量值。set命令也
3、可以只跟变量而无变量值,若变量已经定义,则返回变量值,效果和puts类似,如果该变量不存在,则返回错误信息。当设置了一个变量时,要读取它可以通过“$”符号来引用。setahello;#定义变量a并赋值puts$a;#此时输出的就是hello,有点类似指针的概念setb$a;#把hello这个值赋给bUnset:取消变量定义,并释放变量所占的内存空间。3、替换:(1)、用“$”可以引用替换功能,但是注意TCL对替换只进行一遍解释,对嵌套的“$”不予理睬例如:setahellosetbasetx$$b,此时输出为$a(2)、[]也可以完成替换的命令例如:setb
4、[seta5]或setb[expr5*10]4、“”的作用:用于引用特殊字符或特殊功能。例如:setx"$a";#把X定义为$aputs"a";#输出震铃(在tclsh下运行)puts"hello";#表示换行显示hello所谓的替代,其实包含3层意思,一、变量的替代。二、命令的替代。三、反斜杠替代。变量的替代:setvar5;setb$var;在这里,使用$符号就是一个替代的例子,它相当于替代Var变量的数值给$var。命令的替代:setlen[stringlengthfoobar],它的意思是把foobar的字符长度给len。嵌套命令由[]
5、分隔,这是一种命令替代。如果在一个命令中有多重命令替代,那么是按照从左到右的顺序处理,每遇到右中括号就开始处理其分隔的命令。反斜杠替代:它用来引用对于解释器有特殊意义的字符。比如seta$b;此时a的值为$b。反斜杠还有一个作用就是在多行之间延续长命令,因为换行符会结束一个命令。数学表达式expr命令1、数学运算要用数学运算时,就用expr命令就可以了,比如exprlog(10);exprsin(30);#此处的30是弧度,不是角度。2、incr命令:用于根据指定的步长来增加或减少参数的值,当步长为负时,减少参数值;当步长为正时,增加参数值。语法:incr
6、varName?step?例如:seta10;incra4;#此时会显示的是14,表示a的值为14。字符串基本指令1、append:将值追加到字符串尾,将一段字符串连接到另一字符串尾部从而组成新的字符串。语法:appendvarName?value?例如:setvar1hello;setvar2world;appendvar1$var2;#此时输出的就是helloworld,也就是var1的值现在变成helloworld。2、format:根据一组格式说明来格式化字符串,此命令不会改变被操作字符串的内容。语法:formatspecvalue1value2..
7、.其中,spec包含了格式说明关键词和附加文字,使用%来引入一个关键词,后跟0个或多个修饰符,然后使用一个转换格式符结尾。关键词的基本格式是:“%aaaB",aaa表示修饰符,B表示一种格式转换符。valueX是变元,其关键词可以多达6部分:位置说明符、标志、字段宽度、精度、长度、转换符。例如:format”%8x“20;#将20转换为十六进制数,8位数据宽度,右对齐。如果是-8x表示左对齐。3、scan:根据格式描述符来解析一个字符串并将对应值赋给后面的变量。返回值是成功转换的个数。语法:scanstringformatvar?var?.....%c的作用
8、与format的正好相反,是将一个ASCII字符转换
此文档下载收益归作者所有