<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/273292.htm

            本文介紹了 Tcl 在 Vivado 中的基礎(chǔ)應(yīng)用,希望起到拋磚引玉的作用,指引使用者在短時間內(nèi)快速掌握相關(guān)技巧,更好地發(fā)揮 Vivado 在 設(shè)計中的優(yōu)勢。

            1 Tcl 的背景介紹和基礎(chǔ)語法

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

            實際上 Tcl 的功能可以很強(qiáng)大,用其編寫的程序也可以很復(fù)雜,但要在 Vivado 或大部分其它 EDA 工具中使用,則只需掌握其中最基本的幾個部分。注: 在以下示例中, % 表示 Tcl 的命令提示符,執(zhí)行回車后, Tcl 會在下一行輸出命令執(zhí)行結(jié)果。 // 后是作者所加注釋,并不是例子的一部分。

              

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

            1.3 文件 I/O

            寫文件 讀文件
              

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

            1.4 控制流和循環(huán)命令

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

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

            1.5 子程序/過程

            Tcl 中的子程序也叫做過程( Procedures) , Tcl 正是通過創(chuàng)建新的過程來增強(qiáng)其內(nèi)建命令的能力,提供更強(qiáng)的擴(kuò)展性。具體到 Vivado 的使用中,用戶經(jīng)??梢酝ㄟ^對一個個子程序/過程的創(chuàng)建來擴(kuò)展或個性化 Vivado 的使用流程。
              


          上一頁 1 2 3 下一頁

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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();