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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 揭秘FPGA多重配置硬件電路設(shè)計(jì)方案

          揭秘FPGA多重配置硬件電路設(shè)計(jì)方案

          作者: 時(shí)間:2017-10-28 來源:網(wǎng)絡(luò) 收藏

            現(xiàn)代硬件設(shè)計(jì)規(guī)模逐漸增大,單個(gè)程序功能越來越復(fù)雜,當(dāng)把多個(gè)功能復(fù)雜的程序集成到一個(gè) 上實(shí)現(xiàn)時(shí),由于各個(gè)程序的數(shù)據(jù)通路及所占用的資源可能沖突,使得 控制模塊的結(jié)構(gòu)臃腫,影響了整個(gè)系統(tǒng)工作效率。通過 的多重配置可以有效地精簡(jiǎn)控制結(jié)構(gòu)的設(shè)計(jì),同時(shí)可以用邏輯資源較少的FPGA 器件實(shí)現(xiàn)需要很大資源才能實(shí)現(xiàn)的程序。以Virtex5系列開發(fā)板和配置SPI FLASH 為基礎(chǔ),從硬件電路和軟件設(shè)計(jì)兩個(gè)方面對(duì)多重配置進(jìn)行分析,給出了多重配置實(shí)現(xiàn)的具體步驟,對(duì)實(shí)現(xiàn)復(fù)雜硬件設(shè)計(jì)工程有一定的參考價(jià)值。

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

            當(dāng)FPGA 完成上電自動(dòng)加載初始化的比特流后,可以通過觸發(fā)FPGA 內(nèi)部的多重啟動(dòng)事件使得FPGA 從外部配置(SPI FLASH)指定的地址自動(dòng)下載一個(gè)新的比特流來重新配置。FPGA 的多重配置可以通過多種方式來實(shí)現(xiàn)。

            電路原理:多重配置的硬件主要包括FPGA 板卡和貯存配置文件的FLASH 芯片。FPGA 選用XILINX 公司Virtex-5系列中的ML507,該產(chǎn)品針對(duì)FPGA 多重配置增加了專用的內(nèi)部加載邏輯。FLASH 芯片選用XILINX 公司的SPI FLASH芯片M25P32,該芯片存貯空間為32 Mb,存貯文件的數(shù)量與文件大小以及所使用的FPGA 芯片有關(guān)。實(shí)現(xiàn)多重配置首先要將FPGA 和外部配置連接為從SPI FLASH 加載配置文件的模式。配置電路硬件連接框圖如圖1所示。在FPGA 配置模式中,M2,M1,M0為0,0,1,這種配置模式對(duì)應(yīng)邊界掃描加上拉,F(xiàn)PGA 在這種模式下所有的I/O 只在配置期間有效。在配置完成后,不用的I/O 將被浮空M2,M1,M0 三個(gè)選擇開關(guān)對(duì)應(yīng)于ML507 開發(fā)板上的SW3開關(guān)中的4,5,6位,在FPGA 上電之前將上述開關(guān)撥為0,0,1狀態(tài)。



          關(guān)鍵詞: MCU 存儲(chǔ)器 FPGA

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