劉學(xué),蘇建峰,孫婷
?
基于Altera IP核的RS譯碼器的設(shè)計(jì)與實(shí)現(xiàn)
劉學(xué)1,2,蘇建峰1,孫婷3
(1. 中國科學(xué)院國家授時中心,西安 710600;2. 中國科學(xué)院研究生院,北京 100039;3. 西安電子科技大學(xué),西安 710071)
介紹了一種基于Altera公司提供的Reed-Solomon IP(intellectual property)核來實(shí)現(xiàn)RS譯碼功能的設(shè)計(jì)方法,該方法具有開發(fā)周期短、系統(tǒng)成本低以及穩(wěn)定可靠特點(diǎn)。主要分析了Altera公司提供的IP核工作原理、參數(shù)配置以及接口設(shè)計(jì),最后通過時序仿真驗(yàn)證了該設(shè)計(jì)的正確性。該設(shè)計(jì)方法已經(jīng)成功應(yīng)用于BPL長波接收機(jī)數(shù)據(jù)解調(diào)模塊中。
RS碼;IP核;現(xiàn)場可編程門陣列(FPGA)
RS(Reed-Solomon)碼是一類具有很強(qiáng)糾錯能力的多進(jìn)制BCH碼。RS碼編解碼結(jié)構(gòu)相對簡單,具有同時對突發(fā)錯誤和隨機(jī)錯誤進(jìn)行糾錯的能力,因而廣泛應(yīng)用于數(shù)據(jù)通信和數(shù)據(jù)存儲系統(tǒng)的差錯控制中。在工程實(shí)現(xiàn)中,可用專門的硬件芯片或DSP(數(shù)字信號處理)芯片實(shí)現(xiàn)RS譯碼功能。
在中國科學(xué)院國家授時中心主持的“BPL長波授時系統(tǒng)現(xiàn)代化改造”項(xiàng)目中,對原有BPL系統(tǒng)進(jìn)行加發(fā)時間信息編碼設(shè)計(jì),在發(fā)播端需對時碼數(shù)據(jù)信息進(jìn)行RS編碼以保證信息的正確傳輸,因此需要在接收機(jī)數(shù)據(jù)解調(diào)中進(jìn)行RS譯碼設(shè)計(jì)。由于接收機(jī)設(shè)計(jì)主要由Altera公司提供的FPGA芯片實(shí)現(xiàn),因此在設(shè)計(jì)中考慮利用IP核實(shí)現(xiàn)RS譯碼功能。
基于以上背景,本文分析了Altera公司的RS IP核的原理,配置了譯碼參數(shù),設(shè)計(jì)了譯碼器接口,給出了適合接收機(jī)的配置和使用方式,并應(yīng)用該設(shè)計(jì)在FPGA中進(jìn)行驗(yàn)證,實(shí)現(xiàn)了RS譯碼器。利用IP核實(shí)現(xiàn)譯碼功能,使接收機(jī)數(shù)據(jù)解調(diào)系統(tǒng)集成在一個FPGA芯片內(nèi),不僅降低了接口設(shè)計(jì)的復(fù)雜度,而且工程上實(shí)現(xiàn)成本低,運(yùn)行穩(wěn)定可靠,便于后期調(diào)試和修改。
RS譯碼算法主要分為時域譯碼和頻域譯碼。頻域譯碼對于某些碼長的RS碼會獲得更快的譯碼速度,但由于增加了時域與頻域的變換和反變換以及相應(yīng)的存儲延時模塊,需要消耗更多的資源,因此本文中采用時域譯碼方案。時域譯碼的關(guān)鍵步驟為錯誤位置及錯誤值多項(xiàng)式的求解,工程上常用的算法為修正的歐幾里德算法 MEA(modified euclidean algorithm),其算法描述如下[3]:
1)根據(jù)接收到的碼多項(xiàng)式計(jì)算伴隨式;
2)采用MasseyFSR算法,確定錯誤位置多項(xiàng)式;
3)采用Chien搜索法,尋找錯誤位置;
4)計(jì)算錯誤值。
Altera公司的Reed-Solomon v8.0 IP核能提供RS編譯碼算法,并且算法配置采用全參數(shù)化。Reed-Solomon v8.0 IP核支持包括Cyclone、Stratix在內(nèi)的所有Altera的主流FPGA產(chǎn)品。Reed-Solomon v8.0會自動把緩沖計(jì)算中間變量的存儲器塊綜合到M4K單元上,提高了RS編譯碼器的數(shù)據(jù)吞吐量和執(zhí)行速度[3]。
譯碼器設(shè)計(jì)的關(guān)鍵環(huán)節(jié)是譯碼參數(shù)配置和譯碼器接口設(shè)計(jì)。根據(jù)RS譯碼原理、RS譯碼IP核參數(shù)約束以及項(xiàng)目設(shè)計(jì)要求,譯碼器中需要配置的參數(shù)及方法如下(以RS(15,9)碼為例):
每個碼組的監(jiān)督碼碼元數(shù)根據(jù)實(shí)際工作需要可靈活設(shè)置。
在譯碼參數(shù)設(shè)置成功后,需要進(jìn)行譯碼器接口設(shè)計(jì)。譯碼器輸入輸出端口如圖1所示:clk為時鐘信號,上升沿有效;reset為復(fù)位信號,異步復(fù)位;rsin[4..1]為四位總線輸入數(shù)據(jù);sink_val表示數(shù)據(jù)有效;sink_sop和sink_eop分別表示一組數(shù)據(jù)的開始和結(jié)尾;source_ena系統(tǒng)運(yùn)行使能信號,為“1”時表示當(dāng)前模塊可以運(yùn)行且可以輸出數(shù)據(jù),為“0”時系統(tǒng)保存當(dāng)前編碼值,不輸出數(shù)據(jù);rout[4..1]為四位總線輸出數(shù)據(jù);sink_ena是輸入使能信號,當(dāng)它為“1”時表示當(dāng)前模塊可以接收數(shù)據(jù),為“0”時表示不能接收數(shù)據(jù);source_val表示數(shù)據(jù)有效;source_sop和source_eop分別表示一組數(shù)據(jù)的開始和結(jié)尾。
譯碼器的工作流程為:當(dāng)source_ena為高時,編碼器開始工作。sink_ena為高,可以接收輸入數(shù)據(jù);當(dāng)sink_val為高時,數(shù)據(jù)有效,同時開始接收數(shù)據(jù);當(dāng)sink_eop為高時,一組數(shù)據(jù)發(fā)送結(jié)束,此次接收數(shù)據(jù)結(jié)束,等待下一次接收信號開始。
圖1 RS譯碼器模塊
項(xiàng)目中采用的是Altera公司的EP1C12Q芯片,該芯片屬于Cyclone系列[4]。該設(shè)計(jì)已經(jīng)在QuartusII環(huán)境下全編譯,占用EP1C6Q中的5個引腳(4%),共使用了1 398個邏輯單元(23%),4 096 bit的存儲單元(4%)。從使用情況來看,占用的邏輯單元和存儲單元很少,適合大部分的FPGA器件。利用QuartusII進(jìn)行時序仿真,波形如圖2所示。編碼模式下,當(dāng)輸入信息碼元(1,2,3,4,5,6,7,8,9)時,輸出編碼碼組為(1,2,3,4,5,6,7,8,9,2,1,3,C,F,B)。譯碼模式下,當(dāng)接收碼組中含錯誤碼元時,如圖2所示,其中信息碼元出錯2個,監(jiān)督碼元出錯1個,通過譯碼后得到碼組仍然為(1,2,3,4,5,6,7,8,9,2,1,3,C,F,B),表明譯碼器成功糾錯,譯碼正確。
本文探討了利用Altera公司提供的IP核實(shí)現(xiàn)RS譯碼功能的設(shè)計(jì)方法,該設(shè)計(jì)方法已經(jīng)應(yīng)用在BPL接收機(jī)數(shù)據(jù)解調(diào)模塊中。文中討論的RS譯碼方法不僅縮短了開發(fā)周期,降低了實(shí)現(xiàn)的復(fù)雜度和系統(tǒng)成本,而且穩(wěn)定可靠,集成度高,便于調(diào)試和修改。這種方法同時適用于數(shù)字定位技術(shù)中RS檢錯糾錯系統(tǒng)[5]。需要說明的是,在今后工作中如果參考此方案,需要根據(jù)不同的RS碼參數(shù)以及生成多項(xiàng)式進(jìn)行參數(shù)配置以及對接口進(jìn)行取舍。
[1] BERLEKAMP E R. Algebraic Coding Theory[M]. New York: McGraw Hill Book Corporation, 1968: 134-168.
[2] Altera. Reed-Solomon Compiler User Guide[Z]. California: Altera, 2006.
[3] 王新梅, 肖國鎮(zhèn). 糾錯碼: 原理與方法[M]. 西安: 西安電子科技大學(xué)出版社, 2002.
[4] 孫航. Xilinx可編程邏輯器件的高級應(yīng)用與設(shè)計(jì)技巧[M]. 北京: 電子工業(yè)出版社, 2004.
[5] 向渝, 華宇, 吳海濤. 基于數(shù)字鎖相環(huán)的GPS可馴鐘系統(tǒng)研究[J]. 時間頻率學(xué)報(bào), 2008, 31(1): 50-55.
Design and Implementation of a RS Decoder Based on Altera’s IP Core
LIU Xue1,2, SU Jian-feng1, SUN Ting3
(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;2. Graduate University of Chinese Academy of Sciences, Beijing 100039, China;3. Xidian University, Xi’an 710071, China)
This paper introduces an Altera’s Reed-Solomon IP core to achieve the RS decoding function, and the method is characterized by short development cycle, low cost and reliability. This paper analyzes the principle of Altera company’s IP core, parameter configuration and interface designing, and verifies the correctness of the design through the timing simulation. This design method has been successfully applied to the data demodulation of BPL long wave receiver module.
RS code; IP core; FPGA(field programmable gate array)
2009-08-01
劉學(xué),男,碩士,主要從事衛(wèi)星導(dǎo)航技術(shù)的研究。
TN76
A
1674-0637(2010)01-0028-04