基于FPGA的改進(jìn)型分組交織器的設(shè)計(jì)與實(shí)現(xiàn)
2.4 讀寫使能控制設(shè)計(jì)
考慮到雙端口RAM對其內(nèi)部同一單元地址不能同時(shí)進(jìn)行讀寫操作,因此,整個(gè)交織器設(shè)計(jì)需用讀寫使能控制電路用來對雙端口RAM的地址讀寫進(jìn)行控制,并同時(shí)決定讀寫發(fā)生器何時(shí)開始工作。由于雙端口RAM的讀、寫實(shí)現(xiàn)都是從零地址開始的,因而RAM內(nèi)的每個(gè)存儲單元的讀操作都應(yīng)在寫操作之后,從而保證每個(gè)讀出數(shù)據(jù)的有效性。
讀寫使能控制電路如圖5所示,讀寫控制電路采用類似于分頻器原理[4]的工作方式,電路主要由計(jì)數(shù)器、比較器和D觸發(fā)器來實(shí)現(xiàn):計(jì)數(shù)器與n m比較的結(jié)果作為D觸發(fā)器的時(shí)鐘脈沖信號,當(dāng)計(jì)數(shù)器的計(jì)數(shù)值等于n m時(shí),觸發(fā)器的輸出狀態(tài)進(jìn)行一次反轉(zhuǎn),即相當(dāng)于構(gòu)成了一個(gè)n m的分頻器電路。觸發(fā)器的輸出結(jié)果分成兩路:一路送到雙端口RAM的寫地址使能端;另一路經(jīng)過反相后送給讀地址使能端。這樣便可以使存儲器RAM在“n m”的地址空間范圍內(nèi)交替進(jìn)行“讀/寫”數(shù)據(jù)的操作。
讀寫使能控制電路
2.5 設(shè)計(jì)中的遇到的問題及解決辦法
交織器的設(shè)計(jì)中包含的運(yùn)算有相乘和相加,相乘會造成字長的變化。這便會帶來數(shù)據(jù)位數(shù)匹配的問題,下面我們以讀地址電路(圖4)為例給出解決辦法:
進(jìn)入乘法器的兩路數(shù)據(jù)均為8位,經(jīng)過乘法運(yùn)算后,數(shù)據(jù)位數(shù)會增加到16位,同時(shí)需要與來自計(jì)數(shù)器Ⅱ的8位數(shù)據(jù)進(jìn)行加法運(yùn)算。通常情況下多采取舍入或截尾的方法,即將16位數(shù)據(jù)的高8位字節(jié)舍去,這種方法的不足是當(dāng)m、n的乘積大于256(11111111H)時(shí),數(shù)據(jù)的高8位不全為0,舍去會帶來輸出結(jié)果的錯誤,因而可能造成交織器輸出碼字的錯誤。因此,可采用“補(bǔ)位”的辦法,將輸入加法器的8位數(shù)據(jù)補(bǔ)成16位(在8位數(shù)據(jù)前補(bǔ)8位0),以增長位寬從而達(dá)到數(shù)位匹配的目的。
3 QuartusⅡ仿真結(jié)果及分析
交織器的仿真波形如圖6所示(其中“clk”為驅(qū)動時(shí)鐘,“rden”、“wren”為讀、寫使能,“data”、“result”為輸入、輸出雙端口RAM的數(shù)據(jù)序列):
Quartus
從QuartusⅡ波形仿真結(jié)果看到當(dāng)交織矩陣的m,n值為5和3時(shí),雙口RAM的輸出數(shù)據(jù)為“0、5、10、1、6…”;當(dāng)m,n調(diào)整為8和 6后,雙口RAM的輸出為“0、8、16、24…”??梢钥闯?,在任意選取不同的m值和n值后,交織器能夠根據(jù)分組交織的原理將輸入RAM的數(shù)據(jù)字或比特位流進(jìn)行交織,輸出所需的數(shù)據(jù)序列,達(dá)到了交織矩陣深度和寬度可控的目的。
4 小結(jié)
本文介紹了可針對不同交織需要的改進(jìn)型分組交織器FPGA設(shè)計(jì),該交織器的主要特點(diǎn)是可根據(jù)信道中突發(fā)誤碼的長度、出現(xiàn)的頻率以及糾錯碼的約束長度、糾錯能力設(shè)定合適的交織深度和寬度(m,n),需要指出的是,m,n選得越大,信道編碼的約束長度越大,從而對付信道中長突發(fā)差錯的能力也就越強(qiáng),但m,n選得越大,也就需要越大的存儲空間,同時(shí)會引入更長的延時(shí),所以應(yīng)根據(jù)數(shù)字通信系統(tǒng)的實(shí)際情況選擇合適的m值和n值。
本文作者創(chuàng)新點(diǎn):對傳統(tǒng)分組交織器進(jìn)行了改進(jìn),實(shí)現(xiàn)了分組交織器的交織矩陣深度和寬度可控,能夠很好的滿足不同數(shù)據(jù)幀傳輸?shù)囊?,具有更好的抗信道突發(fā)錯誤的能力。
評論