• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      符合CCSDS標準的動態(tài)可重構(gòu)LDPC編碼器的FPGA設(shè)計

      2012-09-17 07:54:30邱鵬文李明陽
      電視技術(shù) 2012年21期
      關(guān)鍵詞:分塊寄存器時序

      邱鵬文,柏 鵬,李明陽

      (1.空軍工程大學理學院,陜西西安710051;2.空軍工程大學綜合電子信息系統(tǒng)與電子對抗技術(shù)研究中心,陜西西安 710051)

      1962年,Gallager首次提出 LDPC 碼[1],但沒有引起人們足夠的重視,后來發(fā)現(xiàn)其接近香農(nóng)限的優(yōu)異性能[2],才引發(fā)人們對LDPC碼研究的熱潮,人們提出了多種LDPC編碼器的實現(xiàn)方法[3],有的側(cè)重于碼的優(yōu)良性能,有的側(cè)重于降低硬件實現(xiàn)的復(fù)雜度[4],還有為了適應(yīng)不同傳輸環(huán)境,通信系統(tǒng)需要糾錯編碼的碼率自動地根據(jù)信道環(huán)境做出調(diào)整,這就引出了本文的動態(tài)可重構(gòu)LDPC編碼器設(shè)計。本文嘗試設(shè)計一種性能優(yōu)良復(fù)雜度較低的碼速率重構(gòu)LDPC編碼器,在Modelsim6.5中進行了仿真,并對仿真結(jié)果進行分析。

      1 可重配置基本原理

      可重配置即可重構(gòu)的基礎(chǔ)是模塊化,模塊化要求子模塊具有通用性,所以可重配置又叫具有通用性的子單元模塊化。而非通用子單元需要采用冗余備份,冗余部分考慮布線和子單元的聯(lián)合成全局布線網(wǎng)絡(luò)。功能重構(gòu)的關(guān)鍵模塊有時鐘管理單元、子編碼單元、狀態(tài)控制單元、時序控制單元、輸入輸出接口、全局連線網(wǎng)絡(luò)。

      符合CCSDS標準的 LDPC 采用生成矩陣[5]G=[I,P]的模式,其中P為分塊循環(huán)子矩陣[6],循環(huán)計數(shù)大小為w/4,其特點為生成矩陣由一個個分塊子矩陣構(gòu)成,可以設(shè)計部分并行的編碼器,比如每個子矩陣單獨編碼,子矩陣內(nèi)部采用串行或并行編碼,全局控制將子矩陣編碼結(jié)合成最終的編碼。同時利用分塊循環(huán)特性可以設(shè)計通用的編碼器,當需要另一種編碼時只需要將當前的生成矩陣重新存入到編碼器中,將循環(huán)編碼的控制和計數(shù)器進行重配置即可。圖1為CCSDS標準的2/3碼率生成矩陣的校驗部分。

      圖1 LDPC(1 536,1 024)生成矩陣的校驗分塊循環(huán)子矩陣

      2 碼速率重配置的4種模型

      2.1 串行結(jié)構(gòu)

      串行結(jié)構(gòu)中,編碼器子矩陣上一個編碼周期結(jié)束時刻下載子矩陣首行數(shù)據(jù),并寄存到生成矩陣寄存向量中[7]。編碼向量在編碼周期內(nèi)1 bit循環(huán)右移,并根據(jù)信息元決定子碼元寄存器保持不變還是和生成矩陣寄存向量異或運算。按照這種方式將所有的分塊子矩陣的首行下載并編碼結(jié)束后,整個的編碼過程結(jié)束。這種結(jié)構(gòu)的優(yōu)點是簡單,節(jié)約資源,子編碼模塊可重用,缺點是編碼過程耗時過長。串行結(jié)構(gòu)如圖2所示。

      圖2 串行編碼結(jié)構(gòu)

      2.2 子矩陣內(nèi)部并行結(jié)構(gòu)

      子矩陣內(nèi)部并行結(jié)構(gòu)利用了子矩陣的分塊循環(huán)特點,即已知子矩陣首行后可以通過循環(huán)右移得到整個子矩陣。因此可以按照k行為單位并行編碼,其中k應(yīng)該能夠被子矩陣尺寸整除。每個編碼步調(diào)里根據(jù)輸入的k個信息元是否為1決定子碼元寄存器是否和此位對應(yīng)的生成矩陣寄存向量異或。結(jié)構(gòu)如圖3所示。

      圖3 子矩陣內(nèi)部并行結(jié)構(gòu)

      圖中x(0)~x(k-1)為k個信息元,gen_vec(0)~gen_vec(k-1)為生成矩陣寄存向量,reg_code為子碼元寄存器,下標m代表子矩陣的標號。圖中k+1個數(shù)據(jù)的異或可以采用分層的兩兩異或方式,但是需要考慮的是層數(shù)較多的情況下將會造成器件內(nèi)部較大的時延。相對于串行結(jié)構(gòu),子矩陣內(nèi)部并行結(jié)構(gòu)能將編碼速率提高k倍,但是隨著k的增加,編碼器可工作的最高頻率隨之下降,同時子矩陣編碼需要調(diào)用的異或邏輯也成k倍增加,k的數(shù)值需要根據(jù)器件進行合理選擇。

      2.3 子矩陣外部并行結(jié)構(gòu)

      子矩陣內(nèi)部并行結(jié)構(gòu)用降低最高頻率和異或邏輯k倍增加換取編碼速率的k倍提高,而子矩陣外部并行結(jié)構(gòu)不需要降低最高頻率,它需要子碼元寄存器和生成矩陣寄存向量的k倍增加。這種結(jié)構(gòu)采用k串行結(jié)構(gòu)同時工作,要求這些串行結(jié)構(gòu)的子矩陣必須在生成矩陣的同一行,并且k被生成矩陣尺寸整除。子矩陣外部并行結(jié)構(gòu)克服了子矩陣內(nèi)部并行結(jié)構(gòu)的頻率限制,但是額外支出了寄存器。結(jié)構(gòu)如圖4所示。

      圖4 子矩陣外部并行結(jié)構(gòu)

      2.4 混合并行結(jié)構(gòu)

      混合并行結(jié)構(gòu)是子矩陣內(nèi)部和外部并行的混合使用,可以獲得和子矩陣外部并行結(jié)構(gòu)同樣的編碼速率,能夠克服子矩陣內(nèi)部并行的頻率限制,并且相對于子矩陣外部并行結(jié)構(gòu)降低寄存器開銷。它采用子矩陣內(nèi)部并行結(jié)構(gòu)為基本單元,k個這樣的基本單元并行工作,圖5為混合并行結(jié)構(gòu)圖。

      從上述分析可以看出這4種編碼結(jié)構(gòu)具有內(nèi)在的聯(lián)系。串行編碼結(jié)構(gòu)是子矩陣外部并行編碼結(jié)構(gòu)的子結(jié)構(gòu),同時也是子矩陣內(nèi)部并行編碼結(jié)構(gòu)中k=1的特例。子矩陣內(nèi)部并行編碼結(jié)構(gòu)是混合并行結(jié)構(gòu)的子結(jié)構(gòu),同時串行結(jié)構(gòu)、子矩陣內(nèi)部和外部并行結(jié)構(gòu)都是混合并行結(jié)構(gòu)的特例。可以利用子矩陣內(nèi)部并行結(jié)構(gòu)簡化成串行結(jié)構(gòu)或重配置成更復(fù)雜的混合結(jié)構(gòu)。

      圖5 混合并行結(jié)構(gòu)

      根據(jù)混合并行結(jié)構(gòu)的通用性[8]可以建立通用編碼模型,因為其他3種結(jié)構(gòu)都是混合并行結(jié)構(gòu)的特例。例如串行結(jié)構(gòu)就是混合并行結(jié)構(gòu)中外部和內(nèi)部并行度都為1,并且內(nèi)部并行結(jié)構(gòu)不經(jīng)過異或的特例,可以將其按照混合并行結(jié)構(gòu)描述成外部并行的信息元x1~xk-1全部為0,并且內(nèi)部并行信息的1~l-1位為0的情況。通用模型可以在芯片運行的情況下功能重置,只需要輸入?yún)?shù)控制,當然這種方式是以引入冗余,適當增加資源消耗為前提的。也可以根據(jù)通用模型建立重配置的軟核,這樣重配置需要重新編譯,但是可以剔除資源冗余。

      3 功能重配置關(guān)鍵模塊

      CCSDS標準中LDPC(2 048,1 024)的生成矩陣分塊循環(huán)子矩陣的尺寸為128×128,校驗部分共有8×8個這樣的子矩陣;LDPC(1 536,1 024)的生成矩陣分塊循環(huán)子矩陣的尺寸為64×64,校驗部分共有8×16個這樣的子矩陣;LDPC(1 280,1 024)的生成矩陣分塊循環(huán)子矩陣的尺寸為32×32,校驗部分共有8×32個這樣的子矩陣。由上文可知1/2,2/3,4/5碼率的生成矩陣的校驗部分都可以分解為8×x的形式,且生成矩陣都具有分塊循環(huán)特征,因此三者可共用的通用資源有如下4個模塊化單元[8],也是實現(xiàn)功能重構(gòu)的關(guān)鍵所在。

      3.1 子編碼單元

      子編碼單元為整個可重配置編碼器的核心部分。子編碼單元由與異或、循環(huán)移位和時序控制3部分組成。子編碼單元中共用32位異或門,這是編碼過程中用的最多的邏輯門,32位異或邏輯可以在LDPC(1 536,1 024)和LDPC(2 048,1 024)拼接成64和128位異或門。從速率的角度考慮這里可以引入冗余,即不同編碼的異或單獨配置,同樣循環(huán)移位也采用冗余,即每個步調(diào)循環(huán)右移1 bit。時序控制部分在不同的編碼器之間通用,只是計數(shù)值可以根據(jù)不同編碼進行配置。

      3.2 生成矩陣寄存單元

      生成矩陣寄存單元由一塊塊RAM和時序控制單元組成。塊RAM的位寬為128,時序控制單元根據(jù)不同的編碼選擇將這128位數(shù)據(jù)按照128/64/32位的方式輸出,根據(jù)校驗矩陣的特點每次輸出8次即可將一行的校驗比特全部輸出完畢。

      3.3 狀態(tài)控制單元

      狀態(tài)控制單元中存在著空閑、編碼和發(fā)送3種狀態(tài)。三者的區(qū)別在于編碼狀態(tài)向發(fā)送狀態(tài)以及發(fā)送狀態(tài)向空閑狀態(tài)轉(zhuǎn)移的控制不相同。如在串行結(jié)構(gòu)中,編碼狀態(tài)到發(fā)送狀態(tài)分別用接收比特計數(shù)Rcv_Cnt_Bits=128/64/32控制,且接受符號計數(shù)Rcv_Cnt_Syms=8/16/32指示。

      3.4 時序控制單元

      時序控制單元控制編碼和輸出校驗位的步調(diào),例如LDPC(2 048,1 024)碼有模128計數(shù)器和模8計數(shù)器,這里的2個參數(shù)128和8可以作為寄存器值通過重設(shè)置進行改變,從而符合3種不同編碼器的實現(xiàn)要求。

      綜上所述,圖6為可重配置編碼器結(jié)構(gòu)圖。

      4 仿真結(jié)果分析

      4.1 時序分析

      選擇Xilinx硬件v595t芯片,在ISE12.1軟件平臺[10]上設(shè)計了CCSDS標準的2/3碼率的LDPC(1 536,1 024)編碼器的不同編碼速率重配置的FPGA程序,并在Modelsim6.5中分別進行仿真,仿真結(jié)果見圖7和圖8。

      圖6 可重配置編碼器結(jié)構(gòu)圖

      圖7為采用子矩陣外部并行結(jié)構(gòu)的8倍速率編碼器的時序,編碼需要1 024個時鐘,因為生成矩陣的分塊循環(huán)子矩陣尺寸為64×64,所以每64個時鐘內(nèi)需要下載一次生成矩陣的首行。由于CCSDS標準的生成矩陣行長總是分塊循環(huán)子矩陣行長的8倍,故需要下載8次才能將生成矩陣的一行全部下載結(jié)束。生成矩陣寄存單元的時序控制單元根據(jù)全局時序控制單元和狀態(tài)轉(zhuǎn)移單元控制生成矩陣下載和傳遞。在這64個時鐘內(nèi)前63個時鐘生成矩陣首行寄存器循環(huán)右移,第64個時鐘傳遞新的生成矩陣首行。

      圖8為采用混合結(jié)構(gòu)的64倍速率編碼器的時序,因為子矩陣內(nèi)部并行度為8,所以每64/8=8個周期下載一次生成矩陣首行,從而編碼需要1 024/8=128個時鐘。因為生成矩陣首行下載需要8個時鐘周期,而每個矩陣首行需要循環(huán)8次,所以二者消耗相同的時間,在子矩陣編碼和下載生成矩陣首行時二者都沒有等待另一方。這個過程中前7個時鐘周期內(nèi)下載生成矩陣首行,第8個時鐘周期將臨時寄存的前7個首行數(shù)據(jù)和此時下載的首行數(shù)據(jù)傳遞給首行數(shù)據(jù)寄存器。

      4.2 資源消耗和工作頻率分析

      根據(jù)2.2節(jié)中對子矩陣內(nèi)部并行結(jié)構(gòu)的分析,內(nèi)部并行會犧牲編碼器的頻率特性,同時并行都是以資源的增加為前提的,在兩種并行結(jié)構(gòu)中,并行都會造成異或邏輯的開銷成倍增加,對應(yīng)于FPGA中的查找表(LUT)的增加,表1是編譯后的資源消耗對比和工作頻率報告。

      表1 外部并行結(jié)構(gòu)和混合結(jié)構(gòu)對比

      通過表1可以看到混合結(jié)構(gòu)在提高編碼速率的情況下,資源使用情況并沒有成倍增長,但是其最高工作頻率有所下降。這是因為混合結(jié)構(gòu)中的內(nèi)部并行結(jié)構(gòu)相對外部并行結(jié)構(gòu)消耗更少的資源,但是編碼時延增大了,最高工作頻率自然就下降了。

      5 結(jié)束語

      為了實現(xiàn)LDPC編碼器碼率重構(gòu)和功能重構(gòu)的目的,同時降低編碼器的硬件實現(xiàn)復(fù)雜度,本文選用CCSDS標準的LDPC生成矩陣,采用可重構(gòu)體系結(jié)構(gòu),通過少量狀態(tài)控制單元和時序控制單元,使得編碼速率提高的情況下資源使用情況并沒有成倍增長,仿真結(jié)果和綜合結(jié)果進一步驗證了設(shè)計預(yù)期,結(jié)果與理論分析一致,如何進一步降低編碼時延是今后研究需要解決的問題。

      [1]GALLAGER R G.Low density parity check codes[EB/OL].[2012-05-02].http://www.rle.mit.edu/rgallager/documents/ldpc.pdf.

      [2]MACKAY D J C,NEAL R M.Near shannon limit performance of low density parity check codes[J].Electronics Letters,1996,32(8):1645-1646.

      [3]DARABIHA A,CARUSONE A C,KSCHISCHANG F R.Multigbit/sec low density parity check decoders with reduced interconnect complexity[C]//Proc.ISCAS 2005.[S.l.]:IEEE Press,2005:5194-5197.

      [4]陳智雄,苑津莎.基于多重置換陣的滿秩結(jié)構(gòu)化LDPC碼構(gòu)造方法[J].電子學報,2012,40(2):314-318.

      [5]王新梅,肖國鎮(zhèn).糾錯碼—原理與方法[M].西安:西安電子科技大學出版社,2001.

      [6]萬哲先.代數(shù)導(dǎo)引[M].北京:科學出版社,2004.

      [7]許幫保,劉春江,郭沛宇,等.LDPC編碼中大矩陣求逆及存儲的一些方法[J].電視技術(shù),2010,34(9):4-6.

      [8]王剛,李冰,劉勇,等.一種可重構(gòu)LDPC編碼器的設(shè)計與實現(xiàn)[J].微計算機信息,2010,26(12):168-170.

      [9]楊光,黃正興.LU分解法的LDPC碼編碼器的FPGA實現(xiàn)[J].電視技術(shù),2011,35(23):55-58.

      [10]田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學出版社,2008.

      猜你喜歡
      分塊寄存器時序
      時序坐標
      基于Sentinel-2時序NDVI的麥冬識別研究
      Lite寄存器模型的設(shè)計與實現(xiàn)
      分塊矩陣在線性代數(shù)中的應(yīng)用
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      反三角分塊矩陣Drazin逆新的表示
      基于自適應(yīng)中值濾波的分塊壓縮感知人臉識別
      基于多分辨率半邊的分塊LOD模型無縫表達
      DPBUS時序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      长白| 晋州市| 巴楚县| 习水县| 吉木萨尔县| 上饶市| 呼图壁县| 宁远县| 张家川| 和林格尔县| 齐河县| 嘉黎县| 淅川县| 新巴尔虎右旗| 江源县| 萨嘎县| 西和县| 罗平县| 绥中县| 凤庆县| 昌黎县| 孟村| 紫阳县| 夏津县| 富阳市| 绥江县| 宝清县| 灵丘县| 库车县| 永定县| 永新县| 长治县| 中方县| 靖江市| 浮梁县| 丰都县| 秦皇岛市| 镇江市| 湟中县| 咸阳市| 民勤县|