基于FPGA的改進型分組交織器的設(shè)計與實現(xiàn)
在整個循環(huán)過程中,讀地址變量add不斷輸出“亂序”的交織地址add=j n+i,以達到設(shè)計的要求。
通過上述分析可以看出,算法中運用了加法、乘法、比較、計數(shù)等算術(shù)邏輯運算,則地址生成的FPGA設(shè)計過程中,需要運用加法器,乘法器,比較器,計數(shù)器等器件以實現(xiàn)相應(yīng)功能。在設(shè)計過程中,這些器件采用由QuartusⅡ軟件為設(shè)計人員提供的參數(shù)化宏單元模塊LPM(library of parameterized modules),使用它不僅可以簡化電路復(fù)雜度,而且大大提高了設(shè)計速度。
2.2.2 讀地址序列產(chǎn)生器設(shè)計
讀地址是整個交織器設(shè)計部分的關(guān)鍵,采用“亂序讀出”的方式。電路設(shè)計主要由加法、乘法器,計數(shù)器和比較器模塊構(gòu)成,其地址序列產(chǎn)生流程在算法分析中已作過詳細說明,這里只作簡單介紹:計數(shù)器Ⅰ相當于變量j,首先在時間脈沖cp的驅(qū)動下從初始狀態(tài)“00000000”開始遞增計數(shù),當?shù)扔谠O(shè)定交織深度m時,產(chǎn)生一個時鐘脈沖信號來驅(qū)動計數(shù)器Ⅱ,此時計數(shù)器Ⅱ的計數(shù)加一,同時與另一設(shè)定數(shù)據(jù)n進行比較,當相等時計數(shù)器Ⅰ、Ⅱ同時清0,重新開始計數(shù)。
讀地址序列產(chǎn)生器
讀地址產(chǎn)生結(jié)果由數(shù)據(jù)n與計數(shù)器Ⅰ每次的輸出數(shù)據(jù)相乘,再與計數(shù)器Ⅱ的計數(shù)數(shù)據(jù)相加而得到。產(chǎn)生的序列依次為:0,n,2n,…,(m-1)n,1,n+1,2n+1,…,(m-1)n+1,2,…,mn-1.
2.3 寫地址序列產(chǎn)生器設(shè)計
交織器采用“順序?qū)懭搿钡膶懙刂贩绞?,即產(chǎn)生“0,1,2 …,mn-1”的順序地址序列。因此寫地址序列產(chǎn)生器的實現(xiàn)可由乘法器,比較器和計數(shù)器等宏單元模塊構(gòu)成(如圖4所示),寫地址具體產(chǎn)生說明如下:
寫地址序列產(chǎn)生器
首先8位計數(shù)器在時鐘脈沖cp的驅(qū)動下由初始狀態(tài)“00000000”開始遞增計數(shù),產(chǎn)生的計數(shù)數(shù)據(jù)分成兩路:一路送到雙端口RAM的寫地址端,作為交織器的寫地址產(chǎn)生信號;另一路則送到比較器的一個輸入端,同乘法器輸出的結(jié)果進行比較:當計數(shù)器累計計數(shù)值小于乘法器計算結(jié)果時,計數(shù)器繼續(xù)累加計數(shù);而當計數(shù)值等于乘法器的計算結(jié)果時,比較器產(chǎn)生中斷控制信號使得計數(shù)器清0,并重新開始計數(shù)。
評論