目前已經(jīng)學(xué)完了基礎(chǔ)實驗,這里要介紹Quatus自帶的兩個非常重要的功能,第一個是tcl腳本,第二個是SignalTap(下一篇)。
我們首先從管腳分配的實例去理解tcl腳本的功能。TCL(tool command language),是一種解釋執(zhí)行的腳本語言,常用于快速原型開發(fā),腳本編程,GUI和測試等方面。包含了語言和庫,首先tcl是一種簡單的腳本語言,主要使用于發(fā)布命令給一些程序如文本編輯器、調(diào)試器和shell。同時它也是個庫,可以被嵌入應(yīng)用程序,每個應(yīng)用程序都可以根據(jù)自己的需要對tcl語言進行擴展。由于它具有良好的可擴展性,目前成為自動測試中的標準。
快速綁定管腳
當復(fù)雜模塊需要綁定的管腳過多時,手動去設(shè)置不方便,這里提供了一種自動化綁定管腳的方法,同時Quatus提供了支持tcl腳本的接口。我的tcl管腳分配腳本中包含了開發(fā)板上用到的可控外設(shè)的所有管腳配置信息,由于開發(fā)板廠家和型號是不一樣的,管腳也會有區(qū)別,但是方法和語法是一樣的,只需要做些許修改。
注釋用#,set_location_assignment表示進行管腳約束,后面是管腳的位置,“-to”后面是代碼頂層的管腳名,每行結(jié)束后沒有分號
在實際使用時,tcl腳本文件要放在工程文件夾下,并將其添加到工程中,否則無法自動識別。這個工程用到哪個模塊的引腳就只需要保留對應(yīng)的引腳。其他沒用到的模塊用#注釋掉。在notepad++中按住Alt鍵在列模式下進行編輯,拖動鼠標選中每一列開頭的位置輸入#。
實際tcl腳本分配管腳的優(yōu)勢在管腳特別多的時候才明顯,但是目前還沒接觸特別復(fù)雜的模塊,先以流水燈為例
1、將tcl腳本命令為water_led.tcl放在工程文件夾下
2、注釋掉沒有使用到的管腳,只留下時鐘,復(fù)位,四個LED。代碼中的端口名和Tcl腳本中的管腳命名必須一致?。?!
3、Toos-TCL Scripts-自動識別到-run(亂碼的中文不影響)
4、打開pin planner確認管腳都已經(jīng)自動分配好
還有一種方式可以加載tcl腳本,結(jié)果是一樣的,習(xí)慣哪種都行
1、View-Utility Windows-Tcl Console
2、在tcl console欄里復(fù)制粘貼tcl腳本里的內(nèi)容
3、打開pin planner確認管腳都已經(jīng)自動分配好
還有一種方式可以分配管腳
Assignments-Import Assignments-添加csv或txt文件(同樣要將csv文件或txt文件放到工程目錄下)
快速解除管腳
Assignments-Remove Assignments-選中Pin, Location & Routing Assignments-OK
導(dǎo)出Tcl腳本
手動綁定好管腳之后也可以直接導(dǎo)出包含管腳信息的tcl腳本
按住shift鍵選中所有pin,右鍵單擊選擇export,輸出格式選擇tcl,選好導(dǎo)出文件位置,導(dǎo)出
-
FPGA
+關(guān)注
關(guān)注
1629文章
21744瀏覽量
603663 -
FPGA設(shè)計
+關(guān)注
關(guān)注
9文章
428瀏覽量
26524 -
TCL
+關(guān)注
關(guān)注
10文章
1726瀏覽量
88634 -
腳本
+關(guān)注
關(guān)注
1文章
390瀏覽量
14879
發(fā)布評論請先 登錄
相關(guān)推薦
評論