在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Tcl在Vivado中的基礎應用及優勢

Xilinx賽靈思官微 ? 來源:djl ? 作者:賽靈思 ? 2019-07-24 16:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Xilinx的新一代設計套件Vivado相比上一代產品ISE,在運行速度、算法優化和功能整合等很多方面都有了顯著地改進。但是對初學者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級到Vivado的信心。

本文介紹了Tcl在Vivado中的基礎應用,希望起到拋磚引玉的作用,指引使用者在短時間內快速掌握相關技巧,更好地發揮Vivado在FPGA設計中的優勢。

Tcl的背景介紹和基礎語法

Tcl(讀作tickle)誕生于80年代的加州大學伯克利分校,作為一種簡單高效可移植性好的腳本語言,目前已經廣泛應用在幾乎所有的EDA工具中。Tcl 的最大特點就是其語法格式極其簡單甚至可以說僵化,采用純粹的 [命令 選項 參數] 形式,是名副其實的“工具命令語言”( 即Tcl的全稱Tool Command Language)。

實際上Tcl的功能可以很強大,用其編寫的程序也可以很復雜,但要在Vivado或大部分其它EDA工具中使用,則只需掌握其中最基本的幾個部分。

注: 在以下示例中,% 表示Tcl的命令提示符,執行回車后,Tcl會在下一行輸出命令執行結果。 // 后是作者所加注釋,并不是例子的一部分。

設置變量

Tcl在Vivado中的基礎應用及優勢

打印

Tcl在Vivado中的基礎應用及優勢

打印主要通過puts語句來執行,配合特殊符號,直接決定最終輸出內容。

文件I/O

Tcl在Vivado中的基礎應用及優勢

可以看到Tcl對文件的操作也是通過設置變量,改變屬性以及打印命令來進行的。上述寫文件的例子中通過puts命令在my_file.txt文件中寫入兩行文字,分別為“Hello World!” 和myVar變量的值,然后在讀文件操作中逐行讀取同一文件的內容。

控制流和循環命令

Tcl語言中用于控制流程和循環的命令與C語言及其它高級語言中相似,包括if、while、for和foreach等等。

具體使用可以參考如下示例:

Tcl在Vivado中的基礎應用及優勢

子程序/過程

Tcl中的子程序也叫做過程(Procedures),Tcl正是通過創建新的過程來增強其內建命令的能力,提供更強的擴展性。具體到Vivado的使用中,用戶經常可以通過對一個個子程序/過程的創建來擴展或個性化Vivado的使用流程。

Tcl在Vivado中的基礎應用及優勢

一些特殊符號

Tcl在Vivado中的基礎應用及優勢

Tcl語言的基本語法相對簡單,但要熟練掌握仍需日常不斷練習。Xilinx網站上有很多相關資料,這里推薦兩個跟Tcl相關的文檔 UG835 和 UG894 ,希望對大家學習Vivado和Tcl有所幫助。

在Vivado中使用Tcl定位目標

在Vivado中使用Tcl最基本的場景就是對網表上的目標進行遍歷、查找和定位,這也是對網表上的目標進行約束的基礎。要掌握這些則首先需要理解Vivado對目標的分類。

目標的定義和定位

Tcl在Vivado中的基礎應用及優勢

如上圖所示,設計頂層的I/O稱作ports,其余底層模塊或是門級網表上的元件端口都稱作pins。而包括頂層在內的各級模塊,blackbox以及門級元件,都稱作cells。連線稱作nets,加上XDC中定義的clocks,在Vivado中一共將網表文件中的目標定義為五類。要選取這五類目標,則需用相應的get_*命令,例如get_pins等等。

get_ports

ports僅指頂層端口,所以get_ports的使用相對簡單,可以配合通配符“* ”以及Tcl語言中處理list的命令一起使用。如下所示,

Tcl在Vivado中的基礎應用及優勢

Tcl在Vivado中的基礎應用及優勢

get_cells/get_nets

不同于ports僅指頂層端口,要定位cells和nets則相對復雜,首先需要面對層次的問題。這里有個大背景需要明確:Vivado中Tcl/XDC對網表中目標的搜索是層次化的,也就是一次僅搜索一個指定的層次current_instance,缺省值為頂層。

以下圖所示設計來舉例,若要搜索A(不含a1,a2)層次內的所有cells和名字中含有nt的nets, 有兩種方法:

Tcl在Vivado中的基礎應用及優勢

Tcl在Vivado中的基礎應用及優勢

若要將搜索層次改為A+B+b1,則可以寫一個循環,逐一用current_instance將搜索層次指向A,B和b1,再將搜索到的cells或nets合成一個list輸出即可。

若要將搜索層次改為當前層次以及其下所有子層次,可以使用 -hierarchical (在Tcl中可以簡寫為-hier )。

Tcl在Vivado中的基礎應用及優勢

在使用-hierarchical時有一點需要特別留意,即后面所跟的搜索條件僅指目標對象的名字,不能含有代表層次的“/” 。 下面列出的寫法便是一種常見的使用誤區,并不能以此搜索到A及其下子層次內所有的cells。

Tcl在Vivado中的基礎應用及優勢

get_pins

Tcl在Vivado中的基礎應用及優勢

pins在Vivado數據庫中有個獨特的存在形式,即 / 。這里的“/”不表示層次,而是其名字的一部分,表示這個pin所屬的實體。也就是說,在使用get_pins 配合-hier來查找pins時,“/”可以作為名字的一部分,出現在搜索條件內(注意與上述get_cells和get_nets的使用區別)。

Tcl在Vivado中的基礎應用及優勢

目標之間的關系

Tcl在搜索網表中的目標時,除了上述根據名字條件直接搜索的方式,還可以利用目標間的關系,使用-of_objects(在Tcl中可以簡寫為-of)來間接搜索特定目標。Vivado中定義的五類目標間的關系如下頁左圖所示。

Tcl在Vivado中的基礎應用及優勢

以上示右圖的設計來舉例,

Tcl在Vivado中的基礎應用及優勢

下圖是一個更復雜的示例,涉及跨層次搜索。可以看到在get_pins時,要加上-leaf才能準確定位到門級元件(或blackbox)的端口q。另外,在實際操作中,使用get_nets和get_pins時,需要視情況而加上其它條件(-filter)才能準確找到下述例子中的cells (i2)。

Tcl在Vivado中的基礎應用及優勢

高級查找功能

在使用get_*命令查找網表中的目標時,除了名字這一直接條件,往往還需要輔以其它更復雜的條件判斷,這就需要用到高級查找功能:-filter 結合Tcl支持的各種關系和邏輯運算符(==, !=, =~, !~, <=, >=, >, <, &&, ||)甚至是正則表達式來操作。

Tcl在Vivado中的基礎應用及優勢

在創建子程序時也常常用到-filter,例如下述get_p的子程序/過程就可以用來返回指定管腳的方向屬性,告訴用戶這是一個輸入管腳還是一個輸出管腳。

Tcl在Vivado中的延伸應用

Tcl在Vivado中的應用還遠不止上述所列,其它常用的功能包括使用預先寫好的Tcl腳本來跑設計實現流程,創建高級約束(XDC不支持循環等高級Tcl語法)以及實現復雜的個性化設計流程等等。Tcl所帶來的強大的可擴展性決定了其在版本控制、設計自動化流程等方面具有圖形化界面不能比擬的優勢。

Vivado在不斷發展更新的過程中,還有很多新的功能,包括ECO、PR、HD Flow等等都是從Tcl腳本方式開始支持,然后再逐步放入圖形化界面中實現。這也解釋了為何高端FPGA用戶和熟練的Vivado用戶都更偏愛Tcl腳本。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCL
    TCL
    +關注

    關注

    11

    文章

    1777

    瀏覽量

    89723
  • 子程序
    +關注

    關注

    0

    文章

    33

    瀏覽量

    11374
  • 腳本
    +關注

    關注

    1

    文章

    397

    瀏覽量

    28386
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TclVivado的基礎應用

    Xilinx的新一代設計套件Vivado相比上一代產品ISE,在運行速度、算法優化和功能整合等很多方面都有了顯著地改進。但是對初學者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,
    的頭像 發表于 09-14 09:09 ?2166次閱讀

    Vivado圖形化界面IDE運行和調試Tcl命令

    。Xilinx公司從ISE工具的后期開始,工具引入了對tcl語言的支持。目前廣泛使用的設計工具Vivado
    發表于 06-17 14:52

    TCL 定制 Vivado 設計實現流程

    Based Mode)和非工程模式(None Project Mode) 兩種,且都能通過 Tcl 腳本批處理運行,或是 Vivado 圖形化界面 IDE 交互運行和調試。 工程
    發表于 06-28 19:34

    Vivado設計之Tcl定制化的實現流程

    其實TclVivado還有很多延展應用,接下來我們就來討論如何利用Tcl語言的靈活性和可擴展性,
    發表于 11-18 01:48 ?3817次閱讀
    <b class='flag-5'>Vivado</b>設計之<b class='flag-5'>Tcl</b>定制化的實現流程

    Vivado下利用Tcl腳本對綜合后的網表進行編輯過程

    ISE下,對綜合后的網表進行編輯幾乎是不可能的事情,但在Vivado下成為可能。VivadoTcl的支持,使得Tcl腳本
    發表于 11-18 03:16 ?7881次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vivado</b>下利用<b class='flag-5'>Tcl</b>腳本對綜合后的網表進行編輯過程

    TclVivado的基礎應用

    Vivado使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級到Vivado的信心。本文介紹了TclVivado
    發表于 11-18 03:52 ?5144次閱讀
    <b class='flag-5'>Tcl</b><b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>的基礎應用

    Vivado使用誤區與進階——Vivado實現ECO功能

    關于TclVivado的應用文章從Tcl的基本語法和在Vivado
    發表于 11-18 18:26 ?5687次閱讀
    <b class='flag-5'>Vivado</b>使用誤區與進階——<b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>實現ECO功能

    如何使用Tcl命令語言讓Vivado HLS運作

    了解如何使用Tcl命令語言以批處理模式運行Vivado HLS并提高工作效率。 該視頻演示了如何從現有的Vivado HLS設計輕松創建新的Tcl批處理腳本。
    的頭像 發表于 11-20 06:06 ?3394次閱讀

    FPGA設計TclVivado的基礎應用

    ,還是從對使用者思路的要求,都是全新的;在運行速度、算法優化和功能整合等很多方面都有了顯著地改進。但是對初學者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,以至于兩年多后的今天,仍有很多用戶缺乏升級到
    的頭像 發表于 11-17 17:32 ?2893次閱讀

    VivadoFPGA設計優勢

    Xilinx的新一代設計套件Vivado相比上一代產品ISE,在運行速度、算法優化和功能整合等很多方面都有了顯著地改進。但是對初學者來說,新的約束語言XDC以及腳本語言Tcl的引入則成為了快速掌握Vivado使用技巧的最大障礙,
    的頭像 發表于 09-19 16:20 ?1939次閱讀

    Vivado中常用TCL命令匯總

    Vivado是Xilinx推出的可編程邏輯設備(FPGA)軟件開發工具套件,提供了許多TCL命令來簡化流程和自動化開發。本文將介紹Vivado中常用的
    的頭像 發表于 04-13 10:20 ?4608次閱讀

    TclVivado的應用

    Xilinx的新一代設計套件Vivado相比上一代產品 ISE,在運行速度、算法優化和功能整合等很多方面都有了顯著地改進。但是對初學者來說,新的約束語言 XDC 以及腳本語言 Tcl 的引入則成為
    的頭像 發表于 04-15 09:43 ?1811次閱讀

    TCL定制Vivado設計實現流程

    今天推出Xilinx已發布的《Vivado使用誤區與進階》系列:用TCL定制Vivado設計實現流程。
    的頭像 發表于 05-05 09:44 ?1456次閱讀
    用<b class='flag-5'>TCL</b>定制<b class='flag-5'>Vivado</b>設計實現流程

    Vivado實現ECO功能

    關于 Tcl Vivado的應用文章從 Tcl 的基本語法和在 Vivado
    的頭像 發表于 05-05 15:34 ?3380次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Vivado</b><b class='flag-5'>中</b>實現ECO功能

    Vivado設計套件Tcl命令參考指南

    電子發燒友網站提供《Vivado設計套件Tcl命令參考指南.pdf》資料免費下載
    發表于 09-14 10:23 ?1次下載
    <b class='flag-5'>Vivado</b>設計套件<b class='flag-5'>Tcl</b>命令參考指南
    主站蜘蛛池模板: 美女久久久久久 | 日韩欧美伦理 | 狂野欧美性猛交xxxx免费 | 96福利视频 | 亚洲成a人片在线网站 | 国产精品午夜自在在线精品 | 午夜视频在线观看免费高清 | 欧美日韩国产一区二区 | 国产在线视频不卡 | 一区二区三区视频免费观看 | 免费看黄在线 | 午夜影视网站 | 一级视频在线观看免费 | 免费日本黄色 | 亚洲一区二区在线视频 | 亚洲高清资源 | 一级做a爰片久久毛片免费看 | 香港三级理论在线观看网站 | 欧美日韩性猛交xxxxx免费看 | 高h视频网站 | 亚洲伊人色一综合网 | 精品国产污网站在线观看15 | 91免费视频网站 | 色播在线 | 国产在线美女 | 精品成人在线观看 | 色婷婷亚洲十月十月色天 | 久久青青草原精品老司机 | 久久久久综合中文字幕 | 久久99精品久久久久久野外 | 五月六月激情 | 777欧美 | 国产亚洲3p一区二区三区 | 国内自拍露脸普通话对白在线 | jlzzjlzzjlzz日本亚洲 | 天堂男人网 | 久久天天躁狠狠躁夜夜爽 | 亚洲酒色1314狠狠做 | 奇米一区二区 | 男女那啥的视频免费 | 日韩在线一区视频 |