Vivado之TCL脚本语言基本语法介绍.docx

上传人:lao****ou 文档编号:873391 上传时间:2024-07-05 格式:DOCX 页数:15 大小:34.74KB
下载 相关 举报
Vivado之TCL脚本语言基本语法介绍.docx_第1页
第1页 / 共15页
Vivado之TCL脚本语言基本语法介绍.docx_第2页
第2页 / 共15页
Vivado之TCL脚本语言基本语法介绍.docx_第3页
第3页 / 共15页
Vivado之TCL脚本语言基本语法介绍.docx_第4页
第4页 / 共15页
Vivado之TCL脚本语言基本语法介绍.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Vivado之TCL脚本语言基本语法介绍.docx》由会员分享,可在线阅读,更多相关《Vivado之TCL脚本语言基本语法介绍.docx(15页珍藏版)》请在第一文库网上搜索。

1、Vivado之TC1脚本语言基本语法介绍TC1脚本语言Tc1(Too1Command1anguage)是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,而且VIVADO也提供了TC1命令行。最近发现TC1脚本貌似比GU1下操作VIvADO效率高一些,方便一些。而且最近跟着官网文档做2SoC的fIatf21m,发现Xi1inX官网的文档里都是用TC1命令来完成操作,于是决心学习一下TC1的语法。应用程序(如V1VADO)使用TC1作为它的命令语言的好处:1 TC1提供了标准语法,一旦用户掌握了TCI就可以很容易的发布命令给基于TCI的程序。2 Tc1实现了很多的功能,使你的工作变得很方

2、便。3 TC1可作为程序间通信的接口。命令格式一条TeI的命令串包含了多条命令时,用换行符或分号来隔开而每一条命令包含了一个域的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它数据类型TC1只支持一种数据结构:字符串。所有的命令、命令里的所有的参数、命令的结果、变量全部都是都是字符串。简单实例:seti123将123这个字符串赋值给i变量unseti清除变量setihi将hi这个字符串赋值给i变量setihihe11o,hihe11o中有空格,所以加引号seti123;#开始注释注意注释前,要先用分号,把命令结束掉,或者换行注释基本语法和基础命令在V1VADo中的Te

3、1命令行里,学习这些基本语法(Windows下-开始-所有程序-Xi1inxDesignToo1sVivadoxxx-VivadoxxxTc1She11)1使用$符号引用变量其中PUtS是打印命令2使用口将命令返回值,作为新命令的参数setj232命令会返回值232新命令就成了seti232这里稍微复杂一点点的例子:setiasetjbsetkc最后的结果就是:J=b;k=c;i=abc3数组数组不需要声明,直接赋值即可,也不必按照顺序来:seti(1)123;seti(16)hi当然也支持任意维数的数组:seti(1,2,3)hi引用的时候直接$1(1,2,3)即可 parray命令可以打印

4、出一个数组的全部信息: array命令命令格式:arrayoptionarrayNameoption是操作选项,有如下可选:name:返回数组的所有元素的名称size:返回数组的长度startsearch:初始化一次遍历,返回一个遍历标识符(search1d),这个search1d在下面用到,(是可以多个遍历同时进行的)下面的命令格式为:arrayoptionarrayNamesearch1d- nexte1ement:返回数组中下一个元素,如果没有返回空- anymore:如果接下来还有元素,返回1,否则返回0- donesearch:结束遍历4字符串命令 string命令命令格式:stri

5、ngoptionString1string2option是操作选项,有如下可选:compare:按照字母的排序方式比较,String1,=,string2,分别返回T,0,1match:判断String1和string2是否匹配first:检索string2中第一次出现String1的位置,如果没有出现String1则返回T1ast:和first相反trim:从StringI中删除开头和结尾的,String2的字符命令格式:stringoptionstringto1ower:返回string中的所有字符被转换为小写字符后的新字符串toupper:返回string中的所有字符串转换为大写后的字符

6、串trim1eft:,去除String左空白,类似的还有trimright1ength:返回String1的长度range:stringrangeabcdef12,返回输出结果为be append命令字符串追加,可以无限拼接setiaappendibcdputs$ii变量的值就成了abed,注意appendibcd命令,而不是append$ibcd SPIit命令命令格式:SPIit字符串分割符,将字符串转换为列表5数字操作tc1中只有String类型的变量,所以当进行数字运算的时候,需要用到incr和expr操作命令 incr命令a变量自加-3:incra-3a变量自加1:incra exp

7、r命令类似C语言中的算术操作符有(在TeI中的逻辑:真为1假为0):!、*、/、+、-、=、=、=、!=、&、:、X?y:Z除此之外,expr还能够识别一些函数及其返回值:abs(x)、round(x)、sin(x)、cos(x)等使用方法:expr表达式6IiSt列表类似Python中的列表,比如:abcdefjk1CCe是一个有两个元素的列表abc和defjk1ccc,TC1中对IiSt的命令有:(首先SetIabcdefjk1ccc,下面实例中将对这个1列表进行操作)需要注意的是:大部分命令都是对$1进行处理,也把就是1的内容字符串取出来,再处理,并不会对1列表的内容造成影响需要注意的是

8、IaPPend命令,IaPPend$1abed是无效的,必须IaPPend1abed才能实现列表内容的更新,而且是直接更改列表的内容7proc自定义函数proc:proche11ostrputshe11o:$str需要注意的是,如果不能一行写完,那建议按照如下格式来定义(主要是要将放到第一行的末尾):第一行:PrOC+(空格)+函数名+(空格)+参数+(空格)+中间行:逻辑运算最后行:全局变量g1oba1:用于将过程中的局部变量变成外界可操作的全局变量proche11og1oba1xsetxhisetihe11o上述代码,执行结果:return命令:proche11oreturnwor1dse

9、tihe11oreturn命令没啥好说的,上述代码的结果是,将i变量赋值为Wor1d字符串8流控制if流控制这个同样建议按照格式来:第一行:if+(空格)+表达式+(空格)(中间行:逻辑运算第N行:+(空格)+e1se+(空格)+中间行:逻辑运算最后行:switch流控制例子如下,一目了然:switch21puts111defau1tputsxxx)case流控制caseabedinaputs111*bc*puts333defau1tputsxxx上述程序对字符串abed进行判断:条件一:字符串为a条件二:不管字符串的前后字符是啥,只要中间有be子字符串即可条件三:defau1t9循环控制fo

10、reach循环:假如想要将0,3,2,1按照顺序分别放到上述SWitCh的判决条件(列表)里,输出四个结果,那就需要这个foreach了:foreachi0321switch$i1 puts1112 puts2223 puts333defau1tputsxxx)for循环:TC1的for循环也是很类似C语言的:forseti0$i10incri初始化i=0,范围i10,循环i=i+1whiIe循环:seti10whi1e$i!=5puts$iincri-1运行的结果,自己就可以想象了10字符串转为命令eva1命令:setaset;setbi;setche11o;eva1$a$b$c上述代码就等

11、效于:setihe11oeva1将字符串的内容,作为命令,执行11打印输出之前的那个PUtS命令也是可以打印到命令行,但是,也只是能打印出来而已,而这个format类似于C中的SPrin支(用于格式化输出):format命令:format可以这样用:format%s%dhe11o666setiformat%s%dhe11o666SCan命令:说到format,刚好一起把scan说了,这两个命令可以看做是相反的一对,前者组合成字符串,后者把字符串拆分后赋值给变量scan12.34.56.78%d.%d.%d.%dabcd将12.34.56.78拆分,并分别赋值给abCd四个变量,命令返回赋值成功

12、的变量的个数puts命令:puts当然也可以打印到文件中setfopentest,txtwputs-nonew1ine$fhe11on”puts$f“wor1d”c1ose$fputs-nonew1ine$fhe11on”表示的是强制不换行打印,否则自动追加一个换行符文件系统基本常用操作:gets-一次读一行文件puts-写入文件open-打开文件c1ose-关闭文件f1ush-刷新缓冲区Cd命令和she11中的Cd一样pwd命令用于查看当前所在的目录open命令打开文件,返回文件描述符命令格式:open文件名模式,支持6种模式,和其他编程语言中的文件10,也是很相似的,模式如下:r模式:打开

13、只读文件(文件必须存在)r+模式:打开可读写文件r+和a+模式可以类比w模式:打开只写文件,若文件存在则清空内容;若文件不存在则创建文件。a模式:以追加方式打开只写文件,若文件不存在,则创建;如果文件存在,则会在文件内容最后面追加写入的数据XXXX理论上说。PenI文件名模式,在文件名前加个符号,可以以管道的模式打开文件,但是测试一直没有成功,之后用到的话再回来解决吧XXXXread命令setfopentest,txtrread$f6c1ose$f可以使用eof命令,判断文件是否读完了,eof$f,读完返回1,否则返回0上述代码直接从文件中读6个字节;如果想把文件内容全部读出,则直接read$

14、f;如果想一行一行读则使用gets命令:gets$fsource命令命令格式:source$f从对应的文件中读出内容,并传给TCI解释执行te11命令返回文件的指针位置,命令格式:te11$ffi1e命令命令格式:fi1eoptionnameOPtion操作选项较多,就直接列个表了,表示如下:除此之外,fi1e的stat状态操作选项:命令格式:fi1estatnamek,结果存在数组k里g1ob命令D查看当前目录下的文件(类似She11中的IS)g1ob*2)查看当前目录下特定后缀的文件g1ob*.txt*.tc13)查看当前目录下的txt、tx1、tc1和tct文件:g1ob*tExct14)查看当前目录下的子目录里查看txt、tx1、tc1和tct文件:用“”分割路径,格式为:g1ob目录1,目录2等*.后缀5)-type选择查看类型:命令格式:g1ob-type类型1类型2等目标目录类型有:类型含义b块设备c字符设备d代表目录f文件1代表符号链接P代表命名管道S代表套接字r读w写X可执行seek命令用于调整文件指针命令Seek$f2,文件指针定位到序号为2,现

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服