基于FPGA的LDPC編碼設計

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