网络课程《数字集成电路静态时序分析基础》的笔记 地址:https://www.iccollege.cn/portal/courseDetail/193.mooc
如何启动tcl
- linux:在文本第一行"#!/user/bin/tclsh"
- window:安装active tcl并双击wish.exe
置换
TCL置换分为三种,变量置换,
变量置换
- 用表示变量置换,后为变量名,将变量置换为它的值
命令置换
- 用[]表示命令置换,[]表示一个独立的TCL语句
反斜杠置换
- 用表示反斜杠置换,和其他语言一样,把特殊字符当作普通字符对待
- t为tab
- n换行
其他符号
- ""对双引号中$和[]会进行变量置换和命令置换
- {}花括号,所有特殊字符都将成为普通字符,TCL解释器不会对其做特殊处理
- # 表示注释
变量、数组和列表
变量
- 定义:set 变量名 变量值
- 引用:$变量名
例题:假设我们想打印变量varible,后面跟一个“_1",会发生什么?
数组
- 定义:set 数组名 (元素名) 值
- 取值:$数组名 (元素名)
- 用array指令获取数组信息
列表
- 列表是标量的有序集合
- 定义:set 列表名 {元素1 元素2 元素3.....}
- 取值:$列表名
- 列表操作命令
列表指令-concat
- 语法格式:concat 列表1 列表2
- 功能:将列表1和列表2合并
llength
- 语法格式:llength 列表
- 功能:返回列表中的元素个数
- 例题:list1为{bufx1 bufx2 bufx4},那么llength [concat list1 list1]会得到什么?
lindex
- 语法格式 lindex 列表 n
- 返回列表的第n个元素(从0开始计数)
- 如何得到list1 {a b c d f}的最后一个元素?
lappend
- 语法格式:lappend 列表 新元素
- 功能:在列表末尾添加新元素
- lappend一个列表会发什么?
- 如果想得到4,要怎么做?
lsort
- 语法格式:lsort 开关 列表
- 功能:将列表按照一定规则排序
- 开关:缺省时默认按照ASCII进行排序
-
- -real 按照浮点数值大小排序
- -unique 唯一化,删除重复元素
- 按照ASCII排序
- 按照数字大小排序
- 唯一化
- 如何得到list1中的最小值
运算
- 数学运算
-
- a b
- a-b
- a*b
- a/b
- 逻辑运算
-
- a<=b
- a>=b
- a==b
- a!=b
数学运算指令 expr
- 语法格式:expr 运算表达式
- 功能:将运算表达式求值
- 类型问题
- 表达式5/2中5和2都是整数型参数,默认运行结果也是整数型,如果想要进行浮点运算,只要将其中任意一个数值,写成浮点形式(有小数点)