《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的RS編碼器的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的RS編碼器的設(shè)計(jì)與實(shí)現(xiàn)
摘要: RS編碼是一種線性的塊編碼,,其表示形式為RS(N,K),。當(dāng)編碼器接收到一個(gè)數(shù)據(jù)信息序列,,該數(shù)據(jù)信息序列被分割成若干長(zhǎng)度為K的信息塊,,并通過(guò)運(yùn)算將每個(gè)數(shù)據(jù)信息塊編碼成長(zhǎng)度為N的編碼數(shù)據(jù)塊。在RS碼中的碼元符號(hào)不是二進(jìn)制而是多進(jìn)制符號(hào),,其中2m進(jìn)制使用更為廣泛,。
關(guān)鍵詞: FPGA RS編碼器 Verilog 乘法器
Abstract:
Key words :

  1 RS編碼原理

  RS編碼是一種線性的塊編碼,其表示形式為RS(N,,K),。當(dāng)編碼器接收到一個(gè)數(shù)據(jù)信息序列,該數(shù)據(jù)信息序列被分割成若干長(zhǎng)度為K的信息塊,,并通過(guò)運(yùn)算將每個(gè)數(shù)據(jù)信息塊編碼成長(zhǎng)度為N的編碼數(shù)據(jù)塊,。在RS碼中的碼元符號(hào)不是二進(jìn)制而是多進(jìn)制符號(hào),其中2m進(jìn)制使用更為廣泛,。能糾正t個(gè)錯(cuò)的RS碼具有,,如表1參數(shù)所示。上述參數(shù),,t表明最多可以糾正t個(gè)隨機(jī)錯(cuò)誤符號(hào),。

RS碼的參數(shù)

  由于RS碼是對(duì)多進(jìn)制符號(hào)糾錯(cuò),RS碼可用于糾正突發(fā)錯(cuò)誤,,比如能糾兩個(gè)八進(jìn)制符號(hào)錯(cuò)誤的RS(7,,3)碼,每個(gè)符號(hào)可用3 bit二進(jìn)制符號(hào)表示,。八進(jìn)制的RS(7,,3)碼相當(dāng)于二進(jìn)制的(21,9)碼,,因此糾兩個(gè)符號(hào)就相當(dāng)于糾連續(xù)6 bit二進(jìn)制符號(hào)的突發(fā)錯(cuò)誤,,然而二進(jìn)制的(2l,,9)碼卻沒(méi)有糾6 bit突發(fā)錯(cuò)誤的能力,它能糾任何2個(gè)隨機(jī)錯(cuò)誤以及長(zhǎng)度≤4的突發(fā)錯(cuò)誤,。

  通用的RS編碼的運(yùn)算步驟:

  (1)確定RS編碼器的生成多項(xiàng)式g(x),,這里選用了最為常用的生成多項(xiàng)式,如式(1)所示,。

公式

  式中a定義為m階初等多項(xiàng)式p(x)的根它可生成全部GF域的元素。(有關(guān)GF域的內(nèi)容可參閱相關(guān)書(shū)籍),。

  以RS(15,,9)為例,RS(15,,9)的生成多項(xiàng)式,,如式(2)

公式

 

  (2)通過(guò)對(duì)取模運(yùn)算產(chǎn)生校驗(yàn)信息多項(xiàng)式p(x)如式(3)

公式

 

  式中m(x)表示RS編碼碼字中的數(shù)據(jù)信息,它是K一1階的線性多項(xiàng)式,。

  (3)通過(guò)加法運(yùn)算生成最終的編碼后的多項(xiàng)式c(x)如式(4)

公式

 

  RS碼的編碼主要是圍繞碼的生成多項(xiàng)式g(x)進(jìn)行的,,一旦生成多項(xiàng)式確定了,則碼就完全確定了,。

  2 RS編碼的設(shè)計(jì)實(shí)現(xiàn)

  在一些特定應(yīng)用域中,,RS碼的設(shè)計(jì)與實(shí)現(xiàn)是比較困難的。RS碼是在有限域上進(jìn)行的代數(shù)運(yùn)算,,不同于常用的二進(jìn)制系統(tǒng),,實(shí)現(xiàn)相對(duì)復(fù)雜一些,其復(fù)雜度主要決定于有限域的大小,、碼字的長(zhǎng)度,、采用的編碼算法等,編碼器的實(shí)現(xiàn)方式主要有以下幾種:

  (1)微處理器實(shí)現(xiàn)的RS編碼,。

  通用的微處理器采用查表(Table—lookup)方法可以實(shí)現(xiàn)RS編碼,,首先需要產(chǎn)生有限域運(yùn)算中的系數(shù),存于內(nèi)存中,,就可以通過(guò)查表的方法實(shí)現(xiàn)編碼了,。

  (2)利用DSP實(shí)現(xiàn)的RS編碼。

  DSP早已成為傳統(tǒng)微處理器的一種替代品,,現(xiàn)在的DSP芯片已能對(duì)一些特定的應(yīng)用提供并行的處理結(jié)構(gòu),,可以在DSP芯片中完成RS編碼,不過(guò)DSP不是專(zhuān)為實(shí)現(xiàn)糾錯(cuò)中需要的特定功能設(shè)計(jì)的,,同樣也可以采用查表的方法在DSP中實(shí)現(xiàn)快速有限域運(yùn)算,。

  (3)ASIC實(shí)現(xiàn)的RS編碼。

  ASIC是專(zhuān)用集成電路,,由LSI—Logic Corpera—tion設(shè)計(jì)的ASIC芯片,,有3 kB的RAM和4 kB的ROM,,是實(shí)現(xiàn)高速編碼器的最佳選擇。

  (4)FPGA實(shí)現(xiàn)的RS編碼,。

  FPGA能夠快速和經(jīng)濟(jì)地將電路描述轉(zhuǎn)化為硬件實(shí)現(xiàn),,而且對(duì)設(shè)計(jì)的修訂也比較方便。而通常的ASIC需要的設(shè)計(jì)時(shí)間較長(zhǎng),,制作費(fèi)用也較高,,也不便于調(diào)整。所以本設(shè)計(jì)是基于FPGA的RS編碼設(shè)計(jì),。

  如圖1所示為本設(shè)計(jì)所采用的編碼器的結(jié)構(gòu),。

本設(shè)計(jì)所采用的編碼器的結(jié)構(gòu)

  其工作原理如下:

  (1)寄存器R0~R2t-1全部清零。開(kāi)關(guān)接通A點(diǎn),,然后信息位分為兩路送電路中,,一路直接送入C(x),一路送入除法電路并進(jìn)行移位,。每一個(gè)時(shí)鐘移一個(gè)字節(jié),;

  (2)在k個(gè)時(shí)鐘結(jié)束的時(shí)候,信息位全部輸入,,完成除法功能,。此時(shí)移位寄存器里保留了余式r(x)的系數(shù),這就是RS碼的校驗(yàn)位,;

  (3)在k+1個(gè)時(shí)鐘到來(lái)的時(shí)候,,開(kāi)關(guān)接通B點(diǎn)。寄存器中的數(shù)據(jù)依次移出,,送入信道,。在經(jīng)過(guò)2t個(gè)時(shí)鐘后數(shù)據(jù)全部移出,得到2t個(gè)校驗(yàn)位,。這2t個(gè)校驗(yàn)位跟在原先的尼個(gè)信息位的后面,,組成(n,k)碼輸出,。這樣就完成了RS碼的編碼,;

  (4)寄存器R0~R2t-1全部清零,重復(fù)步驟(1),、(2),、(3),完成對(duì)下一組RS碼的編碼,。

  3 RS編碼乘法器Verilog語(yǔ)言描述

  下面以RS(15,,9)為例描述有限域的乘法實(shí)現(xiàn)思路如下:

程序

程序

 

  根據(jù)上面的式子可以寫(xiě)出RS(15,9)的6個(gè)乘法器,。如:與g0相乘的結(jié)果

程序

 

  其余乘法器的描述方法與此類(lèi)似,。完成對(duì)乘法域的語(yǔ)言描述,,剩下的工作就是對(duì)加法器的描述了,由于加法實(shí)現(xiàn)比較簡(jiǎn)單,,這里就不做介紹了,。接下來(lái)就是控制輸出信息位還是校驗(yàn)位的開(kāi)關(guān)都是比較好設(shè)計(jì)的。

  4 RS編碼器的仿真

  本設(shè)計(jì)是實(shí)現(xiàn)了RS(15,,9)的編碼,,本設(shè)計(jì)編碼器的模塊框圖,如圖2所示,。

編碼器的模塊框圖

 

 

  各信號(hào)說(shuō)明如下:

  本設(shè)計(jì)信號(hào)時(shí)鐘clk周期是40 ns,,clrn是復(fù)位號(hào),data表示信息輸入有效,,enable表示啟動(dòng)編碼器,,開(kāi)始編碼,,x是4 bit信息符號(hào),,y是編碼生成的4 bit碼字。由下圖編碼圖形可知,,一次編碼周期需要590.0 ns,,最大編碼速率為l700 MHz。因此,,一次編碼需要15個(gè)時(shí)鐘周期,。在25 MHz的時(shí)鐘下,RS編碼器仿真時(shí)序圖,,如圖3和圖4所示,,并由仿真圖可看出,本算法的編碼速度高時(shí)延間隔不到半個(gè)周期,。

 

RS編碼器仿真時(shí)序圖

 

  RS編碼測(cè)試數(shù)據(jù)如下:

  輸入信息:0,,1,2,,3,,4,5,,6,,7,8,;

  編碼器輸出:0,,1,2,,3,,4,,5,6,,7,,8,B,,C,,0,5,,7,。

  5 結(jié)束語(yǔ)

  RS編碼的所有運(yùn)算都是建立在有限域的基礎(chǔ)上的,其中乘法器的設(shè)計(jì)是其編碼技術(shù)的關(guān)鍵,。本設(shè)計(jì)實(shí)現(xiàn)了RS(15,,9)的編碼設(shè)計(jì)和仿真,仿真輸出結(jié)果與理論分析一致,,基于相同的原理,,可以實(shí)現(xiàn)任意數(shù)據(jù)塊長(zhǎng)度的RS編碼器設(shè)計(jì)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。