循環(huán)碼編解碼器設(shè)計_第1頁
循環(huán)碼編解碼器設(shè)計_第2頁
循環(huán)碼編解碼器設(shè)計_第3頁
循環(huán)碼編解碼器設(shè)計_第4頁
循環(huán)碼編解碼器設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

VHDL語言的循環(huán)碼編譯碼器設(shè)計.參考資料字通信》第二版第7章第4節(jié)循環(huán)碼 (循環(huán)碼原理)《通信原理》第六版第11章第6節(jié)循環(huán)碼(循環(huán)碼原理循環(huán)碼的編解碼方法)《EDA技術(shù)與應用》第三版第7章第1節(jié)組合邏輯電路設(shè)計應用(編碼器設(shè)計譯碼器設(shè)計)/wlkc/course/180002088-1/203-03.htm(網(wǎng)上資料).設(shè)計原理2.1編碼器的設(shè)計VHDL是一種行為描述語言,其編程結(jié)構(gòu)類似于計算機中的C語言,在描述復雜邏輯設(shè)計時,非常簡潔,具有很強的邏輯描述和仿真能力,是未來硬件設(shè)計語言的主流。在本設(shè)計中,應用VHDL語言,在Altera公司的QuartusII7.2軟件環(huán)境下,按照自頂而下的設(shè)計方法,對編譯碼器進行設(shè)計仿真。根據(jù)給定的(n,k)值選定生成多項式g(x),即從xn+1的因子中選一個(n-k)次多項式作為,假設(shè)給定信息碼組為m(x)=(mk-1,mk-2...m0),其次數(shù)小于k,則xn-km(x)的次數(shù)必定小于n。用g(x)除xn-km(x),得到余式r(x),r(x)的次數(shù)必定小于g(x)的次數(shù),即小于(n-k)。將此余式r(x)加于信息位之后作為監(jiān)督位,即r(x)和xn-km(x)相加,得到多項式必定是一個碼組多項式。因為它必定能被g(x)整除,且商的次數(shù)不大于(k-1)。根據(jù)以上原理,循環(huán)碼的編碼步驟可以歸納如下:用xn-k乘信息碼m(x),這一運算實際上是在信息碼后附加上(n-k)個“0”用g(x)除xn-km(x)得到商Q(X)編出的碼組T(x)=xn-km(x)+r(x)。由此可見,編碼的核心是如何確定余式r(x),找到r(x)后,可直接將其所代表的編碼位附加到信息位之后,完成編碼。編碼電路可采用(n-k)級反饋移位寄存器和異或門(模2加)組成的除法電路實現(xiàn)。2.2譯碼器的設(shè)計接收端譯碼的要求有兩個:檢錯和糾錯。檢錯若接收碼組R(x)與發(fā)送碼組相同,即R(x)=T(x),則R(x)必定能被g(x)整除;若在傳輸中發(fā)生錯誤,即R(x)尹T(x),則R(x)被g(x)除時可能除不盡而有余項,從而發(fā)生錯誤。因此,可以以余項是否為零來判斷接收碼組中有無錯誤。但是,有錯碼的接收碼組也有可能被g(x)整除,這時的錯碼就不能檢出。這種錯誤稱為不可檢錯誤,其誤碼必定超過了此編碼的檢錯能力。糾錯為了能夠糾錯,要求每個可糾正的錯誤圖樣必須與一個特定余式有一一對應關(guān)系。只有存在上述一一對應的關(guān)系時,才可能從上述余式唯一地決定錯誤圖樣,從而糾正錯碼。以下是為糾錯而設(shè)計的。由于(7,4)循環(huán)碼的最小碼距為d0=3,由d0>2t+1得,此循環(huán)碼只能糾正一個錯碼。當經(jīng)過信道傳輸后發(fā)生錯誤時,接收碼組多項式R(x)不再是的倍式。其中S(x)是R(x)除以g(x)后的余式,是不大于r-1次的碼組多項式,稱為伴隨多項式或校正子多項式。時接收碼組多項式可表示為發(fā)送碼組多項式T(x)與差錯多項式E(x)之和,艮"R(x)=T(x)+E(x)綜合以上式子,我們由就可進一步確定E(x):S(x)=rem[T(x)+E(x)]=rem[E(x)]g(x) g(x)對于一個S(x),E(x)可能有多種形式。由S(x)確定E(x)時同樣使用最大似然比準則。對最小碼重的差錯多項式E(x),由上式求出對應的伴隨多項式S(x),將E(x)與S(x)的對應關(guān)系列成譯碼表。當收到任一碼組R(x)后,利用S(x)=rem[R(x)/g(x)]求出S(x),對照譯碼表找到E(x),再用R(x)=T(x)+E(x)求T(x),即T(x)=R(x)+E(x)為已經(jīng)糾錯的原發(fā)送碼組。糾錯完畢之后,只需要取糾錯后的前四位,即為所譯碼元。而在實際電路設(shè)計過程中,由于二進制只有0與1兩種狀態(tài),知道錯誤位置后,可以直接對該位置的碼元取反即可。綜上所述,糾錯的步驟如下:把接收碼組R(x)送入除法電路,得到余數(shù)D1D2D3即為伴隨矩陣S(x)。由典型生成矩陣G和典型監(jiān)督矩陣HT之間的關(guān)系可進一步求得,再由S=E.HT可得錯誤圖樣E(x),這樣就可以確定錯碼的位置。(3)根據(jù)錯誤的碼位,對該碼位的碼元取反輸出便可得到原發(fā)送碼組T(x)。其中,T(x)的前四位即為譯出碼元m(x)。.設(shè)計步驟3.1VHDL設(shè)計流程循環(huán)碼編譯系統(tǒng)的結(jié)構(gòu)循環(huán)碼編譯系統(tǒng)結(jié)構(gòu)圖如圖所示。由定時控制單元信碼發(fā)生器、編碼器單元、模擬錯碼發(fā)生器、錯碼位置計算單元、糾錯單元組成。其中錯碼位置計算單元和糾錯單元合在一起構(gòu)成譯碼器。信道3.2程序流程分析該程序流程主要通過輸入一組四位信息碼組,然后根據(jù)編碼后的余數(shù)輸出對編碼進行檢錯判斷,若輸出余數(shù)為000則無錯碼。3.3程序設(shè)計根據(jù)程序流程圖編寫程序,源程序如下所示:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYcycleISPORT(datain:INSTDLOGIC;clk,clr,clr2:INSTD_LOGIC;enable1:instd_logic;enable2:instd_logic;tout:outstd_logic_vector(6downto0);judge:outstd_logic_vector(1downto0));ENDcycle;ARCHITECTUREarc_cycleOFcycleISSIGNALd0,d1,d2:STD_LOGIC;signalq1,q2,q0:STD_LOGIC_vector(7downto0):="00000000";signaldataout:std_logic;signaldin:std_logic_vector(6downto0);signalrout:std_logic_vector(2downto0);--signaldin:std_logic_vector(6downto0):="0000000";BEGINu1:process(clk)variableg:std_logic;variablem:integerrange1to8;beginif(clk'eventandclk='1')thenifclr=Ttheng:='0‘;m:=1;dataout<=,0,;elseifm<=8thenifm<=4thendataout<=datain;casemiswhen1=>din(6)<=dataout;when2=>din(6)<=dataout;when3=>din(5)<=dataout;when5=>din(3)<=dataout;when6=>din(2)<=dataout;when7=>din(1)<=dataout;when8=>din(0)<=dataout;endcase;g:=datainXORd2;elsedataout<=d2;casemiswhen1=>din(6)<=dataout;when2=>din(6)<=dataout;when3=>din(5)<=dataout;when4=>din(4)<=dataout;when5=>din(3)<=dataout;when6=>din(2)<=dataout;when7=>din(1)<=dataout;when8=>din(0)<=dataout;endcase;g:='0';endif;d2<=d1;d1<=gXORd0;d0<=g;m:=m+1;endif;endif;endif;endprocessu1;u2:process(clk)beginif(clk'eventandclk='1')thenifenable1='1'thenforiin1to7loopq2(i)<=q1(i-1);q1(i)<=q2(i-1)xorq0(i-1);q0(i)<=din(7-i)xorq2(i-1);endloop;rout(0)<=q0(7);rout(1)<=q1⑺;rout(2)<=q2(7);q0(0)<=q0(7);q2(0)<=q2(7);q1(0)<=q1⑺;endif;endif;endprocessu2;u3:process(clk)beginif(clk'eventandclk='1')thenifenable2='1'then--enable2if(clr2=T)thentout<="0000000";judge<="00";elsecaseroutistout<=din(6downto1)&(notdin(0));judge<="11";when"101"=>tout<=(notdin(6))&din(5downto0);judge<="11”;when"0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論