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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于SOPC的頻譜分析儀設計與研制

          基于SOPC的頻譜分析儀設計與研制

          作者: 時間:2009-04-21 來源:網絡 收藏

          3.1.2 硬件FFT IP CCore的定制與集成
          FFT運算器采用FFT Core實現(xiàn),其引擎結構為雙Sin―gle―output,I/O數據流采用突發(fā)(Burst)方式。FFT Core采用Atlantic Interface協(xié)議,輸入接口視為主接收器,輸出接口視為主發(fā)送器。
          具體的工作流程:系統(tǒng)復位后,數據源將master sink day置位,表示有采樣數據等待輸入;作為回應,F(xiàn)FTCore將mas―te_sink_ena置位,表示可以接收輸入數據;數據源加載第一個復數數據,同時master_sink_sop置位,表示輸入數據塊的起始;下一個時鐘,master_sink_sop被清零,輸入數據按照自然順序被加入。輸入數據達到512點時。系統(tǒng)自然啟動FFT運算。通過inv_i信號的置位/清零可以改變單個數據塊的FFT轉換方向,inv_i信號必須和master_sink_sop信號嚴格同步。當FFT轉換結束時,子接收器已經將master_source_dav信號置位,表示子接收器可以接收FFT的轉換結果:同時,master_source_ena信號置位,F(xiàn)FT Core按照自然順序輸出運算結果:在輸出過程中.master_source_sop和mas―ter_soure_eop信號被置位,表示輸出數據塊的起始和結束。具體接口定義如表1所示。

          3.1.3 FIFO硬件設計
          FIF0是一種先進先出的數據緩存器,根據FIFO工作的時鐘域,可以將FIF0分為同步FIF0和異步FIFO。FIF0的一些重要參數如下:
          FIFO的寬度:指的是FIF0一次讀寫操作的數據位。
          FIFO的深度:指的是FIFO可以存儲多少個N位的數據。
          設計中采用了寬度為16位,深度為256的異步FIF0。
          3.1.4 I2C總線設計
          I2C總線是由數據線SDA和時鐘SCL構成的串行總線.可發(fā)送和接收數據。I2C總線在傳送數據過程中共有3種類型信號,分別是:開始信號、結束信號和應答信號。
          開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。
          結束信號:SCL為低電平時,SDA由低電平向高電平跳變,結束傳送數據。
          應答信號:接收數據的IC在接收到8 bit數據后,向發(fā)送數據的IC發(fā)出特定的低電平脈沖,表示已收到數據。其數據傳送過程如圖4所示。

          3.1.5 串轉并數據采集模塊設計
          由于從FPGA音頻接口采集來的信號是串行的,故此處理前應將此串行信號轉成并行信號,然后送NIOS核處理器進行處理。
          設計中只需要16位數據,而從FPGA音頻采集輸出端ADCDAT輸出的24位的串行數據,考慮到數據計算可能溢出造成失真,因此必須對采樣所得數據作近似處理,故取其高15位數據,并將高位補零從而得到16位數據。其設計接口包括:clk為系統(tǒng)時鐘;AUD_ADCDAT為音頻采集數據輸入;data_out為并行輸出;Wr為輸出使能信號,用于控制向外輸出完整的數據。其仿真波形如圖5所示。



          關鍵詞: SOPC 頻譜分析儀

          評論


          相關推薦

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