關鍵詞:卷積碼;編解碼器;VHDL;MAX+PlusⅡ
1引言
數字信息在有噪信道中傳輸時,會受到噪聲干擾的影響,誤碼總是不可避免的。為了在已知信噪比的情況下達到一定的誤碼率指標,在合理設計基帶信號,選擇調制、解調方式,并采用頻域均衡或時域均衡措施的基礎上,還應采用差錯控制編碼等信道編碼技術,使誤碼率進一步降低。卷積碼和分組碼是差錯控制編碼的2種主要形式,在編碼器復雜度相同的情況下,卷積碼的性能優(yōu)于分組碼,因此卷積碼幾乎被應用在所有無線通信的標準之中,如GSM ,IS95和CDMA2000的標準中。
目前,VHDL語言已成為EDA領域首選的硬件設計語言,越來越多的數字系統(tǒng)設計使用 VHDL語言來完成。原因是通過VHDL描述的硬件系統(tǒng)“軟核”便于存檔,程序模塊的移植和AS C設計源程序的交付更為方便。因此,他在IP核的應用等方面擔任著不可或缺的角色。在某擴頻通信系統(tǒng)中,我們使用VHDL語言設計了(2,1,6)卷積碼編解碼器,并經過了在FPGA芯片上的驗證實驗。
2卷積編碼器
卷積碼通常記作(n0,k0,m),其編碼效率為k0/n0,m稱為約束長度。(n0 ,k0,m)卷積碼可用k0個輸入、n0個輸出、輸入存儲為m的線性有限狀態(tài)移位寄存器及模2加法計數器電路來實現,卷積碼的編碼方法有3種運算方式:離散卷積法;生成矩陣法;多項式乘積法。此外,卷積碼的編碼過程還可以用狀態(tài)圖、碼樹圖和網格圖來描述。本文設計的編碼器考慮到硬件電路的實現,選擇了多項式乘積法。 本系統(tǒng)所選卷積編碼器如圖1所示,該卷積編碼器為(2,1,6)自正交卷積編碼器。
3大數邏輯解碼器
卷積碼的解碼可分為代數解碼與概率解碼2類。大數邏輯解碼器是代數解碼最主要的解碼方法,他既可用于糾正隨機錯誤,又可用于糾正突發(fā)錯誤,但要求卷積碼是自正交碼或可正交碼。 本文所選(2,1,6)系統(tǒng)自正交卷積碼的大數邏輯解碼器如圖2所示。
圖2中,I端輸入信息碼元,P端輸入校驗碼元。解碼器把接收到的R(D)中的每一段信息元送入編碼器中求出本地檢驗元,與其后面收到的檢驗元模2加。若兩者一致,則求出的伴隨式分量si為0,否則為1。把加得的值送入伴隨式寄存器中寄存。當接收完7個碼段后開始對第 0碼段糾錯,若此時大數邏輯門的輸出為1,則說明第0碼 段的信息元有錯。這時正好第0子組的信息元移至解碼器的輸出端,從而糾正他們。同時,糾錯信號也反饋至伴隨式 寄存器修正伴隨式,以消去此錯誤對伴隨式的影響。如果大數判決門沒有輸出,則說明第0子組的信息元沒有錯誤,這時從編碼器中直接把信息元輸出 。
4卷積碼編解碼器的VHDL設計
4.1VHDL設計的優(yōu)點與設計方法
與傳統(tǒng)的自底向上的設計方法不同,VHDL設計是從系統(tǒng)的總體要求出發(fā),采用自頂向下( toptodown)的設計方法。其程序結構特點是將一項工程 設計(或稱設計實體),分成外部(即端口)和內部(即功能、算法)。在對一個設計實體定義了外部端口后,一旦內部開發(fā)完成,其他的設計就可以直接調用這個實體。
本設計所用VHDL設計平臺是Altera的MAX+PlusⅡ EDA軟件。MAX+PlusⅡ界面友好,使用便捷;他支持VHDL,原理圖,V語言文本文件,以及波形與EDIF等格式的文件作為設計輸入;并支持這些文件的任意混合設計;具有門級仿真器,可以進行功能仿真和時序仿真,能夠產生精確地仿真結果;支持除APEX20K,APXⅡ,Mercury,Excalibur和Stratix系列之外的所有Altera FPGA/CPLD大規(guī)模邏輯器件。設計中采用的FPGA器件是Altera的FLEX系列芯片FLEX 10K20。用MAX+PlusⅡ軟件進行VHDL設計的過程是:
(1)用Text Editor編寫VHDL程序。
(2)用Compiler編譯VHDL程序。
(3)用Waveform Editor,Simulater仿真驗證VHDL程序。
(4)用Timing Analyzer進行芯片的時序分析。
(5)用Floorplan Editor安排芯片管腳位置。
(6)用Programer下載程序至芯片FLEX10K20。
在實際的開發(fā)過程中,以上個步驟需反復進行,直至將既定的VHDL設計通過所有的測試為止 。
4.2卷積編碼器VHDL頂層建模(top level)及系統(tǒng) 功能仿真
4.2.1卷積編碼器各功能模塊及頂層建模端口的VHDL描述
LIBRARY IEEE;
用MAX+PlusⅡ編譯后生成的編碼器圖形符號如圖3所示。
4.2.2卷積編碼器VHDL頂層建模的VHDL仿真波形
4.3卷積解碼器VHDL頂層建模的VHDL端口描述
4.3.1卷積解碼器各功能模塊及頂層建模端口的VHDL描述
LIBRARY IEEE;
用MAX+PlusⅡ編譯后生成的解碼器圖形符號如圖5所示。
4.3.2卷積解碼器VHDL頂層建模的VHDL仿真波形
卷積解碼器VHDL仿真波形如圖6所示。其中待解碼信元datain=“11111010010000000001” ,速率為64kP/s,對應時鐘為15.625μs。仿真結果表明,解碼信元輸出dataout =“111 1”,相應速率為32kP/s。實際仿真還驗證了當卷積解碼器輸入的待解碼信元中有錯碼時的糾錯情況,與理論分析結果一致。
將通過仿真的VHDL程序下載到FPGA芯片FLEX10K20上,并在實際擴頻系統(tǒng)中用于差錯控制 ,取得了較為滿意的效果。
參考文獻
[2]褚振勇,翁木云.FPGA設計及應用[M]. 西安:西安電子科技大學出版社,2002.
[3]潘 松,王國棟.VHDL實用教程[M].成都:電子科技大學出版社,2 000.