新聞中心

        EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > Tcl在Vivado中的應(yīng)用

        Tcl在Vivado中的應(yīng)用

        作者:周立娜 時(shí)間:2015-04-28 來源:電子產(chǎn)品世界 收藏

          Tcl 語(yǔ)言的基本語(yǔ)法相對(duì)簡(jiǎn)單,但要熟練掌握仍需日常不斷練習(xí)。 網(wǎng)站上有很多相關(guān)資料,這里推薦兩個(gè)跟 Tcl 相關(guān)的文檔 UG835 和 UG894 , 希望對(duì)大家學(xué)習(xí) Vivado和 Tcl 有所幫助。

        本文引用地址:http://www.104case.com/article/273292.htm

          2 在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)的分類。

          2.1 目標(biāo)的定義和定位

          如圖1所示,設(shè)計(jì)頂層的 I/O 稱作 ports,其余底層模塊或是門級(jí)網(wǎng)表上的元件端口都稱作 pins。而包括頂層在內(nèi)的各級(jí)模塊、 blackbox 以及門級(jí)元件,都稱作 。連線稱作 nets,加上 XDC 中定義的 clocks,在 Vivado 中一共將網(wǎng)表文件中的目標(biāo)定義為五類。要選取這五類目標(biāo),則需用相應(yīng)的 get_*命令,例如 get_pins 等等。

          get_ports

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

          get_/get_nets

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

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

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

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

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



        關(guān)鍵詞: Xilinx VivadoTcl FPGA cells

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 筠连县| 临澧县| 浮山县| 绵阳市| 新干县| 乐亭县| 柘城县| 沁水县| 沙洋县| 名山县| 阿鲁科尔沁旗| 昆明市| 西贡区| 石城县| 靖西县| 益阳市| 龙陵县| 江城| 咸阳市| 富锦市| 司法| 晋宁县| 腾冲县| 凤冈县| 都昌县| 襄垣县| 饶平县| 新巴尔虎左旗| 清徐县| 秀山| 静安区| 新津县| 苍山县| 阿拉尔市| 临夏县| 洪洞县| 翁牛特旗| 洛阳市| 六枝特区| 孟村| 马边|