應(yīng)用于10 G EPON系統(tǒng)的RS(255,223)碼譯碼器設(shè)計(jì)
摘 要: 介紹一款應(yīng)用于10 G EPON系統(tǒng)中的RS(255,223)碼譯碼器。采用ME算法設(shè)計(jì)了一種新的脈動(dòng)結(jié)構(gòu)電路求解關(guān)鍵方程,從而獲得較低的處理延時(shí)并使用較少資源。仿真以及綜合結(jié)果表明,結(jié)合并行處理方法,譯碼器能夠完成10 G EPON系統(tǒng)數(shù)據(jù)的實(shí)時(shí)譯碼功能,最大數(shù)據(jù)吞吐率大于16 Gb/s。
關(guān)鍵詞: REED-SOLOMON;譯碼器;ME算法;KES;脈動(dòng)結(jié)構(gòu)
近年來,基于802.3ah協(xié)議的無源以太網(wǎng)的光接入網(wǎng)EPON(Ethernet based Passive Optical Network)系統(tǒng)在接入網(wǎng)中得到了很多應(yīng)用。在此基礎(chǔ)上的能夠提供上下行均為10 Gb/s接入速率的基于802.3av的10 G EPON標(biāo)準(zhǔn)[1]也于2009年9月正式發(fā)布。與802.3ah協(xié)議中不同的是,802.3av協(xié)議采用了糾錯(cuò)性能更佳的Reed-Solomon(255,223)碼作為信道碼,以保證物理層與數(shù)據(jù)鏈路層接口數(shù)據(jù)誤碼率低于10-12。
RS譯碼器的設(shè)計(jì)因關(guān)鍵方程求解KES(Key Equation Solution)電路所采用算法不同而分為兩種,分別是基于BM(Berlekamp-Massey)算法以及ME(Modified Euclidean)算法[2]。由于BM算法電路帶有反饋,電路速度難以通過流水等方式得到進(jìn)一步提升獲得更大數(shù)據(jù)吞吐率,因此現(xiàn)有研究集中于使用ME算法、采用脈動(dòng)結(jié)構(gòu)電路的流水線實(shí)現(xiàn)方案[3]。傳統(tǒng)的脈動(dòng)結(jié)構(gòu)KES電路[4]實(shí)現(xiàn)RS(255,223)譯碼求解關(guān)鍵方程需要32級(jí)電路、32個(gè)數(shù)據(jù)處理周期。譯碼器的其余模塊則是采用串行工作方式,需要255個(gè)周期的處理時(shí)間。由于10 G EPON系統(tǒng)中要求每一級(jí)電路處理一個(gè)編碼分組的時(shí)間不超過31個(gè)周期,因此已有的譯碼器設(shè)計(jì)方法不能達(dá)到要求。
本文簡要介紹了Reed-Solomon碼的一般譯碼方法,結(jié)合802.3av協(xié)議,提出了一種應(yīng)用于10 G EPON系統(tǒng)的譯碼器電路設(shè)計(jì)方案及采用ME算法的一種優(yōu)化的KES電路設(shè)計(jì)。
1 REED-SOLOMON碼的一般譯碼方法
由于Reed-Solomon碼擅長糾正突發(fā)錯(cuò)誤,因此適用于光纖通信環(huán)境。802.3av協(xié)議規(guī)定的FEC信道糾錯(cuò)碼RS(255,223)碼為基于GF(28)有限域的多進(jìn)制BCH碼,最多能夠糾正16個(gè)錯(cuò)誤符號(hào)。
RS碼為分組碼,其譯碼算法主要由三部分構(gòu)成。由接收碼字乘以校驗(yàn)矩陣得到其伴隨多項(xiàng)式;由伴隨多項(xiàng)式求得其錯(cuò)誤向量值;將接收向量與錯(cuò)誤向量相減,得到最后的譯碼輸出。
伴隨式求解式為:
2 應(yīng)用于10 G EPON系統(tǒng)的RS(255,223)碼譯碼器設(shè)計(jì)
802.3av協(xié)議中FEC(前向糾錯(cuò))子層所規(guī)定的譯碼流程為:譯碼器將接收到的數(shù)據(jù)去除相應(yīng)同步頭比特后送入譯碼器處理;譯碼器核心電路按照常規(guī)方式進(jìn)行譯碼;譯碼器輸出的數(shù)據(jù)再按照協(xié)議規(guī)定方式進(jìn)行重新分組并且恢復(fù)其同步頭比特得到最后的輸出。
本文所設(shè)計(jì)的RS(255,223)譯碼器實(shí)現(xiàn)框圖如圖1所示。
輸入同步(IS)模塊完成協(xié)議規(guī)定的數(shù)據(jù)重組功能。伴隨式計(jì)算(SC)模塊采取了9倍并行計(jì)算,按照公式1完成伴隨式計(jì)算,將伴隨式系數(shù)并行輸出到KES模塊,同時(shí)輸出計(jì)算得到伴隨多項(xiàng)式階數(shù)。關(guān)鍵方程求解(KES)模塊采用ME算法求解關(guān)鍵方程并并行輸出錯(cuò)誤位置多項(xiàng)式以及錯(cuò)誤特征多項(xiàng)式的系數(shù)。錢搜索(CS)與錯(cuò)誤糾正(EE)模塊完成公式(4)與公式(5)的運(yùn)算。由于本文設(shè)計(jì)的RS譯碼器需要在31個(gè)周期內(nèi)在255個(gè)符號(hào)上搜索并糾正錯(cuò)誤,因此,本文所設(shè)計(jì)的錢搜索模塊以及錯(cuò)誤糾正模塊均為文獻(xiàn)[4]電路基礎(chǔ)上所設(shè)計(jì)并行處理能力的9倍。輸出同步(OS)模塊負(fù)責(zé)將EE模塊送入的糾正后的碼字恢復(fù)成802.3av協(xié)議所規(guī)定的66 bit數(shù)據(jù)進(jìn)行最后輸出。延時(shí)緩沖器(DF)模塊完成譯碼過程中的數(shù)據(jù)延遲功能,控制模塊(CTL)則提供相應(yīng)的控制信號(hào)。
3 利用ME(Modified Euclidean)算法求解關(guān)鍵方程
RS譯碼的關(guān)鍵在于求解關(guān)鍵方程,公式(2)可以重寫為:
4 簡化的關(guān)鍵方程求解(KES)模塊設(shè)計(jì)
已有參考文獻(xiàn)[2]、[3]、[4]中的脈動(dòng)實(shí)現(xiàn)方案,均需要32級(jí)迭代能夠完成31階(32個(gè)系數(shù))的伴隨多項(xiàng)式的關(guān)鍵方程求解。但是802.3av協(xié)議中所規(guī)定的每一個(gè)編碼分組只使用了31個(gè)周期數(shù)據(jù)來表示。因此,要求設(shè)計(jì)電路的每一級(jí)處理一個(gè)編碼分組的時(shí)間不能超過31個(gè)周期。所以必須將原有的KES電路做修改優(yōu)化,以求縮減數(shù)據(jù)表示周期以及電路處理周期。
觀察ME算法后能夠發(fā)現(xiàn),ME算法首次迭代時(shí)算法行為固定(l恒等于1),且多項(xiàng)式R(x)首相系數(shù)?琢恒為1,其余項(xiàng)系數(shù)恒為0。此時(shí),脈動(dòng)電路的第一級(jí)實(shí)際上不用完成任何的有限域運(yùn)算,實(shí)現(xiàn)電路可以通過對(duì)時(shí)序的控制將Q(x)多項(xiàng)式相應(yīng)項(xiàng)系數(shù)直接輸出得到首級(jí)電路的各多項(xiàng)式輸出。在此種條件下,本文設(shè)計(jì)的RS譯碼器KES模塊將ME算法的第一、二級(jí)迭代算法整合到一級(jí)模塊中實(shí)現(xiàn),滿足了31級(jí)迭代要求,也節(jié)省了電路資源。本文所設(shè)計(jì)的KES電路結(jié)構(gòu)圖如圖2所示。
根據(jù)公式(8)~(12),ME算法中多項(xiàng)式的每一級(jí)迭代計(jì)算均需要在得到當(dāng)前輸入多項(xiàng)式的階數(shù)后才能確定當(dāng)前迭代行為。但是在脈動(dòng)結(jié)構(gòu)中的處理過程必須保持連續(xù),因此,使用階數(shù)預(yù)測的方式來獲取多項(xiàng)式階數(shù)。具體預(yù)測的方式如下:(1)首級(jí)迭代模塊的時(shí)序與行為固定為deg(S)=31時(shí)的時(shí)序與行為。(2)其余模塊的R(x)多項(xiàng)式與Q(x)多項(xiàng)式首系數(shù)均不為0時(shí),認(rèn)為當(dāng)前輸入的多項(xiàng)式階數(shù)預(yù)測正確,按照ME算法進(jìn)行迭代處理,計(jì)算后所得到多項(xiàng)式的階數(shù)則根據(jù)當(dāng)前的運(yùn)算行為進(jìn)行預(yù)測,其輸出相應(yīng)減1或不變。(3)其余迭代模塊輸入的R(x)或Q(x)多項(xiàng)式首系數(shù)為0時(shí),不進(jìn)行迭代操作,只將相應(yīng)多項(xiàng)式系數(shù)提前一周期輸出,并修正相應(yīng)多項(xiàng)式階數(shù)后輸出至下一級(jí)模塊。本文所設(shè)計(jì)KES模塊的單級(jí)迭代電路示意圖如圖3所示。
5 綜合驗(yàn)證與結(jié)論
采用SMIC 0.13 μm CMOS工藝及SYNOPSYS Design Compiler 2006工具對(duì)本文設(shè)計(jì)的RS譯碼器進(jìn)行了綜合驗(yàn)證。綜合驗(yàn)證結(jié)果表明,本文所設(shè)計(jì)的RS(255,223)碼譯碼器共使用了57 293個(gè)門單元,在最差情況下具有180 MHz的最大工作頻率,功耗為251.3 mW,能夠提供超過16.8 Gb/s的數(shù)據(jù)吞吐率,足以實(shí)現(xiàn)10 G EPON系統(tǒng)實(shí)時(shí)糾錯(cuò)功能。此外,本文所提出的KES模塊設(shè)計(jì)方案在降低了處理延時(shí)的基礎(chǔ)上也節(jié)約了硬件資源,在相同綜合環(huán)境和約束條件下,使用了42 563個(gè)門單元,與未做優(yōu)化的KES電路模塊相比節(jié)約了7%的硬件資源。
參考文獻(xiàn)
[1] IEEE 802.3 Ethernet in the First Mile Study Group. P802.3av(D3.0) Draft Part 3:Carrier sense multiple access with collision detection(CSMA/CD) access method and physical layer specifications-amendment:Physical Layer Specifications and Management Parameters for 10 Gb/s Passive Optical Networks[OL].http://standards.ieee.org/index.html,2009.
[2] DILIP V.S,NARESH R.S.High-speed architectures for reed-solomon decoders[J].IEEE Trans on VLSI Systems,2001,9(5):641-655.
[3] HOWARD M.S,TRUONG T.K,LESLIE J.D,et al.A VLSI design of a pipeline reed-solomon decoder[J].IEEE Trans on Computers,1985,34(5):393-403.
[4] HANHO L.High-speed VLSI architecture for parallel reedsolomon decoder[J].IEEE Trans on very large scale integra tion system,2003,11(2):288-294.
[5] FRANK E.Supplement to comment #842[OL].http://www.ieee802.org/3/av/public/2008_03/3av_0803_effenberger_3.pdf,2008.
[6] 向征,劉興釗.RS(255,223)編譯碼器的設(shè)計(jì)與FPGA實(shí)現(xiàn)[J].電路及應(yīng)用,2006,11:17-31.
[7] 王新梅,肖國鎮(zhèn).糾錯(cuò)碼-原理與方法[M].西安:西安電子科技大學(xué)出版社,2001.