網(wǎng)絡(luò)課程《數(shù)字集成電路靜態(tài)時(shí)序分析基礎(chǔ)》的筆記
地址:https://www.iccollege.cn/portal/courseDetail/193.mooc
控制流
控制流 if
- 語法格式:
if {判斷語句}{
腳本語句
}elseif{判斷語句}{
腳本語句
}else{
腳本語句
}
- 注意,上例中腳本語句得'{'一定要寫在上一行,因?yàn)槿绻贿@樣,TCL 解釋器會(huì)認(rèn)為 if 命令在換行出已經(jīng)結(jié)束,下一行會(huì)被當(dāng)成新的命令,從而導(dǎo)致錯(cuò)誤
- 例題:判斷一個(gè)列表{0 1 2 3 4}的長(zhǎng)度是大于 3,還是等于 3,還是小于 3?
?
循環(huán)指令 -foreach
語法格式:foreach 變量 列表 循環(huán)主體
功能:從第 0 個(gè)元素開始,每次按順序取得列表的一個(gè)元素,將其賦值給變量,然后執(zhí)行循環(huán)主體一次,直到列表最后一個(gè)元素
?
?
循環(huán)控制指令 -break
- 語法格式:break 功能:結(jié)束整個(gè)循環(huán)過程,并從循環(huán)中跳出
?
循環(huán)控制指令 -continue
- 語法格式:continue 功能:僅結(jié)束本次循環(huán)
?
循環(huán)控制指令 -while
- 語法格式:while 判斷語句 循環(huán)主體功能:如果判斷語句成立(返回值非 0),就運(yùn)行腳本,直到不滿足判斷條件停止循環(huán),此時(shí) while 命令終端并返回一個(gè)空字符串
?
循環(huán)控制指令 -for
- 語法格式:for 參數(shù)初始化 判斷語句 重新初始化參數(shù) ?循環(huán)主體功能:如果判斷語句返回值非 0 進(jìn)入循環(huán),執(zhí)行循環(huán)主體后,再重新初始化參數(shù)。然后再次判斷,直到判斷語句返回值為 0,循環(huán)結(jié)束
?
過程函數(shù)
過程函數(shù) -proc
- 語法格式:proc 函數(shù)名 參數(shù)列表 函數(shù)主體功能:類似 C 語言中的函數(shù)。即用戶自定義的功能,方便多次調(diào)用
?
全局變量和局部變量
- 全局變量:在所有過程之外定義的變量局部變量:在過程中定義的變量,只能在過程中訪問,退出過程會(huì)被自動(dòng)刪除指令 global,在過程內(nèi)部引用全局變量
?
正則匹配
- 定義:正則表達(dá)式是一種特殊的字符串模式,用來匹配符合規(guī)則的字符串正則表達(dá)式的 w,用來匹配一個(gè)字母、數(shù)字、下劃線正則表達(dá)式的 d,用來匹配一個(gè)數(shù)字
?
正則匹配 - 量詞
- wwwddd 這種寫法過于繁瑣,可以使用量詞表示,常用量詞有三種
- *和+的區(qū)別:包不包含 0 和 1
- ?,0 或 1
?
正則匹配 - 錨位
- 錨位,用來知識(shí)字符串中的開頭和結(jié)尾的位置,使我們能夠匹配到正確的字符
?
正則匹配 - 其他字符
- 常用的其他字符還有 s 和 .s 表示空格
- . 表示任意字符,不確定具體使什么字符就可以用 . 表示。例如一直字符串為"XXX 空格 XXX 空格 XXX"(X 為未知字符)。用 .+s.+s.+就可以匹配
正則匹配指令 -regexp
- 語法格式:regexp?switches?exp string?matchVar? ?subMatchVar subMatchVar...?功能:在字符串中使用正則表達(dá)式匹配 switches:-nocase 將字符串的大寫都看成小寫 exp 正則表達(dá)式 string 用來表示進(jìn)行匹配的字符串 matchstring 表示用正則表達(dá)式匹配的所有字符串 sub1 表示正則表達(dá)式中的第一個(gè)子表達(dá)式匹配的字符串 sub2 表示正則表達(dá)式中的第一個(gè)子表達(dá)式匹配的字符串
?
實(shí)例講解
- 如何匹配字符串"abc456"
如何匹配一個(gè)以數(shù)字開頭并且以數(shù)字結(jié)尾的字符串
?
捕獲變量
- 通過()可以捕獲字符串,例如捕獲字符串"Snow is 30 years old"中的 30?
- 一次捕獲多個(gè)字符串,例如將"Snow is 30 years old"中的 Snow 和 30 一次捕獲
?
文本處理
主要掌握三個(gè)指令 open、gets、close
- open
- 語法格式 open 文件 打開方式(r 讀,w 寫)功能 打開文件
gets
- 語法格式 gets fileid 變量名功能 gets 讀 fileid 標(biāo)識(shí)的文件的像遺憾,并把該行賦給變量,并返回該行的字符數(shù)(文件尾返回 -1)
close
- 語法格式 close fileid 功能 關(guān)閉文件
?
實(shí)例講解
- 讀入整個(gè)文件過程
- 一個(gè)完整的寫入文件過程
- 現(xiàn)有文本 file.txt 其內(nèi)容如下。請(qǐng)編寫 TCL 腳本求出所有 slack 值之和吧
set num 0
set INFILE [open file.txt r]
while {[get $INFILE line]>=0}{
if{[regexp {^Slacks+=s+(-?d+.?d+)} $line total slack]}{
set num [expr $sum +$slack]
}
}
close $INFILE
puts $sum
閱讀全文