欢迎关注个人公众号摸鱼范式
网络课程《数字集成电路静态时序分析基础》的笔记
如何启动tcl
-
linux:在文本第一行"#!/user/bin/tclsh"
-
window:安装active tcl并双击wish.exe
置换
TCL置换分为三种,变量置换,
变量置换
- 用$表示变量置换,$后为变量名,将变量置换为它的值
命令置换
- 用[]表示命令置换,[]表示一个独立的TCL语句
反斜杠置换
- 用表示反斜杠置换,和其他语言一样,把特殊字符当作普通字符对待
- 为tab
- 换行
其他符号
- ""对双引号中$和[]会进行变量置换和命令置换
- {}花括号,所有特殊字符都将成为普通字符,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都是整数型参数,默认运行结果也是整数型,如果想要进行浮点运算,只要将其中任意一个数值,写成浮点形式(有小数点)