TCL指令碼語言學習(一)

2021-10-04 07:58:46 字數 1920 閱讀 1505

編譯環境設定: 

1)軟體安裝

安裝activetcl

2)編寫tcl指令碼檔案

tcl是一種很通用的指令碼語言,它幾乎在所有的平台上都可以解釋執行,功能強大。是tool command language的縮寫,發音為 "tickle」。 實際上包含了兩個部分:乙個語言和乙個庫首先,tcl是一種簡單的指令碼語言,主要使用於發布命令給一 些互交程式如文字編輯器、偵錯程式和shell。它有乙個簡單的語法 和很強可擴充性,tcl可以建立新的過程以增強其內建命令的能力。其次,tcl是乙個庫包,可以被嵌入應用程式,tcl的庫包含了乙個分析器、用於執行內建命令的例程和可以使你擴充(定義新的 過程)的庫函式。應用程式可以產生tcl命令並執行,命令可以由使用者產生,也可以從使用者介面的乙個輸入中讀取(按鈕或選單等)。 但tcl庫收到命令後將它分解並執行內建的命令,

經常會產生遞迴的呼叫。

學習專業為數字積體電路方向,在電路設計過程中,接觸到fpga相關。用到xilinx的相關設計套件vivado,物理約束檔案和時序約束檔案由tcl語言編寫完成,介面友好且支援tcl命令進行相關設計;其次**過程中接觸modelsim,命令視窗也支援tcl語言,省去了圖形介面操作的缺點,等相關原因。因此,考慮學習tcl語言方便相關軟體的使用。

1.命令結構:

每條命令之間通過換行或者;隔開。例如:

set foo 0

set bar 1;

2.注釋:

使用#注釋,不過要注意的是下面的注釋是錯誤的:

set aa 0 #注釋內容
因為tcl解析器總是認為一條命令應該以換行或者分號結束,其他的在同一行中都認為是引數。所以正確的應該是

set bb 0; #注釋內容
3.資料型別:

tcl不支援形如int , double ,char等等型別,唯一支援的就是string型別。

乙個變數可以在不同的時刻理解為不同的型別。

4.變數:

tcl可以定義兩種型別的變數:變數和陣列。

變數:在tcl變數不需要宣告就可以直接賦值。給變數賦值的例子:

set aa 1;

set ba 「a good man」;#加引號的作用是為了告訴編譯器包括空格

取得變數的值可以在對應的變數名前面加$來取得,例如:

puts $ba;  #表示列印出ba的值
陣列:陣列也不需要宣告,直接賦值,例如:

set arry(0) 1;

set arry(1) 2;

陣列下標可以不按照順序來寫,也不一定是數字,可以是字串。例如:

set arry(3) f;

set arry(9) fs;

set arry(abc) yes;

使用puts $arry(3);的形式來獲得陣列的內容。當然tcl陣列也支援多維陣列,宣告形式為: 

set arry(1,1,1,1,1) fs; #隨便多少維
如果我們要檢視某個已經賦值的陣列的資訊,可以使用parray命令:如:   

parray $arry;列印陣列array所有資訊

TCL指令碼語言學習

語言簡介 tcl是一種很通用的指令碼語言,它幾乎在所有的平台上都可以解釋執行,功能強大。是tool command language的縮寫,發音為 tickle 實際上包含了兩個部分 乙個語言和乙個庫。首先,tcl是一種簡單的指令碼語言,主要使用於發布命令給一 些互交程式如文字編輯器 偵錯程式和sh...

TCL指令碼語言學習

語言簡介 tcl是一種很通用的指令碼語言,它幾乎在所有的平台上都可以解釋執行,功能強大。是tool command language的縮寫,發音為 tickle 實際上包含了兩個部分 乙個語言和乙個庫。首先,tcl是一種簡單的指令碼語言,主要使用於發布命令給一 些互交程式如文字編輯器 偵錯程式和sh...

TCL指令碼語言學習(二)

5.字串操作 string 命令基本語法如下 這裡的string1,string2可以是字串也可以是變數,option是下列選項之一 string option string1 string2 option的操作選項 compare 按照字典的排序方式進行比較。根據string1 string2分別...