蔣藍(lán)祥,劉昌銀
(中國傳媒大學(xué)信息工程學(xué)院,北京 100024)
DTMB標(biāo)準(zhǔn)的高速多碼率LDPC編碼器設(shè)計(jì)
蔣藍(lán)祥,劉昌銀
(中國傳媒大學(xué)信息工程學(xué)院,北京 100024)
針對(duì)中國數(shù)字電視廣播地面?zhèn)鬏敇?biāo)準(zhǔn)(DTMB)中給出的多碼率LDPC碼生成矩陣的特點(diǎn),設(shè)計(jì)了一種串行輸入串行輸出基于流水線SRAA(Shift Register Adder Accumulator)結(jié)構(gòu)的編碼器,并同時(shí)適用于3種不同碼率的LDPC碼。在Altera公司的EP3SL150型號(hào)FPGA平臺(tái)上,整個(gè)設(shè)計(jì)最高時(shí)鐘可達(dá)341.88MHz,簡化了存儲(chǔ)器設(shè)計(jì)結(jié)構(gòu),完全適合于DTMB標(biāo)準(zhǔn)調(diào)制器的開發(fā)。
準(zhǔn)循環(huán)LDPC碼;中國數(shù)字電視廣播地面?zhèn)鬏敇?biāo)準(zhǔn);SRAA結(jié)構(gòu);FPGA
早在1962年,R.G.Gallager第一次提出了LDPC碼的概念[1]。但是由于其需要龐大而復(fù)雜的計(jì)算一直不被人們所關(guān)心。隨著近幾年器件水平的發(fā)展,LDPC碼的優(yōu)勢(shì)才再一次被發(fā)現(xiàn)。2006年8月,中國數(shù)字電視廣播地面?zhèn)鬏敇?biāo)準(zhǔn)DTMB正式公布,該標(biāo)準(zhǔn)前向糾錯(cuò)碼由外碼(BCH碼)和內(nèi)碼(LDPC碼)級(jí)聯(lián)實(shí)現(xiàn),包含0.4,0.6,0.8共3種碼率[2]。標(biāo)準(zhǔn)中使用的LDPC碼為非規(guī)則準(zhǔn)循環(huán)LDPC碼,該碼性能可接近隨即構(gòu)造的LDPC碼,而實(shí)現(xiàn)的復(fù)雜度又可接近循環(huán)LDPC碼。
如今準(zhǔn)循環(huán)LDPC碼的實(shí)現(xiàn),主流方法是采用基于SRAA(Shift Register Adder Accumulator)結(jié)構(gòu)設(shè)計(jì)。對(duì)于DTMB標(biāo)準(zhǔn)的LDPC編碼器的設(shè)計(jì),文獻(xiàn)[3-5]也提出了多種改進(jìn)方法。如采用多級(jí)并行SRAA結(jié)構(gòu)的實(shí)時(shí)編碼器、部分并行SRAA結(jié)構(gòu)的編碼器等,但其都存在著時(shí)鐘速度不高,ROM存儲(chǔ)器結(jié)構(gòu)復(fù)雜資源消耗大的不足,這對(duì)整個(gè)DTMB調(diào)制器的設(shè)計(jì)帶來了瓶頸。
本文針對(duì)DTMB標(biāo)準(zhǔn)中LDPC碼的特點(diǎn),基于一種串行流水線的SRAA結(jié)構(gòu)[6],設(shè)計(jì)了滿足三種不同碼率的高速LDPC編碼器,并在Altera公司的EP3SL150型號(hào)FPGA上得到實(shí)現(xiàn),最高時(shí)鐘可達(dá)341.88MHz。整個(gè)設(shè)計(jì)在241.96MHz頻率下進(jìn)行仿真驗(yàn)證,完全滿足DTMB調(diào)制器設(shè)計(jì)的要求。
DTMB標(biāo)準(zhǔn)規(guī)定,LDPC碼的生成矩陣Gqc結(jié)構(gòu)如下:
其中,I是b×b階單位矩陣,O是b×b階零矩陣,Gi,j是 b × b 階循環(huán)矩陣且 0≤i≤k-1,0≤j≤c-1,由其首行(即循環(huán)子矩陣的生成多項(xiàng)式)決定。三種不同碼率的各參數(shù)如表1[7]:
表1DTMB標(biāo)準(zhǔn)LDPC三種碼率參數(shù)
由(1)式可知,標(biāo)準(zhǔn)中的LDPC碼為典型的QCLDPC碼,且三種不同碼率生成矩陣具有相同的結(jié)構(gòu),其中循環(huán)子矩陣Gi,j也都為127階。
設(shè)m為輸入信息比特,c為得到的碼字,h為得到的校驗(yàn)位,則有:
由(2)(3)式可知,只需求的校驗(yàn)位h即可得到輸出碼字c。如下式:
標(biāo)準(zhǔn)規(guī)定,舍棄最前面的5個(gè)校驗(yàn)位則為最后的輸出碼字,即每組LDPC編碼后輸出為7488比特碼字。為得校驗(yàn)位,只需將循環(huán)子矩陣Gi,j的生成多項(xiàng)式存于ROM表中即可,這樣既能完全得到生成碼字,又可以大大節(jié)省存儲(chǔ)資源。
表2 DTMB信號(hào)幀中含LDPC編碼對(duì)應(yīng)參數(shù)
DTMB標(biāo)準(zhǔn)規(guī)定,每個(gè)信號(hào)幀由幀頭和幀體兩部分組成,幀體部分包含36個(gè)符號(hào)的系統(tǒng)信息和3744個(gè)符號(hào)的數(shù)據(jù)信息。而3744個(gè)符號(hào)的數(shù)據(jù)信息就是由LDPC編碼后的輸出碼字經(jīng)星座映射后得到。則可得每個(gè)信號(hào)幀所需LDPC編碼如表2。可知,對(duì)于高效的DTMB調(diào)制器,要求一幀數(shù)據(jù)處理中最多可包含3組LDPC碼的編碼輸出,這就需要編碼器滿足高速率要求。
如前文所述,DTMB標(biāo)準(zhǔn)中的LDPC碼為QCLDPC碼,且三種碼率下的循環(huán)子矩陣均為127階?;谏删仃噥韺?duì)編碼器進(jìn)行設(shè)計(jì),利用其子塊循環(huán)的特性,由SRAA結(jié)構(gòu)可在低復(fù)雜度下完成LDPC編碼。
循環(huán)子矩陣的乘法運(yùn)算可由SRAA結(jié)構(gòu)(即循環(huán)移位寄存器累加和結(jié)構(gòu))來完成。其結(jié)構(gòu)框圖如圖1:
圖1 SRAA結(jié)構(gòu)圖
可知,SRAA結(jié)構(gòu)由兩個(gè)同樣深度為127、寬度為1bit的循環(huán)移位寄存器Reg_G和移位寄存器Reg_C 組成。以 Gi,j為例,gi,j為其生成多項(xiàng)式,m 為輸入信息數(shù)據(jù)。在GF(2)域中,乘法與相與等效,而加法與異或等效。當(dāng)?shù)谝粋€(gè)信息位m0輸入時(shí),將gi,j從ROM中讀出并寫入Reg_G,與m0相與后再和Reg_C中數(shù)據(jù)異或后寫入Reg_C。這一過程可等效于下式:
當(dāng)下一個(gè)信息位m1輸入時(shí),Reg_G循環(huán)右移一位得到,再與m1相與后和Reg_C異或后寫入Reg_C。此時(shí)有:
同理,當(dāng)?shù)?27個(gè)信息位m126運(yùn)算完畢后,有:
這樣即完成了信息位與循環(huán)子矩陣的相乘運(yùn)算。
如果隨后再輸入127比特信息位,Reg_G讀入Gi+1,j的生成多項(xiàng)式gi+1,j,再進(jìn)行同上運(yùn)算,則有:
當(dāng)m為k×b的輸入信息位,則得到的Reg_C有:
可知,我們只需進(jìn)行c次上式的運(yùn)算,即完成了LDPC碼校驗(yàn)位的計(jì)算。
考慮到DTMB調(diào)制器中LDPC碼前后模塊的設(shè)計(jì),本文提出一種串行輸入串行輸出的基于串行流水SRAA結(jié)構(gòu)的LDPC編碼器。
由表1中參數(shù)可知,編碼器在0.4碼率下需35個(gè)SRAA結(jié)構(gòu),在0.6碼率下需23個(gè),0.8碼率下需11個(gè),所以要滿足三種碼率則需要使用35個(gè)SRAA結(jié)構(gòu)。SRAA結(jié)構(gòu)之間按串行流水線形式連接,結(jié)構(gòu)框圖如圖2。
以0.4碼率為例:信息位串行輸入,第1個(gè)信息位有效周期,數(shù)據(jù)存于d0寄存器中,SRAA0從數(shù)據(jù)總線中讀取 G0,0的生成多項(xiàng)式 g0,0,并與 d0中的數(shù)據(jù)進(jìn)行運(yùn)算;第2個(gè)信息位有效周期,d0中數(shù)據(jù)移位至d1,新輸入數(shù)據(jù)存入d0中,SRAA1從數(shù)據(jù)總線中讀取 G0,1的生成多項(xiàng)式 g0,1,并與 d1 中的數(shù)據(jù)運(yùn)算,而SRAA0中的g0,0進(jìn)行循環(huán)右移,并與d0中數(shù)據(jù)進(jìn)行運(yùn)算;同上述過程,當(dāng)?shù)?048個(gè)信息數(shù)據(jù)存于d34中并在SRAA34計(jì)算完畢就完成了一組LDPC編碼,在35個(gè)SRAA結(jié)構(gòu)的Reg_C中儲(chǔ)存的便是校驗(yàn)位,隨后依次將校驗(yàn)位左移輸出。
0.6碼率與0.8碼率模式時(shí),通過控制器控制,當(dāng)輸入數(shù)據(jù)移位至d22或d10時(shí),便不再后移。同樣的,后級(jí)的SRAA模塊也不再參與運(yùn)算,滿足三種不同碼率的編碼運(yùn)算。
采用Verilog HDL的RTL級(jí)代碼設(shè)計(jì)整個(gè)模塊,以下介紹各個(gè)模塊的設(shè)計(jì):
(1)matrix_cell模塊
matrix_cell模塊主要完成循環(huán)子矩陣的運(yùn)算,即SRAA結(jié)構(gòu)模塊。結(jié)構(gòu)如圖1,其中含1bit移位輸入,1bit移位輸出用于校驗(yàn)位的串行移位輸出。如圖2中的 matrix_cell模塊陣列連接方式為,SRAA0的移位輸出接到整個(gè)編碼器的輸出,SRAA1的移位輸出與SRAA0的移位輸入相連接,相同的每個(gè)后級(jí)的SRAA結(jié)構(gòu)的移位輸出與前級(jí)的移位輸入相連。
圖2 LDPC編碼器結(jié)構(gòu)框圖
(2)matrix_g_rom模塊
此模塊為存儲(chǔ)各個(gè)循環(huán)子矩陣生成多項(xiàng)式的ROM模塊。由表1中參數(shù)可知,0.4碼率下生成矩陣共含24*35=840個(gè)循環(huán)子矩陣,0.6碼率下含36*23=828個(gè),0.8碼率下含48*11=528個(gè),三種碼率共含2196個(gè)。本設(shè)計(jì)采用統(tǒng)一的ROM設(shè)計(jì)結(jié)構(gòu),即三種碼率的生成多項(xiàng)式都存于同一塊ROM中。ROM深度為2196,寬度為127,地址0~839中儲(chǔ)存0.4碼率的生成多項(xiàng)式,地址840~1667中儲(chǔ)存0.6碼率生成多項(xiàng)式,而地址1668~2195中儲(chǔ)存0.8碼率生成多項(xiàng)式。這樣的設(shè)計(jì)大大簡化了ROM表設(shè)計(jì)結(jié)構(gòu),matrix_cell模塊陣列可使用同一數(shù)據(jù)總線,只需控制各matrix_cell模塊讀取生成多項(xiàng)式的使能即可,也最大程度地節(jié)約了存儲(chǔ)器空間。
(3)ldpcenc模塊
ldpcenc模塊為整個(gè)編碼器的頂層設(shè)計(jì)模塊。模塊框圖如圖3。
d:串行數(shù)據(jù)輸入端;
dvalid:數(shù)據(jù)有效輸入端;
clock:時(shí)鐘輸入端;
clrn:清零輸入端;
fec_level:碼率選擇輸入端;
load:碼率選擇加載輸入端;
q:串行數(shù)據(jù)輸出端;
qvalid:串行數(shù)據(jù)有效輸出端。
在此模塊中例化了matrix_cell模塊陣列和matrix_g_rom模塊。使用狀態(tài)機(jī)控制各模塊的使能及控制信號(hào),為ROM提供讀取地址及各matrix_cell模塊生成多項(xiàng)式數(shù)據(jù)的讀取使能。并完成三種碼率之間的切換。
圖3 ldpcenc模塊框圖
本設(shè)計(jì)完成了DTMB標(biāo)準(zhǔn)下LDPC碼三種碼率的高速編碼。三種碼率的碼長都為7493,標(biāo)準(zhǔn)規(guī)定校驗(yàn)位在前,信息位在后,并舍去最前面5位校驗(yàn)位,實(shí)際輸出碼長為7488。為驗(yàn)證方便,本設(shè)計(jì)仍將前5位的校驗(yàn)位輸出,每一組LDPC編碼的時(shí)間為實(shí)際碼長7493加上流水線長度c,即0.4碼率需7493+35=7528個(gè)周期,0.6碼率需7493+23=7516個(gè)周期,0.8碼率需7493+11=7504個(gè)周期。
DTMB標(biāo)準(zhǔn)中規(guī)定系統(tǒng)基帶符號(hào)率為7.56Msps,高性能調(diào)制器采用4倍升采樣設(shè)計(jì)后的符號(hào)率為30.24Msps。標(biāo)準(zhǔn)中給出了64QAM、32QAM、16QAM、4QAM、4QAM-NR五種映射方式,可知系統(tǒng)中可能的最大比特率為7.56M*6=45.36Mbps??紤]到整個(gè)DTMB系統(tǒng)中復(fù)雜的交織與OFDM信號(hào)成幀,系統(tǒng)時(shí)鐘選用7.56M*16=120.96MHz或者7.56M*32=241.92MHz。為提高系統(tǒng)的高速高效性,采用單時(shí)鐘同步電路設(shè)計(jì),本設(shè)計(jì)采用241.92MHz時(shí)鐘作為編碼器的工作時(shí)鐘進(jìn)行時(shí)序約束,結(jié)果完全滿足系統(tǒng)的要求。
本設(shè)計(jì)選用 Altera公司 StratixIII系列EP3SL150款FPGA,在QuartusII 10.0環(huán)境下進(jìn)行設(shè)計(jì)、綜合及布局布線,全編譯報(bào)告如圖4:
圖4 FPGA全編譯報(bào)告
可知,編碼器僅占用了278892bits的內(nèi)部存儲(chǔ)器資源用作ROM,最大程度的節(jié)約了存儲(chǔ)器資源。編碼器可支持的最大時(shí)鐘為341.88MHz,如圖5:
圖5 最高時(shí)鐘報(bào)告
編碼器的高速設(shè)計(jì)遠(yuǎn)超過于同類設(shè)計(jì),并且更加節(jié)約存儲(chǔ)器資源,但這是以犧牲更多的ALUTs控制寄存器為代價(jià)的。
在QuestaSim6.5環(huán)境下對(duì)編碼器進(jìn)行門級(jí)仿真,如圖6:
圖6 編碼器門級(jí)仿真圖
仿真結(jié)果滿足實(shí)際時(shí)序要求,將門級(jí)仿真結(jié)果數(shù)據(jù)讀入matlab中與直接矩陣運(yùn)算所得碼字進(jìn)行比對(duì),結(jié)果完全一致,編碼器設(shè)計(jì)功能正確。
針對(duì)DTMB標(biāo)準(zhǔn)中LDPC碼的準(zhǔn)循環(huán)特性,本文直接根據(jù)生成矩陣設(shè)計(jì)滿足三種碼率的高速編碼器。整個(gè)設(shè)計(jì)基于串行SRAA結(jié)構(gòu),通過流水線形式完成了串行輸入串行輸出的LDPC編碼。在StratixIII系列 FPGA上進(jìn)行實(shí)現(xiàn),共占用 8%的ALUT,5%的存儲(chǔ)器資源,并最高可支持341.88MHz時(shí)鐘。完全適合于高速的DTMB調(diào)制器中的應(yīng)用。
[1]Gallager R G.Low-density Parity-check Codes[J].IRE Trans Inf Theory,1962,8(1):21-28.
[2]GB20600-2006.數(shù)字電視地面廣播傳輸系統(tǒng)幀結(jié)構(gòu)、信道編碼和調(diào)制[Z].2006.
[3]楊抒文,彭克武,潘長勇.DTMB發(fā)射機(jī)LDPC編碼器的設(shè)計(jì)與優(yōu)化[J].電視技術(shù),2008,32(7):4-5.
[4]彭海云,徐建敏,王鵬,劉瑋.DTMB標(biāo)準(zhǔn)實(shí)時(shí)LDPC編碼器設(shè)計(jì)[J].電視技術(shù),2010,34(1):33-36.
[5]XiangOuyang,ChangchengRuan,Lingxiang Zheng.Implementation of LDPC encoding to DTMB standard based on FPGA[J].IEEE Computer and Information Science,2011:235-238.
[6]Zongwang Li,Lei Chen,Lingqi Zeng.Efficient Encoding Of QuasiCyclic Low-Density Parity-Check Codes[J].IEEE Transactions on Communications,2006,53(11):71-81.
[7]楊知行.地面數(shù)字電視傳輸技術(shù)與系統(tǒng)[M].北京:人民郵電出版社,2009.
Design of High-speed Multi-rate LDPC Encoder to DTMB Standard
JIANG Lan-xiang,LIU Chang-yin
(Information Engineering School,Communication University of China,Beijing 100024,China)
According to multi-rate LDPC generation matrix distribution property of DTMB standard,a high-speed LDPC encoder based on pipelined Shift Register Adder Accumulator architecture is implemented in this paper,which is serial input and serial output.This design can complete three different rate encodings.The maximum clock frequency of the whole design which is implemented on FPGA chip EP3SL150 of Altera can be 341.88MHz.The architecture use simpler memory structure and is suitable for DTMB modulator.
QC-LDPC;DTMB;SRAA circuit;FPGA
TN949.197
A
1673-4793(2012)02-0029-05
2012-3-29
蔣藍(lán)祥(1988-),男(畬族),江西贛州人,中國傳媒大學(xué)碩士.E-mail:jlx_cuc@cuc.edu.cn
(責(zé)任編輯
:王 謙)