新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于FPGA的QC_LDPC碼的譯碼器設計

        一種基于FPGA的QC_LDPC碼的譯碼器設計

        作者: 時間:2014-05-13 來源:網絡 收藏

        (4)地址生成模塊。地址生成模塊中包含一個保存校驗矩陣中所有子塊位置和子塊偏移量信息的只讀寄存器(ROM)。通過從ROM中調取信息,分別產生Zmem和Lmem的讀寫地址。

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

        (5)校驗模塊。校驗模塊在每一次迭代結束之后,對所有校驗方程進行驗證,若全部滿足則停止迭代,否則進行下一次迭代過程,直至達到預先設定的最高迭代次數為止。

        (6)控制模塊。控制模塊中設置整個譯碼器的狀態機,控制譯碼器各個子模塊有序運行。

        3.2 譯碼器中內存讀取的問題及改進

        在PCUB模塊中,每個校驗節點對應的6個變量節點信息串行加入迭代過程,而這些節點信息存儲在與之對應的216個Zmem中。由于校驗矩陣列重為3,因此,若按照校驗矩陣原來的結構,當108個PCUB并行從Zmem中讀取數據時,順序讀取變量節點信息時可能從某一子塊列對應的Zmem中讀取1~3個數據,這樣不同的讀取情況,會增加Zmem的硬件設計復雜度。

        由于變量節點信息加入迭代過程的先后順序并不影響譯碼器的結構,因此對變量節點信息的讀取順序加以改進,將原有的讀取順序重新排列,使得在同一時刻的PCUB從不同的子塊列對應的Zmem中讀取數據,即每一時刻Zmem最多提供一個數據,這便大幅降低了Zmem的設計復雜度,進而提高硬件的通用性。

        4 實現

        選用Altera公司StratixIII系列的EP3SL340器件,設置最大迭代次數為5次,在QuartusII 9.0下完成綜合與布局布線,硬件資源消耗如表1所示。

         

         

        在譯碼過程中,首先花費108個時鐘進行Zmem的初始化過程,完成后開始迭代譯碼。在每一次迭代過程中,PCUB模塊進行108次更新,由于采用流水線結構,每次更新實際僅需花費6個時鐘,再加上第一組數據進入流水線花費的額外6個時鐘,5次迭代共花費6×(108×5)+6=3 246個時鐘。

         

         

        圖2為傳統迭代與分層迭代譯碼算法的性能曲線比較,為AWGN信道模式下采用BPSK調制,進行6 bit量化。通過圖中的性能曲線可看出,在最大迭代次數同為5次的情況下,對正規碼采用分層譯碼器處理后相比采用傳統部分并行結構譯碼器具有較好的譯碼性能表現,在信噪比為2.5 dB的情況一,誤碼率可以達到10-5量級。

        5 結束語

        文中首先利用3個不同的子矩陣分別按照指定的方法進行移位運算,組合得到無4環和6環的基陣,進而利用單位矩陣及其移位矩陣作為替換因子隨機替換基陣中的“1”而擴展得到所需的校驗矩陣。隨后采用分層譯碼算法,該算法較傳統的部分并行結構有較好的收斂性,并降低了迭代次數的要求。同時在Altera公司的StratixIII系列上得以實現,驗證其達到了較高的譯碼吞吐量。

        c++相關文章:c++教程



        上一頁 1 2 3 下一頁

        關鍵詞: FPGA QC_LDPC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 修文县| 株洲县| 镇雄县| 阜康市| 卢氏县| 聂荣县| 宁海县| 濮阳市| 全州县| 大渡口区| 凯里市| 榆中县| 钦州市| 弥渡县| 绥江县| 湘阴县| 潜山县| 甘南县| 容城县| 博白县| 高淳县| 施秉县| 吉林市| 高要市| 西贡区| 河南省| 通州区| 岑溪市| 马公市| 奉贤区| 尤溪县| 阳东县| 永靖县| 扶余县| 富阳市| 淮安市| 梨树县| 繁峙县| 湘西| 水城县| 天峨县|