新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于BM算法的BCH碼的譯碼硬件實現

        基于BM算法的BCH碼的譯碼硬件實現

        作者: 時間:2009-04-23 來源:網絡 收藏

        3 硬件設計與實現
        3.1 基于冪次的運算方式
        對表1進行簡化,得到表2和表3:

        本文引用地址:http://www.104case.com/article/192083.htm

        將運算步驟都建立在域元素冪次運算的基礎上,流程圖中的“*”,“/”,“+”運算方式都會改變。例如:(1110)*(1111)mod(10011,這個為本原多項式)=1011010mod(10011)=0101,轉化成冪次后(1110)*(1111)→a12*a11=α23=α8,原來二進制乘除法電路變為簡單冪次的指數加法電路。“+”由原來的模二加運算變成兩次查表和一次模二加運算,例如,α12+α11→查表二(1l11)+(1110)=000l→查表三0001對應α0,所以得到α12+αll=α0。在中,表2,表3的第二列作為內容存在FPGA的ROM中,第一列作為他們的地址。

        3.2 整體譯碼結構設計
        以上是譯碼器的整體結構模塊圖,分四個模塊,下面介紹這四個模塊的功能:
        (1)S_produce:根據接收碼字R(r0 r1 r2…r14),產生伴隨式S(s1,s2,s3,s4,s5,s6);
        (2)dr:根據伴隨式S(s1,s2,s3,s4,s5,s6),產生位置差錯式D(dl,d2,d3);
        (3)chien:以錢搜索的方式,根據位置差錯式D(d1,d2,d3),產生錯誤圖樣E(e0,el,e2…e14);
        (4)shift_register:同步時鐘的功能,滿足chien產生e14時,r14恰好輸出:c14=r14+e14。
        整個結構中,dr這個模塊最為復雜,對應整個BM。圖3是dr模塊圖。計算的功能,并將計算得到的△r值和前一狀態的D(dl,d2,d3)傳給T_updata,和B_updata這兩個模塊;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,作為當前狀態的D(dl,d2,d3);control模塊完成控制整個模塊的時鐘同步。

        4 仿真結果
        我們選用了Xilinx公司的xc4v1x60,仿真環境是xilinxISE6.0,moddsim SE 5.5e,在布線后的時序報告中得到的系統可以在70MHz的時鐘上對信號進行實時的處理。在時序仿真中我們選用了50MHz的時鐘,連續輸入兩幀數據(每幀數據15bit),一幀是正確的碼字(100010100110l1),一幀是錯誤的碼字(10001010001111),普通在延遲23個時鐘周期后輸出結果,簡化在延遲20個周期后輸出結果。根據譯碼速度計算公式:譯碼速率=(幀長*系統頻率)僻碼一幀所需要的時鐘周期數,則兩種算法的譯碼速率分別為32Mbps,37Mbps。


        5 結論
        在本文中我們利用FPGA實現了基于BM迭代譯碼算法的碼譯碼器,并根據FPGA塊ROM資源充足的的優勢,采用基于冪次的運算方式,合理地對.BM流程算法進行模塊劃分,同時實現了簡化的BM算法,縮短了譯碼延遲,提高了整個譯碼器的譯碼速度。計算機仿真結果表明,本設計所實現的譯碼性能基本滿足傳輸要求,為后續長BCH碼的作了較好的鋪墊。


        上一頁 1 2 下一頁

        關鍵詞: BCH 算法 硬件實現

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绥江县| 东辽县| 商水县| 林甸县| 祁连县| 德州市| 延吉市| 吐鲁番市| 高淳县| 修文县| 新沂市| 诸暨市| 沂水县| 茌平县| 安宁市| 平凉市| 锡林郭勒盟| 台北县| 方正县| 汤原县| 沽源县| 芒康县| 准格尔旗| 融水| 兴宁市| 金山区| 永靖县| 枝江市| 铁岭县| 西贡区| 石城县| 陈巴尔虎旗| 隆林| 甘南县| 鹤山市| 丹凤县| 昌吉市| 大港区| 乌拉特后旗| 合川市| 梁河县|