(3)TCL 基础入门

本文介绍了TCL的基础语法,包括if命令的使用,while和for循环的控制,foreach命令处理链表,以及switch命令的匹配方式。此外,还提到了在循环中的break和continue命令,以及source和eval命令的作用。作者是一位专注于数字IC设计和验证的研究生,分享相关知识和经验。

控制流——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世界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字IC小白的日常修炼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值