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