IEEE 802.11a數(shù)字基帶處理器的并行流水結(jié)構(gòu)設(shè)計
作者Email: zhaopk00@mails.tsinghua.edu.cn
摘 要 本文針對IEEE 802.11a數(shù)字基帶處理過程,提出了一種并行流水結(jié)構(gòu)。發(fā)射過程和接收過程分別采用三級流水并行處理,以此為基礎(chǔ)完成了整個數(shù)字基帶處理器的設(shè)計和實現(xiàn)。所提出的并行流水結(jié)構(gòu)顯著提高了系統(tǒng)的數(shù)據(jù)吞吐能力,降低了資源占用量。硬件設(shè)計已經(jīng)通過系統(tǒng)仿真,每級流水階段的并行運算效率都達到了100%,單元運算的流水效率達到85%以上。
關(guān)鍵詞 并行流水結(jié)構(gòu); IEEE 802.11a; 數(shù)字基帶處理器.
1. 引言
無線局域網(wǎng)標(biāo)準(zhǔn)IEEE 802.11a [1]采用了OFDM調(diào)制方式,具有較好的抗窄帶干擾和抗多徑能力,最高數(shù)據(jù)傳輸速率達到54Mbits/s,是一種適合于構(gòu)建無線家庭多媒體網(wǎng)絡(luò)的傳輸技術(shù)。為取得處理速度和芯片規(guī)模之間較好的折衷,IEEE 802.11a基帶處理器的設(shè)計應(yīng)采用合適的系統(tǒng)結(jié)構(gòu)和運行方式,從而有效降低硬件復(fù)雜度,增強系統(tǒng)通用性和可移植性,提高系統(tǒng)性能。
本文作者已建立了基于IEEE 802.11a物理層標(biāo)準(zhǔn),采用DSP+FPGA結(jié)構(gòu)的OFDM無線傳輸系統(tǒng)平臺。在此基礎(chǔ)上,完成了單片數(shù)字基帶處理器的FPGA設(shè)計集成?;鶐幚砥鞯脑O(shè)計采用了并行流水結(jié)構(gòu)[2, 3]。這種結(jié)構(gòu)可以有效提高系統(tǒng)數(shù)據(jù)吞吐能力,降低硬件資源占用量,非常適于采用幀結(jié)構(gòu)處理的IEEE 802.11a物理層。本文首先扼要描述所設(shè)計的基帶處理器的體系結(jié)構(gòu),在此基礎(chǔ)上詳細討論整個芯片的并行流水結(jié)構(gòu),最后給出實現(xiàn)結(jié)果。
2. 基帶處理器體系結(jié)構(gòu)
IEEE 802.11a物理層標(biāo)準(zhǔn)采用OFDM調(diào)制方式,工作于5GHz頻段,支持6~54Mbits/s的凈數(shù)據(jù)速率。IEEE 802.11a數(shù)字基帶處理過程包括擾碼、卷積、交織、IFFT/FFT變換和星座點映射等。不同的交織和星座點映射方式對應(yīng)不同的工作模式和數(shù)據(jù)速率。
我們設(shè)計的數(shù)字基帶處理器的體系結(jié)構(gòu)如圖1所示。芯片分為發(fā)射單元和接收單元兩部分。由于發(fā)射和接收是時分復(fù)用的,因此可以共用一個FFT/IFFT模塊。 FFT/IFFT模塊的運算過程采用了時分復(fù)用基4 CORDIC算法[4]實現(xiàn),模塊中只有一個采用CORDIC算法的基4蝶形運算單元,按照時間先后順序依次完成每個蝶形運算過程。這種方式雖然引入了運算延時,但是大大降低了資源占用;而其引入的運算延時通過本文所提出的并行流水結(jié)構(gòu)得到解決,從而優(yōu)化了芯片設(shè)計。
從圖1可以看到,在發(fā)射單元,擾碼模塊、卷積模塊和交織映射模塊共同組成了編碼過程,IFFT變換模塊組成了變換過程,加保護間隔、成形濾波器和數(shù)字上變頻組成了輸出過程;在接收單元,下變頻模塊、匹配濾波模塊和去除保護間隔構(gòu)成了輸入過程,F(xiàn)FT變換模塊構(gòu)成了變換過程,而解映射、解交織、維特比譯碼和解擾模塊共同構(gòu)成了解碼過程。這些過程運算耗時相差不大,有利于進行并行流水結(jié)構(gòu)設(shè)計。為了提高數(shù)據(jù)吞吐量,卷積、交織、解交織和解卷積都以2bits并行方式進行工作。
芯片內(nèi)共有兩個全局時鐘,頻率為60MHz和40MHz。PHY-RF接口、輸出過程和輸入過程工作在40MHz,PHY-MAC接口、編碼過程、解碼過程和變換過程工作在60MHz。
3. 并行流水結(jié)構(gòu)設(shè)計
采用并行流水結(jié)構(gòu)設(shè)計,需要將算法分割為若干級(level),而流水結(jié)構(gòu)的每個階段(stage)則對應(yīng)于算法的每一級(level)[2]。針對本系統(tǒng)設(shè)計的要求,我們將發(fā)射單元和接收單元分別進行算法分級,依此設(shè)計相應(yīng)的并行流水結(jié)構(gòu)。
3.1 發(fā)射單元流水結(jié)構(gòu)
發(fā)射單元須保證輸出過程的連續(xù)性。以每個OFDM符號以20MHz的速率輸出80個采樣點為例,在60MHz系統(tǒng)主時鐘下,輸出過程需要240個周期。如果以輸出過程為一級算法,那么每一級都不能超過240個時鐘周期。
發(fā)射單元的算法分級如下:首先,輸出過程(表示為運算C)單獨設(shè)置為一級(level)。變換過程,IFFT/FFT模塊(表示為運算B)采用時分復(fù)用方式調(diào)用蝶形運算單元,完成一次變換需要211個周期,可以設(shè)置為一級(level)。編碼過程(表示為運算A)的卷積和交織都以2bits并行工作,對于一個OFDM符號,擾碼引入1個周期的延時,卷積引入1個周期的延時,交織最多需要216個時鐘周期(在54Mbits/s模式下),因此整個編碼過程最多需要218個時鐘周期,設(shè)置為一級(level)。
發(fā)射單元流水結(jié)構(gòu)分為三個階段(stage),對應(yīng)于發(fā)射算法的三級(level)。圖2表示了發(fā)射單元流水結(jié)構(gòu)的情況。流水結(jié)構(gòu)各個階段之間通過RAM存儲單元進行數(shù)據(jù)交換。流水結(jié)構(gòu)的三個階段采用并行工作的方式,可以提高數(shù)據(jù)吞吐量。
3.2 接收單元流水設(shè)計
接收單元要保證完整的接收數(shù)據(jù)。與發(fā)射單元不同的是,在接收單元,維特比解碼器以2bits并行的方式工作在60MHz時鐘頻率,因此完全可以實時讀入解交織的結(jié)果,對前面的過程沒有影響,算法分級中可以不考慮解碼及其以后的單元。
接收單元的算法分級包括:輸入過程(表示為運算C)單獨設(shè)置為一級(level)。FFT模塊(表示為運算B)完成一次變換過程需要211個時鐘周期,設(shè)置為一級(level)。每個OFDM符號解交織并且解打孔(表示為運算A)最多需要216個周期(在54Mbits/s模式下),設(shè)置為一級(level)。
接收單元流水結(jié)構(gòu)也分為三個階段(stage),對應(yīng)于接收算法的三級(level)。圖3表示了接收單元流水結(jié)構(gòu)。與發(fā)射單元相似,接收單元流水各個階段之間也采用RAM作為數(shù)據(jù)交換的接口,三個階段采用并行工作方式。
4. 設(shè)計的實現(xiàn)
本文設(shè)計采用VHDL語言[5]實現(xiàn),選用Altera公司EPXA10F1020C1型號的FPGA。設(shè)計過程使用Synplify7.3.1進行綜合,QuartusII 4.1進行布局布線,Modelsim SE 5.7e進行功能仿真和時序仿真。
設(shè)計結(jié)果中,IFFT/FFT模塊占用1637個Logic Cells,解卷積模塊占用2877個Logic Cells。整個數(shù)字基帶處理器(不包括時鐘同步和信道估計模塊)占用約6K個Logic Cells,占用存儲單元約32Kbits,存儲單元共使用了47個ESB。
圖4表示系統(tǒng)的仿真結(jié)果。Bit_Bus1表示編碼過程總線;Ifft_Busy表示IFFT運算過程;Data_I、Data_Q表示OFDM符號的采樣數(shù)據(jù);Fft_Busy表示FFT運算過程;Bit_Bus2表示解碼過程總線。仿真結(jié)果顯示,每級流水階段的并行運算效率(Efficiency of the Parallel Operation Within Each Stage of the Pipeline) [2]達到100%,最高模式(54Mbits/s)下每級流水階段A、B、C三種運算的流水效率(Efficiency of the Pipeline)[2] 分別達到90%,88%和100%。
并行流水結(jié)構(gòu)設(shè)計給IFFT/FFT過程提供了較多的運算時間,從而可以使用運算時間長、資源占用少的CORDIC迭代算法;同時由于發(fā)射單元和接收單元流水結(jié)構(gòu)相似,根據(jù)時分復(fù)用的原則,這兩部分可以共用運算模塊和控制信號;這些有效地減少了系統(tǒng)的資源占用量。
5. 總結(jié)
本文針對IEEE 802.11a數(shù)字基帶處理過程中幀結(jié)構(gòu)處理的特點,采用并行流水結(jié)構(gòu)進行設(shè)計。系統(tǒng)發(fā)射單元和接收單元的算法均分為了三級,每一級僅包含一種互不相同的運算;這兩部分的流水結(jié)構(gòu)也均分為了三個階段,對應(yīng)于各自的三級算法。三個流水階段并行運行,提高了系統(tǒng)的數(shù)據(jù)吞吐能力。
本文并行流水結(jié)構(gòu)設(shè)計簡潔而高效,每級流水階段的并行運算效率都達到了100%,單元運算的流水效率達到85%以上。系統(tǒng)核心模塊IFFT/FFT變換采用CORDIC算法實現(xiàn),算法所引入的較長的運算時間又通過并行流水結(jié)構(gòu)加以解決,降低了硬件資源占用量。
總結(jié)本文的并行流水結(jié)構(gòu),其具有數(shù)據(jù)吞吐量大,系統(tǒng)工作效率高和硬件資源占用量少的特點,整個數(shù)字基帶處理器的結(jié)構(gòu)得到了優(yōu)化。
參考文獻
1. IEEE Std 802.11a-1999, Part11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: High Speed Physical Layer in the 5GHz Band.
2. da Fontoura Costa, L.; Slaets, J.F.W.; On the Efficiency of Parallel Pipelined Architectures; IEEE TRANSACTIONS ON SIGNAL PROCESSING, Volume: 39 , Issue: 9 , Sept. 1991
3. 陳國良,陳 峻,VLSI計算理論與并行算法,中國科學(xué)技術(shù)大學(xué)出版社,1991
4. Sarmiento, R.; de Armas, V.; Lopez, J.F.; Montiel-Nelson, J.A.; Nunez, A.; A CORDIC processor
for FFT computation and its implementation using gallium arsenide technology; Very Large Scale Integration (VLSI) Systems, IEEE Transactions on , Volume: 6 , Issue: 1 , March 1998
5. 曾繁泰, 陳美金, VHDL程序設(shè)計, 清華大學(xué)出版社, 2001