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