0 引 言
目前,LDPC" title="LDPC">LDPC碼已廣泛應用于深空通信,、光纖通信,、數(shù)字音視頻廣播等領域。由于有著較Turbo碼更優(yōu)秀的性能,,LDPC碼已成為第四代移動通信(4G)系統(tǒng)信道編碼方案強有力的競爭者,。在數(shù)字電視" title="數(shù)字電視">數(shù)字電視地面廣播系統(tǒng)中,為了滿足不同信道條件和不同接收設備的用戶需要,,信道編碼往往需要和多種調(diào)制方式配合,。以便在不同的場合下可以靈活應用。這就要求通信系統(tǒng)的信道編碼模塊的輸出碼流寬度具備一定的靈活性,,給編碼后的符號映射模塊提供最佳的碼流格式,,提高編碼器" title="編碼器">編碼器的通用性,降低符號映射設計的復雜度,。我國數(shù)字電視地面廣播標準(DTMB標準" title="DTMB標準">DTMB標準)采用三種碼率的LDPC碼,、五種不同的符號映射方式。為得到較好的通用性,,LDPC編碼器不僅需要同時支持三種碼率的LDPC碼.而且輸出的碼流格式需要靈活可控,,以便符合五種符號映射方式的最佳碼流格式。這里主要針對這種情況,,使用Verilog硬件描述語言在FPGA芯片上設計實現(xiàn)LDPC編碼器,,并測試驗證該編碼器的正確性。
1 DTMB標準中的LDPC編碼與符號映射
DTMB標準中的LDPC碼屬于準循環(huán)LDPC碼,,其生成矩陣具有如式(1)所示的格式,。
式中:Gi,j為b×b的循環(huán)方陣,,1≤i≤k-c,1≤j≤c,;I為b×b的單位陣,;o為b×b的零方陣。
DTMB標準支持0.4,,0.6,,0.8三種碼率的LDPC碼。碼率為0.4的LDPC(7493,,3048)碼的生成矩陣Gqc具有參數(shù)k=24,,c=35和b=127;碼率為0.6的LDPC(7493.4572)碼的生成矩陣Gqc具有參數(shù)k=36,,c=23和b=127,;碼率為0.8的LDPC(7493,6096)碼的生成矩陣Gqc具有參數(shù)k=48,,c=11和b=127,。假設信息序列為S,碼字序列為C,,LDPC編碼可利用等式C=S×Gqc,。由系統(tǒng)碼的特點可知,信息序列與Gqc前半部分相乘得到校驗位,,然后在校驗位后面加上信息序列就是碼字序列,。求校驗位時具體的做法是,信息序列S與Gqc的第1列乘得到第1個校驗位,,信息序列S與Gqc的第2列乘得到第2個校驗位,以此類推直到c-1列,,可以求得所有c個校驗位,。
DTMB系統(tǒng)中的碼流經(jīng)過LDPC編碼后,刪除前五個校驗比特,,接著映射成均勻的符號流,。DTMB標準包含64QAM,32QAM,,16QAM,,4QAM,4QAM=NR五種符號映射關系,,各種符號映射加入相應的功率歸一化因子,,使各種符號映射的平均功率趨同。對于64QAM,,由于每6 b對應于1個星座符號,,因此最佳的輸入碼流寬度為6,。類似地,對于32QAM,,每5 b對應于1個星座符號,,最佳輸入碼流寬度為5;對于16QAM,,每4 b對應于1個星座符號,,最佳碼流寬度為4;對于4QAM,,每2 b對應于1個星座符號,,最佳輸入碼流寬度為2。而4QAM-NR映射方式需在4QAM符號映射之前增加NR準正交編碼映射,,由于編碼后的數(shù)據(jù)首先要進行基于比特的卷積交織,,因此最佳的輸入碼流格式為串行數(shù)據(jù)。
2 編碼器的設計與實現(xiàn)
由前文的分析可知,,LDPC編碼器不僅需要同時支持三種碼率的編碼,,而且為了實現(xiàn)與符號映射方式的最佳配合,編碼后的輸出碼流必須支持1,,2,,4,5,,6位可控,。在此采用圖1的硬件實現(xiàn)方案,整個編碼器可分為7個模塊,。
(1)運算模塊,。負責校驗位的計算。式(1)中的每個Gi,j矩陣都是127×127的方陣,,所以可將輸入的信息序列分為長度為127的k個小段,,編碼就可以分解為k個子過程。編碼核心部分采用文獻[7]提出的串行輸入/并行輸出的SRAA電路,,如圖2所示,。其中B存儲Gi,j的生成多項式(矩陣第一行),A用來存儲運算的中間結果,。由于式(1)中的Gi,j是循環(huán)方陣,,它的每一行都是上一行的向右移移位,而第一行是最后一行向右移一位,;每一列都是左一列向下移一位,,而第一列是最后一列向下移一位,所以在每126個時鐘內(nèi)B中數(shù)據(jù)每隔一個時鐘進行一次循環(huán)右移,,126個時鐘后,,讀入下一個Gi,j的生成多項式,。如此循環(huán)計算,即可得到所有的校驗位,。單獨考慮DTMB標準中0.4,,0.6,0.8三種碼率的的編碼,,分別需要35,,23,11個SRAA電路并行才能完成所有的校驗位獲取,。因而為了實現(xiàn)三種碼率編碼器資源的復用,,并且綜合考慮運算速度,在此采用35個SRAA電路并行的方案,。
(2)生成矩陣存儲模塊,。DTMB標準中三種碼率的生成矩陣G1,G2,,G3,,所需存儲的總比特數(shù)是固定的。如果按一般的方案存儲,,那么35個并行SRAA電路須對應寬度為35×127=4 445,,深度為24+36+48=108的存儲空間。針對FPGA中BlockRAM深度大,,寬度小的狹長形結構特點,,存儲的數(shù)據(jù)如果寬度大,深度小就會造成FPGA中存儲資源的大量浪費,,所以在此采取如圖3所示的存儲方案,,把每個SRAA電路所用到的數(shù)據(jù)存儲在一個ROM中,這樣一共只需要35個存儲結構,,第1~11個的寬度為127,,深度為24+36+48=108;第2~23個的寬度為127,,深度為24+36=60;第24~35個的寬度為127,,深度為48,。
(3)地址生成控制模塊。按照一定的時序,,輸出生成矩陣存儲ROM的讀地址,,每隔126個時鐘產(chǎn)生一個load使能信號,從ROM中讀出SRAA運算模塊所需要的生成多項式,。同時也根據(jù)采用碼率的不同,,產(chǎn)生ROM的使能信號,,選擇不同碼率LDPC碼所對應的生成矩陣存儲塊。
(4)并/串轉換模塊,。SRAA電路的輸出為并行數(shù)據(jù),,對并行數(shù)據(jù)做并串轉換,以便碼流控制模塊對輸出碼流的格式進行控制,。
(5)同步FIFO,。DTMB標準的LDPC碼為系統(tǒng)碼,輸出時,,息位在后校驗位在前,,故需要對信息輸入序列進行緩存。當校驗位輸出完畢后,,再從同步FIFO中讀敢信息位補在校驗位后面,,構成完整碼字。
(6)碼流輸出模塊,。為了實現(xiàn)與符號映射方式的最佳匹配,,編碼器輸出碼流格式必須支持1,2,,4,5,,6五64QAM四種符號映射方式時,編碼器輸出的最佳寬度分別為2,,4,,5,6,??紤]到充分利用FPGA中的大量BlockRAM資源優(yōu)勢,在此采用基于乒乓操作的思路,,利用6個寬度為1的FIFO來實現(xiàn)串行數(shù)據(jù)流到指定寬度數(shù)據(jù)流的轉換,,結構原理如圖4所示。
以編碼后進行4QAM映射方式為例,,串行的數(shù)據(jù)流在控制模塊輸出信號fifo_vaIid的控制下,,第1個數(shù)據(jù)存人1號FIFO,第2個數(shù)據(jù)存入2號FIFO,,然后第3個數(shù)據(jù)又存入1FIFO,,第4個數(shù)據(jù)存入2號FIFO,如此循環(huán)直到FIFO填滿,,控制模塊收到從FIFO返回的full信號時,,輸出信號data_rd_en打開1號和2號兩個FIFO是2位而輸入為串行,輸出的速度比輸入快,當FIFO的數(shù)據(jù)被讀空時,,產(chǎn)生一個empty信號給控制模塊通知停止讀FIFO,,此后編碼器輸出0序列,同時輸出數(shù)據(jù)有效信號code_out_en為0,。類似地,,對應16QAM,32QAM,,4QAM,,64QAM可以得到寬度為4,5,,6的輸出碼流,。如果使用的是4QAM-NR符號映射.由于編碼后要先進行交織,碼流串行輸出是最佳選擇,,因此串行的數(shù)據(jù)無需進行FIFO組的緩存,。直接輸出即可。
(7)碼流輸出格式控制模塊,。根據(jù)輸入引腳mod-ulation_type選擇的符號映射方式,,來實現(xiàn)對碼流輸出模塊的乒乓操作。產(chǎn)生控制信號fifo_valid,、data_rd_en,,同時接收碼流輸出模塊返回的full和empty信號,達到控制編碼器輸出碼流寬度的目的,。
3 設計結果與驗證
這里的LDPC編碼器是在Xilinx公司的XC4VSX35 FPGA芯片下實現(xiàn)的,,設計中使用流水線、乒乓操作等技巧提高系統(tǒng)工作的頻率,,綜合后的硬件資源消耗如表1所示,。在布局布線中,對相應的管腳和周期進行適當?shù)募s束,,通過使用不同頻率的激勵作為輸入進行測試,,硬件電路核心部分的最高工作頻率可達到83 MHz左右,完全符合DTMB標準中的最高時鐘頻率要求7.56×6=45.36MHz,。
驗證時,,以0.4碼率的LDPC碼、輸出碼流格式為6位并行為例,,得到時序仿真結果如圖5所示,。在Testbench中對一次時序仿真的輸出碼流序列進行保存,并和Matlab中編碼的結果比較,,LDPC編碼器的輸出與Matlab計算所得的結果是完全一致的。同理,,可以驗證其他兩種碼率在不同的輸出格式下,,LDPC編碼器的編碼結果也是正確的,。
4 結 語
這里實現(xiàn)了一種碼流輸出格式可控的多碼率LDPC編碼器,并驗證了編碼器的正確性,。該編碼器不僅同時支持DTMB標準中三種碼率的LDPC碼,,而且輸出的碼流格式具備1,2,,4,,5,6位寬度可選,,從而實現(xiàn)與4QAM,,16QAM,32QAM,,64QAM,,4QAM-NR五種符號映射方式的最佳匹配,具有較好的通用性,,完全可以應用在DTMB系統(tǒng)的發(fā)射機中,。