一種高速低功耗多碼率的Viterbi解碼器的製作方法
2023-12-02 05:29:56 2
專利名稱:一種高速低功耗多碼率的Viterbi解碼器的製作方法
技術領域:
本發明涉及通信領域Viterbi解碼器,尤其涉及一種高速低功耗多碼率的 Viterbi解碼器。
背景技術:
在無線通信系統中,由於無線信道存在反射、散射和衍射而造成的多徑衰落,會造 成時間、頻率和空間域上的彌散,必然會對傳輸數據引入失真和信號判決錯誤。信道編碼技 術通過在信息序列中加入冗餘碼元,來發現、糾正傳輸中發生的信號錯誤,從而提高系統的
可靠性。目前無線通信對數據吞吐率提出了越來越高的要求,如下一代無線區域網(WLAN) 協議IEEE 802. Iln採用正交頻分復用(OFDM)、多輸入多輸出(ΜΙΜΟ)、空時編碼(STBC)等 技術,物理層理想速率最高達600Mbps。為了抵抗由於頻率選擇性衰落信道造成的OFDM子 載波衰落效應,它採用前向糾錯碼(FEC)和交織。在IEEE 802. Iln中的信道編碼方式之一 是卷積碼,碼率有4種1/2,2/3,3/4和5/6。現代無線通信中常常需要達到幾百兆的數據 吞吐率,這對解碼器的工作頻率及數據吞吐率提出很高的要求。同時無線設備成本和功耗 的要求提出了需要降低解碼器實現的複雜度和功耗。為了提高頻譜的利用率,多碼率的卷 積碼一般都應用到現代的無線通信中。因此實際應用中對卷積碼的要求,相應的Viterbi 解碼器需要能有高速、低功耗、多碼率的設計。因此,在實際Viterbi解碼器實現中,需要綜合考慮這速度、功耗和多碼率三個方 面,如何在提高數據吞吐率的前提下儘量降低解碼器的功耗。
發明內容
(一)要解決的技術問題有鑑於此,本發明的主要目的是提供一種高速低功耗多碼率的Viterbi解碼器。( 二 )技術方案為達到上述目的,本發明提供了一種高速低功耗多碼率的Viterbi解碼器,包含 分支度量單元、加比選單元、路徑度量存儲單元、倖存路徑存儲單元、輸出單元和控制單元, 其中分支度量單元,用於計算接收符號與網格圖分支上相應分支符號之間的距離,並 將計算結果輸出給加比選單元;加比選單元,用於將進入每一狀態的兩條分支的前一時刻的倖存路徑度量值與相 應分支度量分別進行相加,進行比較並選取其中較小的為更新的倖存路徑度量值,對應的 路徑為倖存路徑,然後將倖存路徑度量值輸出給路徑度量存儲單元,將倖存路徑輸出給幸 存路徑存儲單元;路徑度量存儲單元,用於存儲加比選單元輸出的更新的路徑度量值;倖存路徑存儲單元,用於通過對加比選單元輸出的倖存路徑進行處理來得到解碼比特,並輸出給輸出單元;輸出單元,用於完成解碼器的緩衝輸出;控制單元,用於控制解碼器中分支度量單元、加比選單元、路徑度量存儲單元、幸 存路徑存儲單元和輸出單元的協調工作與同步。上述方案中,該解碼器的每個模塊都帶有輸入使能的信號,這樣可讓解碼器工作 在不同的碼率和不同的輸入數據的形式。上述方案中,所述分支度量單元以絕對距離來表示收符號與網格圖分支上相應分 支符號之間的距離,並通過減法器來實現。上述方案中,所述的分支度量單元採用絕對距離的方法,對於不同碼率,在補孔單 元中根據碼率在相應的補孔的量化數前面加上一個標誌位來標誌此處碼符號為補孔值,相 應在分支度量計算單元中通過這個標誌位來禁止相應比特的度量值的計算,此時得到相應 的碼符號處的絕對距離為0。上述方案中,所述加比選單元是基於蝶形運算單元,蝶形運算單元的個數與解碼 器的狀態數有關,每個蝶形運算單元包含4個加法器、2個比較器和2個選擇器。上述方案中,所述倖存路徑存儲單元包含輸入選擇單元、寄存器交換單元和輸出 選擇單元,其中輸入選擇單元將加比選單元得到的倖存路徑依次循環寫入到寄存器交換單元的 寄存器交換小組中,這種循環寫入是通過一個計數器來控制寫入的寄存器交換小組的序 號,序號是從0增加到最大寄存器小組的數目,增加由倖存路徑有效時將計數器加1,再根 據計數器的數值將相應的倖存路徑存入與計數器相同數值的寄存器交換小組中,當計數器 達到最大的值,即寄存器交換小組的數目時,計數器置位0,接下來重複前面的過程;寄存器交換單元由一定數量的寄存器交換小組單元構成,組數一般為約束長度的 5 7倍,寄存器交換小組的輸出反饋給輸入選擇單元中,通過輸入選擇單元中的計數器來 選擇當前的寄存器交換小組的輸入是當前寄存器交換小組的輸出還是當前的倖存路徑,當 計數器的數值等於寄存器交換小組的序號時,則將倖存路徑輸入到當前的寄存器交換小組 中,若不等,則將當前寄存器交換小組的輸出作為輸入給當前的寄存器交換小組;輸出選擇單元是依次循環的讀取寄存器交換小組中的數據得到解碼比特。(三)有益效果從上述技術方案可以看出,本發明具有以下有益效果1、本發明提供的這種高速低功耗多碼率的Viterbi解碼器,並行的加比選單元提 高了數據的吞吐率。2、本發明提供的這種高速低功耗多碼率的Viterbi解碼器,動態的輸入輸出選擇 單元,將加比選單元處理得到的倖存路徑動態的輸入到倖存路徑存儲單元中的寄存器交換 小組中,經過一定時鐘周期的解碼處理後,通過輸出選擇單元動態的選擇寄存器交換小組 中的數據作為解碼輸出,從而在得到解碼比特的同時降低解碼器的功耗。3、本發明提供的這種高速低功耗多碼率的Viterbi解碼器,模塊採用使能信號的 設計方法,可以靈活處理不同碼率下的不同輸入數據流的形式。
圖1是(2,1,7)卷積碼編碼器;圖2是本發明中利用到的Viterbi解碼的網格圖;圖3是本發明提供的高速低功耗多碼率Viterbi解碼器的結構示意圖;圖4是本發明的加比選單元的結構圖;圖5是加比選單元中的蝶形單元圖;圖6是最高為清零電路的結構圖;圖7a是本發明倖存路徑存儲單元的結構示意圖;圖7b是本發明寄存器交換小組單元的結構示意圖;圖8是本發明解碼器在TGN信道A下的誤碼率曲線圖;圖9是本發明解碼器在TGN信道B下的誤碼率曲線圖;圖10是在TGN信道A下寄存器翻轉減少比例圖;圖11是在TGN信道B下寄存器翻轉減少比例圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,並參照 附圖,對本發明進一步詳細說明。 以WLAN中使用的卷積碼為例。在WLAN中1/2碼率的卷積碼是通過生成多項式Gl =1330CT和Gl = 1710CT來定義的,約束長度為7,如圖1所示,其餘碼率(2/3,3/4,4/5) 是在1/2碼率的基礎上按照相應的刪餘模式進行刪餘得到的。如圖2所示是(2,1,7)卷積碼的網格圖。Viterbi解碼算法的實質就是在如圖2 中網格圖上選擇與接收符號序列距離最短的一條路徑作為結果來進行解碼。從圖2的網格 圖中可以看到,如果從狀態0出發的2條路徑,在某一狀態會匯合,而且以後這2條路徑一 直複合在一起,由於複合部分分支對於路徑度量的貢獻是相同的,所以在匯合點上就可以 刪掉這2條路徑中前面部分路徑度量較大的那一條。因此在任何時刻,對進入每一狀態的 所有路徑只需保留其中一條具有最小部分路徑度量的路徑,這條被保留的路徑稱為倖存路 徑。(2,1,7)卷積碼的狀態數為64個,在任何時刻,解碼器需要保存64條倖存路徑,同時保 存這64條倖存路徑所對應的路徑度量值。在時刻6以後,每個狀態都有2條路徑進入,每 條路徑的部分路徑度量值都等於前一時刻出發狀態的倖存路徑度量值與相應的分支度量 之和,比較這兩個和,取其中較小的為倖存路徑度量值,對應的路徑為倖存路徑,並把倖存 路徑度量值和倖存路徑存儲在相應的存儲器中。這樣,在以後時刻進行類似的操作來獲得 倖存路徑度量值和倖存路徑,將得到的倖存路徑進行處理即可得到解碼。圖3是本發明提供的高速低功耗多碼率Viterbi解碼器的結構示意圖,輸入數據 是以塊的形式出現,通過信號framejtart和frame_end分別標示數據塊的開始和結束,通 過信號din_Valid標示數據塊中輸入解碼器數據的有效性,解碼器接口上定義的這三個標 示信號是由解碼器外的系統中的控制單元根據實際的情況而產生的,同時這樣的信號標示 定義可以讓解碼器靈活性增強以處理不同輸入的數據流的形式。再參照圖3,本發明提供的高速低功耗多碼率Viterbi解碼器包含分支度量單元、 加比選單元、路徑度量存儲單元、倖存路徑存儲單元、輸出單元和控制單元。其中,分支度
6量單元用於計算接收符號與網格圖分支上相應分支符號之間的距離,並將計算結果輸出給 加比選單元;分支度量單元以絕對距離來表示收符號與網格圖分支上相應分支符號之間的 距離,並通過減法器來實現。加比選單元用於將進入每一狀態的兩條分支的前一時刻的幸 存路徑度量值與相應分支度量分別進行相加,進行比較並選取其中較小的為更新的倖存路徑 度量值,對應的路徑為倖存路徑,然後將倖存路徑度量值輸出給路徑度量存儲單元,將倖存路 徑輸出給倖存路徑存儲單元;路徑度量存儲單元用於存儲加比選單元輸出的更新的路徑度量 值;倖存路徑存儲單元用於通過對加比選單元輸出的倖存路徑進行處理來得到解碼比特,並輸 出給輸出單元;輸出單元用於完成解碼器的緩衝輸出;控制單元用於控制解碼器中分支度量單 元、加比選單元、路徑度量存儲單元、倖存路徑存儲單元和輸出單元的協調工作與同步。如圖4所示,加比選單元包含並行的32個蝶形單元和歸一化防溢出處理單元,(2, 1,7)共有64個狀態,需要32個蝶形單元,每個蝶形單元的結構圖如圖5所示,這樣每個蝶 形運算單元需要4個加法器、2個比較器和2個選擇器。如圖6所示,歸一化防溢出處理單元的輸入來自於32個蝶形運算單元得到的64 個路徑度量值的最高位,判斷64個路徑度量值的最高位比特同時位1時產生一個flag_ clear信號,通過這個信號是否為1來將64個路徑度量值的最高位置位0,這樣完成了防溢 出的處理。圖7a是本發明倖存路徑存儲單元的結構示意圖,倖存路徑存儲單元包含輸入選 擇單元、寄存器交換單元和輸出選擇單元,輸入選擇單元將加比選單元得到的倖存路徑依 次循環寫入到寄存器交換單元的寄存器交換小組中,這種循環寫入是通過一個計數器來控 制寫入的寄存器交換小組的序號,序號是從0增加到最大寄存器小組的數目,增加由倖存 路徑有效時將計數器加1,再根據計數器的數值將相應的倖存路徑存入與計數器相同數值 的寄存器交換小組中,當計數器達到最大的值,即寄存器交換小組的數目時,計數器置位0, 接下來重複前面的過程。圖7b是本發明寄存器交換小組單元的結構示意圖。寄存器交換單元由一定數量 的圖7(b)所示的寄存器交換小組單元構成,組數一般為約束長度的5 7倍,這裡我們選 擇組數位40,每個寄存器交換小組單元由64個寄存器和64個2選1的選擇器組成,寄存 器交換小組的輸出反饋給輸入選擇單元中,通過輸入選擇單元中的計數器來選擇當前的寄 存器交換小組的輸入是當前寄存器交換小組的輸出還是當前的倖存路徑,當計數器的數值 等於寄存器交換小組的序號時,則將倖存路徑輸入到當前的寄存器交換小組中,若不等,則 將當前寄存器交換小組的輸出作為輸入給當前的寄存器交換小組。輸出選擇單元是依次循 環的讀取寄存器交換小組中的數據得到解碼比特。這種方法不需要在寄存器交換小組之間 進行數據傳遞,只是在寄存器交換小組內進行數據選擇傳遞,經過一定次數的選擇交換後 每組中的寄存器會收斂於解碼的比特,這樣就會減少寄存器組之間數據傳遞引起的狀態翻 轉,從而達到降低功耗的目的。圖8是本發明解碼器在TGN信道A下的誤碼率曲線圖,此信道只有一條徑,分別得 到了不同調製方式和碼率下的誤碼率曲線圖。圖9是本發明解碼器在TGN信道B下的誤碼率曲線圖,此信道有九條徑,分別得到 了不同調製方式和碼率下的誤碼率曲線圖。圖10是在TGN信道A下得到的寄存器翻轉減少比例的曲線圖,其中寄存器組深度為40。隨著信噪比的增加,寄存器翻轉減少比例也增加,能根據信噪比的大小自動調整 功率。在BPSK和1/2碼率(MCS = 1)下,從信噪比5到25,寄存器翻轉減少的比例一直在 0. 6以上;在64QAM和2/3碼率(MCS = 7)下,寄存器翻轉減少的比例也隨著信噪比增加而 增大。可見,此方法能減少寄存器翻轉,降低的功耗隨著信噪比增加而增加。圖11是在TGN信道B下得到的寄存器翻轉減少比例的曲線圖,其中寄存器組深度 為40。可以得到類似的結論。由於多徑的影響其減小的幅度沒有信道A的明顯。以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳 細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,並不用於限制本發明,凡 在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保 護範圍之內。
權利要求
1.一種高速低功耗多碼率的Viterbi解碼器,其特徵在於,包含分支度量單元、加比選 單元、路徑度量存儲單元、倖存路徑存儲單元、輸出單元和控制單元,其中分支度量單元,用於計算接收符號與網格圖分支上相應分支符號之間的距離,並將計 算結果輸出給加比選單元;加比選單元,用於將進入每一狀態的兩條分支的前一時刻的倖存路徑度量值與相應分 支度量分別進行相加,進行比較並選取其中較小的為更新的倖存路徑度量值,對應的路徑 為倖存路徑,然後將倖存路徑度量值輸出給路徑度量存儲單元,將倖存路徑輸出給倖存路 徑存儲單元;路徑度量存儲單元,用於存儲加比選單元輸出的更新的路徑度量值;倖存路徑存儲單元,用於通過對加比選單元輸出的倖存路徑進行處理來得到解碼比 特,並輸出給輸出單元;輸出單元,用於完成解碼器的緩衝輸出;控制單元,用於控制解碼器中分支度量單元、加比選單元、路徑度量存儲單元、倖存路 徑存儲單元和輸出單元的協調工作與同步。
2.根據權利要求1所述的高速低功耗多碼率的Viterbi解碼器,其特徵在於,該解碼器 的每個模塊都帶有輸入使能的信號,這樣可讓解碼器工作在不同的碼率和不同的輸入數據 的形式。
3.根據權利要求1所述的高速低功耗多碼率的Viterbi解碼器,其特徵在於,所述分支 度量單元以絕對距離來表示收符號與網格圖分支上相應分支符號之間的距離,並通過減法 器來實現。
4.根據權利要求3所述的高速低功耗多碼率的Viterbi解碼器,其特徵在於,所述的分 支度量單元採用絕對距離的方法,對於不同碼率,在補孔單元中根據碼率在相應的補孔的 量化數前面加上一個標誌位來標誌此處碼符號為補孔值,相應在分支度量計算單元中通過 這個標誌位來禁止相應比特的度量值的計算,此時得到相應的碼符號處的絕對距離為0。
5.根據權利要求1所述的高速低功耗多碼率的Viterbi解碼器,其特徵在於,所述加比 選單元是基於蝶形運算單元,蝶形運算單元的個數與解碼器的狀態數有關,每個蝶形運算 單元包含4個加法器、2個比較器和2個選擇器。
6.根據權利要求1所述的高速低功耗多碼率的Viterbi解碼器,其特徵在於,所述倖存 路徑存儲單元包含輸入選擇單元、寄存器交換單元和輸出選擇單元,其中輸入選擇單元將加比選單元得到的倖存路徑依次循環寫入到寄存器交換單元的寄存 器交換小組中,這種循環寫入是通過一個計數器來控制寫入的寄存器交換小組的序號,序 號是從0增加到最大寄存器小組的數目,增加由倖存路徑有效時將計數器加1,再根據計數 器的數值將相應的倖存路徑存入與計數器相同數值的寄存器交換小組中,當計數器達到最 大的值,即寄存器交換小組的數目時,計數器置位0,接下來重複前面的過程;寄存器交換單元由一定數量的寄存器交換小組單元構成,組數一般為約束長度的5 7倍,寄存器交換小組的輸出反饋給輸入選擇單元中,通過輸入選擇單元中的計數器來選擇 當前的寄存器交換小組的輸入是當前寄存器交換小組的輸出還是當前的倖存路徑,當計數 器的數值等於寄存器交換小組的序號時,則將倖存路徑輸入到當前的寄存器交換小組中, 若不等,則將當前寄存器交換小組的輸出作為輸入給當前的寄存器交換小組;輸出選擇單元是依次循環的讀取寄存器交換小組中的數據得到解碼比特。
全文摘要
本發明公開了一種高速低功耗多碼率的Viterbi解碼器,包括分支度量單元、加比選單元、路徑度量存儲單元、倖存路徑存儲單元、輸出單元和控制單元,加比選單元接收分支度量單元的分支度量值並將處理後得到的倖存路徑送到倖存路徑存儲單元進行解碼處理得到解碼比特,同時將加比選得到的路徑度量值存入路徑度量存儲單元以備下次的加比選處理。本發明適用於(2,1,7)卷積碼的Viterbi解碼器,具有高吞吐率,低功耗特點,可支持1/2,2/3,3/4,5/6碼率。解碼器採用全並行的加比選(ACS)單元,最高位清零防溢出處理,採用了一種可降低功耗的寄存器交換法,可有效減少寄存器翻轉動態功耗,能根據信噪比的大小自動調整功率。
文檔編號H03M13/41GK102064839SQ20091023783
公開日2011年5月18日 申請日期2009年11月11日 優先權日2009年11月11日
發明者吳斌, 周玉梅, 張振東, 朱勇旭 申請人:中國科學院微電子研究所