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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

          基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2010-08-18 來源:網(wǎng)絡(luò) 收藏

            (2)SPARTEN3AN系列的,是基于非易失性存儲(chǔ)的,主要作為PCI總線和ARM處理器之間的雙端口;放置Spw IP核、UART IP核、1553 IP核;模擬JTAG口;

            (3)兩個(gè)XCVSX55的專用JTAG,進(jìn)行配置文件的下載。Xilinx FPGA基于SRAM技術(shù),因此是易失性的。如果關(guān)掉器件的電源,其配置就會(huì)丟失。在生產(chǎn)型環(huán)境中,F(xiàn)PGA通常使用外部存儲(chǔ)器件(如PROM)防止停電時(shí)丟失配置數(shù)據(jù);

            (4)FLASH存儲(chǔ)器容量為16 M×32 b,用于處理器的上電引導(dǎo)和存放多個(gè)用于模塊級(jí)FPGA重構(gòu)方案;

            (5)兩個(gè)PROM-XCF32P。Virtex4系列XC4-VSX55FPGA,其配置PROM為XCF32P,32 Mb存儲(chǔ)容量。利用XCF32P的設(shè)計(jì)修訂(Design.Revisiorling)功能將FPGA多種配置存儲(chǔ)為不同的修訂版本,從而簡(jiǎn)化FPGA配置更改。上電時(shí),由配置PROM的內(nèi)部邏輯對(duì)設(shè)計(jì)修訂版本選擇輸入(引腳或控制位)進(jìn)行采樣;

            (6)兩組測(cè)試線,每組4根,cl_Test[3..O]和C2-Testl[3..O]分別測(cè)試兩個(gè)XCVSX55系列FPGA的重構(gòu)和反饋重構(gòu)結(jié)果;

            (7)兩通道的PROM控制信號(hào)線,C1(C2)_PROG,C1(C2)_DIN,C1(C2)_DONE,C1(C2)_INT,C1(C2)_CCLK用于實(shí)現(xiàn)兩個(gè)XCVSX55系列FPGA的PROM方式的下載。由于JTAG(邊界掃描)鏈在其中一個(gè)部件發(fā)生故障時(shí)會(huì)影響整個(gè)JTAG鏈的正常功能,因此多使用:PROM的下載方式備用;

            (8)一路RS-232驅(qū)動(dòng)接收器,實(shí)現(xiàn)和外部通信的接口;

            (9)PCI總線,通過該總線實(shí)現(xiàn)計(jì)算機(jī)與外界交互的外部接口。

            3.2 演示驗(yàn)證系統(tǒng)的工作原理

            3.2.1 上電復(fù)位

            在上電復(fù)位時(shí),要確保ARM和FPGA同步復(fù)位。Xilinx公司的FPGA上電時(shí)需要200 ms左右的配置時(shí)間,在此期間I/O引腳處于三態(tài)狀態(tài),因此對(duì)關(guān)鍵的輸入/輸出信號(hào)(如IRQx,NWAIT,2.56兆輸出數(shù)據(jù)及輸出時(shí)鐘)有必要采取的上下拉,以確保ARM及外圍接口信號(hào)處于正常的狀態(tài),避免信號(hào)沖突。

            3.2.2 初始化

            主要的初始化工作有2部分,分別由ARM和FPGA完成。

            (1)ARM執(zhí)行的初始化工作。包括監(jiān)控程序自舉→監(jiān)控程序執(zhí)行ARM內(nèi)部寄存器初始化→硬件自檢→加載標(biāo)志檢測(cè)→(軟件更新加載)→FPGA參數(shù)設(shè)定→用戶軟件加載及完整性正確性校驗(yàn)→控制權(quán)叫用戶軟件→用戶軟件初始化→用戶軟件運(yùn)行。

            (2)FPGA執(zhí)行的初始化工作。主要有FPGA內(nèi)部寄存器和邏輯狀態(tài)的初始值、內(nèi)部緩沖區(qū)數(shù)據(jù)清零依靠復(fù)位信號(hào)來完成。其中的“FPGA參數(shù)設(shè)定”由監(jiān)控程序負(fù)責(zé)執(zhí)行或由FPGA使用缺省參數(shù)完成。數(shù)據(jù)融合格式、輸入/輸出碼速率等FPGA參數(shù)存儲(chǔ)在ARM的片內(nèi)FLASH中的FPGA參數(shù)區(qū)中,上電或復(fù)位時(shí)有監(jiān)控軟件負(fù)責(zé)加載和初始化。

            3.2.3 重構(gòu)過程

            可重構(gòu)演示驗(yàn)證系統(tǒng)的結(jié)構(gòu)如圖4所示,當(dāng)出現(xiàn)錯(cuò)誤和發(fā)生故障時(shí),由ARM處理器讀取FLASH存儲(chǔ)器中的重構(gòu)方案。但是,F(xiàn)LASH存儲(chǔ)器取舍眾多重構(gòu)方案卻是受外部1553B,Spw,UART的控制。由ARM處理器更新FLASH存儲(chǔ)器或給完成并/串轉(zhuǎn)換的FPGA發(fā)出控制命令來對(duì)可重構(gòu)應(yīng)用單元進(jìn)行操作。模擬JTAG口的FPGA與兩個(gè)應(yīng)用FPGA的JTAG口邊界掃描鏈(Boundary-Scan Chain),在ARM處理器的控制下,對(duì)被重構(gòu)的FPGA進(jìn)行重構(gòu)。FPGA的主要任務(wù)是通過ARM控制器將事先存入FLASH中邏輯系統(tǒng)的不同功能配置信息,按用戶的系統(tǒng)時(shí)序要求和外部控制,逐一下載到SRAM編程的FPGA之中,以實(shí)現(xiàn)系統(tǒng)功能的動(dòng)態(tài)局部重構(gòu)。在系統(tǒng)工作過程中,F(xiàn)PGA將根據(jù)不同的要求,在處理器的控制下,不斷重構(gòu)其邏輯功能,通過模板級(jí)重構(gòu),滿足不同數(shù)字圖像處理和其他邏輯運(yùn)算的要求。

            3.3 實(shí)現(xiàn)局部的FPGA的選型和配置模式

            3.3.1 Xilinx公司的Virtex-4系列FPGA

            在選擇器件時(shí),必須保證器件資源留有一定余量,這樣不僅可以避免布線擁擠,也便于測(cè)試修改和功能擴(kuò)展。根據(jù)系統(tǒng)的需求和擴(kuò)展性,選擇Virtex-4系列FPGA。它是Xilinx公司推出的一系列實(shí)現(xiàn)動(dòng)態(tài)局部重構(gòu)的FPGA芯片,也是基于查找表的。Virtex-4系列芯片將高級(jí)硅片組合模塊(ASMBL)架構(gòu)與種類繁多的靈活功能相結(jié)合,大大提高了可編程邏輯設(shè)計(jì)能力,從而成為替代ASIC技術(shù)的強(qiáng)有力產(chǎn)品。采用Virtex-4選用Xilinx公司的Virtex-4系列產(chǎn)品XC4VSX55。XC4VSX55具有128列×48行陣列,55 296個(gè)邏輯單元,24 576個(gè)Slice,最大分布式RAM384 KB,512個(gè)XtremeDSPSlice),320個(gè)18 KB塊RAM,最大塊RAM存儲(chǔ)容量5 760 KB,8個(gè)DCM,4個(gè)相位匹配時(shí)鐘分頻器(PMCD),13個(gè)I/O組,最大用戶I/O數(shù)640個(gè)。根據(jù)目前已有的算法,其性能和資源可以較好地滿足圖像匹配算法和目標(biāo)識(shí)別算法對(duì)硬件資源(邏輯門數(shù)、RAM大小、乘法加法器等)的需求。Virtex-4硬IP核塊的龐大陣列包括PowerPC處理器(帶有新型APU接口)、三態(tài)以太網(wǎng)MAC,622 Mb/s到6.5 Gb/s串行收發(fā)器、專用DSP S1ice、高速時(shí)鐘管理電路和源同步接口塊。



          評(píng)論


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