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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于CPCI總線的FPGA加載設計

          基于CPCI總線的FPGA加載設計

          作者: 時間:2013-07-31 來源:網絡 收藏

            4.2 參數(shù)模塊

            由于以突發(fā)模式下載到Spartan-3E 的數(shù)據(jù)是以32 bit 為單位的,且三片F(xiàn)PGA 需要的參數(shù)各不相同,因此需要對下載到Spartan-3E 的數(shù)據(jù)進行整理分類,再根據(jù)不同需求,下載到三片F(xiàn)PGA 中去。

            狀態(tài)參數(shù)的上傳與下載流程相反。

            4.3 FPGA 加載模塊

            DMA 方式下載到Spartan-3E 的32 bit數(shù)據(jù)在塊內是連續(xù)的,但是塊與塊之間是不連續(xù)的,為了保證FPGA 加載過程不中斷,在Spartan-3E 中需要一個FIFO 將數(shù)據(jù)進行緩沖,從而保證BIT 數(shù)據(jù)流的連續(xù)性。為了確保加載數(shù)據(jù)在FIFO 中讀不空,在設計中當FIFO 中的可讀的數(shù)據(jù)大于一定門限的時候觸發(fā)加載邏輯,同時為了防止FIFO 寫滿導致丟失數(shù)據(jù),當FIFO中可讀的數(shù)據(jù)到達一定門限后,就不再請求DMA.通過這樣的保護,可以保證BIT 流加載文件在加載邏輯開始后可以連續(xù)不斷的輸入給FPGA,直到FPGA 加載完成。

            工控機按照32 bit 讀取BIT 文件存在Byte 翻轉的情況,下載到Spartan-3E 后需要再把32 bit的數(shù)據(jù)進行翻轉過來,只需要用FIFO 讀時鐘32 倍頻的時鐘進行計數(shù),將FIFO 讀出的32 bit 數(shù)據(jù)按照翻轉的對應關系順序送出讀取即可滿足要求。

            為了區(qū)分3片F(xiàn)PGA 的加載,設計兩比特的標志位,用以區(qū)分不同的FPGA.在加載FPGA 之前先通過軟件先下載兩比特標志位,配置模塊根據(jù)標志位,切換數(shù)據(jù)流向,從而可以配置3 片不同的FPGA.

            5 軟件設計

            PCI9656 芯片的驅動程序從其配套的SDK 開發(fā)包中獲取,工控機的控制軟件由C++語言完成,開發(fā)環(huán)境基于Borland 公司的C++Builder6.

            在PLX公司提供的軟件開發(fā)包中,含有PCI9656與上位機通信的動態(tài)庫文件Plxapi.dll.該文件包含了眾多函數(shù),可以直接調用。在設計中用PlxIoPortWrite 和PlxIoPortRead 來實現(xiàn)突發(fā)數(shù)據(jù)的下載和上傳,用PlxDmaBlockTransfer來實現(xiàn)FPGA的配置數(shù)據(jù)流的下載和大量實時數(shù)據(jù)的上傳。

            6 結語

            本文提出了基于CPCI 總線的FPGA 的設計與實現(xiàn),在40 M 的下,在對同一塊FPGA 進行加載時,加載速度可以達到JTAG 加載方式的10 倍之多。該設計可以對三片F(xiàn)PGA 芯片進行快速穩(wěn)定的下載,與常規(guī)PROM 加載方式相比有著快速靈活的優(yōu)勢,對加載速度和實時性要求比較高的系統(tǒng)設計中,具有很強的可操作性和可借鑒性。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();