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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FAE講堂:提升創(chuàng)造力的數(shù)字設(shè)計(jì)工具 FPGA Editor

          FAE講堂:提升創(chuàng)造力的數(shù)字設(shè)計(jì)工具 FPGA Editor

          作者: 時間:2011-05-06 來源:電子產(chǎn)品世界 收藏

            工程師在設(shè)計(jì)過程中,經(jīng)常需要一定的創(chuàng)造力(你不妨稱之為數(shù)字管道膠帶)才能夠保證設(shè)計(jì)的順利完成。過去8年時間里,我曾經(jīng)目睹許多優(yōu)秀工程師利用這一方法出色地完成了許多工作,而他們采用的最主要工具就是 Editor。

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

            利用 Editor,你可以察看完成的設(shè)計(jì)并確定是否在構(gòu)造一級真正實(shí)現(xiàn)了設(shè)計(jì)意圖 – 而這對于任何工程師或現(xiàn)場應(yīng)用工程師來說都是非常需要的。假設(shè)你拿到協(xié)作者的設(shè)計(jì),需要對其進(jìn)行修改,但他們的 HDL源代碼非常難于理解,或者根本沒有任何注釋或文檔。也許你只是想將某些時鐘邏輯鎖定,但卻不知道實(shí)例的名稱或者如何將其鎖在所希望的位置。下面討論的一些用來探查FPGA構(gòu)造以及創(chuàng)建命令行補(bǔ)丁的技巧可以幫助設(shè)計(jì)人員滿足不斷迫近的任務(wù)期限要求。

            FPGA構(gòu)造勘察技巧

            當(dāng)賽靈思發(fā)布針對新FPGA器件的工具時,通常我做的第一件事就是打開FPGA Editor來勘FPGA器件的內(nèi)部構(gòu)造。具體做法是找到 →ISE →Accessories菜單并點(diǎn)擊FPGA Editor圖標(biāo),或者在命令行鍵入 fpga_editor。 圖形用戶界面打開后,在File菜單下選擇New。FPGA Editor會詢問設(shè)計(jì)文件名稱和物理約束文件。此時還沒有任何設(shè)計(jì)文件,因此隨便鍵入一個設(shè)計(jì)文件名(例如,test.ncd),并選擇希望察看的器件類型。 FPGA Editor將會使用同樣的名字作為物理約束文件的名稱,并加載一個空白設(shè)計(jì)。

            另一種方法是編譯隨軟件提供的某個ISE®工具套件設(shè)計(jì)例子,并將其加載到FPGA Editor中來察看FPGA構(gòu)造。加載一個設(shè)計(jì)實(shí)例可以顯示更多細(xì)節(jié),并且更容易定位感興趣的項(xiàng)目。

            在FPGA Editor中瀏覽只需要記住兩件事:

            1、 如何利用CTRL/Shift快捷鍵進(jìn)行放大縮小。

            2、 如果利用F11鍵放大選定的項(xiàng)目。不使用GUI按鈕快速縮放的方法是,按住Ctrl和Shift鍵,然后分別利用鼠標(biāo)左鍵和右鍵進(jìn)入放大和縮小。要想快速找到任何項(xiàng)目,在GUI右上角的列表窗口(List window)中選擇該項(xiàng)目即可。一旦定位了想找的項(xiàng)目,按F11鍵。陣列窗口(Array window)就會放大顯示該項(xiàng)目。

            FPGA Editor有四個主要窗口:列表(List)、全局(World)、陣列(Array)和塊(Block)。List窗口顯示設(shè)計(jì)中所有活動的項(xiàng)目。通過此窗口頂部的下拉菜單可選擇其內(nèi)容 – 列表內(nèi)容包括已經(jīng)布局或還未使用的部件、網(wǎng)絡(luò)或未布線的網(wǎng)絡(luò)等等。

            全局視圖窗口(World Windows)始終顯示完整FPGA硅片視圖,這在試圖確定某個網(wǎng)絡(luò)的布線情況時非常有用。同時,陣列窗口(Array window)則是FPGA構(gòu)造和邏輯的動態(tài)視圖。如果雙擊Array視圖中的任何項(xiàng)目,會顯示Block視圖,給出所選擇項(xiàng)目或邏輯單元的詳細(xì)情況。

            為方便瀏覽或?qū)υO(shè)計(jì)進(jìn)行編輯,這些窗口可以復(fù)制。許多情況下,打開第二個Array窗口會比較方便同時在設(shè)計(jì)的兩個不同部分工作。例如,假設(shè)需要在全局時鐘緩沖器和芯片底部的觸發(fā)器之間增加一條布線。如果在一個Array窗口中顯示全局時鐘緩沖器的輸出,另一個Array窗口則顯示觸發(fā)器時鐘輸入,那么會做起來會更方便。不然的話就必須來回縮放來定位布線的兩端,顯然這很繁瑣。

            在FPGA Editor GUI的右側(cè)是一組由20個功能按鈕組成的工具條,用于設(shè)計(jì)察看和編輯。通過編輯 $XILINX/data目錄下的 fpga_editor.ini文件可以增加更多功能按鈕。當(dāng)察看設(shè)計(jì)時,應(yīng)當(dāng)隨時使用INFO按鈕。該功能會將所選擇項(xiàng)目的所有信息轉(zhuǎn)錄到控制臺(Console)窗口。這一功能非常方便,你可以在控制臺窗口中標(biāo)注數(shù)據(jù)并將其拷貝到其它地

            方使用,例如編寫UCF約束。

            一旦了解了最基本的概念和操作,就可以開始察看FPGA構(gòu)造。通常我都從時鐘邏輯開始。這包括數(shù)字時鐘管理器(DCM)、鎖相環(huán)(PLL)、全局時鐘緩沖器(BUFG)、區(qū)域時鐘緩沖器(BUFR)、I/O緩沖器(BUFIO)以及不同的時鐘區(qū)域。(要想按字母列出項(xiàng)目表,可以到LIST窗口點(diǎn)擊Type來排序。)點(diǎn)擊一個DCM并按F11。ARRAY窗口會定位到選擇的DCM并放大顯示它。繼續(xù)點(diǎn)擊DCM并觀察GUI底部的Console窗口,其中會顯示與下面類似的內(nèi)容:

            comp “DCM_BASE_inst_star”, site

            “DCM_ADV_X0Y9”, type = DCM_ADV

            (RPM grid X73Y202)

            這是有用的數(shù)據(jù)。 拷貝并粘貼上述內(nèi)容到UCF文件中,并作如下更改以鎖定這一DCM邏輯:

            INST “DCM_BASE_inst_star”

            LOC=DCM_ADV_X0Y9;

            利用這一方法,幾乎可以鎖定FPGA中的任何項(xiàng)目。 下面是BUFG鎖定的另一個例子:

            c o m p “ B U F G _ i n s t _ s t a r ” , s i t e

            “BUFGCTRL_X0Y20”, type = BUFG

            (RPM grid X73Y124)

            INST “BUFG_inst_star”

            LOC=BUFGCTRL_X0Y20;

            再次回到 List 窗口并標(biāo)注同一DCM。 雙擊之后將會在Block視圖中顯示該DCM以及所有設(shè)置和參數(shù)。這是一項(xiàng)非常強(qiáng)大的功能,可用于FPGA構(gòu)造中的任何邏輯項(xiàng)目。如果選擇一個邏輯片并雙擊它,就可以看到邏輯片是如何布線連接的,以及是否使用了進(jìn)位鏈或本地觸發(fā)器。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: Xilinx FPGA 設(shè)計(jì)工具

          評論


          相關(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); })();