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