基于SOPC的頻譜分析儀設(shè)計與研制
3.1.2 硬件FFT IP CCore的定制與集成
FFT運算器采用FFT Core實現(xiàn),其引擎結(jié)構(gòu)為雙Sin―gle―output,I/O數(shù)據(jù)流采用突發(fā)(Burst)方式。FFT Core采用Atlantic Interface協(xié)議,輸入接口視為主接收器,輸出接口視為主發(fā)送器。
具體的工作流程:系統(tǒng)復(fù)位后,數(shù)據(jù)源將master sink day置位,表示有采樣數(shù)據(jù)等待輸入;作為回應(yīng),F(xiàn)FTCore將mas―te_sink_ena置位,表示可以接收輸入數(shù)據(jù);數(shù)據(jù)源加載第一個復(fù)數(shù)數(shù)據(jù),同時master_sink_sop置位,表示輸入數(shù)據(jù)塊的起始;下一個時鐘,master_sink_sop被清零,輸入數(shù)據(jù)按照自然順序被加入。輸入數(shù)據(jù)達到512點時。系統(tǒng)自然啟動FFT運算。通過inv_i信號的置位/清零可以改變單個數(shù)據(jù)塊的FFT轉(zhuǎn)換方向,inv_i信號必須和master_sink_sop信號嚴格同步。當(dāng)FFT轉(zhuǎn)換結(jié)束時,子接收器已經(jīng)將master_source_dav信號置位,表示子接收器可以接收FFT的轉(zhuǎn)換結(jié)果:同時,master_source_ena信號置位,F(xiàn)FT Core按照自然順序輸出運算結(jié)果:在輸出過程中.master_source_sop和mas―ter_soure_eop信號被置位,表示輸出數(shù)據(jù)塊的起始和結(jié)束。具體接口定義如表1所示。
3.1.3 FIFO硬件設(shè)計
FIF0是一種先進先出的數(shù)據(jù)緩存器,根據(jù)FIFO工作的時鐘域,可以將FIF0分為同步FIF0和異步FIFO。FIF0的一些重要參數(shù)如下:
FIFO的寬度:指的是FIF0一次讀寫操作的數(shù)據(jù)位。
FIFO的深度:指的是FIFO可以存儲多少個N位的數(shù)據(jù)。
設(shè)計中采用了寬度為16位,深度為256的異步FIF0。
3.1.4 I2C總線設(shè)計
I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線.可發(fā)送和接收數(shù)據(jù)。I2C總線在傳送數(shù)據(jù)過程中共有3種類型信號,分別是:開始信號、結(jié)束信號和應(yīng)答信號。
開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。
結(jié)束信號:SCL為低電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8 bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。其數(shù)據(jù)傳送過程如圖4所示。
3.1.5 串轉(zhuǎn)并數(shù)據(jù)采集模塊設(shè)計
由于從FPGA音頻接口采集來的信號是串行的,故此處理前應(yīng)將此串行信號轉(zhuǎn)成并行信號,然后送NIOS核處理器進行處理。
設(shè)計中只需要16位數(shù)據(jù),而從FPGA音頻采集輸出端ADCDAT輸出的24位的串行數(shù)據(jù),考慮到數(shù)據(jù)計算可能溢出造成失真,因此必須對采樣所得數(shù)據(jù)作近似處理,故取其高15位數(shù)據(jù),并將高位補零從而得到16位數(shù)據(jù)。其設(shè)計接口包括:clk為系統(tǒng)時鐘;AUD_ADCDAT為音頻采集數(shù)據(jù)輸入;data_out為并行輸出;Wr為輸出使能信號,用于控制向外輸出完整的數(shù)據(jù)。其仿真波形如圖5所示。
評論