基于BM算法的BCH碼的譯碼硬件實(shí)現
3 硬件設計與實(shí)現
3.1 基于冪次的運算方式
對表1進(jìn)行簡(jiǎn)化,得到表2和表3:本文引用地址:http://dyxdggzs.com/article/192083.htm
將運算步驟都建立在域元素冪次運算的基礎上,流程圖中的“*”,“/”,“+”運算方式都會(huì )改變。例如:(1110)*(1111)mod(10011,這個(gè)為本原多項式)=1011010mod(10011)=0101,轉化成冪次后(1110)*(1111)→a12*a11=α23=α8,原來(lái)二進(jìn)制乘除法電路變?yōu)楹?jiǎn)單冪次的指數加法電路?!?”由原來(lái)的模二加運算變成兩次查表和一次模二加運算,例如,α12+α11→查表二(1l11)+(1110)=000l→查表三0001對應α0,所以得到α12+αll=α0。在硬件實(shí)現中,表2,表3的第二列作為內容存在FPGA的ROM中,第一列作為他們的地址。
3.2 整體譯碼結構設計
以上是BCH譯碼器的整體結構模塊圖,分四個(gè)模塊,下面介紹這四個(gè)模塊的功能:
(1)S_produce:根據接收碼字R(r0 r1 r2…r14),產(chǎn)生伴隨式S(s1,s2,s3,s4,s5,s6);
(2)dr:根據伴隨式S(s1,s2,s3,s4,s5,s6),產(chǎn)生位置差錯式D(dl,d2,d3);
(3)chien:以錢(qián)搜索的方式,根據位置差錯式D(d1,d2,d3),產(chǎn)生錯誤圖樣E(e0,el,e2…e14);
(4)shift_register:同步時(shí)鐘的功能,滿(mǎn)足chien產(chǎn)生e14時(shí),r14恰好輸出:c14=r14+e14。
整個(gè)結構中,dr這個(gè)模塊最為復雜,對應整個(gè)BM算法。圖3是dr模塊圖。計算的功能,并將計算得到的△r值和前一狀態(tài)的D(dl,d2,d3)傳給T_updata,和B_updata這兩個(gè)模塊;B_updata完成B(x)更新的功能(B(x)一xB(x)或B(x)一△-1nd(x)),將值傳給T_updata;T_updata完成T(x)更新的功能(T(x)=d(x)一△rxB(x)),并將計算結果反饋給top_dr,作為當前狀態(tài)的D(dl,d2,d3);control模塊完成控制整個(gè)模塊的時(shí)鐘同步。
4 仿真結果
我們選用了Xilinx公司的xc4v1x60,仿真環(huán)境是xilinxISE6.0,moddsim SE 5.5e,在布線(xiàn)后的時(shí)序報告中得到的系統可以在70MHz的時(shí)鐘上對信號進(jìn)行實(shí)時(shí)的處理。在時(shí)序仿真中我們選用了50MHz的時(shí)鐘,連續輸入兩幀數據(每幀數據15bit),一幀是正確的碼字(100010100110l1),一幀是錯誤的碼字(10001010001111),普通算法在延遲23個(gè)時(shí)鐘周期后輸出結果,簡(jiǎn)化算法在延遲20個(gè)周期后輸出結果。根據譯碼速度計算公式:譯碼速率=(幀長(cháng)*系統頻率)僻碼一幀所需要的時(shí)鐘周期數,則兩種算法的譯碼速率分別為32Mbps,37Mbps。
5 結論
在本文中我們利用FPGA實(shí)現了基于BM迭代譯碼算法的BCH碼譯碼器,并根據FPGA塊ROM資源充足的的優(yōu)勢,采用基于冪次的運算方式,合理地對.BM流程算法進(jìn)行模塊劃分,同時(shí)實(shí)現了簡(jiǎn)化的BM算法,縮短了譯碼延遲,提高了整個(gè)譯碼器的譯碼速度。計算機仿真結果表明,本設計所實(shí)現的BCH譯碼性能基本滿(mǎn)足傳輸要求,為后續長(cháng)BCH碼的硬件實(shí)現作了較好的鋪墊。
評論