TCL在IC領域中常用的腳本有Tcl、Perl、Shell、Python等,在這些腳本里面,Tcl(“工具命令語言”( 即Tcl的全稱Tool Command Language))由于其語法簡單,易上手等特點,在FPGA開發中越來越受到重視。
John K. Ousterhout于 1988 年開始開發 Tcl/Tk(讀作“tickle tee-kay”),然后是加州大學伯克利分校的一名教授繼續對它進行開發。目前TCL在很多EDA工具(Design Complier、quartus、Synplify、modesim、finesim、Vivado等)中都扮演重要角色,這也是為什么在FPGA設計中受到重視的主要原因。
TCL讓FPGA開發更完美
目前FPGA幾大廠商中,Xilinx和Intel無疑在國內占據很大市場,其對應的開發的EDA工具分別為Quartus II和Vivado(老版本ISE),接下來以Vivado為例簡單說明其Tcl在開發過程中的應用。
Xilinx的設計套件Vivado相比上一代產品ISE,在運行速度、算法優化和功能整合等很多方面都有了顯著地改進。其中約束語言XDC及腳本語言TCL的引入更是讓其開發更加完美。
下面從幾個方面說明一下Tcl在Vivado中的應用:
非工程模式(NoneProject Mode)
傳統的FPGA開發都是通過GUI界面進行相關的“按鈕”式操作,Vivado則在引入Tcl解釋器后,可以通過非工程模式進行操作,一個Tcl腳本即可自動化建立工程,對工程進行分析。
提高編譯效率
Vivado“出現”的比較晚,所以對于多線程的支持還是比較友好的,默認情況下,Vivado在Windows默認是2個線程(綜合階段,Windows/Linux操作系統都是2),實現階段Windows默認也是2個線程(Linux操作系統的默認線程數為8),我們可以通過
同時可以通過
使用Tcl定位目標
Vivado實現完成后,可以對出問題的路徑進行分析,同時對網表中的目標進行查找、定位和遍歷,其中常見的命令大家應該都有見過:
get_ports
get_cells/get_nets
get_pins
以上只是簡單介紹了幾個Tcl在Vivado中的應用,還有很多很多方面Vivado的開發都不得不借助Tcl腳本,像XDC約束文本,等等。在一些“高級”應用中,像包括ECO、PR、HD Flow等等都是從Tcl腳本方式開始支持。
所以在目前的FPGA開發模式中Tcl是一個繞不開的語言,同時其特點也讓FPGA開發更完美。
FPGA便捷開發-TCL商店
Vivado在設計中集成了很多基礎的Tcl命令,所有的命令及作用都在Xilinx官方文檔UG835中,下面是鏈接(瀏覽器打開即可閱讀):
?
https://www.xilinx.com/content/dam/xilinx/support/documentation/sw_manuals/xilinx2021_2/ug835-vivado-tcl-commands.pdf
但是,一旦遇到自己想要的功能(比如:獲取MMCM/PLL信息),但是Vivado中沒有集成進去怎么辦?
今天的主角就閃亮登場了(鋪墊夠久了)-開源項目XilinxTclStore
?
https://github.com/Xilinx/XilinxTclStore
方面下載鏈接(后面都會提供):
?
https://gitee.com/mirrors_Xilinx/XilinxTclStore
簡介
Tcl Store 是 Tcl 代碼的開源存儲庫,主要用于 Xilinx Vivado 設計套件。應用程序是由所有者發布和維護的一個或多個 Tcl 腳本的組或集合。應用程序所有者充當該代碼的看門人,我們只接受所有者對應用程序的貢獻。此外,整個存儲庫由 Xilinx 官方管理,它控制對公共存儲庫的推送和審核。
更多的介紹可以看下下面的視頻(帶字幕):
項目的WIKI界面有更詳細的介紹:
?
https://github.com/Xilinx/XilinxTclStore/wiki/Xilinx-Tcl-Store-Home
目前支持的幾大部分如下:
使用
其實整個開源項目主要目的是可以大家集思廣益對項目做貢獻,使用時非常簡單的,只需要兩三步即可完成:
Vivado界面:Tool--> Xilinx Tcl Store,點擊Inatall即可安裝:
安裝程序后,將報告應用程序中可用的 Tcl proc 列表以及一行摘要。
安裝程序后,proc 名稱將更改為超鏈接。單擊任何 proc 名稱會打開一個帶有幫助菜單項的上下文窗口。選擇幫助會打開所選過程的嵌入式幫助信息。
安裝程序后,可以通過兩種不同的方式訪問屬于該應用程序的所有 proc:
來自<::myapp 命名空間>。當 Vivado 啟動時,會自動為<::myapp 命名空間>下所有已安裝應用程序的所有 proc 創建一個入口點(包裝器)。 從定義 proc的應用命名空間<::myapp>中。
上面說的有點繞口,其實就在安裝完成就有一個命令,如下(以designutils為例):
圓圈中的命令就可以直接在Tcl中運行
上面就是方式一的調用方式。還有方式二不常用就舉例如下:
vivado>::add_probe vivado>::add_probe
方式一常用的原因是可以帶一些默認參數,例如 -help、-verbose 和 -quiet
vivado>::add_probe-help
使用比較簡單,一些命令很有用,比如在ila中插入一個PROBE,當然可以結合自己的使用習慣建一些常見的Tcl命令。
關于怎么提交自己的代碼,可以看下這個項目的WIKI,講解的很詳細。
總結
今天介紹的項目,應該是方便、便捷大家開發FPGA的開源項目,對于一些不怎么常用Tcl的用戶,可以慢慢學起來了,因為從目前看,一些高級的調試技巧都是從Tcl出發的。
整個項目使用也是異常簡單的,而且注意實時更新,因為官方會經常更新一些命令,對于一些比較成熟的項目,官方會集成到新的EDA工具中,更新方法如下:
最后,還是感謝各個大佬開源的項目,讓我們受益匪淺。后面有什么感興趣方面的項目,大家可以在后臺留言或者加微信留言,今天就到這,我是爆肝的碎碎思,期待下期文章與你相見。
審核編輯 :李倩
-
FPGA
+關注
關注
1630文章
21759瀏覽量
604344 -
IC
+關注
關注
36文章
5965瀏覽量
175797 -
開源
+關注
關注
3文章
3371瀏覽量
42580
原文標題:?FPGA便捷開發-TCL商店(開源)
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論