無線通訊OFDM調(diào)制的實現(xiàn)
如前面所討論,如果FFT為了資源共享采用不同速率的時鐘,則需要pre-FFT數(shù)據(jù)緩沖器。在接收通道上,每當輸入數(shù)據(jù)開始寫入單緩沖器時,循環(huán)前綴移除模塊開始記數(shù)。當整個數(shù)據(jù)包都被寫入這個單緩沖器時,記數(shù)值開始從0地址被讀出。
對于固定的FFT size,由于讀時鐘頻率并不比寫時鐘慢,用一個單緩沖器就夠了。但如果FFT size是變化的,一個單緩沖器恐怕就不夠了。舉個特殊的例子,假設(shè)兩個時鐘工作在同一頻率。在這種情況下,當新的數(shù)據(jù)被寫入內(nèi)存,上一個數(shù)據(jù)包中的數(shù)據(jù)會從同一個存儲地址被讀出。如果上一個數(shù)據(jù)包的FFT/IFFT size更大,那么當前包的寫操作會早在上一個數(shù)據(jù)包讀操作完成前結(jié)束。這樣的話,為了阻止寫入過多的數(shù)據(jù),就必須延遲上行數(shù)據(jù)流模塊的運行直到上一個大數(shù)據(jù)包的讀操作完成。
所幸的是,這種背壓只會在FFT size由大變小時才會被施加。在實際的系統(tǒng)中,F(xiàn)FT size不太可能頻繁的改變。如果它只在幀邊界改變,由于幀符號之間是靜止區(qū),就永遠不會施加背壓。此外,為了避免使用背壓,讀信號和FFT核可以采用更高速率的時鐘,這樣讀操作會在寫操作之前完成。所需的時鐘頻率取決于最壞情況下FFT size的變化比。舉個極端的例子,如果FFT size從2048減到128,那么讀時鐘的頻率至少需要比寫時鐘快16倍。
在發(fā)射數(shù)據(jù)通道上,CP移除子??熘皇菍⑤斎霐?shù)據(jù)按次序?qū)懭雴尉彌_器。同樣的數(shù)據(jù)以不同的速率被讀出。圖9講述了pre-FFT的數(shù)據(jù)操作。在接收通道上,數(shù)據(jù)通過天線進入OFDM解調(diào)器,其后通常還接有IF調(diào)制解調(diào)器。這樣,接收模式下的pre-FFT模塊不會再對上行數(shù)據(jù)流模塊施加背壓。對于TDD操作,在pre-FFT數(shù)據(jù)緩沖時,可以復用post-FFT雙端口RAM實現(xiàn)位反轉(zhuǎn),因為這些操作在時間上是錯開的。
圖9:循環(huán)前綴移除操作前后的數(shù)據(jù)包比較。
時鐘方案:該設(shè)計中采用兩個時鐘域,clk_f和clk_s。FFT核運行在快時鐘clk_f上。當時鐘clk_f比clk_s快時,兩個時鐘域?qū)嬖诋惒健N帐中盘枌徊迦雭硗接蜷g的控制信號。盡管在實際系統(tǒng)中時鐘clk_f的頻率通常為clk_s頻率的幾個整數(shù)倍,但在這個設(shè)計中,兩者頻率也可以相同。這里,兩個時鐘必須同步。由于單緩沖器存儲深度的限制,如果兩個時鐘同步而只是速率不同,就必須去掉解調(diào)器中的時鐘同步模塊。不過在實際系統(tǒng)中不需要考慮這一點,因為如果FFT核沒有被復用就沒必要使用pre-FFT緩沖器了。
接口和I/O端口:該設(shè)計實例使用了數(shù)據(jù)傳輸控制的Avalon Streaming協(xié)議。為了支持大小可變的FFT size、循環(huán)前綴,以及FFT方向運行時間(run time)的變化,必須對這些run time信號進行緩沖并把它們與輸出數(shù)據(jù)數(shù)據(jù)包開始(SOP)信號對齊?! ?p> 該實例中也通過Avalon Stream信號sink_ready(輸入準備好信號)和source_ready(輸出準備好信號)來支持背壓。循環(huán)前綴插入模塊中輸入準備好延遲選0和輸出準備好延遲選44。循環(huán)前綴移除模塊的輸入準備好延遲選0。不過,因為輸出數(shù)據(jù)取自存儲器,后面的緩沖器讀取子模塊的輸出準備好延遲選2。由于FFT核為延遲0,為了實現(xiàn)與FFT核的連接,需要在在緩沖讀模塊與FFT核之間插入一個延遲適配器。延遲適配器用延遲2接收輸入數(shù)據(jù),然后用延遲0輸出數(shù)據(jù)。適配器也支持背壓并把可重配置的循環(huán)前綴的大小和FFT的方向信號與輸出數(shù)據(jù)包對齊。
調(diào)制解調(diào)的輸入輸出信號是有符號的定點格式但位寬度是可配置的。在可變流模式中,IFFT核的輸出數(shù)據(jù)具有基于最大IFFT size的滿分辨率。如果必要,可以在循環(huán)前綴插入模塊中切斷數(shù)據(jù)序列,也可以設(shè)置位寬參數(shù)。圖10所示為OFDM調(diào)制解調(diào)模塊的I/O端口。
圖10:OFDM調(diào)制解調(diào)模塊的I/O接口。
評論