基于FPGA的LDPC編碼設(shè)計(jì)
矩陣X每行中“1”的位置可看作選擇向量s相應(yīng)元素的地址索引,將選擇的所有元素相加作和,即完成X中某行與向量的運(yùn)算。由于涉及的運(yùn)算都是二進(jìn)制加法,相加作和操作可簡化如下:根據(jù)矩陣每行“1”的位置選擇向量s的元素。統(tǒng)計(jì)被選擇的元素中“1”的個(gè)數(shù),若結(jié)果為奇數(shù)則說明相加的結(jié)果為“l(fā)”,否則說明相加的結(jié)果為“0”。判斷結(jié)果為奇數(shù)或者偶數(shù)可由其二進(jìn)制形式的末位是“1”或者“0”得到。通過設(shè)置2個(gè)計(jì)數(shù)器分別計(jì)算各行行重和選擇的向量s相應(yīng)位置的元素中“1”的個(gè)數(shù),即可實(shí)現(xiàn)乘法單元的運(yùn)算。矩陣向量乘法器的硬件結(jié)構(gòu)如圖3所示。本文引用地址:http://www.ex-cimer.com/article/191682.htm
從圖3可知矩陣向量乘法器包括1)調(diào)度單元,產(chǎn)生各模塊單元的使能信號(hào);2)緩存單元,對(duì)輸入信息序列進(jìn)行緩存處理;3)存儲(chǔ)器控制單元,產(chǎn)生存儲(chǔ)器的地址信號(hào);4)“1”位置存儲(chǔ)器,存儲(chǔ)矩陣各行“1”的位置;5)行重存儲(chǔ)器,存儲(chǔ)矩陣相應(yīng)各行行重;6)乘法單元,進(jìn)行向量乘法運(yùn)算,最后輸出碼字。
4 結(jié)果驗(yàn)證
矩陣向量乘法器仿真結(jié)果驗(yàn)證在Qum-tusⅡ環(huán)境下,實(shí)現(xiàn)output=XsT,得到如圖4所示的仿真時(shí)序圖。圖4中“en”是使能信號(hào),“cloc-k”是時(shí)鐘信號(hào),addr_nun、adds_t分別為2個(gè)存儲(chǔ)器的地址信號(hào),info_seq是輸入信息信號(hào),rece是信息信號(hào)經(jīng)過緩存后的輸出信號(hào),num_t是“1”在各行的位置信息,rOW_t是相應(yīng)各行的行重,output是矩陣與向量相乘的結(jié)果。
由圖4可知,output=[1 1 1],信號(hào)輸出有一個(gè)時(shí)鐘周期的延時(shí),仿真結(jié)果正確。
5 結(jié)束語
用本文描述的方法,在1片Stratix系列的FPGAEPIS25F67217中,實(shí)現(xiàn)了最大碼長為4 096的靈活編碼方案,編碼器占用約lO%的邏輯單元,約13%的存儲(chǔ)單元,綜合后時(shí)鐘頻率達(dá)到166 MHz,數(shù)據(jù)吞吐率達(dá)到48.33 Mb/s。該編碼器結(jié)構(gòu)是一種通用的設(shè)計(jì)方案,可以靈活地應(yīng)用于各種不同類型的LDPC編碼中,并可有效地分配存儲(chǔ)器單元和最大可能地實(shí)現(xiàn)運(yùn)算過程中的并行處理,但由于其采用通用的編碼算法,實(shí)現(xiàn)的復(fù)雜度高于某些特殊結(jié)構(gòu)的LDPC編碼器,比如準(zhǔn)循環(huán)LDPC碼。另外通過優(yōu)化時(shí)序和編碼結(jié)構(gòu),可以進(jìn)一步提高本文編碼器的編碼速度。
評(píng)論