Tcl在Vivado中的應(yīng)用
Xilinx的新一代設(shè)計套件 Vivado 相比上一代產(chǎn)品 ISE, 在運行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。 但是對初學(xué)者來說,新的約束語言 XDC 以及腳本語言 Tcl 的引入則成為了快速掌握 Vivado 使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級到 Vivado 的信心。
本文引用地址:http://www.ex-cimer.com/article/273292.htm本文介紹了 Tcl 在 Vivado 中的基礎(chǔ)應(yīng)用,希望起到拋磚引玉的作用,指引使用者在短時間內(nèi)快速掌握相關(guān)技巧,更好地發(fā)揮 Vivado 在 FPGA 設(shè)計中的優(yōu)勢。
1 Tcl 的背景介紹和基礎(chǔ)語法
Tcl(讀作 tickle) 誕生于 80 年代的加州大學(xué)伯克利分校,作為一種簡單高效可移植性好的腳本語言,目前已經(jīng)廣泛應(yīng)用在幾乎所有的 EDA 工具中。 Tcl 的最大特點就是其語法格式極其簡單甚至可以說僵化, 采用純粹的 [命令 選項 參數(shù)] 形式, 是名副其實的“工具命令語言”( 即 Tcl 的全稱 Tool Command Language) 。
實際上 Tcl 的功能可以很強(qiáng)大,用其編寫的程序也可以很復(fù)雜,但要在 Vivado 或大部分其它 EDA 工具中使用,則只需掌握其中最基本的幾個部分。注: 在以下示例中, % 表示 Tcl 的命令提示符,執(zhí)行回車后, Tcl 會在下一行輸出命令執(zhí)行結(jié)果。 // 后是作者所加注釋,并不是例子的一部分。
打印主要通過 puts 語句來執(zhí)行,配合特殊符號, 直接決定最終輸出內(nèi)容。
1.3 文件 I/O
寫文件 讀文件
可以看到 Tcl 對文件的操作也是通過設(shè)置變量、改變屬性以及打印命令來進(jìn)行的。 上述寫文件的例子中通過 puts 命令在 my_file.txt 文件中寫入兩行文字,分別為“Hello World!”和 myVar 變量的值,然后在讀文件操作中逐行讀取同一文件的內(nèi)容。
1.4 控制流和循環(huán)命令
Tcl 語言中用于控制流程和循環(huán)的命令與 C 語言及其它高級語言中相似,包括 if、while、 for 和 foreach 等等。
具體使用可以參考如下示例,
1.5 子程序/過程
Tcl 中的子程序也叫做過程( Procedures) , Tcl 正是通過創(chuàng)建新的過程來增強(qiáng)其內(nèi)建命令的能力,提供更強(qiáng)的擴(kuò)展性。具體到 Vivado 的使用中,用戶經(jīng)??梢酝ㄟ^對一個個子程序/過程的創(chuàng)建來擴(kuò)展或個性化 Vivado 的使用流程。
評論