當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]FPGA Editor應(yīng)用技巧

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

利用FPGA Editor,你可以察看完成的設(shè)計(jì)并確定是否在FPGA構(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)造。具體做法是找到Xilinx → 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ì)情況。

利用FPGA Editor,你可以察看物理實(shí)施后的設(shè)計(jì)并確定是否在FPGA構(gòu)造一級真正實(shí)現(xiàn)了設(shè)計(jì)意圖 – 而這對于任何工程師或現(xiàn)場應(yīng)用工程師來說都是非常需要的。

為方便瀏覽或?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鎖定的另一個例子:

comp “BUFG_inst_star”, site “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ā)器。

Block視圖的按鈕條包含許多其它選項(xiàng)。值得一提的是 F= button按鈕,其功能是顯示邏輯片中使用的項(xiàng)目的完整配置。例如,如果使用了一個LUT6和一個觸發(fā)器,按下F= 按鈕將會給出LUT的布爾議程以及觸發(fā)器的配置模式。

閱讀賽靈思用戶指南是一回事,而從計(jì)算機(jī)屏幕上展開的視圖上探察所有邏輯、開關(guān)和參數(shù)則是另一回事。一旦熟悉了FPGA構(gòu)造及所有資源,那么在編寫和驗(yàn)證設(shè)計(jì)時獲得的幫助將會令人感到驚奇。在設(shè)計(jì)流程中記錄
生成補(bǔ)丁腳本


當(dāng)用戶在GUI環(huán)境中編輯設(shè)計(jì)時,F(xiàn)PGA Editor能夠記錄用戶動作。用戶不僅可以保存記錄動作流程,還可在以后重新使用記錄的腳本并加以重復(fù)。當(dāng)無法更改RTL,但又需要在設(shè)計(jì)過程中對設(shè)計(jì)進(jìn)行修改時,這一功能特別有用。假設(shè)設(shè)計(jì)采用了第三方IP或賽靈思加密IP,其中包括一個全局時鐘和一個DCM來生成稱為 interface_clk的時鐘。然后再假設(shè)接口所連接的ASIC出現(xiàn)問題,無法在預(yù)定的interface_clk的上升沿接收數(shù)據(jù)。如何修正這一問題?[!--empirenews.page--]


當(dāng)然,你可以改變PCB,更換出現(xiàn)問題的ASIC或者讓第三方IP小組來修改時鐘輸出邏輯以提供90度相移的interface_clk。所有這些解決方案都既耗費(fèi)時間又成本高昂。一個更簡單的建議是利用FPGA Editor來記錄修改動作,對interface_clk邏輯進(jìn)行必要的更改,從而為出現(xiàn)問題的ASIC提供正確的時鐘相位。一旦有了相關(guān)修改的 FPGA Editor腳本,就可以回放這些命令行腳本記錄的修改步驟,而你也可以正常繼續(xù)你的FPGA設(shè)計(jì)流程。當(dāng)出現(xiàn)問題的ASIC修復(fù)正常以后,你只需要將 FPGA Editor腳本從編譯腳本中移除就可以,而interface_clk也會恢復(fù)其正常的行為。


要想對設(shè)計(jì)進(jìn)行手動編輯,首先需要在FPGA Editor中開啟讀/寫(read/write)權(quán)限。在菜單條中點(diǎn)擊File → Main Properties。在此菜單下,可以調(diào)整編輯模式(從No logic Change到Read/Write)。點(diǎn)擊Apply,現(xiàn)在就可以開始對設(shè)計(jì)進(jìn)行編輯了。在下一步利用FPGA Editor記錄對設(shè)計(jì)進(jìn)行的所有修改時,只需要簡單地從菜單條中點(diǎn)擊Tools → Scripts →Begin Recording。FPGA Editor將會提示輸入一個腳本名字(如patch.scr)。輸完腳本名字,就可以對設(shè)計(jì)進(jìn)行必要的修改了。


在設(shè)計(jì)中運(yùn)行設(shè)計(jì)規(guī)則檢查(DRC)來看一下是否有規(guī)則沖突的紅色標(biāo)志是一個很好的方式。在我的設(shè)計(jì)例子中,有14條警告,但都可以忽略。下一步我們將需要定位interface_clk使用的DCM,并為此DCM的90度相移輸出創(chuàng)建另一個稱為DCM_clk90_out的時鐘。這需要利用全局時鐘布線資源將時鐘連接到BUFG。要增加一個BUFG,先在FPGA構(gòu)造中找到一個未用的BUFG位置,右擊并選擇 Add(添加)。然后,工具會提醒你為BUFG命名(clk90_bufg)并確定其類型:BUFG(參見圖1)。


圖1:屬性窗口允許用戶配置并命名選定的邏輯項(xiàng)目

創(chuàng)建了新的BUFG,就需要將其輸入和輸出連接到適當(dāng)?shù)奈恢?。在本例中,DCM的90度相移輸出將驅(qū)動BUFG。在窗口Array1中,點(diǎn)擊DCM 的90度輸出端衰減器,在窗口Array2中,點(diǎn)擊BUFG的輸入端衰減器,同時按住Ctrl鍵,可實(shí)現(xiàn)連接。然后釋放Ctrl鍵,點(diǎn)擊鼠標(biāo)右鍵并選擇 Add。工具會提示為新網(wǎng)絡(luò)連接輸入名字。這樣就將DCM 和 BUFG通過新網(wǎng)絡(luò)連接到一起了(參看圖2)。


圖2:在兩個邏輯項(xiàng)目中手動布線時,如紅色三角所示,使用兩個Array窗口可以輕松選擇源頭和目標(biāo)

clk90_bufg的輸出要代替由原interface_clk驅(qū)動的IOB上的時鐘。要將IOB從原來的時鐘域中移開,需要定位IOB,標(biāo)注時鐘輸入端衰減器并按下Delete鍵移除這一連接。這樣我們就可以將新的clk90_bufg時鐘連接到這兒,從而完成整個補(bǔ)丁。要連接BUFG (clk90_bufg)的輸出,按住Ctrl鍵不放,在窗口Array2中標(biāo)注BUFG的輸出端衰減器并在Array1窗口中選擇IOB的時鐘輸入。松開Ctrl鍵,點(diǎn)擊鼠標(biāo)右鍵顯示選項(xiàng)菜單并選擇Add。這樣就最終完成了BUFG輸出和IOB之間的連接,而IOB則用來驅(qū)動下游ASIC的新建接口,利用interface_clk90時鐘就可以正確地捕獲傳輸?shù)臄?shù)據(jù)。[!--empirenews.page--]

這樣就完成了ASIC的補(bǔ)丁?,F(xiàn)在重新運(yùn)行設(shè)計(jì)規(guī)則(DRC)檢查器,確保沒有引入任何新的錯誤。在菜單條中點(diǎn)擊Tools →DRC →Run。

腳本完成并且沒有錯誤的情況下,就可以回到菜單選擇Tool →Script →End Recording。這將停止并關(guān)閉腳本記錄過程,下次需要這一ASIC補(bǔ)丁時你還可以重新利用這一腳本。一個不錯的方法是在文本編輯器中打開腳本文件,將所有GUI Post 和 Unpost命令去除。這些命令并不是必要的,而且留著它們還讓腳本難于閱讀。下面的文本就是我們ASCI補(bǔ)丁的腳本。如前面所述,內(nèi)容非常直接,易于讀取。

unselect -all
setattr main edit-mode Read-Write
add -s “BUFGCTRL_X0Y28” comp
clk90_bufg ;
setattr comp clk90_bufg type BUFG
unselect -all
select pin ‘BUFGCTRL_X0Y28.I0’
select pin ‘DCM_ADV_X0Y11.CLK90’
add
post attr net $NET_0
setattr net $NET_0 name
DCM_clk90_out
unselect -all
select pin ‘OLOGIC_X0Y2.CLK’
delete
unselect -all
select pin ‘ILOGIC_X0Y3.CLK’
delete
unselect -all
select pin ‘ILOGIC_X0Y3.CLK’

select pin ‘OLOGIC_X0Y2.CLK’
select pin ‘BUFGCTRL_X0Y28.O’
add
post attr net $NET_1
setattr net $NET_1 name
clk90_bufg_out
unselect -all
drc
save -w design “patch.ncd”
“patch.pcf”
exit
end

仔細(xì)看看腳本內(nèi)容,看能否分辨出對應(yīng)GUI中做的動作。

很重要的是,可以從GUI(在菜單條 Tool →Scripts →Playback下)中或命令行回放這一腳本。要在編譯腳本中加入補(bǔ)丁,只需要增加下面一條命令就可以了:
fpga_edline yourdesign.ncd
yourdesign.pcf -p yourscript.scr

應(yīng)當(dāng)在布局布線(PAR)完成后再執(zhí)行這一命令,即當(dāng)NCD和PCF文件完成后。

FPGA Editor真的是一項(xiàng)強(qiáng)大的用戶工具,盡管并非每個人都希望或需要在設(shè)計(jì)過程中用到它。但當(dāng)需要一些特殊處理或需要在某些地方突破規(guī)則以使設(shè)計(jì)功能更強(qiáng)時,沒有其它工具能夠像FPGA Editor一樣提供如此強(qiáng)大的能力。你的FAE能夠向你展示其功能,展示FPGA Editor如何幫助你完成設(shè)計(jì)調(diào)試和驗(yàn)證,當(dāng)然還包括對規(guī)則的突破。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉