FFT user guide -QII 的使用注意要點


FFT IP core的總體架構分析:FFT分為fixed transform size architectture 和 variable streaming architecture。

variable streaming architecture下又分為radix-22 和radix-4/2兩種運算結構,而內部數據運算表達方式可分為fixed point ,floating point 和block floating point三種。、

數據輸入輸出方向有可以分為natural order bit-reverse or digit-reverse 和DC centered方式。在運算時的核還可以分為single output engine和Quad-output engine兩種。

而IO數據流有根據不同的速度要求可以分為streaming ,variable streaming ,buffered burst ,burst四種IO 流方式。下面將一一詳述以上結構。

1、(Quad—output)FFT四輸出fft引擎
2、Buffered Burst緩沖突發結構。在此結構中transform time(轉換時間)定義為已經加載N點輸入數據到第一個轉換輸出樣點准備輸出的時間
3、Burst(突發數據結構),在這里可以選擇歲輸出FFT引擎個數
4、Transform length(轉換長度)Data precision(數據精度),Twiddle Precision(旋轉因子精度):注意旋轉因子精度必須小於數據精度
5、Streaming(流結構):一個4輸出fft引擎可以滿足streaming結構下1024點的足夠性能。
6、Buffered burst 和burst數據流結構可以選擇fft引擎個數,並且可以在Engine Architecture中選擇single output fft引擎結構。
7、Complex Multiplier Implementaion復數乘法器實現:在這里選者復數乘法器的結構。在implementation multiplier in中選擇如何實現乘法器。
8、Variable Streaming 變量流數據結構,如選擇這一項其變換長度為最大的變換長度。Variable Streaming +Floating point Architecture則默認的精度為32bit,reverseI/O order(反轉輸出順序)是Digit Reverse Order。
9、Input order和Output order選擇提供給fft或fft輸出的數據的順序,Natural order是自然順序(1,2,3……N-1),Bit reverse order輸入的是bit-reversed order(位反轉)。Digit Reverse order 輸入的順序為Digit Reverse order。
10、Data presentation(數據表示法):Fixed Point 定點數 或Floating Point浮點數。定點數顯示所對應的反轉順序為bit-reverse,采用基-2結構;浮點數顯示所對應的是digit-reverse,采用基-4/2混合結構。
11、Digit-reversed order:基-2的是[7 6 5 4 3 2 1]--〉digit-reverse---〉[1 2 3 4 5 6 7];若是基-4的是[7 6 5 4 3 2 1 0]--〉digit-reverse---〉[1 0 3 2 5 4 7 6];natural order---〉[0 1 2 ……N-1]。
Digit-reversal is similar to bit-reversal – actually, bit-reversal is the
single digit case of digit-reversal. Digit reversal reverses digits
instead of bits.一個BIT,叫BIT-REVERSE, 多個BIT叫DIGIT-REVERSE
12、DSP Resource Optimization只在Stratix V devices器件中使用


一、I/O order 選擇

仔細選擇輸入輸出數據的順序可以獲得硬件資源上以及輸出延時上的提升,具體表述如下表格:

比如,在input order為natural,output order為bit reverse時,ifft則輸入為bit reverse 輸出為natural,這時可以用最少的memory並且獲得最小延遲(在ft工作於單引擎狀態時)。

二、Engine 選擇

四輸出(Quad-output engine)結構如下圖

單輸出引擎結構:

三、I/O數據流結構

1、Streaming(流結構)

  流I/0數據流結構允許輸入數據連續處理,並輸出連續的復數數據流,這個過程中不需要停止FFT函數數據流的輸入和輸出。圖1.1給出了一個這種數據流結構的仿真結果。

圖1.1 Streaming IO數據流結構仿真時序圖

FFT兆核函數采用Altera Atlantic接口I/0協議,輸入接口為主設備匯端(Master Sink)而輸出接口為主設備源端(Master Source)。

在reset信號無效后,數據源將sink_valide置為高有效,向FFT通知在輸入端至少有N個復數據樣點可以輸入。FFT函數將sink_ready信號置高電平,表明有能力接收這些輸入信號。當sink_ready(FFT核發出的)和sink_valide同時有效時,傳輸開始。數據源加載第一個復數據樣點到FFT函數中,同時將sink_sop(start)信號置高電平,表示輸入模塊的開始,在下一個時鍾周期,sink_sop信號被復位,並以自然順序加載數據樣點;當最后一個數據輸入后,sink_eop 被置為有效 ,sink_valid仍處於有效,並完成這一幀數據的傳輸。然后在下一個時鍾將sink_sop置為有效,並重復上一過程。

Streaming IO數據流結構控制時序如下圖

Figure 3–4. FFT Streaming Data Flow Architecture Input Flow Control

注意:在每一幀數據傳輸時要注意sink_valide,sink_ready,inverse要同sink_sop同步。

 當完成數據轉換后,FFT模塊將source_valid置為有效,並以自然順序輸出變換域的數據,FFT模塊輸出source_sop表示第一個有效數據的輸出。在N個數據(一幀)都變換結束之后即 N個時鍾后,FFT模塊將source_eop置為有效表示輸出數據的結束。輸出時序圖如下。

Figure 3–5. FFT Streaming Data Flow Architecture Output Flow Control

2、Variable Streaming(變量流結構)

  在變量流結構中,允許數據連續輸入處理,並輸出連續的復數數據流,這一點同streaming IO數據流一樣。

不同點:

2.1 可以按照數據處理的要求,通過改變fftpts的值隨時改變FFT處理的數據幀所包含的數據個數,即改變FFT的變換大小

fftpts要與sink_sop同步.

具體fftpts二進制與變換大小對應表格如下:Table 3–2. fftpts and Transform Size

要改變每塊數據變換方向inverse,一定要同 sink_sop 脈沖同步。當FFT變換結束后會置高有效source_valid,

並且輸出變換域的數據塊(block),輸出source_sop有效來表示第一個輸出數據,而輸出數據的順序與在IP Toolbench中配置時所選擇的order一致,順序一般為natural 和bit-reverse兩種。數據輸出時序如下圖:

Figure 3–6. Output Flow Control—Bit Reversed Order

在sink_valid有效時FFT對輸入的數據進行變換,當sink_valid無效時,FFT變換將停止,直到sink_valid再次有效時在開始變換。這一意味着任何先前已經進入FFt的幀也將停止變換。時序原理圖如下:Figure 3–7. FFT Behavior When sink_valid is Deasserted

在兩幀數據之間sink_valid變為無效,當前幀的數據將會繼續被變換並輸出,但是在同一幀數據傳輸中sink_valid變為無效則會停止,直至再次有效。另外,FFT還可通過clk_en信號被隨時停止。

  2.2動態改變FFT的大小

  當FFt輸入數據大小改變時,FFt核將通過置無效sink_valide來停止數據的輸入,並將先前一幀數據變換結束輸出,下圖是在engine-only模式下的時序圖Figure 3–8. Dynamically Changing the FFT Size

  2.3對於IO數據順序的影響

engine-only mode時:在第一個有效數據輸入后的N+(大於N)的延遲后,變換數據才輸出,延遲大小視N的大小來決定。

時序圖如下:Figure 3–9. Data Flow—Engine-Only Mode

engine with bit-reversal mode時:在第一個有效數據輸入后的2N+(大於2N)的延遲后,變換數據才輸出。

時序圖如下:Figure 3–10. Data Flow—Engine with Bit-Reversal or Digit-Reversal Mode

3、Buffered Burst (緩沖突發結構)

  緩沖突發I/O數據流結構的FFT需要的存儲器資源比流動I/O數據流和變量流結構少,但平均模塊吞吐量減少。緩沖突發結構數據時序仿真如下圖:Figure 3–11. FFT Buffered Burst Data Flow Architecture Simulation Waveform

在reset置為無效后,FFT將sink_valid置為有效,顯示FFT可以接受數據,sink_valid和sink_ready都有效時數據開始傳輸。sink_sop指示第一個輸入數據有效,表示傳輸開始,在緊鄰的下一個時鍾周期sink_sop被置為無效,並且連續而來的N-1個數據要以natural順序輸入,在最后一個數據輸入進來時,要將sink_eop置為有效,並在緊鄰的時鍾周期置為低。

  當完全載入輸入模塊時,FFT函數仍將sink_ready信號置高一段時間,此時可以將下一block的幾個數據輸入到FFT模塊中的小FIFO中進行緩存,一旦這個小的內嵌FIFO滿了,FFT將復位sink_ready信號,表示FFT不再接收其他輸入數據。此時,FFT函數開始計算輸入數據模塊的變換結果。在sink_ready有效時,數據的傳輸不是強制的。

輸入時序流程圖如下:Figure 3–12. FFT Buffered Burst Data Flow Architecture Input Flow Control

在FFT處理器從內部輸入緩沖區讀取輸入樣點之后,FFT將sink_ready信號重新置為高電平,准備讀取下一個輸入模塊。下一個輸入模塊的起點由sink_sop脈沖確定。當變換結束,FFt置高source_valid並輸出數據。source_sop 與 source_eop分別指示每一塊變換后數據的 start-of-packet和 end-of-packet。在數據輸入和輸出的時間內sink_valid必須保持有效。

 其輸出時序如下圖所示:Figure 3–13. FFT Buffered Burst Data Flow Architecture Output Flow Control

4、Burst (突發結構) 

 突發I/0數據流結構的執行過程與緩沖突發結構相同,不同的是,對於給定參數設置突發結構在降低平均吞吐量的前提下需要更少的存儲資源。

其對應的仿真時序圖如下圖:Figure 3–14. FFT Burst Data Flow Architecture Simulation Waveform

在突發I/O數據流結構中,FFT核一次只能處理一個載入一個有效輸入模塊以后,sink_ready信號被復位,直到FFT函數完成轉換並且輸出數據模塊被完全讀出為止,這時,sink_ready信號才被重新置位,准備下一個輸入模塊的載入,但是,sink_valid一直是高有效的。fft內有一個小的fifo,fifo滿后sink_ready被置低,但是注意It is not mandatory to provide data to the FFT during sink_ready cycles,在sink_ready時並不要求一定得有數據輸入。只有在前一幀變換的數據完全輸出后,FFT核才能繼續接受后續幀的剩余數據。

 1Data Precision數據精度,只有在variable streaming結構時才有28,32bit的精度。

 2對於burst和buffered burst可以選擇1,2,4,四輸出引擎的並行工作結構,或者采用單輸出引擎的獨立或並行工作。

3只有在variable streaming architecture才能選擇input和output的order

 4Data Representation內部運算時采用的數據結構,單精度浮點,定點數,塊浮點數。

5FFT構成:4mul+2adder利用的DSP部件多LE較少,5mul+3adder利用的DSP部件少LE較多,實現區域可以為DSP blocks only,LE only 和 兩者結合。

DSP Resource Optimization只在Stratix V devices中可用。

6實現的存儲模塊:Twiddle ROM Distribution,Use M-RAM or M144K blocks,Implement appropriate logic functions in RAM

三 、輸入輸出信號:

注:(1)Variable streaming fixed point FFT only. Growth is log2(N) + 1.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM