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

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 基于LabVIEW FPGA模塊的FIFO深度設定實現(xiàn)

          基于LabVIEW FPGA模塊的FIFO深度設定實現(xiàn)

          作者: 時間:2012-07-21 來源:網(wǎng)絡 收藏

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

          4 數(shù)據(jù)連續(xù)傳輸?shù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/LabVIEW">LabVIEW實現(xiàn)

            在本文中系統(tǒng)軟件包括兩部分:Host vi和vi,二者是獨立而又有聯(lián)系的兩個部分。Host vi運行于主控計算機上, vi運行于上,二者通過來傳輸數(shù)據(jù)。

            4.1 FPGA程序設計

            使用圖形化的編程環(huán)境 FPGA來定義FPGA邏輯,除了具有上述的優(yōu)點以外,作為一種并行結構的編程語言,非常適用于FPGA的并行結構,能夠十分方便地實現(xiàn)多線程并行任務。

            

            當FPGA vi開始運行時,從Host vi讀取數(shù)據(jù)的需要一定的初始化時間,時間長度與的深度成正比。在初始化期間FIFO輸出一系列的無效默認值。為了不讓無效值進入到下一級的運算中,在DMA方式的FIFO之前加了一個FIFO函數(shù)——Get Number of Element to Read,該函數(shù)用于獲得FIFO內(nèi)有效數(shù)據(jù)的數(shù)量。當有效數(shù)據(jù)的數(shù)量大于0時,再開始進行下一級運算。考慮到FPGA有限的硬件資源和FPGA FIFO最小值的限制,將數(shù)據(jù)的地址寬度設為M=11,根據(jù)上文分析DMA FIFO的深度設為2M+5=2 053 KB。

            4.2 主控計算機程序設計

            Host vi是系統(tǒng)程序的另一部分部分,它具有建立硬件對象(FPGA)、與硬件通信和圖形顯示等功能。主控計算機程序圖如圖6所示,首先要建立與之進行通信的硬件對象,即FPGA;其次配置系統(tǒng)時鐘、輸出模式;再次創(chuàng)建FIFO,設置其在主控計算機部分的FIFO深度;然后從電子表格讀取數(shù)據(jù),并循環(huán)查詢FIFO剩余空間的大小,當剩余空間大于數(shù)組長度時,數(shù)據(jù)寫入FIFO當沒有足夠的空間時,數(shù)據(jù)保留到下一個循環(huán),滿足條件后再寫入FIFO;最后關閉FIFO應用,處理錯誤。

            

            當輸入數(shù)組長度分別為300和1 000,形狀如圖7所示的波形時,輸出數(shù)據(jù)的波形如圖8所示。由于AD9857上變頻的原因,使得輸出波形在輸入的矩形包絡中帶有載波,載波頻率為60 MHz。根據(jù)表1中的數(shù)據(jù)可以得出結論:此處的編程和上述實驗的結果是一致的,即FPGA輸出頻率為10 MHz,數(shù)組長度大于500時,系統(tǒng)數(shù)據(jù)的輸出是連續(xù)。同時此結果也表明本文中的LabVIEW程序?qū)崿F(xiàn)了數(shù)據(jù)的連續(xù)傳輸。

            5 結語

            通過設定合適的FIFO深度,實現(xiàn)了數(shù)據(jù)的連續(xù)傳輸,為后續(xù)的工程設計奠定了基礎。該設定FIFO深度的方法也對其他使用LabVIEW FPGA的工程設計具有一定的參考價值。


          上一頁 1 2 3 下一頁

          關鍵詞: LabVIEW FPGA FIFO 模塊

          評論


          相關推薦

          技術專區(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); })();