TCL语言基础
本文最后更新于 419 天前,其中的信息可能已经有所发展或是发生改变。

TCL语言基础

Tclsh是一个从标准输入流或从文件中读取tcl命令并执行他们的类shell应用。

在数字集成电路设计中,Tcl语言无处不在使用,下面用张表格来说明:

功能 工具 语言
数字综合 DC/Genus TCL
DFT Tessent/Dftmax TCL
布局布线 lnnovus/ICC2 TCL
静态时序仿真 PT/Tempus TCL
功耗分析 Redhawk/Voltus TCL
版图工具 Calibredrv TCL
物理验证 Calibre/PVS SVRF/TCL
形式验证 LEC/Formality TCL

可见,TCL在这方面使用之广。

基本类型

符号

  • $:解析变量,类似于shell
  • []:内置转换,类似于shell$()
  • \:转义字符。
  • {}:内部都是普通字符,类似于shell""

变量

set 变量名 值

# 如果想在变量后面追加_1,做法如下:
set a 2
puts ${a}_1
# output 2_1

数组

set 数组名(属性名) 值

# eg.
set cell(attr1) "name"
set cell(attr2) "ref"
# 数组名为cell,有两个属性,一个attr1,一个attr2

# array命令可以获取数组的相关信息
array size cell
# output 2
array names cell
# output attr1 attr2

列表

set 列表名 {元素1 元素2 元素3}

# 有以下这些命令可以对列表进行操作
# concat:合并列表
# lindex:选取列表中的某个元素,下标从0开始
# lappend:在列表末端追加元素
# lsort:列表排序,-real可以浮点数排序,-uniqe可以唯一化

控制语句

条件语句

if {condition} {
statements
} elseif {condition} {
statements
} else {
statements
}
# 必须按照这个格式

循环语句

foreach

foreach 变量 列表 循环体

# eg.
set list1 {3 2 1}
for i $list1 {
puts $i
}
# output 3\n2\n1

也有breakcontinue,和C语言类似。

while

while {condition} {statements}

for

for {initialize} {condition} {step length} {statements}

# eg.
for {set i 3} {$i > 0} {incr i -1} {
puts $i
}
# 3
# 2
# 1

函数

过程函数

proc 函数名 参数列表 函数主体

# eg.
proc add {a b} {
set sum [expr $a + $b]
return $sum
}

全局变量

在所有过程之外定义的变量

局部变量

在过程中定义的变量

如果想要在过程中使用全局变量可以使用global命令,例如,global a,使用全局变量a

文本处理

打开文件

open 文件名 权限

# eg.
set afile [open a.txt r]

读取文件

gets 文件变量 变量名
# 会从中读取一行

关闭文件

close 文件变量

# eg.
close afile

综合软件当中常见的TCL指令

  • get_ports:返回设计中对应的端口
  • get_cells:返回设计中对应的cell
  • get_nets:返回设计中的网表
  • get_pins:返回设计中的针脚

使用-f可以用来过滤;使用-of得到指定object相连的object

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇