專利名稱::一種對具備單個糾錯能力的Reed-Solomon解碼器的集成電路實現(xiàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種Reed-Solomon解碼器的集成電路實現(xiàn)方法,尤其是一種DisplayPort顯示接口標(biāo)準(zhǔn)中RS編碼的集成電路實現(xiàn)方法。
背景技術(shù):
:Reed-Solomon(RS)編碼是一種在移動通信、數(shù)字存儲中無處不在的糾錯編碼,對隨機錯誤、突發(fā)錯誤和刪除錯誤都有良好的糾錯性能。RS碼的編解碼算法已經(jīng)比較成熟,隨著微電子及相關(guān)技術(shù)的發(fā)展,對RS碼的研究重點也轉(zhuǎn)移到了硬件快速高效的實現(xiàn)上。RS碼是一種以數(shù)據(jù)塊為對象的編解碼,其一般的表達(dá)式為RS(n,k),k為有效數(shù)據(jù)塊中基本元素的個數(shù),n為包括有效數(shù)據(jù)和數(shù)據(jù)塊校驗碼在內(nèi)的全部碼長,即基本元素的總數(shù)。RS(n,k)碼的糾錯能力為(n-k)/2個基本單元。以DisplayPort數(shù)字顯示接口標(biāo)準(zhǔn)中的RS(15,13)為例,15代表每次計算以15個基本單位的數(shù)據(jù)為一組,每組中有13個信息數(shù)據(jù),剩余2個為生成的數(shù)據(jù)塊校驗碼,其糾錯能力為一個m比特的基本單位。RS碼為一種非二進制編碼,其編碼的基本組成單位并非'l,和'O,,而是存在于特定域內(nèi)的由m個比特所組成的組合,該域為Galois(加洛華)域。Galois域即有限域,對于任何一個素數(shù)p和正整數(shù)m,都存在一個含有pm個元素的有限域,因此Galois域一般表達(dá)為GF(//"),。RS碼中使用的Galois域是由二進制延伸而來,所以其使用的Galois域通常表達(dá)為GF(,),m為RS編碼的基本單元的比特數(shù)。RS編解碼算法的關(guān)鍵是解碼器中求錯誤位置多項式和錯誤值多項式的方法。本發(fā)明是在DisplayPort顯示接口標(biāo)準(zhǔn)中的RS編碼的特殊實現(xiàn),其實現(xiàn)方式也可應(yīng)用于其他糾錯能力為1的RS編碼中。以下將以DisplayPort標(biāo)準(zhǔn)中的RS(15,13)為實例來闡述RS碼的原理及本發(fā)明的內(nèi)容。
發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種對具備單個糾錯能力的Reed-Solomon解碼器的集成電路實現(xiàn)方法,大大簡化了譯碼電路,提高了運算速度。按照本發(fā)明提供的技術(shù)方案,所述對具備單個糾錯能力的Reed-Solomon解碼器的集成電路實現(xiàn)方法包括如下步驟(1)由接收端收到的數(shù)據(jù)計算第一特征變量SI和第二特征變量S2;(2)對錯誤位置的定位計算得到的所述第一特征變量SI的值為錯誤值,而錯誤發(fā)生位置為log"(S2/SI)=log。(S2)-loga(SI);其中以"為底的對數(shù)運算值通過査詢對數(shù)查詢表查得,減法通過二進制減法器進行;所述查詢對數(shù)査詢表操作通過多路器進行;(3)使用錯誤發(fā)生位置和錯誤值對所述接收端收到的數(shù)據(jù)進行糾錯。3本發(fā)明的優(yōu)點是通過對糾錯能力為一個碼的Reed-Solomon糾錯碼解碼器在ASIC中的具體實現(xiàn),即分步循環(huán)利用同一組乘法和加法器,以及運用對數(shù)査詢表代替對數(shù)及除法計算的方法,大大簡化了譯碼電路,達(dá)到了節(jié)約硬件資源和加快運算速度的目的。圖1是錯誤位置的標(biāo)準(zhǔn)計算方法示意圖。圖2是第一特征變量的累加計算示意圖。圖3是第二特征變量的累加及乘法計算示意圖。圖4是錯誤發(fā)生位置計算的示意圖。具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。DisplayPort接口標(biāo)準(zhǔn)采用了RS(15,13)糾錯碼,15代表每次計算中以15個基本單位為一組,每組中有13個是輸入數(shù)據(jù),而剩余2個為生成的糾錯編碼。根據(jù)Reed-Solomon糾錯碼的性質(zhì),每個基本單位為4比特,其運用的Galois域即GF(24),因而每組RS編碼的碼長為(24-1)=15個元素。發(fā)送端的編碼器通過將15個輸入數(shù)據(jù)組成的多項式整除于一個特定的生成多項式,所得余數(shù)即糾錯編碼。DisplayPort標(biāo)準(zhǔn)中規(guī)定的生成多項式為一個二級多項式G(;c)-(x-"。)(x-"1)-公式l除以該多項式的方法是使用一個級數(shù)與G(x)相同的線性反饋移位寄存器,并將其反饋系數(shù)設(shè)為G(x)的兩個根值。位于接收端的糾錯器在收到數(shù)據(jù)后會首先判斷錯誤是否存在,如果存在,其將一方面尋找在每個組合(即15個基本單位)中錯誤發(fā)生的位置,另一方面計算錯誤的大小,因而其設(shè)計比發(fā)送端相對復(fù)雜一些,并需要根據(jù)具體設(shè)計具體實現(xiàn)。以下是接收端的原理和設(shè)計。DisplayPort中的RS(15,13)糾錯碼的每組編碼由15個4字節(jié)為單位的元素組成,接收端收到的數(shù)據(jù)可以用以下多項式表示為+w68.a:8+"69.+wWO.jc10+"611,+"612.x12+"613.jc13+"614.-公式2多項式R(x)的系數(shù)nb0-nbl4代表輸入數(shù)據(jù)的15個四位字節(jié)(nibble),^代表該四位字節(jié)在電路時鐘控制下進入糾錯編碼器的順序,指數(shù)為0表示第十五個,指數(shù)14表示第一個。接收端的多項式可由另一種方式表達(dá)及00-r(jc)+E(jc)-公式3即發(fā)送端的原始輸出多項式T(x)與傳輸中出現(xiàn)的錯誤多項式E(x)之和。在計算過程中,一個名為特征變量的概念被引入其中。特征變量(Syndrome)是檢測所接收的多項式R(x)的組合是否合法的檢測結(jié)果。檢測手段為將生成多項式G(x)的所有根分別帶入R(x),由于發(fā)送端輸出的信號T(x)是G(x)的整數(shù)倍,所以G(x)的根也成為T(x)的根。因而如果R(x)合法有效的話,即R(x)中沒有錯誤(R(x)-T(x)),如果將G(x)的根(即"°和"1)帶入R(x),所得結(jié)果(即特征變量)應(yīng)為零;不為零的特征變量預(yù)示出傳輸中存在錯誤。于是將"°(ae=l)和a1分別帶入公式1可得SI=及(a0)="60+"61+"62+"W+"64+"65+"66+..+"613+"614畫公式4S2-及(a')-w60+w61.a1+w62.a2+w63.a3+w64.a4+"65.or5+...+"613.a13+wM4.a14-公式5SI和S2分別代表第一特征變量和第二特征變量。公式5可以看出第二特征變量S2的計算需要多步乘法運算。通過特征變量的計算方法我們不難看出,特征變量其實是由錯誤多項式E(x)所決定的,艮P:51=E(ar0),S2=E(a"-公式6因而它們可以被用來計算錯誤的發(fā)生位置和錯誤值。RS(15,13)糾錯器的糾正能力僅為一個四字節(jié)單位,因而我們可以將可糾正的錯誤多項式表示為E(x)=錯誤值x錯誤發(fā)生位置,-公式7由公式6可推出兩個特征變量為Sl二E(a。)-錯誤值,-公式852=錯誤值"錯誤發(fā)生位覽=SI."錯誤發(fā)生位置.-公式9可以看出錯誤的大小即為第1特征變量SI的值,而錯誤位置的推算方法為錯誤發(fā)生位置-log。(S2/Sl)-公式10如圖1所示,以往標(biāo)準(zhǔn)計算中首先需要計算第一特征變量SI和第二特征變量S2的值,其中需要大量的乘法運算和加法運算,而后在計算錯誤發(fā)生位置的時候又需要一步4比特的除法以及一次以"為底數(shù)的對數(shù)運算,在ASIC實現(xiàn)過程中將耗費大量硬件資源,并可能造成高速電路中的時序阻礙,因此提出本發(fā)明所述的簡化的實現(xiàn)方法。本發(fā)明的具體實現(xiàn)可分三個步驟,首先是計算第一特征變量Sl和第二特征變量S2的值,從而也得出錯誤值的大小,即第一特征變量S1;其次是根據(jù)已得特征變量計算錯誤發(fā)生的位置;最后是根據(jù)計算所得的錯誤值與位置對接收到數(shù)據(jù)進行糾正。具體如下步驟一,特征變量與錯誤值的計算。第一特征變量S1的計算比較簡單直接,將電路時鐘控制的輸入信號按順序累加即得。而第二特征變量S2的計算則較為復(fù)雜,如公式5,需要多步與GF(24)中元素(即","2)的乘法計算。由于數(shù)據(jù)的傳輸通常是每個時鐘周期一個或整數(shù)個字節(jié)的數(shù)據(jù)量,所以第二特征變量S2的計算可以根據(jù)實際需要循環(huán)利用同一組或幾組乘法和加法器。在DisplayPort接收端,每個時鐘周期的輸入為一個8比特字節(jié),因而接收端的RS(15,13)解碼器的必須在每個時鐘能夠處理兩個4比特的基本單位,因此其特征變量的具體實現(xiàn)方式可如下51-輸入[7:4]+輸入[3:0]+Sl,-公式11由公式5可推出S2="60+a.("61+a.("62+a("W+...+("613+a.w614))…),因而如果每次只輸入8字節(jié)52-輸入[7:4〗+a.輸入[3:0]+ar2.52-公式125如圖2所示,輸入[7:4]代表輸入八位字節(jié)的高四位比特(第8位,第7位,第6位,第5位),輸入[3:0]代表輸入八位字節(jié)的低四位比特(第4位,第3位,第2位,第l位)。公式11和公式12中的加法用異或邏輯實現(xiàn),如圖2和圖3所示,在每組由15個4字節(jié)單位組成的數(shù)據(jù)輸入前,存儲特征變量的寄存器將會被清零,然后把每個時鐘周期的輸入數(shù)據(jù)與特征變量的寄存器累加,并將結(jié)果重新存回寄存器為下一個時鐘周期所用。在15個有效四字節(jié)字符都已輸入后,所得到的第一特征變量S1的值即為錯誤值,如圖2所示,所得第二特征變量S2的值將用以判斷錯誤是否存在及錯誤出現(xiàn)位置。步驟二,Log"查詢表與錯誤位置的計算。在錯誤位置計算的具體實現(xiàn)中,本發(fā)明運用了簡單的4比特的査詢表(Look-UpTable)來取代公式10中復(fù)雜的對數(shù)計算,并進而用一部簡單的二進制減法器來取代把占用資源較多的除法器,如圖4所示。因此,本發(fā)明將用兩個對數(shù)查詢表和一個減法器來實現(xiàn)對錯誤的定位錯誤位置=log。(S2)-log。(Sl).在RS糾錯碼中,每一個4比特基本單元都可以轉(zhuǎn)化成Galois域(16)中的一個元素,"為最基本元素,在Galois域(16)中除零外的其他元素都可用以a為底的冪級數(shù)運算。因此,我們可以利用該域的這個性質(zhì),用査詢表的方式代替以"為底的對數(shù)運算,如下表所示,表格左列為四比特輸入值,右側(cè)為對應(yīng)的Log"結(jié)果,即其相對應(yīng)的以"為底的指數(shù)。<table>tableseeoriginaldocumentpage6</column></row><table>步驟三,錯誤糾正。在計算出特征變量后,我們將根據(jù)其值的情況采取不同的措施當(dāng)兩個特征變量均為零時,可以判定傳輸中沒有錯誤;當(dāng)兩個特征變量中任一且僅有一個為零,或者計算出的錯誤的位置大于9時,說明傳輸中出現(xiàn)錯誤的四字節(jié)字符不只一個,超出糾錯碼的糾錯能力,因而不能糾錯,系統(tǒng)標(biāo)記出無法糾錯;當(dāng)兩個特征變量不為零時,說明錯誤存在,但也存在多個錯誤并存,然而由于已經(jīng)超過糾錯碼的糾錯能力而進行誤判與錯糾的情況。在最后一種情況中,解碼器將進行最后一步,即糾錯,方法是將計算出的錯誤值從接收到信號中減去。而在二進制編碼中加法與減法可以等同,所以可以得出恢復(fù)數(shù)據(jù)=接收到的信號-錯誤;以此來達(dá)到對接收到數(shù)據(jù)査錯和糾錯的目的。權(quán)利要求1、一種對具備單個糾錯能力的Reed-Solomon解碼器的集成電路實現(xiàn)方法,其特征是,所述方法包括如下步驟(1)由接收端收到的數(shù)據(jù)計算第一特征變量(S1)和第二特征變量(S2);(2)對錯誤位置的定位計算得到的所述第一特征變量(S1)的值為錯誤值,而錯誤發(fā)生位置為loga(S2/S1)=loga(S2)-loga(S1);其中以α為底的對數(shù)運算值通過查詢對數(shù)查詢表查得,減法通過二進制減法器進行;所述查詢對數(shù)查詢表操作通過多路器進行;(3)使用錯誤發(fā)生位置和錯誤值對所述接收端收到的數(shù)據(jù)進行糾錯。全文摘要本發(fā)明涉及一種Reed-Solomon解碼器的集成電路實現(xiàn)方法,尤其是一種DisplayPort顯示接口標(biāo)準(zhǔn)中RS編碼的集成電路實現(xiàn)方法。本發(fā)明通過對糾錯能力為一個碼的Reed-Solomon糾錯碼解碼器在ASIC中的具體實現(xiàn),即分步循環(huán)利用同一組乘法和加法器,以及運用對數(shù)查詢表代替對數(shù)及除法計算的方法,大大簡化了譯碼電路,達(dá)到了節(jié)約硬件資源和加快運算速度的目的。文檔編號H03M13/15GK101626250SQ20091018190公開日2010年1月13日申請日期2009年7月23日優(yōu)先權(quán)日2009年7月23日發(fā)明者勇丁,璐盧申請人:無錫圓芯微電子有限公司