控制流——if命令
语言: if test1 body1?else bodyn?
TCL先把test1当作一个表达式求值,如果值非0,则把body1当作一个脚本执行并返回所得值,否则把test2当作一个表达式求值,如果值非0,则把body2当作一个脚本执行并返回所得值。

循环命令——while
语法:while test body
参数test是一个表达式,body是一个脚本,如果表达式的值非0,就运行脚本,直到表达式为0才停止循环,此时while命令中断并返回一个空字符串。此处是一个脚本:

循环变量——for
语法:for init test reinit body
参数init是一个初始化脚本,第二个参数test是一个表达式,用来决定循环什么时候中断,第三个参数reinit是一个重新初始化的脚本,第四个参数body也是脚本,代表循环体;
- 假设变量a是一个链表,下面的脚本把a的值复制到b;

foreach命令
语法: foreach varName list body
第一个参数varName是一个变量,第二个参数list是一个表(有序集合),第三个参数body是循环体。每次取得链表的一个元素,都会执行循环体一次。

switch命令
语法:switch?options?string{pattern body?pattern body...?}
第一个是可选参数options,表示进行匹配的方式。TCL支持三种匹配方式:-exact方式,-glob方式,-regexp方式,缺省情况表示-glob方式。-exact方式表示的是精准匹配,-glob方式则和string match命令的匹配方式相同,-regexp方式是正则表达式的匹配方式。第二个参数string是要被用来作测试的值,第三个参数是括起来的一个或多个元素对

命令
在循环体中,可以用break和continue命令中断循环。其中break命令结束整个循环过程,并从循环中跳出,continue只是结束本次循环。
source命令读一个文件并把这个文件的内容作为一个脚本进行求值
%source e:/tcl&c/hello.tcl
eval命令是一个用来构造和执行TCL脚本的命令,其语法为:
eval arg?arg…? //它可以接收一个或多个参数,然后把所有的参数以空格隔开组合到一起成为一个脚本,然后对这个脚本进行求值。
%eval set a 2;set b 4
关注作者
- 自述
作者是一位中科大数字设计专业的研究生,水平有限,如有错误,请大家指正,想要与大家一同进步。 - 经历
曾获得国家奖学金,“高教社杯”数学建模国家二等奖等 - 陆续更新:
1.与verilog数字设计相关的一些基础模块设计
2.SV与UVM
3.数字IC设计/验证过程中一些工具及语言的用法
4.保研与竞赛经历等 - 微信公众号
欢迎大家关注公众号“数字IC小白的日常修炼”,期待与大家一同仗剑遨游数字IC世界。
本文介绍了TCL的基础语法,包括if命令的使用,while和for循环的控制,foreach命令处理链表,以及switch命令的匹配方式。此外,还提到了在循环中的break和continue命令,以及source和eval命令的作用。作者是一位专注于数字IC设计和验证的研究生,分享相关知识和经验。

6745

被折叠的 条评论
为什么被折叠?



