0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Xilinx SRAM中FPGA實(shí)現(xiàn)高速I(mǎi)CAP控制器

454398 ? 來(lái)源:網(wǎng)絡(luò)交換FPGA ? 作者:網(wǎng)絡(luò)交換FPGA ? 2020-11-10 15:58 ? 次閱讀

介紹一篇在FPGA工程領(lǐng)域特別有價(jià)值的文章,雖然該文僅僅是EI檢索,連SCI檢索都不是,但其對(duì)深入理解FPGA動(dòng)態(tài)可重構(gòu)的概念卻具有重要的參考價(jià)值。文章闡述了Xilinx FPGA可編程的本質(zhì),逆向分析破解了FPGA編程的bit流文件,并將其與FPGA內(nèi)部電路相對(duì)應(yīng),對(duì)于深度理解動(dòng)態(tài)可編程及FPGA電路結(jié)構(gòu)具有重要的指導(dǎo)價(jià)值,LUT動(dòng)態(tài)可編程使得FPGA內(nèi)部的資源使用起來(lái)更靈活,你可以把LUT當(dāng)成BRAM使用,也可以隨時(shí)改變?nèi)舾蓚€(gè)LUT組成電路完成的硬件功能,而這些過(guò)程的實(shí)現(xiàn)細(xì)節(jié)網(wǎng)上的資料非常少,團(tuán)隊(duì)研究生花費(fèi)近三個(gè)月重現(xiàn)了該文的內(nèi)容,整理完畢后會(huì)把詳細(xì)實(shí)現(xiàn)過(guò)程分享給大家,敬請(qǐng)期待。本文只是用工具把英文文章翻譯了一下分享給大家(如今的工具翻譯水平的確不錯(cuò))。希望看到的大牛們能夠給予指導(dǎo)。

論文標(biāo)題:AC_ICAP靈活的高速I(mǎi)CAP控制器

論文摘要:內(nèi)部配置訪(fǎng)問(wèn)端口(ICAP)是基于Xilinx SRAM的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)中實(shí)現(xiàn)的任何動(dòng)態(tài)部分可重配置系統(tǒng)的核心組件。我們開(kāi)發(fā)了一種新的高速I(mǎi)CAP控制器,名為AC ICAP,完全采用硬件實(shí)現(xiàn)。除了加速部分比特流和幀的管理的類(lèi)似解決方案之外,AC ICAP還支持LUT的運(yùn)行時(shí)重新配置,而無(wú)需預(yù)先計(jì)算的部分比特流。通過(guò)對(duì)比特流執(zhí)行逆向工程,可以實(shí)現(xiàn)最后的特性。此外,我們采用了這種基于硬件的解決方案,以提供可從MicroBlaze處理器訪(fǎng)問(wèn)的IP內(nèi)核。為此,擴(kuò)展了控制器并實(shí)現(xiàn)了三個(gè)版本,以便在連接到處理器的外圍本地總線(xiàn)(PLB),快速單工鏈路(FSL)和AXI接口時(shí)評(píng)估其性能。因此,控制器可以利用處理器提供的靈活性,但利用硬件加速。它在Virtex-5和Kintex7 FPGA中實(shí)現(xiàn)。重新配置時(shí)間的結(jié)果表明,Virtex-5器件中單個(gè)LUT的運(yùn)行時(shí)重新配置小于5us,這意味著與Xilinx XPS HWICAP控制器相比,速度提升超過(guò)380倍。

1、引言

現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)器件作為電子系統(tǒng)設(shè)計(jì)和評(píng)估的基本組件而存在。它們不斷被報(bào)告為最終實(shí)現(xiàn)平臺(tái),而不僅僅是原型元素[1]。 FPGA已根據(jù)VLSI縮放技術(shù)的步伐而發(fā)展,使得可以在最先進(jìn)的制造工藝中開(kāi)發(fā)這些器件。例如,7系列基于Xilinx SRAM的FPGA基于28 nm,高k金屬柵極工藝技術(shù)[2],Xilinx Virtex UltraScale +采用16 nm FinFET +,AlteraStratix 10器件采用Intel-14 nm Tri-柵極(FinFET)工藝技術(shù)[3]。這是有利于越來(lái)越多的這種設(shè)備作為ASIC的可編程替代品的原因之一。

此外,F(xiàn)PGA的設(shè)計(jì)和制造方面的技術(shù)改進(jìn)產(chǎn)生了更強(qiáng)大,更靈活的元件,嵌入了更大的RAM存儲(chǔ)器模塊(BRAM),DSP模塊,處理器和專(zhuān)用的硬連線(xiàn)組件.FPGA提供的固有可重配置特性是其中最重要的特性之一實(shí)際硬件實(shí)現(xiàn)和系統(tǒng)重新設(shè)計(jì)的優(yōu)勢(shì)。

我們專(zhuān)注于Xilinx器件,因?yàn)槌酥С謩?dòng)態(tài)部分重配置(DPR)之外,還可以對(duì)比特流進(jìn)行改進(jìn)。這意味著可以執(zhí)行對(duì)比特流結(jié)構(gòu)的逆向工程,這對(duì)于我們?cè)贚UT上執(zhí)行DPR的方法是必不可少的,這將在第3節(jié)中解釋。

基于Xilinx SRAM的FPGA通過(guò)內(nèi)部配置訪(fǎng)問(wèn)端口(ICAP)支持DMA。如圖1所示,這個(gè)硬連線(xiàn)元件允許在運(yùn)行時(shí)訪(fǎng)問(wèn)配置存儲(chǔ)器。因此,可以修改系統(tǒng)的特定部分,而其余部分繼續(xù)運(yùn)行而不受特定運(yùn)行時(shí)修改的影響。動(dòng)態(tài)部分重新配置可以在不同的粒度級(jí)別使用??紤]到設(shè)備的體系結(jié)構(gòu),它可以用于修改基本邏輯組件,例如查找表(LUT)或更大的塊,例如IP核。因此,DPR廣泛應(yīng)用于自適應(yīng)系統(tǒng)的設(shè)計(jì)和關(guān)鍵系統(tǒng)的評(píng)估,這些系統(tǒng)需要在最終生產(chǎn)之前進(jìn)行詳盡的測(cè)試。

圖1:ICAP硬連線(xiàn)原語(yǔ)

圖1:ICAP硬連線(xiàn)原語(yǔ)

Xilinx工具(如PlanAhead或命令行"bitgen-r")將兩個(gè)實(shí)現(xiàn)之間的差異用于生成部分比特流,以允許修改已定義為在運(yùn)行時(shí)更改的特定部分。然后將部分比特流復(fù)制到FPGA的外部或內(nèi)部存儲(chǔ)器中,并在系統(tǒng)需要新的硬件任務(wù)時(shí)將其發(fā)送到ICAP。除了特別適用于粗粒模塊的這種類(lèi)型的運(yùn)行時(shí)重新配置之外,還存在使用在片上處理器中執(zhí)行的某些軟件功能來(lái)動(dòng)態(tài)地修改諸如LUT的基本元件的替代方案。

考慮到這一點(diǎn),硬連線(xiàn)ICAP原語(yǔ)及其相關(guān)控制器成為動(dòng)態(tài)運(yùn)行時(shí)可重構(gòu)系統(tǒng)設(shè)計(jì)中的基礎(chǔ)和不可分割的模塊.ICAP控制器負(fù)責(zé)執(zhí)行訪(fǎng)問(wèn)和修改配置存儲(chǔ)器的所有命令。因此,希望這種控制器滿(mǎn)足至少兩個(gè)基本要求:高重新配置吞吐量和靈活性。

Xilinx工具提供通用控制器來(lái)驅(qū)動(dòng)ICAP,但它們將大部分處理作為處理器中的軟件程序執(zhí)行。它意味著靈活性,但避免達(dá)到最大支持的重配置吞吐量。據(jù)報(bào)道,這些控制器的多種替代方案可以提高重新配置速度。它們中的大多數(shù)已經(jīng)被定向?yàn)楣芾碓谠O(shè)計(jì)時(shí)生成的部分比特流,并且還操縱作為最小可尋址配置存儲(chǔ)器的幀。

深入了解設(shè)備的粒度,還應(yīng)該可以使用已實(shí)現(xiàn)設(shè)計(jì)的LUT上的任何動(dòng)態(tài)修改來(lái)增加系統(tǒng)的靈活性。例如,它可以在加密模塊中用于修改模塊的邏輯行為并增加對(duì)某種類(lèi)型的外部攻擊的抵抗力。因此,還需要一種允許在運(yùn)行時(shí)修改LUT的有效機(jī)制,因?yàn)長(zhǎng)UT是在FPGA中實(shí)現(xiàn)任何邏輯功能的基本組件。 ICAP控制器應(yīng)提供一種以最大支持速度在LUT中執(zhí)行DPR的方法,不僅限于預(yù)生成的部分比特流,而且呈現(xiàn)簡(jiǎn)單的接口,使得架構(gòu)設(shè)備的復(fù)雜性對(duì)用戶(hù)透明。

在本文中,我們提出了一種新穎的運(yùn)行時(shí)重配置控制器,它完全在硬件中實(shí)現(xiàn),并支持Xilinx FPGA中LUT的部分重配置。這項(xiàng)工作的主要貢獻(xiàn)是:

(1)設(shè)計(jì)和實(shí)現(xiàn)支持DPR的fLUTAC ICAP控制器,并在Virtex5和Kintex7器件中驗(yàn)證

(2)將LUT坐標(biāo)和LUT配置值透明地片上轉(zhuǎn)換到幀位置

(3)對(duì)于位于BRAM或閃存中的部分比特流,LUT-DPR的加速和類(lèi)似的重新配置速度(與現(xiàn)有解決方案相比)

(4)FSM獨(dú)立操作和IP版本適用于不同的嵌入式微處理器接口(PLB,F(xiàn)SL和AXI)。

本文的其余部分安排如下。在第2節(jié)中,我們回顧了ICAP控制器設(shè)計(jì)中最相關(guān)的工作。在第3節(jié)中,我們提出了關(guān)于細(xì)粒度部分重構(gòu)的主要考慮因素。在第4節(jié)中,我們?cè)敿?xì)介紹了新的AC ICAP控制器。在第5節(jié)中,介紹了可從片上處理器訪(fǎng)問(wèn)的控制器擴(kuò)展。在第6節(jié)中,我們描述了將控制器移植到更新的設(shè)備系列時(shí)要遵循的注意事項(xiàng)。在第7節(jié)中,我們給出了控制器所需的重新配置時(shí)間和區(qū)域的結(jié)果。接下來(lái)是第8節(jié),其中控制器用于在加密模塊中對(duì)LUT進(jìn)行修改,以實(shí)現(xiàn)針對(duì)外部攻擊的對(duì)策。最后,第9節(jié)總結(jié)了論文并提出了未來(lái)的工作。

2.相關(guān)工作

在本節(jié)中,我們概述了FPGA動(dòng)態(tài)部分重配置中使用的一些最相關(guān)的ICAP控制器實(shí)現(xiàn)。部分重新配置已廣泛應(yīng)用于各種應(yīng)用[5-7],這些應(yīng)用利用了在運(yùn)行時(shí)調(diào)整硬件模塊的可能性。使用這種技術(shù)時(shí)的一個(gè)共同要求是,應(yīng)該以最小的時(shí)間開(kāi)銷(xiāo)執(zhí)行硬件模塊的切換。

實(shí)現(xiàn)具有DPR功能的系統(tǒng)的最常用方法是使用Xilinx工具中提供的ICAP控制器。 XPS HWICAP [4],如圖2所示,AXI HWICAP和OPB HWICAP分別是設(shè)計(jì)用于連接PLB [8],AXI和低速OPB總線(xiàn)的IP內(nèi)核。它們用作嵌入式處理器系統(tǒng)(PicoBlaze或MicroBlaze)的一部分,并且通過(guò)處理器API提供的一系列軟件功能提供對(duì)部分重新配置的支持。這些功能允許處理位于存儲(chǔ)器中的部分比特流,訪(fǎng)問(wèn)配置幀(XHwIcap DeviceReadFrame,XHwIcapDeviceWriteFrame)和修改LUT(XHwIcap SetClbBits,XHwIcap GetClbBits)。在[9]中詳細(xì)介紹了使用函數(shù)修改特定LUT的示例,[10]中的作者使用函數(shù)tomodify幀來(lái)模擬配置存儲(chǔ)器上的故障。

Xilinx功能將大部分操作作為處理器中的軟件程序執(zhí)行。然后,管理ICAP和處理在處理器中執(zhí)行的部分比特流報(bào)頭以及總線(xiàn)等待時(shí)間的命令影響部分重新配置過(guò)程的速度。因此,已經(jīng)開(kāi)發(fā)了各種替代控制器來(lái)克服這些限制。[11]中的作者探索了分析重新配置速度的不同ICAP控制器,并提出了三種變化來(lái)加速部分比特流的處理,但它們都需要存在處理器。

[12,13]也是如此。在后一種情況下,使用FSL鏈路將控制器集成在處理器數(shù)據(jù)路徑中,以最小化總線(xiàn)延遲。相比之下,[14,15]現(xiàn)有的Virtex-5器件控制器能夠從BRAM和閃存中加載部分比特流,完全由硬件實(shí)現(xiàn),獨(dú)立于處理器。以類(lèi)似的方式,[7,16]報(bào)告了用于Virtex-4 FPGA的獨(dú)立于處理器的ICAP控制器的實(shí)現(xiàn)。 [17]中的作者利用DPR來(lái)設(shè)計(jì)容錯(cuò)系統(tǒng)。這些方法顯示了在使用BRAM時(shí)可以達(dá)到最大支持吞吐量的重新配置速度的改進(jìn)。此外,一些工作,例如[7,18]中提出的工作,通過(guò)對(duì)ICAP進(jìn)行超頻,實(shí)現(xiàn)了高于技術(shù)文檔中指定速率的吞吐速度。

所有這些工作都面向有效地訪(fǎng)問(wèn)部分比特流并執(zhí)行硬件切換任務(wù),但不考慮完整控制器應(yīng)支持的一些其他操作。魯棒控制器應(yīng)該能夠回讀和寫(xiě)入配置幀,并且除了僅控制部分比特流之外,還可以修改LUT。這些最后的特征在關(guān)鍵系統(tǒng)的實(shí)現(xiàn)中至關(guān)重要,其中ICAP控制器是設(shè)計(jì)的基本部分[21]??紤]到這一點(diǎn),各種方法,如[20,22-24]中報(bào)道的那些,使用改進(jìn)的ICAP控制器是基于SRAM的FPGA中容錯(cuò)系統(tǒng)的基本組成部分。在這樣的系統(tǒng)中,ICAP用于檢測(cè)和校正配置存儲(chǔ)器中的故障。要做到這一點(diǎn),控制預(yù)先計(jì)算的部分比特流是不夠的,它們實(shí)現(xiàn)了幀的讀取和寫(xiě)入,因?yàn)樵诖思?jí)別執(zhí)行故障檢測(cè)。例如,一旦讀取幀,就可以獲得其CRC以檢查其組成位中是否存在錯(cuò)誤。在錯(cuò)誤值的情況下,可以校正幀并使用正確的值寫(xiě)回配置存儲(chǔ)器。因此,這些報(bào)告的工作包括用于寫(xiě)入和讀取配置幀的幀處理。

據(jù)我們所知,在[25]中介紹了作為ICAP控制器的一部分在LUT級(jí)執(zhí)行運(yùn)行時(shí)重新配置的唯一工作,但它僅適用于LUT具有四個(gè)輸入的Xilinx Virtex-II器件該器件的架構(gòu)與新的Xilinx系列有很大不同。這些框架覆蓋了設(shè)備的整個(gè)高度,并未詳細(xì)說(shuō)明LUT配置值如何位于框架上。此外,這個(gè)家庭目前被認(rèn)為已經(jīng)過(guò)時(shí)。

在這項(xiàng)工作中,我們開(kāi)發(fā)了一個(gè)完全用硬件實(shí)現(xiàn)的新型ICAP控制器,支持比特流管理,幀的讀取和寫(xiě)入以及LUT修改。該方法提供了LUT重新配置速度的改進(jìn),并且在不需要預(yù)先計(jì)算的部分比特流的情況下執(zhí)行。此外,它可以輕松適應(yīng)各種Xilinx FPGA系列中的片上處理器。

3. LUT的動(dòng)態(tài)部分重配置
在本節(jié)中,我們將介紹XilinxFPGA的一般架構(gòu)以及部分重配置的相關(guān)概念,以Virtex-5 XC5VLX110T器件為參考。但是一般的想法也適用于較新的設(shè)備,特別是在考慮LUT時(shí),因?yàn)樗鼈儽3植蛔?它是6輸入LUT,適用于Virtex-5,Virtex-6和7系列FPGA。

FPGA被組織為連接到開(kāi)關(guān)矩陣的可配置邏輯塊(CLB)陣列。圖3顯示了XC5VLX110T FPGA的配置,可以觀察到它被水平分成兩半。在頂部(0)和底部(1)兩半,我們發(fā)現(xiàn)固定數(shù)量的行取決于特定器件的大小。Virtex-5 LX110T FPGA分為8個(gè)水平時(shí)鐘行(HCLK):每半個(gè)四個(gè)。每個(gè)HCLK包括確定數(shù)量的CLB,BRAM,DSP和I / O. CLB分布在160行×54列中,覆蓋整個(gè)設(shè)備。每個(gè)CLB由兩個(gè)Slice組成,每個(gè)Slice包含4個(gè)LUT,4個(gè)觸發(fā)器,多路復(fù)用器和進(jìn)位邏輯。因此,該FPGA具有17280個(gè)片,69120個(gè)LUT和69120個(gè)寄存器。

一個(gè)CLB列定義為跨越HCLK高度的一組20×1 CLB。這意味著,在HCLK行內(nèi)的每個(gè)CLB列中,有40個(gè)Slice和160個(gè)LUT。

配置存儲(chǔ)器按幀組織。一幀是可以尋址的最小配置存儲(chǔ)器大小。因此,應(yīng)該以幀為參考對(duì)配置存儲(chǔ)器執(zhí)行任何操作。一幀由41個(gè)32位(1312位)組成.Virtex-5 LX110T需要23712個(gè)配置幀來(lái)配置整個(gè)芯片。因此,配置文件(比特流)由972464個(gè)32位字(3.7 MB)組成。它在頭部包括272個(gè)字的控制信息,其余對(duì)應(yīng)于配置幀.(FPGA器件固定,配置文件的大小也就固定了)。

每次我們要配置整個(gè)器件時(shí),3.7MB的比特流包含要實(shí)現(xiàn)的電路的描述應(yīng)該加載到配置存儲(chǔ)器中。

要配置CLB列,需要36幀。在36幀內(nèi),我們擁有20個(gè)CLB中存在的每個(gè)元素的信息。我們關(guān)注LUT,因?yàn)檫@些是實(shí)現(xiàn)FPGA中所有組合邏輯的基本元素。

LUT或邏輯函數(shù)發(fā)生器是六輸入元件,需要64位來(lái)定義要執(zhí)行的功能。LUT的邏輯行為取決于在這64位中配置的值(INIT值)。要處理任何單個(gè)LUT,必須定義其位置和INIT值。該位置使用三個(gè)參數(shù):(x,y,Bel)。 x和y是Slice的坐標(biāo),Bel是用于選擇Slice內(nèi)的單個(gè)LUT的索引。 x和y的范圍取決于FPGA的大?。ㄔ谒紤]的器件中為108×160)。 Bel索引的范圍從0到3,用坐標(biāo)(x,y)選擇Slice內(nèi)的4個(gè)LUT(LUT-A,LUT-B,LUT-C和LUTD)中的一個(gè)。一旦識(shí)別出特定的LUT,就可以通過(guò)64個(gè)配置位修改其INIT值。如第2節(jié)所述,由于Xilinx API提供的某些軟件程序,可以在運(yùn)行時(shí)修改此LUT參數(shù)。函數(shù)XHwIcap GetClbBits用于讀回LUT的INIT值并將其存儲(chǔ)在內(nèi)存中。 XHwIcap SetClbBits將系統(tǒng)內(nèi)存中的任何INIT值復(fù)制到LUT配置字段中。這兩個(gè)函數(shù)都需要相同類(lèi)型的參數(shù):LUT(x,y和Bel)的坐標(biāo)和用于定位INIT值的內(nèi)存地址。我們發(fā)現(xiàn)有關(guān)這些函數(shù)及其執(zhí)行的操作的信息非常有限。這些參數(shù)的格式目標(biāo)文件(.o)及其源代碼不可用。

此外,使用這些函數(shù)讀取和寫(xiě)入LUT的配置值所需的時(shí)間大約為2ms,而使用XHwIcap DeviceReadFrame和XHwIcapDeviceWriteFrame函數(shù)讀取和寫(xiě)入幀的時(shí)間大約為30 us。這些數(shù)字是使用基于MicroBlaze的100MHz系統(tǒng)實(shí)驗(yàn)獲得的,為我們提供了改善LUT重新配置時(shí)間的機(jī)會(huì)。因此,我們進(jìn)行了實(shí)驗(yàn)以推斷出LUT參數(shù)和配置幀之間的關(guān)系。通過(guò)組合XHwIcap SetClbBits函數(shù)以使用XHwIcap DeviceReadFrame寫(xiě)入特定LUT來(lái)分析幀上的編程值,我們發(fā)現(xiàn)使用四個(gè)幀來(lái)重新配置單個(gè)LUT。

如圖4所示,INIT值的64位跨越四個(gè)連續(xù)幀,每幀包含16個(gè)INIT位。每個(gè)CLB列中的40個(gè)Slice可以看作是20列Slice的2列。一個(gè)Slice列包含20個(gè)Slice,在x坐標(biāo)上具有偶數(shù)值,而其他20個(gè)Slice包含奇數(shù)值。幀26至29包圍具有奇數(shù)x坐標(biāo)的20個(gè)Slice的LUT配置值,而當(dāng)32坐標(biāo)為偶數(shù)時(shí),幀32至35具有20個(gè)Slice的相應(yīng)信息。以類(lèi)似的方式,Slice-y坐標(biāo)確定要使用的每個(gè)幀內(nèi)的特定字。對(duì)于任何CLB列,y需要20個(gè)連續(xù)值。根據(jù)此值,幀中的特定字對(duì)應(yīng)于單個(gè)LUT。兩個(gè)連續(xù)的幀字具有片的4個(gè)LUT的部分信息。 16位INIT LUT-A和16位INIT LUT-B配置值在一個(gè)32位字中。類(lèi)似地,LUT-C和LUT-D INIT值位于下一個(gè)字中。

4. AC_ICAP實(shí)現(xiàn)
AC ICAP控制器(如圖5所示)提供與Xilinx工具中可用的XPS HWICAP和AXI HWICAP類(lèi)似的功能,但AC ICAP完全在硬件中實(shí)現(xiàn),而不是將大部分任務(wù)作為處理器中的軟件例程。它包括支持ReadFrames,WriteFrames,Modify LUT,以及從閃存和BRAM內(nèi)存加載部分比特流。與同樣在硬件中實(shí)現(xiàn)幀讀取和寫(xiě)入的類(lèi)似方法[20]相比,我們的控制器通過(guò)LUT的運(yùn)行時(shí)重新配置得到改進(jìn),而無(wú)需預(yù)先計(jì)算的部分比特流。這最后一個(gè)特性與自適應(yīng)的實(shí)現(xiàn)相關(guān)可能需要根據(jù)運(yùn)行時(shí)生成的值對(duì)硬件進(jìn)行微調(diào)的系統(tǒng),而不僅僅是基于預(yù)先計(jì)算的值。第8節(jié)將更詳細(xì)地討論這方面的問(wèn)題。

控制器及其內(nèi)部模塊使用有限狀態(tài)機(jī)(FSM)根據(jù)表1中指定的輸入Op sel的值在不同的配置級(jí)別上操作。

AC ICAP最初使用配備了Virtex-5LX110T FPGA的電路板開(kāi)發(fā),實(shí)現(xiàn)流程在Xilinx工具版本14.7中執(zhí)行。盡管Virtex-5系列提供了詳細(xì)信息,但應(yīng)注意控制器也按照第6節(jié)中的說(shuō)明在7系列系列中實(shí)現(xiàn)。

如第3節(jié)所述,LUT的DPR需要修改幀的特定部分。因此,用于讀寫(xiě)幀的兩個(gè)模塊在LUT運(yùn)行時(shí)重新配置的實(shí)現(xiàn)中是必不可少的。我們?cè)O(shè)計(jì)了具有BRAM空間的AC ICAP控制器,能夠存儲(chǔ)可以重新配置4個(gè)CLB列區(qū)域的部分比特流。然后,控制器對(duì)設(shè)備中可用的總BRAM具有低影響(148)。因此,我們將7-36 Kbit BRAM元素(31.5KB)配置為雙端口存儲(chǔ)器。該存儲(chǔ)空間用于存儲(chǔ)讀取的幀,并且還用作要發(fā)送到ICAP的幀的源。保留初始2800字節(jié)以執(zhí)行LUT修改和幀任務(wù)。剩余的28.7KB可用于幀或部分比特流存儲(chǔ),如圖6所示。當(dāng)部分比特流適合可用的BRAM時(shí),BRAM任務(wù)的負(fù)載部分比特流可以達(dá)到最大指定吞吐量,因?yàn)樗鼈冎g的直接連接。片上BRAM和額外字虛擬幀數(shù)據(jù)幀1數(shù)據(jù)幀N數(shù)據(jù)幀或部分比特流位31位0 01 699 700 8063字1 41 42字41字1字41 82 BRAM地址圖6:BRAM存儲(chǔ)器映射。

ICAP通過(guò)32位鏈接。通過(guò)使用100MHz的時(shí)鐘,每個(gè)時(shí)鐘周期可以使用一個(gè)32位字,這相當(dāng)于ICAP支持的最大吞吐量(3.2 Gbps)。我們遵守技術(shù)文件中規(guī)定的有關(guān)ICAP最大工作頻率的限制:100MHz [4]。但是,應(yīng)該考慮到漢森等人在文獻(xiàn) [18]報(bào)告了ICAP的正確操作,當(dāng)它被超頻以實(shí)現(xiàn)更好的重配置吞吐速度。

接下來(lái)詳細(xì)說(shuō)明AC ICAP控制器的組成模塊。

4.1 ReadFrames模塊

ReadFrames模塊使用兩個(gè)參數(shù)來(lái)定義要讀取的位置(FAddr)和幀數(shù)(Nf)。 Nf對(duì)于單幀讀取取值1或?qū)Χ鄮x取取任何其他值。它受控制器上可用BRAM內(nèi)存的限制。應(yīng)該注意的是,對(duì)于LUT修改任務(wù),一個(gè)BRAM塊就足夠了,但我們包括六個(gè)額外的塊來(lái)存儲(chǔ)幀或小的部分比特流。我們將所有讀取幀存儲(chǔ)在BRAM上,然后可以訪(fǎng)問(wèn)它們以對(duì)它們執(zhí)行任何操作。或者,能夠?qū)ψx取幀進(jìn)行頂部處理和存儲(chǔ)的外部模塊可以獲得比由BRAM的大小限制的幀更多的幀。例如,所考慮的板中存在的DDR存儲(chǔ)器具有256MB的容量。它可用于保存占用AC ICAP可用BRAM的31.5KB以上的配置幀。

在多幀(Nf> 1)的情況下,F(xiàn)Addr是讀取過(guò)程開(kāi)始的第一幀的地址。從那里,例程將讀取Nf個(gè)連續(xù)幀。ReadFrames例程中涉及的步驟如圖7所示。當(dāng)op sel =“001”并且Start信號(hào)被置位時(shí),ICAP被配置為讀取指定的幀。這是通過(guò)寫(xiě)入ICAP的某些寄存器來(lái)完成的,詳見(jiàn)[28]。重要的是指出CE和WRITE輸入的正確斷言以定義ICAP上的讀取或?qū)懭氩僮?。在CE之前,應(yīng)該修改內(nèi)容,以避免引起中止序列。它在圖7中的兩個(gè)框ICAPWRITE和ICAP READ中有詳細(xì)說(shuō)明。

輸入FAddr和Nf用于用輸入字標(biāo)識(shí)的流程的兩個(gè)步驟。這兩個(gè)值適用于相應(yīng)寄存器的格式。 FAddr應(yīng)具有幀地址寄存器的格式,即一個(gè)32位字,其中包含字段:塊類(lèi)型,頂部,HCLK行,列和列內(nèi)的幀。 Nf用于計(jì)算讀取的字的數(shù)量(N)并生成要發(fā)送給ICAP的類(lèi)型2字。用戶(hù)可以通過(guò)輸入Startaddr和NumFrames分別指定FAddr和Nf?;蛘咚鼈兛梢杂蒐ut2Frames模塊生成,如第4.3節(jié)中所述。

我們必須考慮任何幀的讀取都包括在過(guò)程開(kāi)始時(shí)生成的一個(gè)額外虛擬幀以及一個(gè)額外的字??紤]到這一點(diǎn),Virtex-5器件的讀取字?jǐn)?shù)可以計(jì)算為

公式(1)適用于任何Virtex-5FPGA,因?yàn)樵谶@些器件中,所有配置幀都具有相同的大小。這是41個(gè)32位字。偽幀由1到Nf的加法表示。最后一個(gè)添加代表了最初的字。

來(lái)自FDRO的狀態(tài)READNWords執(zhí)行組成幀的N個(gè)32位字的實(shí)際讀取。對(duì)于從ICAP的FDRO寄存器讀取的每個(gè)字,增加BRAM地址以將幀存儲(chǔ)在該存儲(chǔ)器上。圖6顯示了幀的位置和其它字。

4.2 WriteFrames模塊
該模塊的設(shè)計(jì)遵循與ReadFrame中相同的方法。主要區(qū)別在于準(zhǔn)備ICAP寫(xiě)入配置存儲(chǔ)器所需的配置命令。當(dāng)表1中定義的Op sel輸入為“010”且啟動(dòng)信號(hào)有效時(shí),WriteFrames模塊被激活。要達(dá)到最大吞吐速度,要寫(xiě)入的幀的首選源是BRAM。如果幀位于AC ICAP的BRAM中,則每個(gè)時(shí)鐘周期都有一個(gè)32位字。

由于此模塊通常與ReadFrames結(jié)合使用,因此要寫(xiě)入的幀已經(jīng)被讀取并存儲(chǔ)在BRAM上。然后,WriteFrames模塊使用相同的存儲(chǔ)空間,如圖6所示,其中ReadFrames放置了回讀幀。

與ReadFrames模塊需要考慮一個(gè)虛擬幀的方式相同,在每個(gè)寫(xiě)幀例程中,虛擬幀應(yīng)該在進(jìn)程的最后部分發(fā)送到ICAP。因此,數(shù)據(jù)幀從BRAM地址= 42開(kāi)始并在地址41 *(Nf + 1)。發(fā)送數(shù)據(jù)幀后,應(yīng)立即跟隨虛擬幀。為此,起始地址更改為1,并在發(fā)送41個(gè)字(1幀)時(shí)結(jié)束。地址0處的額外字不用于寫(xiě)入過(guò)程。

我們生成Op完成輸出以指示寫(xiě)入過(guò)程的結(jié)束。有必要保證ICAP任務(wù)正確完成。發(fā)送完所有字后,必須發(fā)送DESYNC命令并禁用ICAP。當(dāng)ICAP接收并處理DESYNC命令時(shí),操作完成。當(dāng)輸出端口O從0xDF變?yōu)?x9F時(shí)觀察到。該過(guò)程具有6個(gè)時(shí)鐘周期的延遲,與輸入CE上的值無(wú)關(guān)。

4.3 DPR of LUTs with LUT2Frames 模塊
LUT2Frames模塊通過(guò)將LUT參數(shù)轉(zhuǎn)換為幀表示來(lái)允許LUT的動(dòng)態(tài)部分重配置。如第3節(jié)所述,LUT的特征在于坐標(biāo)(x,y,Bel)和INIT值。 LUT2Frames模塊,如圖8所示,執(zhí)行兩個(gè)主要任務(wù):(1)將x,y,Bel坐標(biāo)轉(zhuǎn)換為FAR格式,以及(2)將INIT(64位)LUT函數(shù)轉(zhuǎn)換為4個(gè)16位的字。

x,y,Bel輸入合并為一個(gè)32位字,當(dāng)設(shè)置Start輸入時(shí),LUT2Frames模塊使用INIT值。基于坐標(biāo)值,生成一個(gè)具有幀地址寄存器(FAddr)格式的32位字,以定義讀寫(xiě)開(kāi)始的幀。此外,x,y和Bel值確定字偏移量,它是需要操作的每個(gè)幀(2-41個(gè)字中的第一個(gè))的具體字。

從32位字開(kāi)始,只有16位對(duì)應(yīng)于特定的LUT。因此,信號(hào)msb lsb指示應(yīng)修改32位字的哪一部分:0為字的LSB部分(LUT-A或LUT-C) 16個(gè)MSB(LUT-B或LUT-D)為1。

與先前的處理并行地,LUT2Frames模塊生成四個(gè)16位字(fword1???fword4),其對(duì)應(yīng)于變換并適應(yīng)四個(gè)幀的INIT值。

幀位置和尋址的所有復(fù)雜性對(duì)用戶(hù)是透明的。 LUT2Frames模塊實(shí)現(xiàn)所有轉(zhuǎn)換并計(jì)算適當(dāng)?shù)牡刂泛蛢?nèi)存管理,以便在需要修改整個(gè)設(shè)備中的任何LUT時(shí)允許用戶(hù)進(jìn)行簡(jiǎn)單操作。

當(dāng)需要進(jìn)行LUT修改時(shí),執(zhí)行由FSM控制的步驟,如圖9所示。該過(guò)程由啟動(dòng)信號(hào)觸發(fā);然后,激活LUT2Frames模塊。使用此空閑備份字生成的值修改幀寫(xiě)入幀讀取幀LUT2幀模塊,從FAddr開(kāi)始的4幀被讀取并存儲(chǔ)在BRAM(讀取幀)中。字偏移和msb lsb表示應(yīng)修改的特定字。備份這4個(gè)字(備份字),使用LUT2Frames生成的四個(gè)字進(jìn)行修改,并復(fù)制回BRAM。此時(shí),BRAM包含具有新字的幀,并且WriteFrames模塊執(zhí)行對(duì)應(yīng)于LUT的4幀的寫(xiě)入。

Recover LUT例程使用在備份字階段獲得的四個(gè)備份值將LUT恢復(fù)到其先前的配置值??紤]圖9,它僅執(zhí)行LUT修改例程的最后兩個(gè)步驟。

它修改了BRAM上的4個(gè)幀,然后通過(guò)WriteFrames模塊發(fā)送這些幀以將LUT恢復(fù)到其先前的INIT值。此例程在需要在修改LUT之前恢復(fù)LUT的先前功能的應(yīng)用程序中非常有用。通過(guò)遵循這種方法,我們避免再次讀取四幀,因?yàn)檫@些已經(jīng)在BRAM上。

使用ChipScope Pro Debugger [29]驗(yàn)證了控制器的正確操作。圖10顯示了LUT修改過(guò)程的詳細(xì)信息。我們指定了要修改的LUT的x,y,Bel和INIT值。圖10中所示的步驟可以在圖10中標(biāo)識(shí)。LUT2Frames模塊僅需要兩個(gè)時(shí)鐘周期,并且它生成的信息用于尋址四個(gè)幀以讀取和修改這些幀中的四個(gè)特定字。

4.4 Load Partial Bitstreams模塊
該模塊遵循類(lèi)似于第2節(jié)中描述的方法,關(guān)于通過(guò)加載部分比特流來(lái)加速部分重新配置。負(fù)載部分比特流模塊執(zhí)行三個(gè)主要任務(wù):(1)從閃存加載部分比特流,(2)將部分比特流從閃存復(fù)制到BRAM,以及(3)從BRAM加載部分比特流。為此,該模塊包括一個(gè)存儲(chǔ)器訪(fǎng)問(wèn)控制器,用于從閃存中讀取部分比特流。因此,從閃存讀取的數(shù)據(jù)可以直接發(fā)送到ICAP I端口,也可以復(fù)制到內(nèi)部BRAM中。當(dāng)部分比特流在BRAM上時(shí),可以達(dá)到ICAP上的最大配置速度。如果部分比特流在外部存儲(chǔ)器上,則重新配置時(shí)間取決于訪(fǎng)問(wèn)存儲(chǔ)器的延遲。在這種情況下,我們使用Intel StrataFlash存儲(chǔ)器28F256P30,它需要在100MHz的26個(gè)時(shí)鐘周期才能得到32位字。

可以放置在BRAM上的部分比特流的大小受控制器上可用的BRAM存儲(chǔ)器的限制。從AC ICAP中存在的7-36Kbit BRAM,我們保留了2800字節(jié)來(lái)執(zhí)行LUT修改和幀任務(wù)。因此,可放置的部分比特流的最大大小為28.7KB。它可以增加,因?yàn)镕PGA包含更多的BRAM(LX110T器件中有148個(gè))但它取決于應(yīng)用限制。

部分比特流是按照標(biāo)準(zhǔn)Xilinx流程生成的;它使用的是PlanAhead或bitgen工具。這些配置文件包括關(guān)于設(shè)備類(lèi)型的標(biāo)題信息,配置數(shù)據(jù)的大小,比特流的生成的日期和時(shí)間等。我們調(diào)整部分比特流以從頭部移除不必要的信息,并且僅保留與不包括頭部的部分比特流的大小(以字節(jié)為單位)對(duì)應(yīng)的最后的頭部字段。因此,我們的控制器首先讀取包含部分比特流大小的字,并使用該信息計(jì)算從內(nèi)存中讀取的字?jǐn)?shù)(閃存為16位字,BRAM為32位字)。使用這種方法,唯一需要的參數(shù)是部分比特流所在的初始地址。

控制器自動(dòng)計(jì)算結(jié)束地址并執(zhí)行讀取過(guò)程。根據(jù)輸入Op sel選擇的操作,數(shù)據(jù)將發(fā)送到ICAP或BRAM。以類(lèi)似的方式,當(dāng)Op sel設(shè)置為“111”時(shí),該模塊配置ICAP控制信號(hào)和BRAM地址以允許高吞吐量部分重新配置。

5. AC_ICAP適用于片上處理器

為了使控制器能夠連接到基于處理器的設(shè)計(jì),它適用于MicroBlaze系統(tǒng)使用的外圍本地總線(xiàn)和快速單工鏈路接口。為此,AC ICAP被認(rèn)為是具有圖5中所示的I / O端口的黑盒子,并且這些端口適用于各自的總線(xiàn)。這種方法提供了更大的靈活性,因?yàn)榭刂破骺梢匀菀椎貜奶幚砥髅?。我們?chuàng)建了一系列適用于每個(gè)接口的函數(shù),以執(zhí)行表1中所示的任務(wù)。這些函數(shù)(如代碼1所示)使用XilinxAPI中的特定例程來(lái)訪(fǎng)問(wèn)PLB和FSL接口。

代碼1、驅(qū)動(dòng)AC ICAP IP的功能如下:

StartAddr參數(shù)指的是應(yīng)根據(jù)op sel值進(jìn)行調(diào)整的唯一輸入。在讀取和寫(xiě)入幀的情況下,它對(duì)應(yīng)于初始幀的地址(FAddr)。對(duì)于其他功能,它是存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器地址。 NumFrames是要讀取或?qū)懭氲膸瑪?shù),x,y bel,INIT是控制單個(gè)LUT的參數(shù)。這些是命令A(yù)C ICAP控制器所需的唯一值,因?yàn)樗趦?nèi)部執(zhí)行所有操作,例如將x,y bel和INIT轉(zhuǎn)換為幀格式,在讀取部分比特流的大小后計(jì)算結(jié)束地址,等等。

5.1 PLB IP
PLB總線(xiàn)用于將外圍設(shè)備連接到MicroBlaze處理器。以VHDL設(shè)計(jì)的原始AC ICAP在PLB包裝器中實(shí)例化以生成定制PLBAC ICAP IP??刂破鞯妮斎牒洼敵鲞B接到PLB總線(xiàn)的信號(hào),然后處理器可以使用寄存器地址訪(fǎng)問(wèn)它們。因此,PLB AC ICAP可以連接到任何基于MicroBlaze的系統(tǒng),如圖11所示。該架構(gòu)包括閃存,其中修改可重配置區(qū)域的全部和部分比特流位于其中。通過(guò)將閃存的AC ICAP連接定義為外部端口,也可以在IP設(shè)計(jì)中執(zhí)行與閃存的直接連接。一旦包含在EDK的硬件設(shè)計(jì)中,處理器中運(yùn)行的軟件就能夠通過(guò)使用代碼1中列出的功能來(lái)控制PLB AC ICAP外設(shè)。因此,部分重配置相關(guān)任務(wù)使用代碼1中指定的任何功能。并監(jiān)視輸出操作,直到它變高為確認(rèn)任務(wù)已完成。

5.2 FSL Coprocessor
Fast Simplex Link是MicroBlaze處理器的一個(gè)接口,允許包含具有高執(zhí)行優(yōu)先級(jí)的專(zhuān)用硬件例程,因此意味著與處理器通信的低延遲。在這種方法中,我們采用了類(lèi)似于[13]中提出的解決方案,以便由于總線(xiàn)延遲而獲得最小的控制器性能下降。因此,基于VHDL的AC ICAP適用于FSL接口,可以作為協(xié)處理器輕松連接,從而利用處理器的所有靈活性,但利用ICAP相關(guān)任務(wù)中的硬件加速。圖12顯示了使用FSL AC ICAP協(xié)處理器的系統(tǒng)。

FSL AC ICAP協(xié)處理器的訪(fǎng)問(wèn)方式與PLB AC ICAPIP中考慮的方式類(lèi)似,即通過(guò)代碼1中提供的功能集合。主要區(qū)別在于這些例程的類(lèi)型功能需要todrive theFLS。在這種情況下,我們將阻塞例程putfsl和getfsl與Xilinx API結(jié)合使用,因?yàn)槲覀冋J(rèn)為重新配置任務(wù)具有高優(yōu)先級(jí)。

6.在較新的設(shè)備系列中使用AC_ICAP

為了驗(yàn)證7系列器件中的控制器,我們使用配備Kintex7 XC7325T FPGA的KC705板[30]。

該FPGA包含50,950個(gè)Slice,在每個(gè)Slice內(nèi)部,有4個(gè)6輸入LUT和8個(gè)FF .445個(gè)BRAM對(duì)應(yīng)2002 KB,比特流大小為10.9MB。為了使針對(duì)Virtex-5設(shè)計(jì)的AC ICAP適應(yīng)7系列器件,需要進(jìn)行某些更改。主要差異總結(jié)如下:

(1)7系列系列中每幀的字?jǐn)?shù)為101而不是41(Virtex-5)。這是因?yàn)?系列FPGA中的CLB列高50寬1寬,這意味著CLB列中存在100個(gè)Slice。同樣,HCLK行的數(shù)量也不同;對(duì)于這個(gè)特定的設(shè)備,它是7(3頂部和4底部)。

(2)開(kāi)始讀或?qū)懙膸牡刂酚蒄AR寄存器定義。對(duì)于7系列,該寄存器使用32位中的26位,而在Virtex5 FAR中,它使用24位。這是由于FPGA的大小增加。

(3)與Virtex-5相反,對(duì)于7系列,在讀取幀任務(wù)開(kāi)始時(shí)不需要額外的字。因此,可以根據(jù)對(duì)任何7系列FPGA有效的(2)來(lái)計(jì)算從這些設(shè)備讀取/寫(xiě)入的字?jǐn)?shù)(Nwords 7),因?yàn)樵谶@些設(shè)備中所有配置幀具有相同的大小。偽幀由幀數(shù)(Nf)加1表示:

(4)指示在LUT-DPR過(guò)程中應(yīng)該修改幀上的特定字的字偏移現(xiàn)在具有0到100的范圍。對(duì)于Virtex-5,它在0到40之間變化。以類(lèi)似的方式,跳過(guò)列(包含不同于CLB的資源的列:BRAM,DSP I / O)和主要列編號(hào)需要更新.Kintex7中的第一列的主要地址為2,而它為1 Virtex-5的。

(5)在7系列中,原始ICAPE2沒(méi)有BUSY輸出。相反,我們應(yīng)該在CE斷言后考慮3個(gè)時(shí)鐘周期來(lái)獲得有效數(shù)據(jù)。

(6)WriteFrames模塊還需要進(jìn)行一些更改。在Virtex-5中,可以通過(guò)設(shè)置配置寄存器(COR0-bit28)并在每次修改FAR時(shí)將值0xDEFC加載到CRC寄存器來(lái)繞過(guò)CRC計(jì)算。在7系列中,此類(lèi)寄存器不存在;默認(rèn)情況下,新的控制寄存器(COR1-bits15-16)設(shè)置為允許在計(jì)算CRC后對(duì)系統(tǒng)進(jìn)行連續(xù)操作,因此刪除了這些步驟。

(7)該電路板中可用的閃存與Virtex-5中的閃存類(lèi)型相同,但由于尺寸不同,閃存控制器經(jīng)過(guò)修改后還包含兩條額外的地址線(xiàn)。

配置CLB列所需的幀數(shù)保持不變(36),包含LUT信息的特定幀也是如此。我們使用22個(gè)BRAM塊占用與Virtex-5類(lèi)似的百分比(5%)。

一旦在AC ICAP中執(zhí)行了所提出的更改,它就在Kintex7 FPGA中實(shí)現(xiàn),并使用它支持的所有操作進(jìn)行測(cè)試。在圖13中,我們?cè)俅翁峁┝艘粋€(gè)LUT的DPR細(xì)節(jié),因?yàn)樗婕翱刂破髦锌捎玫母鞣N任務(wù)。

這個(gè)新的AC ICAP適用于AXI接口,因?yàn)樗糜谒衝ewXilinx系列。該IP被標(biāo)識(shí)為AXI AC ICAP,并支持代碼1中提供的適用于AXI API的相同功能。

基于前面的描述,我們有不同的控制器變體來(lái)評(píng)估:AC ICAP,獨(dú)立硬件版本; PLB AC ICAP和AXI AC ICAP,分別適用于PLB和AXI總線(xiàn);和FSL AC ICAP,用作協(xié)處理器。我們使用PlanAhead 14.7和Vivado 2015.3來(lái)定義不同大小的可重新配置分區(qū)(從1到10個(gè)CLB列)并生成不同的部分比特流。

對(duì)于基于Xilinx的控制器,我們實(shí)現(xiàn)了如圖11所示的架構(gòu),但我們不是使用PLB AC ICAP,而是添加了XPS HWICAP或AXI HWICAP,其參數(shù)可以實(shí)現(xiàn)重配置吞吐量的最佳性能(寫(xiě)入FIFO深度= 1024,讀FIFO深度= 256,并啟用FIFO類(lèi)型)。對(duì)于這兩種情況,還包括Xilinx閃存控制器,以訪(fǎng)問(wèn)位于該存儲(chǔ)器中的部分比特流。在這樣做時(shí),我們可以獲得準(zhǔn)確的比較,因?yàn)槲覀兪褂孟嗤墓ぞ甙姹竞途C合選項(xiàng)。

7. 實(shí)驗(yàn)結(jié)果
本節(jié)總結(jié)了有關(guān)AC ICAP控制器的各種版本的重新配置速度和資源利用率的主要結(jié)果。我們認(rèn)為比較用于Virtex5的Xilinx XPS HWICAP和用于Kintex7的AXI HWICAP的主要參考,因?yàn)檫@些是報(bào)告的替代方案中的一個(gè),支持大多數(shù)DPR任務(wù)的那些。我們考慮到,對(duì)于配置多達(dá)4個(gè)CLB列的部分比特流,可以將它們復(fù)制到BRAM中,因?yàn)閂irtex-5限制為28.7KB,Kintex7限制為99 KB。為了記錄AC ICAP(獨(dú)立版本)的時(shí)間性能,使用了ChipScope Pro。對(duì)于適用于處理器接口的版本,系統(tǒng)中包含的定時(shí)器用于記錄特定任務(wù)所需的時(shí)鐘周期數(shù)。這些數(shù)字在表2中報(bào)告。這里,我們想提一些關(guān)于Kintex7 FPGA獲得的值的問(wèn)題.AXI HWICAP包含的LUT功能不支持7系列。使用最新版本的工具進(jìn)行實(shí)驗(yàn)(Vivado 2015.3和驅(qū)動(dòng)程序hwicap v10 0),僅支持Virtex6和以前的設(shè)備,我們無(wú)法修改它們,因?yàn)樵创a不可用。功能對(duì)于使用AXI HWICAP的讀寫(xiě)幀,需要修改一些頭文件,因?yàn)樗鼈儠?huì)出現(xiàn)一些錯(cuò)誤的值。文件xhwicap ih:使用7系列中的Virtex6值,但這些值不應(yīng)該相同。例如,聲明兩個(gè)族的幀中字的數(shù)量是81.但是對(duì)于7系列族,正確的值是101. FAR創(chuàng)建時(shí)會(huì)發(fā)生類(lèi)似的情況。驅(qū)動(dòng)程序使用一些對(duì)Virtex-6有效但不對(duì)Kintex7有效的參數(shù)創(chuàng)建FAR,并對(duì)這些參數(shù)進(jìn)行了修改以獲得正確的操作。

從表2可以看出,據(jù)我們所知,使用AC ICAP的LUT的重新配置時(shí)間是報(bào)告最快的替代方案。與Virtex-5中的XPS HWICAP相比,它意味著PLB AC ICAP的速度提升超過(guò)320倍,這是最慢的版本,獨(dú)立的AC ICAP改善了LUT的重配置時(shí)間超過(guò)380次。以類(lèi)似的方式,考慮到Virtex-5和Kintex7,讀寫(xiě)幀任務(wù)的加速分別經(jīng)歷了超過(guò)18次和21次的改進(jìn)。

對(duì)于Virtex-5和Kintex7,來(lái)自BRAM的負(fù)載部分比特流(對(duì)于AC ICAP)的重新配置吞吐量分別為380.47和381.03 MB / s。它接近400MB / s的最大支持吞吐量和[15,20]上的報(bào)告值。對(duì)于[15]報(bào)告的工作,應(yīng)該指出的是,估計(jì)的價(jià)值并不是在實(shí)際執(zhí)行中衡量的;因?yàn)樵摽刂破鞑话˙RAM。我們的控制器與400 MB / s值的偏差是由于ICAP開(kāi)始讀取BRAM和處理DESYNC命令(0x0D)所需的額外時(shí)鐘周期。對(duì)于每個(gè)與ICAP相關(guān)的任務(wù),我們認(rèn)為在確認(rèn)DESYNC命令時(shí)它就完成了。它是通過(guò)監(jiān)視ICAP的O端口來(lái)完成的,該端口在Vinterex-5中從0xDF變?yōu)?x9F,在Kintex7中從0xFFFFFFDB變?yōu)?xFFFFFF9B,以確認(rèn)完成任務(wù)是否成功。這意味著在最后一個(gè)數(shù)據(jù)發(fā)送到的后6個(gè)額外的時(shí)鐘周期ICAP。

對(duì)于PLB,AXI和FSL版本,由于接口的延遲,時(shí)間會(huì)有一些降級(jí),但在所有情況下,它們對(duì)來(lái)自閃存的負(fù)載部分比特流提供了超過(guò)11倍的改進(jìn)。

將部分比特流從閃存復(fù)制到BRAM的時(shí)間與從閃存加載部分比特流所需的范圍相同。這些存儲(chǔ)在BRAM上,而不是向ICAP發(fā)送數(shù)據(jù)。因此,當(dāng)應(yīng)用程序可以在執(zhí)行開(kāi)始之前(例如,在引導(dǎo)時(shí))將部分比特流復(fù)制到BRAM時(shí),它尤其有用。

關(guān)于資源利用率,表3列出了AC ICAP控制器的每個(gè)模塊的詳細(xì)信息。應(yīng)該注意的是,AC ICAP包括閃存控制器,而XPS HWICAP和AXI HWICAP則不是這種情況。表4總結(jié)了控制器的各種選項(xiàng)所需的資源。 AC ICAP的PLB,AXI和FSL版本的額外資源是由于使控制器適應(yīng)這些接口所需的包裝邏輯??梢钥闯觯Y源需求最大的方法使用了5%的Slice,這可以被認(rèn)為是合理的大小,因?yàn)樗胁僮鞫际窃谟布型瓿傻摹?/p>


最后,在表5中,我們比較了完整的基于MicroBlaze的架構(gòu)所需的資源,包括不同版本的ICAP控制器。我們可以看到,使用適用于PLB和FSL的AC ICAP的系統(tǒng)平均需要比XPS HWICAP替代方案多3%的Virtex-5 FPGA資源。這是為了加速所有重新配置任務(wù)而支付的區(qū)域開(kāi)銷(xiāo),例如當(dāng)使用FSL AC ICAP時(shí),LUT的重新配置時(shí)間在356x中得到改善。當(dāng)我們看到Kintex7的數(shù)據(jù)時(shí),面積百分比隨著設(shè)備的增大而降低。

因此,隨著要管理的配置數(shù)據(jù)量變得越來(lái)越大,任務(wù)的加速變得越來(lái)越重要,但I(xiàn)CAP原語(yǔ)支持的速度和總線(xiàn)寬度自Virtex-4生成(32位@ 100MHz)以來(lái)保持不變。從提供的數(shù)據(jù)中,我們可以總結(jié)出最佳的性能區(qū)域權(quán)衡由AC ICAP給出,它使用3%的FPGA資源但在LUT DPR中提供380x的加速。

使用該方法的LUT的動(dòng)態(tài)部分重新配置提供了以下優(yōu)點(diǎn):對(duì)于要執(zhí)行的每個(gè)修改,它不需要預(yù)先計(jì)算的部分比特流。它允許使用任何布爾值修改運(yùn)行時(shí)LUT,并且不受內(nèi)存中部分比特流可用性的限制。這種精細(xì)的部分運(yùn)行時(shí)重新配置在諸如故障注入平臺(tái)和密碼實(shí)現(xiàn)的應(yīng)用中具有越來(lái)越大的相關(guān)性,其中硬件可以在LUT級(jí)別被修改以避免某些類(lèi)型的攻擊。這些細(xì)粒度修改的案例應(yīng)用將在下一節(jié)中介紹。

8. 用于LUT評(píng)估AES模塊的AC_ICAP

在本節(jié)中,我們使用AC ICAP來(lái)評(píng)估[31]中提供的AES模塊。我們的想法是找到一種方法來(lái)識(shí)別LUT的關(guān)鍵配置值。有了這些信息,就可以設(shè)計(jì)出針對(duì)外部攻擊的對(duì)策。例如,可以采用這種方法來(lái)修改某些LUT的邏輯行為,以在不停止系統(tǒng)的情況下產(chǎn)生錯(cuò)誤值。在這樣做時(shí),AES可以持續(xù)工作,給出錯(cuò)誤的正確操作感,可以將其用作對(duì)抗諸如差分功率分析之類(lèi)的攻擊的對(duì)策。

如果使用部分比特流方法來(lái)修改LUT,則每個(gè)LUT tomodify都需要部分比特流。這些應(yīng)該在設(shè)計(jì)時(shí)生成并復(fù)制到存儲(chǔ)器中。因此,LUT的所有可能修改都應(yīng)該在設(shè)計(jì)時(shí)定義,一旦系統(tǒng)運(yùn)行,很難包含任何變化,例如新的LUT修改,因?yàn)樗馕吨尚碌牟糠直忍亓鞯暮臅r(shí)過(guò)程。 AC ICAP支持的LUT的DPR的優(yōu)點(diǎn)是不需要部分比特流,并且可以動(dòng)態(tài)地執(zhí)行任何邏輯修改。為了評(píng)估這種方法,我們使用偽隨機(jī)數(shù)發(fā)生器(PRNG)來(lái)產(chǎn)生64位配置存儲(chǔ)器,以便對(duì)要修改的LUT進(jìn)行修改。我們不關(guān)注AES或PRNG的細(xì)節(jié)。我們的目標(biāo)是提供一種方法來(lái)輕松識(shí)別LUT及其關(guān)鍵值,以用于評(píng)估和設(shè)計(jì)關(guān)鍵模塊。

該系統(tǒng)的架構(gòu)如圖14所示,并在Virtex-5 FPGA中實(shí)現(xiàn)。我們包括兩個(gè)AES模塊的副本,用于在線(xiàn)比較結(jié)果,BRAM存儲(chǔ)LUT的信息。 AES的單個(gè)副本需要8360 FF和13952 LUT。 DUT副本在區(qū)域中受到約束,并定義為要使用的分區(qū),以保持在初始實(shí)現(xiàn)中定義的路由。定義了88個(gè)CLB列(14080 LUT)的區(qū)域來(lái)放置AES。由于我們可以在其他設(shè)計(jì)中重用已實(shí)現(xiàn)的分區(qū),因此使用LUT的DPR獲得的值對(duì)于不同的實(shí)現(xiàn)仍然有效。由FSM控制的系統(tǒng)使用PRNG獲得隨機(jī)配置值以配置LUT,并且AC ICAP用于通過(guò)使用Slice的x,y坐標(biāo)來(lái)修改DUT區(qū)域上的LUT。一旦修改了LUT,就會(huì)對(duì)黃金和DUT組件應(yīng)用一些測(cè)試臺(tái)輸入,并分析輸出以確定LUT修改是否產(chǎn)生錯(cuò)誤值。在應(yīng)用所有輸入模式之后,對(duì)這種修改的效果進(jìn)行分類(lèi)。如果產(chǎn)生錯(cuò)誤值,則存儲(chǔ)LUT地址和配置值。 LUT恢復(fù)到先前的值并測(cè)試新的LUT。如果沒(méi)有產(chǎn)生錯(cuò)誤的值,可以繞過(guò)它或使用新的配置值進(jìn)行測(cè)試。因此,這種方法允許靈活的替代方案來(lái)徹底地或以更輕松的方式評(píng)估系統(tǒng)。然后,使用存儲(chǔ)在BRAM中的信息來(lái)確定在系統(tǒng)受到攻擊時(shí)可以采用哪些LUT及其相關(guān)配置值來(lái)有意修改邏輯功能。

9.結(jié)論和未來(lái)工作
我們介紹了AC ICAP,這是一種在Virtex-5和Kintex7 FPGA中驗(yàn)證的新ICAP控制器。它能夠加載部分比特流,讀取和寫(xiě)入幀,以及修改FPGA中的任何LUT,在最后一種情況下無(wú)需預(yù)生成的部分比特流。該控制器適用于使用PLB,F(xiàn)SL和AXI鏈路的嵌入式處理器系統(tǒng)。與Virtex-5 FPGA的XPS HWICAP功能相比,獨(dú)立于處理器的版本的重配置速度分析顯示LUT的運(yùn)行時(shí)重新配置提高了380多倍。由于我們的控制器完全采用硬件實(shí)現(xiàn),因此顯然需要更多資源,但無(wú)論如何它占據(jù)了XC5VLX110T器件上可用元件的5%以上。因此,AC ICAP提供了一個(gè)完整的高速解決方案,可以執(zhí)行多種動(dòng)態(tài)部分重配置任務(wù)??山邮艿腇PGA足跡。它被用于設(shè)計(jì)AES模塊,可以修改特定的LUT作為可能的攻擊對(duì)策。

作為未來(lái)的工作,我們計(jì)劃使用DDR控制器擴(kuò)展AC ICAP,以加速重新配置任務(wù),當(dāng)這些任務(wù)基于預(yù)先計(jì)算的部分比特流由于其大小而無(wú)法復(fù)制到BRAM中時(shí)。因此,DDR存儲(chǔ)器是克服BRAM可用限制的替代方案。

參考文獻(xiàn)
[1] Keysight Technologies, M9451A-DPD PXIeMeasurementAccelerator, 2015.

[2] Xilinx, 7 Series FPGAs Overview DS180 (v1.16.1), Xilinx, 2014.

[3] Altera, A New FPGA Architecture and Leading-Edge FinFETProcess Technology Promise to Meet Next Generation System RequirementsWP-01220-1.1, Altera, SanJose, Calif, USA, 2015.

[4] Xilinx, LogiCORE IP XPS HWICAP (v5.01a) DS586, Xilinx, 2011.

[5] L. A. Cardona, J. Agrawal, Y. Guo, J. Oliver, and C. Ferrer, “Performance-areaimprovement by partial reconfiguration for an aerospace remote sensingapplication,” in Proceedings of the International Conference onReconfigurable Computing and FPGAs (ReConFig ’11), pp. 497–500, Cancun, Mexico, November-December 2011.

[6] C. Claus, R. Ahmed, F. Altenried, and W. Stechele, “Towards rapiddynamic partial reconfiguration in video-based driver assistance systems,” in Reconfigurable Computing: Architectures, Tools and Applications, P. Sirisuk,F.Morgan,T.Elhazawi, and H.Amano, Eds., vol. 5992 of Lecture Notes inComputer Science, pp. 55–67, Springer, Berlin, Germany, 2010.

[7] S. Bhandari, S. Subbaraman, S. Pujari et al., “High speed dynamicpartial reconfiguration for real timemultimedia signal processing,” in Proceedings of the 15th Euromicro Conference on Digital System Design(DSD ’12), pp. 319–326, Izmir, Turkey, September 2012.

[8] IBM, 128-Bit Processor Local Bus Architecture Specifications, IBMCorporation, Armonk, NY, USA, 2007.

[9] K. Glette and P. Kaufmann, “Lookup table partial reconfiguration foran evolvable hardware classifier system,” in Proceedings ofthe IEEE Congress on Evolutionary Computation (CEC ’14), pp. 1706–1713, Beijing, China, July 2014.

[10] L. Sterpone and M. Violante, “A new partial reconfigurationbased fault-injectionsystem to evaluate SEU effects in SRAM based FPGAs,” IEEE Transactionson Nuclear Science, vol. 54, no. 4, pp. 965–970, 2007.

[11] M. Liu, W. Kuehn, Z. Lu, and A. Jantsch, “Run-time partial reconfigurationspeed investigation and architectural design space exploration,” in Proceedings of the International Conference on Field Programmable Logicand Applications (FPL ’09),

pp. 498–502, August 2009.

[12] C. Claus, B. Zhang, W. Stechele, L. Braun, M. H¨ubner, and J. Becker,“A multi-platform controller allowing for maximum dynamic partialreconfiguration throughput,” in Proceedings of theInternational Conference on Field Programmable Logic and Applications (FPL ’08), pp. 535–538, Heidelberg, Germany, September2008.

[13] M. H¨ubner, D. G¨ohringer, J. Noguera, and J. Becker, “Fast dynamicand partial reconfiguration data path with low hardware overhead on XilinxFPGAs,” in Proceedings of the IEEE International Symposium on Parallel andDistributed Processing, Workshops and Phd Forum(IPDPSW’10), pp. 1–8, IEEE,Atlanta, Ga, USA, April 2010.

[14] S. Lamonnier, M. Thoris, and M. Ambielle, “Accelerate partial reconfigurationwith a 100% hardware solution,” Xcell Journal, no. 79, pp.44–49, 2012.

[15] J. Tarrillo, F. A. Escobar, F. L. Kastensmidt, and C. Valderrama, “Dynamicpartial reconfiguration manager,” in Proceedings of the IEEE 5thLatin American Symposium on Circuits and Systems (LASCAS ’14), pp. 1–4, IEEE, Santiago, Chile, February2014. International Journal of Reconfigurable Computing 15

[16] V. Lai and O. Diessel, “ICAP-I: a reusable interface for the internalreconfiguration of Xilinx FPGAs,” in Proceedings of theInternational Conference on Field-Programmable Technology (FPT ’09), pp. 357–360, Sydney, Australia, December 2009.

[17] M. Straka, J. Kastil, and Z. Kotasek, “Generic partial dynamic reconfigurationcontroller for fault tolerant designs based on FPGA,” in Proceedings of the 28th Norchip Conference (NORCHIP ’10), pp. 1–4, IEEE, Tampere, Finland, November

2010.

[18] S. G. Hansen, D. Koch, and J. Torresen, “High speed partial run-timereconfiguration using enhanced ICAP hard macro,” in Proceedings ofthe 25th IEEE International Parallel and Distributed Processing Symposium,Workshops and Phd Forum (IPDPSW ’11), pp. 174–180, Shanghai,China, May 2011.

[19] Xilinx, AXI HWICAP v3.0, Xilinx, San Jose, Calif, USA, 2015.

[20] A. Ebrahim, K. Benkrid, X. Iturbe, and C. Hong, “A novelhighperformance

fault-tolerant ICAP controller,” in Proceedings of theNASA/ESA Conference on Adaptive Hardware and Systems (AHS ’12), pp. 259–263, IEEE, Erlangen, Germany, June2012.

[21] A. Ebrahim, T. Arslan, and X. Iturbe, “On enhancing the reliabilityof internal configuration controllers in FPGAs,” in Proceedings ofthe NASA/ESAConference onAdaptiveHardware and Systems (AHS ’14), pp. 83–88, IEEE, Leicester, UK, July 2014.

[22] J. Heiner, N. Collins, and M. Wirthlin, “Fault tolerant ICAP controllerfor high-reliable internal scrubbing,” in Proceedings ofthe IEEE Aerospace Conference, pp. 1–10, IEEE, BigSky,Mont, USA, March 2008.

[23] A. Ebrahim, K. Benkrid, X. Iturbe, and C. Hong, “Multipleclone configurationof relocatable partial bitstreams in Xilinx Virtex FPGAs,” in Proceedings of the NASA/ESA Conference on Adaptive Hardware and Systems(AHS ’13), pp. 178–183, Torino, Italy, June 2013.

[24] U. Legat, A. Biasizzo, and F. Novak, “SEU recovery mechanism for SRAM-BasedFPGAs,” IEEE Transactions on Nuclear Science, vol. 59, no. 5, pp. 2562–2571, 2012.

[25] C. Schuck, B. Haetzer, and J. Becker, “An interface for a decentralized2D reconfiguration on Xilinx Virtex-FPGAs for organic computing,” International Journal of Reconfigurable Computing, vol.2009,Article ID 273791, 11 pages, 2009.

[26] Xilinx, Partial Reconfiguration User Guide UG702(V14.7), Xilinx, 2013.

[27] Xilinx, Command Line Tools User Guide UG628 (v 14.7), Xilinx, SanJose, Calif, USA, 2013.

[28] Xilinx, Virtex-5 FPGA Configuration Guide UG191 (V3.11), Xilinx, 2012.

[29] Xilinx,ChipScope Pro Software and Cores, Xilinx,SanJose, Calif, USA, 2012.

[30] Xilinx, Xilinx Kintex-7 FPGA KC705 Evaluation Kit, Xilinx, San Jose,Calif, USA, 2015.

[31] Opencores,“AES project,” 2015, http://opencores.org/project.

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    552

    文章

    7919

    瀏覽量

    347633
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21539

    瀏覽量

    600524
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2140

    瀏覽量

    120706
  • RAM存儲(chǔ)器
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    7483
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    資源分享季 (10)——Xilinx+FPGA+SDRAM控制器論文

    的內(nèi)存控制器的設(shè)計(jì)與應(yīng)用.pdf基于Spartan-3+FPGA的DDR2+SDRAM存儲(chǔ)接口設(shè)計(jì).pdf一種采用FPGA設(shè)計(jì)的SDRAM控制器
    發(fā)表于 07-28 14:40

    如何用中檔FPGA實(shí)現(xiàn)高速DDR3存儲(chǔ)控制器?

    的工作時(shí)鐘頻率。然而,設(shè)計(jì)至DDR3的接口也變得更具挑戰(zhàn)性。在FPGA實(shí)現(xiàn)高速、高效率的DDR3控制器是一項(xiàng)艱巨的任務(wù)。直到最近,只有少數(shù)
    發(fā)表于 08-09 07:42

    ZBT SRAM控制器參考設(shè)計(jì),xilinx提供Verilo

    ZBT SRAM控制器參考設(shè)計(jì),xilinx提供Verilog代碼 File Name:xapp136.zip, xapp136.tar.gz Description:Contains
    發(fā)表于 06-14 09:21 ?36次下載

    ZBT SRAM控制器參考設(shè)計(jì),xilinx提供VHDL代碼

    ZBT SRAM控制器參考設(shè)計(jì),xilinx提供VHDL代碼 Description:? Contains the following files??? readme.txt
    發(fā)表于 06-14 09:22 ?32次下載

    基于FPGA的PCI接口控制器的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的PCI接口控制器的設(shè)計(jì)與實(shí)現(xiàn) pci總線(xiàn)是高速同步總線(xiàn),采用高度綜合優(yōu)化的總線(xiàn)結(jié)構(gòu),目前廣泛應(yīng)用于各種計(jì)算機(jī)系統(tǒng),總線(xiàn)以3
    發(fā)表于 12-14 14:29 ?1809次閱讀
    基于<b class='flag-5'>FPGA</b>的PCI接口<b class='flag-5'>控制器</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    基于FPGA高速A_D轉(zhuǎn)換控制器設(shè)計(jì)

    基于FPGA高速A_D轉(zhuǎn)換控制器設(shè)計(jì)。
    發(fā)表于 05-10 13:45 ?30次下載

    FPGA實(shí)現(xiàn)CAN總線(xiàn)控制器源碼

    Xilinx FPGA工程例子源碼:FPGA實(shí)現(xiàn)CAN總線(xiàn)控制器源碼
    發(fā)表于 06-07 14:13 ?91次下載

    USB接口控制器參考設(shè)計(jì)VHDL代碼(Xilinx)

    Xilinx FPGA工程例子源碼:USB接口控制器參考設(shè)計(jì)VHDL代碼(Xilinx)
    發(fā)表于 06-07 14:54 ?21次下載

    Xilinx 的用于設(shè)計(jì)SMBus控制器的源程序

    Xilinx FPGA工程例子源碼:Xilinx 的用于設(shè)計(jì)SMBus控制器的源程序
    發(fā)表于 06-07 15:07 ?16次下載

    基于XILINX的XC3系列FPGA的VGA控制器的VHDL源程

    Xilinx FPGA工程例子源碼:基于XILINX的XC3系列FPGA的VGA控制器的VHDL源程序
    發(fā)表于 06-07 15:07 ?12次下載

    基于FPGA的VGA圖像控制器的設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的VGA圖像控制器的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 08-30 15:10 ?13次下載

    XilinxFPGALVDS差分高速傳輸?shù)?b class='flag-5'>實(shí)現(xiàn)

    XilinxFPGALVDS差分高速傳輸?shù)?b class='flag-5'>實(shí)現(xiàn)
    發(fā)表于 03-01 13:12 ?66次下載

    基于Xilinx FPGA SOPC的TFT-LCD 控制器設(shè)計(jì)與實(shí)現(xiàn)

    根據(jù)TFT-LCD的工作原理,采用Xilinx公司的Microblaze微處理軟核,提出了一種基于嵌入式FPGA SOPC平臺(tái)的TFT-LCD控制器方案.并驗(yàn)證了該方案的可行性。該
    發(fā)表于 11-22 07:23 ?2401次閱讀
    基于<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b> SOPC的TFT-LCD <b class='flag-5'>控制器</b>設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    如何使用XilinxFPGA對(duì)高速PCB信號(hào)實(shí)現(xiàn)優(yōu)化設(shè)計(jì)

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用XilinxFPGA對(duì)高速PCB信號(hào)實(shí)現(xiàn)優(yōu)化設(shè)計(jì)。
    發(fā)表于 01-13 17:00 ?26次下載
    如何使用<b class='flag-5'>Xilinx</b>的<b class='flag-5'>FPGA</b>對(duì)<b class='flag-5'>高速</b>PCB信號(hào)<b class='flag-5'>實(shí)現(xiàn)</b>優(yōu)化設(shè)計(jì)

    如何使用FPGA實(shí)現(xiàn)高速圖像存儲(chǔ)系統(tǒng)的SDRAM控制器

    SDRAM作為大容量存儲(chǔ)高速圖像處理具有很大的應(yīng)用價(jià)值。但由于SDRAM的結(jié)構(gòu)和SRAM不同,其控制比較復(fù)雜。文章詳細(xì)介紹了 SDRA
    發(fā)表于 01-26 15:30 ?13次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>高速</b>圖像存儲(chǔ)系統(tǒng)<b class='flag-5'>中</b>的SDRAM<b class='flag-5'>控制器</b>