<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的RS(255,239)編譯碼器

基于FPGA的RS(255,239)編譯碼器

作者: 時(shí)間:2016-10-18 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要 RS(Reed—Solomon)編碼是一種具有較強糾錯能力的多進(jìn)制BCH編碼,其既可糾正隨機錯誤,又可糾正突發(fā)錯誤。器廣泛應用于通信和存儲系統,為解決高速存儲器中數據可靠性的問(wèn)題,文中提出了RS編碼的實(shí)現方法,并對編碼進(jìn)行了時(shí)序仿真。仿真結果表明,該譯碼器可實(shí)現良好的糾錯功能。

本文引用地址:http://dyxdggzs.com/article/201610/308453.htm

RS(Reed—Solomon)碼是差錯控制領(lǐng)域中的一種重要線(xiàn)性分組碼,既能糾正隨機錯誤,又能糾正突發(fā)錯誤,且由于其出色的糾錯能力,已被NASA、ESA、CCSDS等空間組織接受,用于空間信道糾錯。本文研究了RS碼的實(shí)現方法,并基于Xilinx的FPGA芯片Spartan-6 XC6SLX45完成了器的設計,同時(shí)對其進(jìn)行了仿真和在線(xiàn)調試,并給出了功能仿真圖和測試結果。時(shí)序仿真結果表明,該編譯碼器能實(shí)現預期功能。

1 RS編碼的實(shí)現方法

RS碼是一種多進(jìn)制BCH(Bose—Chaudhuri—Hocquenghem)碼,在給定每個(gè)碼字所具有多少冗余量的情況下,RS碼具有極大的最小距離。即RS碼的最小距離d、信息長(cháng)度k以及碼字長(cháng)度n滿(mǎn)足d=n-k+1。而RS(255 239)碼是在伽羅華(Galois Field)GF(28)中運算得到的,編碼器實(shí)現的關(guān)鍵是乘法器的設計。設計中的乘法是2個(gè)有限域中元素的指數相加與255取模。GF(28)編碼參數如下:碼長(cháng)n=255;信息位個(gè)數k=239;校驗位r=n-k=16;糾錯能力t=8;碼距d=17。生成多項式為

基于FPGA的RS(255,239)編譯碼器

根據式(3)畫(huà)出RS編碼的電路圖,如圖1所示。

基于FPGA的RS(255,239)編譯碼器

n-k級RS編碼器主要由一組線(xiàn)性反饋移位寄存器和控制電路組成,其是n-k=16級編碼器,亦是線(xiàn)性反饋寄存器的反饋系數,reg16寄存器的值與當前輸入的信息碼元異或得到的結果即為feedback寄存器的值。

編碼步驟:

步驟1 將所有寄存器清零,開(kāi)關(guān)放到1上,則239個(gè)信息碼元一邊依次進(jìn)入除法電路,一邊依次輸出。

步驟2 當最后一個(gè)信息碼進(jìn)入電路后,將開(kāi)關(guān)放到2上,第一個(gè)校驗位輸出。

步驟3 校驗碼按時(shí)鐘節拍載入寄存器,并依次輸出。當最后一個(gè)校驗位輸出時(shí),編碼結束。

2 RS編碼的仿真結果及分析

設計的RS(255 239)編碼器使用Verilog HDL對整個(gè)模型進(jìn)行描述,以Xilinx FPGA芯片Spartan-6XC6SLX45為硬件平臺進(jìn)行實(shí)現,并利用ISim仿真工具對RS編碼進(jìn)行仿真。

基于FPGA的RS(255,239)編譯碼器

設計的RS(255,239)編碼器,信息位239位編碼為0,1,2,…,238,則16位校驗位的值為58,236,152,44,88,31,20,168,121,60,32,10,191,166,4,101。設計的RS(255,239)編碼器的仿真圖如圖2所示,當DI_VAL=0時(shí),輸出239個(gè)信息位;當DI_VAL=1時(shí),輸出16個(gè)校驗位。該編碼器實(shí)現了預期的編碼功能。

3 RS譯碼的實(shí)現方法

RS譯碼主要有時(shí)域譯碼和頻域譯碼,時(shí)域譯碼一般采用BM迭代算法或歐式算法(Euclid's Algorithm)。RS譯碼中最重要的環(huán)節是求解關(guān)鍵方程,歐式算法在求解關(guān)鍵方程時(shí)需進(jìn)行多項式次數的判斷,因此造成硬件電路復雜,譯碼速度下降,BM迭代算法具有快速、消耗資源少、控制電路較為簡(jiǎn)單等優(yōu)點(diǎn)。文中改進(jìn)后的BM迭代原理及以該算法為基礎的RS譯碼器的FPGA實(shí)現。RS譯碼可分為4步:(1)由接收到的碼組計算伴隨式。(2)求關(guān)鍵方程。(3)計算出錯誤圖樣。(4)由錯誤圖樣和接收碼組計算出可能發(fā)送的碼字。圖3給出了RS譯碼器的一般步驟框圖。

基于FPGA的RS(255,239)編譯碼器
基于FPGA的RS(255,239)編譯碼器

設錯誤圖樣為E(x),則R(x)=C(x)+E(x)。RS碼的譯碼可分為3步:(1)由接收到的R(x)計算出伴隨多項式S。(2)由伴隨式計算出錯誤圖樣E(x)。(3)由C(x)=及(x)-E(x)計算得到發(fā)送碼字,并完成譯碼。伴隨式是對接收序列R(x)進(jìn)行奇偶校驗的結果,用以判斷R(x)是否為有效碼字,若R(x)為有效碼字則伴隨式S為零,任何S的非零值表示R(x)有錯誤。為譯出一個(gè)糾正t個(gè)錯誤的RS碼,伴隨式S是2t重的,即S=(s1,s2,…,s2t-1,s2t)。

基于FPGA的RS(255,239)編譯碼器
基于FPGA的RS(255,239)編譯碼器

以上運算均可用流水線(xiàn)結構硬件實(shí)現。

基于FPGA的RS(255,239)編譯碼器

初始化時(shí),所有寄存器置零。經(jīng)255個(gè)周期,接收完所有255個(gè)符號后,便可得到全部16個(gè)伴隨式。因整個(gè)譯碼器采用流水線(xiàn)結構,所以在伴隨式計算完后,產(chǎn)生一個(gè)時(shí)鐘周期有效的“sc_done”信號,用以啟動(dòng)后續電路進(jìn)行新的計算。由于在BM模塊中,用到了A(x)與S的卷積求和,因此本模塊將計算出的伴隨式序列串行輸出。

關(guān)鍵方程的計算采用,不僅在RS碼的譯碼中起著(zhù)關(guān)鍵作用,且也是目前已知的求序列線(xiàn)性復雜度最快且最佳的方法之一。該算法采用規整的脈動(dòng)陣列,硬件實(shí)現更為方便。通過(guò)求解關(guān)鍵方程,得到A0~A8,其為后續的模塊提供了參數。

基于FPGA的RS(255,239)編譯碼器

A(x)可用來(lái)搜索錯誤位置,具體方法為:依次將

基于FPGA的RS(255,239)編譯碼器

,則在該位置出現誤碼。模塊框圖如圖5所示。

基于FPGA的RS(255,239)編譯碼器

從上式可看出,兩個(gè)多項式的相乘實(shí)質(zhì)就是兩個(gè)多項式對應的系數卷積求和。因此,該運算也可采用FIR濾波技術(shù)來(lái)實(shí)現,當初始化時(shí),所有寄存器置零。然后每個(gè)時(shí)鐘周期,伴隨式從S1,S2,…,S2t依次移入寄存器。最終2t個(gè)Ωi移位寄存器的內容從左向右依次為Ω2t-1,…,Ω1,Ω0。錯誤多項式可得,整個(gè)譯碼過(guò)程如圖6所示。

基于FPGA的RS(255,239)編譯碼器
基于FPGA的RS(255,239)編譯碼器
基于FPGA的RS(255,239)編譯碼器

該過(guò)程完全實(shí)現流水線(xiàn)結構,其中包括伴隨式計算、關(guān)鍵方程求解、、等模塊并行工作。在經(jīng)過(guò)295個(gè)固有延遲后,每個(gè)時(shí)鐘周期均可連續輸出經(jīng)校正的碼字。

4 RS譯碼的仿真結果及分析

因設計的譯碼器最大糾錯能力為8個(gè)符號,該文設定錯誤情況是第140位到第147位全錯,正確值為140,141,142,143,144,145,146,147,錯誤值為5,11,56,98,35,15,132,159,圖7是輸入到譯碼器中含8個(gè)連續錯誤碼字的255位編碼序列,圖8是譯碼器輸出全部糾錯以后的編碼序列,由ISim仿真波形圖可知,Err_Indicator表示錯誤標志,設計的譯碼器能實(shí)現最大的糾錯能力。


基于FPGA的RS(255,239)編譯碼器

基于FPGA的RS(255,239)編譯碼器

5 結束語(yǔ)

文中闡述了RS(255,239)編譯碼器的設計原理,并對編碼器給出了在ISim中的時(shí)序仿真結果,其結果證明了該編碼器設計的正確性。而在對譯碼器的設計中,假定出現連續8個(gè)誤碼的情況,并用ISim對所設計的譯碼器進(jìn)行驗證,由時(shí)序仿真結果表明,設計的RS(255,239)譯碼器能實(shí)現最大的糾錯能力。設計的RS(255,239)編譯碼器達到了預定的目標,且該編譯碼器可應用于數據通信和數據存儲系統的差錯控制中。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>