新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于CMMB系統的LDPC譯碼器的設計與實現

        基于CMMB系統的LDPC譯碼器的設計與實現

        作者: 時間:2011-03-28 來源:網絡 收藏

        2.5 中間結果存儲單元(R_Mem和Q_Mem)
        由于兩種碼率時,校驗矩陣第1個子矩陣中非零元素的位置不一樣。故在水平更新時,RAM的初始化地址也不一樣,需要用兩組初始地址值。對兩種碼率來說,第1個行子矩陣非零元素的個數都為108(18x6或9x12)。事實上,第1個列子矩陣非零元素的個數同樣為108(3x36)。第1個行子矩陣和第1個列子矩陣非零元素位置有著潛在的一一對應的關系。舉例來說,第1行(下標從0開始)6個1的列位置(下標從0開始)分別為0,7,19,26,31,5664。若分析第5664列可以發現5664=157x36+12,即5664列是第12列的移位。第12列中非零位置對應的行號為0,119,1783=99x18+1。第5664列中非零位置對應的行號為1,826,2945。于是非零位置(1783,12)的映射為(1,5664)。這樣,通過挖掘行子矩陣和列子矩陣中每一個非零位置的對應關系,就能準確地得出VNU和CNU運算單元數據之間的對應關系。把這種對應關系體現到memory的調度上來,就能準確地從R_Mem和Q_Mem中取值以進行水平和垂直更新。表1所列是中間結果存儲單元和寫地址的對應關系。

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

        f.JPG


        這里分別用了108個深度為256、寬度為6bits的單口RAM作為R_Mem和Q_Mem。當進行變量節點運算時,VNU輸入可從Q_Mem中讀取,讀數時,首地址為0,VNU輸出寫入R_Mem中,寫順序首地址為黑體數字,運算周期為256;當所有變量節點更新后,接著是校驗節點的運算,同時
        可進行檢驗方程運算。此時,CNU輸入從R_Mem中讀取,讀數的首地址為0,CNU輸出寫入Q_Mem中,寫入順序首地址為黑體數字,運算周期同樣為256。如此交替,便可完成迭代過程。上述例子中,(1,5664)和(1783,1)的對應關系反映在存儲單元上,正如表1中的第2列所示。

        3 的性能分析及FPGA實現
        作者通過C語言模型和MATLAB模型對進行了浮點和定點仿真。為了達到性能和面積的平衡,位寬的取值為6 bits,而性能只比浮點模型損失了約0.15 dB。在AWGN信道和BPSK的調制解調方式下,當碼率為1/2,信噪比SNR為1.6 dB時,誤碼率已經降至10-5以下。而在信噪比SNR為1.7 dB時,誤碼率已經降至10-7以下;當碼率為3/4時,在信噪比SNR為3.0 dB時,誤碼率可以降至10-6以下。
        本文按照上面所描述的硬件結構,采用XILINX的VirtexIV-XC4VLX80器件實現了標準中兩種碼率的譯碼,并且達到了和C定點模型同樣的性能。在ISE開發工具上對其進行編譯時,其具體的資源利用情況如表2所列。

        g.JPG


        從表2中可以看出,此結構不僅完全地復用了存儲器資源,而且最大限度地復用了邏輯運算單元。正是因為兩種碼率可復用RAM資源,使memory消耗較少,從而剩下大量的RAM資源可以用作其余部分(如解交織模塊)使用。LUT資源相對來說用得較多,這是由于并行結構造成的,它有36個VNU和9個CNU交替進行運算。

        4 結束語
        本文設計的部分并行結構的譯碼器能夠兼容不同碼率和不同校驗矩陣行重的碼。運用該譯碼結構在XILINX的VirtexIVC4VLX80器件上可實現標準中兩種碼率的LDPC譯碼。事實上,針對校驗矩陣的特點,采用一種獨特的存儲器控制策略,可以最大限度地復用硬件資源,從而大大減少了譯碼器的資源消耗。


        上一頁 1 2 3 下一頁

        關鍵詞: CMMB LDPC 系統 譯碼器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 水富县| 图片| 堆龙德庆县| 双江| 梧州市| 宁晋县| 教育| 山丹县| 姚安县| 汤阴县| 赞皇县| 达尔| 安远县| 巴彦淖尔市| 丹棱县| 集安市| 云浮市| 涞源县| 诸暨市| 喜德县| 安泽县| 金华市| 贞丰县| 湟中县| 柏乡县| 东港市| 高淳县| 北川| 铁岭县| 芦溪县| 尤溪县| 宁化县| 东光县| 青铜峡市| 乌兰县| 广汉市| 上思县| 萝北县| 巴里| 循化| 开阳县|