Tcl在Vivado中的基礎(chǔ)應(yīng)用_第1頁(yè)
Tcl在Vivado中的基礎(chǔ)應(yīng)用_第2頁(yè)
Tcl在Vivado中的基礎(chǔ)應(yīng)用_第3頁(yè)
Tcl在Vivado中的基礎(chǔ)應(yīng)用_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Tcl在Vivado中的基礎(chǔ)應(yīng)用Xilinx的新一代設(shè)計(jì)套件Vivado相比上一代產(chǎn)品ISE,在運(yùn)行速度、算法優(yōu)化和功能整合等很多方面都有了顯著地改進(jìn)。但是對(duì)初學(xué)者來(lái)說(shuō),新的約束語(yǔ)言XDC以及腳本語(yǔ)言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級(jí)到Vivado的信心。本文介紹了Tcl在Vivado中的基礎(chǔ)應(yīng)用,希望起到拋磚引玉的作用,指引使用者在短時(shí)間內(nèi)快速掌握相關(guān)技巧,更好地發(fā)揮Vivado在FPGA設(shè)計(jì)中的優(yōu)勢(shì)。Tcl的背景介紹和基礎(chǔ)語(yǔ)法Tcl(讀作tickle)誕生于80年代的加州大學(xué)伯克利分校,作為一種簡(jiǎn)單高效可移植性好的腳本語(yǔ)言,目前已經(jīng)廣泛應(yīng)用在幾乎所有的EDA工具中。Tcl的最大特點(diǎn)就是其語(yǔ)法格式極其簡(jiǎn)單甚至可以說(shuō)僵化,采用純粹的[命令選項(xiàng)參數(shù)]形式,是名副其實(shí)的“工具命令語(yǔ)言”(即Tcl的全稱ToolCommandLanguage)。實(shí)際上Tcl的功能可以很強(qiáng)大,用其編寫的程序也可以很復(fù)雜,但要在Vivado或大部分其它EDA工具中使用,則只需掌握其中最基本的幾個(gè)部分。注:在以下示例中,%表示Tcl的命令提示符,執(zhí)行回車后,Tcl會(huì)在下一行輸出命令執(zhí)行結(jié)果。//后是作者所加注釋,并不是例子的一部分。設(shè)置變量打印主要通過(guò)puts語(yǔ)句來(lái)執(zhí)行,配合特殊符號(hào),直接決定最終輸出內(nèi)容。文件I/O可以看到Tcl對(duì)文件的操作也是通過(guò)設(shè)置變量,改變屬性以及打印命令來(lái)進(jìn)行的。上述寫文件的例子中通過(guò)puts命令在my_file.txt文件中寫入兩行文字,分別為“HelloWorld!”和myVar變量的值,然后在讀文件操作中逐行讀取同一文件的內(nèi)容。控制流和循環(huán)命令Tcl語(yǔ)言中用于控制流程和循環(huán)的命令與C語(yǔ)言及其它高級(jí)語(yǔ)言中相似,包括if、while、for和foreach等等。具體使用可以參考如下示例:子程序/過(guò)程Tcl中的子程序也叫做過(guò)程(Procedures),Tcl正是通過(guò)創(chuàng)建新的過(guò)程來(lái)增強(qiáng)其內(nèi)建命令的能力,提供更強(qiáng)的擴(kuò)展性。具體到Vivado的使用中,用戶經(jīng)??梢酝ㄟ^(guò)對(duì)一個(gè)個(gè)子程序/過(guò)程的創(chuàng)建來(lái)擴(kuò)展或個(gè)性化Vivado的使用流程。一些特殊符號(hào)Tcl語(yǔ)言的基本語(yǔ)法相對(duì)簡(jiǎn)單,但要熟練掌握仍需日常不斷練習(xí)。Xilinx網(wǎng)站上有很多相關(guān)資料,這里推薦兩個(gè)跟Tcl相關(guān)的文檔UG835和UG894,希望對(duì)大家學(xué)習(xí)Vivado和Tcl有所幫助。在Vivado中使用Tcl定位目標(biāo)在Vivado中使用Tcl最基本的場(chǎng)景就是對(duì)網(wǎng)表上的目標(biāo)進(jìn)行遍歷、查找和定位,這也是對(duì)網(wǎng)表上的目標(biāo)進(jìn)行約束的基礎(chǔ)。要掌握這些則首先需要理解Vivado對(duì)目標(biāo)的分類。目標(biāo)的定義和定位如上圖所示,設(shè)計(jì)頂層的I/O稱作ports,其余底層模塊或是門級(jí)網(wǎng)表上的元件端口都稱作pins。而包括頂層在內(nèi)的各級(jí)模塊,blackbox以及門級(jí)元件,都稱作cells。連線稱作nets,加上XDC中定義的clocks,在Vivado中一共將網(wǎng)表文件中的目標(biāo)定義為五類。要選取這五類目標(biāo),則需用相應(yīng)的get_*命令,例如get_pins等等。

get_portsports僅指頂層端口,所以get_ports的使用相對(duì)簡(jiǎn)單,可以配合通配符“*”以及Tcl語(yǔ)言中處理list的命令一起使用。如下所示,get_cells/get_nets

不同于ports僅指頂層端口,要定位cells和nets則相對(duì)復(fù)雜,首先需要面對(duì)層次的問(wèn)題。這里

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論