CRC16、擾碼、解擾碼器并行方案原理和VerilogHDL程序設(shè)計(jì)_第1頁
CRC16、擾碼、解擾碼器并行方案原理和VerilogHDL程序設(shè)計(jì)_第2頁
CRC16、擾碼、解擾碼器并行方案原理和VerilogHDL程序設(shè)計(jì)_第3頁
CRC16、擾碼、解擾碼器并行方案原理和VerilogHDL程序設(shè)計(jì)_第4頁
CRC16、擾碼、解擾碼器并行方案原理和VerilogHDL程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)課程名稱現(xiàn)代通信原理與技術(shù)課程設(shè)計(jì)題目名稱CRC16擾碼/解擾碼器并行方案原理和VerilogHDL程序設(shè)計(jì)2013年10月25日目錄一、CRC1講行算法原理二、CRC1講行算法的VerilogHDL程序設(shè)計(jì)三、擾碼/解擾碼器并行算法原理四、擾碼/解擾碼器并行算法的VerilogHDL程序設(shè)計(jì)五、參考文獻(xiàn)、CRC1講行算法原理1、CRC碼原理在數(shù)字通信中,可能會(huì)因?yàn)楦鞣N原因?qū)е聰?shù)據(jù)在傳輸過程中或接收時(shí)發(fā)生錯(cuò)誤,為了保證數(shù)據(jù)傳輸?shù)目煽啃院蛿?shù)據(jù)校驗(yàn)的高效性,常常采用一些差錯(cuò)控制方法。冗余校驗(yàn)(CRC就是一種被廣泛采用的差錯(cuò)控制方法和數(shù)據(jù)編碼方法。它具有編碼和解碼方法簡單,剪錯(cuò)和糾錯(cuò)能力強(qiáng)等

2、特點(diǎn),能有效地對數(shù)據(jù)進(jìn)行編碼,并可以顯著的提高系統(tǒng)的剪錯(cuò)能力,從而保證數(shù)據(jù)的可靠性和正確性,因此在大多數(shù)的以太網(wǎng)協(xié)議中都采用了CRC勺校驗(yàn)來進(jìn)行差錯(cuò)控制。CRH要有兩種,即非標(biāo)準(zhǔn)的由用戶定義的CRC勺生成多項(xiàng)式和國際標(biāo)準(zhǔn)化組織規(guī)定的標(biāo)準(zhǔn)的生成多項(xiàng)式。其中第二中應(yīng)用廣泛,國際標(biāo)準(zhǔn)化組織規(guī)定的幾種主要常見的CR以口表所示。名稱多項(xiàng)式筒圮應(yīng)用CRC-14J+x+l0x13ITUG,704CRC-S0x13005BMSDLCCRC-CCIITf小0x110211SOIIDLC.FTUX.25CRC-32L八爐+jrl0+jr,+*/+1+小卜】0K1O4CHDB7ZIP,RAR,IEEE802LAN即

3、DDLPPP-FCSCRC碼是根據(jù)CRC僉驗(yàn)原理得出的一種編碼方法,其基本思想是:利用線性編碼理論,在發(fā)送方向根據(jù)要傳輸?shù)腒位二進(jìn)制序列,以一定的規(guī)則產(chǎn)生r位校驗(yàn)用的監(jiān)督嗎(CR刎),并附在信息位之后,構(gòu)成一個(gè)新的二進(jìn)制代碼序列共n=k+r位。在接收方,則根據(jù)信息碼和CR刎之間的規(guī)則進(jìn)行校驗(yàn),以確定傳輸中是否出現(xiàn)錯(cuò)誤。對一個(gè)數(shù)據(jù)進(jìn)行編碼,就是原始數(shù)據(jù)通過某種算法,得到一個(gè)新的數(shù)據(jù)。而這個(gè)新的數(shù)據(jù)與原始數(shù)據(jù)有著固定的內(nèi)在聯(lián)系。通過把原始數(shù)據(jù)和新的數(shù)據(jù)組合在一起形成新的數(shù)據(jù),因此這個(gè)數(shù)據(jù)具有自我校驗(yàn)的能力。將原始數(shù)據(jù)表示為P(x),它是一個(gè)n階多項(xiàng)式表示為;P(x)=X+a2xH2+%式子中,由;

4、為數(shù)據(jù)位;x為偽變量,用y打旨明各位間的排列位置。在對這個(gè)數(shù)據(jù)進(jìn)彳T編碼的時(shí),CRCfc成多項(xiàng)式G(x),并在帶編碼的二進(jìn)制多項(xiàng)式P(x)的末尾添加r個(gè)0,這樣對應(yīng)的二進(jìn)制多項(xiàng)式升哥為切淀工)。再用生成多項(xiàng)式G(x)去除工PQ),求得余數(shù)為r-1階的二進(jìn)制多項(xiàng)式R(x)。R(x)即為所求的CR詼驗(yàn)碼多項(xiàng)式。最后用工以模2的方法減去R(x),則對應(yīng)的二進(jìn)制序列就是包含了CRCK驗(yàn)碼的待發(fā)送字符串,也就是編碼后的數(shù)據(jù)。甯W小器一砍x)=GQ(x)=T(x)式中:Q(x)是商多項(xiàng)式;R(x)是余數(shù)多項(xiàng)式;T(x)是編碼后的數(shù)據(jù)。2、CRC_16并行算法原理在利用CRC_16$行編碼電路對輸入進(jìn)行編碼

5、時(shí),它的輸入數(shù)據(jù)是串行輸入的,因此數(shù)據(jù)傳輸效率低,它的運(yùn)算速度的提高完全依賴于系統(tǒng)時(shí)鐘頻率的提高,不能滿足現(xiàn)在的低功耗下的數(shù)據(jù)快速傳輸,如果將數(shù)據(jù)進(jìn)行并行處理,就可以在較低的時(shí)鐘頻率下快速的處理數(shù)據(jù),因此,本次設(shè)計(jì)采用并行的CRC_16最常見的CRC校驗(yàn)碼電路采用的是線性反饋寄存器LFSR實(shí)現(xiàn),對于CRC_16其生成多項(xiàng)式為七/+1,所以對應(yīng)的系數(shù)016為:1010000000000011,由此可以得到CRC_16從圖中可以看出,各位移位寄存器當(dāng)前存儲(chǔ)的數(shù)據(jù)為輸出就©編碼電路結(jié)構(gòu)圖,如圖所示。CRC余數(shù)彳1,16個(gè)D觸發(fā)器輸出從右至左依次為DED14.DO。輸入的信息碼元為I。令TD

6、ODlD15.表示編碼以為寄存器當(dāng)前所處的狀態(tài),i=|011.17表示第1至第8個(gè)時(shí)鐘的信息碼元輸入,向量D氣DO15T表示編碼器的下一個(gè)狀態(tài),D(8)表示第8個(gè)時(shí)鐘周期后CRC碼器中移位寄存器所處的狀態(tài),則設(shè)計(jì)8bit并行的CRC邏輯編碼器就是找出函數(shù)關(guān)系盛產(chǎn)也,。第1個(gè)時(shí)鐘周期后的編碼寄存器狀態(tài)為:D=DOD1D15TDID151;D01-D15+I0Dr=DOD2*=DI5+DH1OD3'-D2D14-DBD15-D15+D14+1O可以將以上表達(dá)式組成矩陣乘法,有:D*-T-rHS*ro其中,10100100S=l010000000000001T第2個(gè)時(shí)鐘周期后的編碼寄存器狀態(tài)

7、為:D(2)=TD'+SJl-TCTD+SlOy+S-H=T1I>T*SJ0+SII以此類推則有:D(8)=V/5+尸S/O+TS/6+5/7假設(shè)用crc_reg15:0表示移位寄存器初始狀態(tài),crc_in8:0表示并行輸入的8bit數(shù)據(jù),crc_reg815:0表示8bit并行編碼后的移位寄存器狀態(tài),則crc_reg80=crc_in7crc_in6©crc_in5fficrc_Ln4®crc_inf3fficrc_in2®crcinfl®crcinfO®crc_rcg15J®crc_reg14®crc_re

8、g13®crc_reg(12jSureregl1crc_reg10®crc_rTeg9®crc_reg8Jcrc_reg8l=crcin6®crcin5®crc.m4®crc_ia(3®crcin2JfficrcinflScrc_jjjOecrc_rcgl5©m_regl4®crc_reg13®crcregl2©crcreglllffiervreg10crc_rcg9crc_reg82j=crujnp©crcin6®crcrcg9Scrc_«g網(wǎng)crc_r

9、eg8(3=crcin6ecrc_in5©crc_mg口0©crc_rcg9crcrcg8f4-crc_in5®crc_in4©crcrcgf11ecrcreg10crc_reg85=crcjn4ecrc_in3©crc_rcg12®crcregllcrc_reg861-crc.in3®cn:Jn2®crc_regl3由crcregl21crc_reg87二crc_in2)®crc_in1®crc_reg14crc_reg3Bjr曜陰第=crcJnfnecrcJnfOcrc_reg(l5JScB

10、_regl4©crc_rcgOJcrc_reg89=crc_in0©crc_reg15®crc_regcnc_rcg814:IO=crc_rtg6;2crcneg815=crcJn7©crcin6crcjn5«crcJn4由crc_in3J©crcjn2®crcjnl®crcinO|6cm_ggl5®crc_reg14©crcrcg13|出crc_reg12®crcreglI®crc_rcgJO|®crcreg9ecrc_regR®crcreg7reg1:

11、0state;3、CRC_16并行仿真輸出波形如圖所示是CRC_1乘行編碼電路測試程序的仿真結(jié)果,輸入信號時(shí)crc_in,沒有完全輸入編碼器是,輸入信號crc_in作為crc_out端口輸出數(shù)據(jù);當(dāng)d_finish信號為高電平指示數(shù)據(jù)輸入完成時(shí),將線性移位寄存器crc_reg中的校驗(yàn)位并行8位輸出到crc_out端口。由圖可以看出輸入信號與輸出存在一個(gè)時(shí)鐘周期的延時(shí)。、CRC1琳行算法的VerilogHDL程序設(shè)計(jì)1、CRC_16校驗(yàn)碼的并行編碼程序moduleCRC_16(clk,rst,load,d_finish,crc_in,crc_out);inputclk,rst;inputload

12、;inputd_finish;input7:0crc_in;/output7:0crc_out;/reg7:0crc_out;/reg15:0crc_reg;/reg1:0count;/開始編碼信號編碼結(jié)束信號編碼器并行8bit數(shù)據(jù)輸入編碼器并行8bit數(shù)據(jù)輸出數(shù)據(jù)輸出寄存器編碼器移位寄存器wire15:0next_crc_reg;/移位寄存器輸入變量parameteridle=2'b00;parametercompute=2'b01;parameterfinish=2'b10;/寄存器輸出和寄存器初始狀態(tài)以及輸入碼字組合邏輯關(guān)系assignnext_crc_reg0=

13、(Acrc_in7:0)A(Acrc_reg15:8);assignnext_crc_reg1=(Acrc_in6:0)a(Acrc_reg15:9);assignnext_crc_reg2=crc_in7acrc_in6acrc_reg9acrc_reg8;assignnext_crc_reg3=crc_in6acrc_in5acrc_reg10acrc_reg9;assignnext_crc_reg4=crc_in5acrc_in4acrc_reg11acrc_reg10;assignnext_crc_reg5=crc_in4acrc_in3acrc_reg12acrc_reg11;ass

14、ignnext_crc_reg6=crc_in3acrc_in2acrc_reg13acrc_reg12;assignnext_crc_reg7=crc_in2acrc_in1acrc_reg14acrc_reg13;assignnext_crc_reg8=crc_in1acrc_in0acrc_reg15acrc_reg14crc_reg0;assignnext_crc_reg9=crc_in0acrc_reg15acrc_reg1;assignnext_crc_reg14:10=crc_reg6:2;assignnext_crc_reg15=(Acrc_in7:0)a(Acrc_reg15

15、:7);always(posedgeclkornegedgerst)beginif(!rst)beginstate<=idle;count<=2'b00;endelsebegincase(state)idle:beginif(load)state<=compute;elsestate<=idle;endcompute:beginif(d_finish)state<=finish;elsestate<=compute;endfinish:beginif(count=2)beginstate<=idle;endelsebegincount<=

16、count+1;state<=finish;endendendcaseendendalways(posedgeclkornegedgerst)beginif(!rst)begincrc_reg15:0<=16'b0000_0000_0000_0000;endelsebegincase(state)idle:begin/寄存器裝初值狀態(tài)crc_reg15:0<=16'b0000_0000_0000_0000;endcompute:begin/編碼計(jì)算狀態(tài)crc_reg15:0<=next_crc_reg15:0;crc_out7:0<=crc_in7

17、:0;endfinish:begin/編碼結(jié)束狀態(tài)crc_reg15:0<=crc_reg7:0,8'b0000_0000;crc_out7:0<=crc_reg15:8;endendcaseendendEndmodule2、CRC_16仿真測試文件程序moduleCRC_16_test;regclk;regrst;regload;regd_finish;reg7:0crc_in;wire7:0crc_out;parameterclk_period=40;initialbegin# clk_periodclk=1;# clk_periodrst=0;# clk_period

18、rst=1;#clk_periodcrc_in7:0=8'b1010_1010;/輸入待編碼數(shù)據(jù)# clk_periodload=1;# clk_periodload=0;# clk_periodd_finish=0;# (10*clk_period)d_finish=1;# clk_periodd_finish=0;end輸入待編碼數(shù)據(jù)always#(clk_period/2)clk=clk;always#(clk_period)crc_in7:0=crc_in7:0;/CRC_16u1(.clk(clk),.rst(rst),.load(load),.d_finish(d_fini

19、sh),.crc_in(crc_in),.crc_out(crc_out);Endmodule三、擾碼/解擾碼器并行算法原理1、擾碼/解擾碼器并行算法原理在數(shù)字通信系統(tǒng)中,若經(jīng)常出現(xiàn)長的“0”或“1”系列,將會(huì)影響位同步的建立和保持。為了解決這個(gè)問題以及限制電路中存在的不同程度的非線性特性對其他電路通信造成的串?dāng)_,要求數(shù)字信號的最小周期足夠長。將數(shù)字信號變成具有近似于白噪聲統(tǒng)計(jì)特性的數(shù)字序列即可滿足要求,這通常用加擾來實(shí)現(xiàn)。而所謂加擾,就是不用增加冗余而擾亂信號,改變數(shù)字信號統(tǒng)計(jì)特性,使其具有近似白噪聲統(tǒng)計(jì)特性的一種技術(shù)。這種擾亂是有規(guī)律可循的,因此也是可以解除的。擾碼的作用就是對輸入的信號進(jìn)

20、行隨機(jī)化處理,以減少數(shù)據(jù)的連0連1數(shù)目,確保接收端的位同步提取,并同時(shí)擴(kuò)展基帶信號頻率,起到加密效果。這種加擾的基礎(chǔ)建立在偽隨機(jī)序列理論的基礎(chǔ)上,其工作原理就是在發(fā)送端用加擾來改變原來數(shù)字的統(tǒng)計(jì)特性,而在接收端用解擾器恢復(fù)原始的數(shù)字信號。擾碼產(chǎn)生是通過循環(huán)移位寄存器來實(shí)現(xiàn)的,而擾碼生成多項(xiàng)式?jīng)Q定循環(huán)移位寄存器的結(jié)構(gòu)。這次設(shè)計(jì)以ITU-T推薦的SDH(同步數(shù)字體系)使用的擾碼生成多項(xiàng)式:X7+X6+1設(shè)擾碼的輸入數(shù)字序列為tk,輸出為&解碼器的輸入為輸出為rk擾碼器的輸入和輸出序列關(guān)系為:解擾碼器的輸入和輸出序列關(guān)系為:lk=Sk6X6X?=%4XQX6.X7=tb2、并行加擾器設(shè)計(jì)在高

21、速的數(shù)據(jù)傳輸過程中,為了滿足數(shù)據(jù)高速處理的需要,一般擾碼器和解碼器通常采用并行的方式來實(shí)現(xiàn)。并行擾碼的原理基于特征多項(xiàng)式X7+X6+1,加擾器電路結(jié)構(gòu)如圖所示。假設(shè)每個(gè)觸發(fā)器的輸出端分別是即怎公蒞'*、4假設(shè)改為最低位觸發(fā)器的輸入,那么每個(gè)觸發(fā)器的關(guān)系如下""1=%=1,2,3,7令i=7以及i=6代入上式可得:對于上述的幾個(gè)關(guān)系式可以用矩陣乘法來表示X,對于8位并行擾碼,式中令需要知道(0000000010000)0000100000000000000000010九X.X,/XN+$時(shí)刻輸出相對于N時(shí)刻的關(guān)系,在上經(jīng)過計(jì)算可得:0000000000000I1yn-

22、dJ>l0011000001+"d=QL.5上述式子就是并行擾碼的理論基礎(chǔ)。根據(jù)上述式子,假設(shè)并行8位輸入數(shù)據(jù)為scram_in7:0,擾碼器的并行8位輸出數(shù)據(jù)為scram_out7:0,shift_reg6:0,是加擾器的移位寄存器的初始狀態(tài)加擾器復(fù)位后初始狀態(tài)一般為shift_reg6:0=7b'111_1111,則可以得并行8位數(shù)據(jù)輸入后加擾器輸出數(shù)據(jù)和加擾器輸入數(shù)據(jù)以及移位寄存器初始狀態(tài)的關(guān)系式:scram_=shift_rcg6shift_/空5scram_w7scram=shiftreg5|®shift_®scramscram_uut5=

23、shift_reg4®ihifi尸空3®scram_in5scramout4三sh訴_d劃3®hift_yg2®scram_面14scramout3=shift_reg2®shtfl_,空口scram_M3scramout2=shiftrfgfl®shift_©xcram_in2scram_outl=shiftreg6®shift_reg5shift_,第0©jcram_?n7®scram_mlscram_out0=shyi_reg6shift_reg4ffiscram_in7&scra

24、m6©.scram加03、并行解擾器設(shè)計(jì)并行加擾器電路設(shè)計(jì)原理和并行加電路設(shè)計(jì)原理一樣,如圖所示為解擾碼器的電路圖:解擾器電路結(jié)構(gòu)假設(shè)解擾器電路輸入時(shí)descram_in7:0,解碼電路輸出是descram_out7:0,移位寄存器是shift_ren7:0,可以根據(jù)并行擾碼的推導(dǎo)方法導(dǎo)出多單擾器輸出和解擾器輸入以及移位寄存器初始狀態(tài)的邏輯關(guān)系式:descramOHf7=shift_rg(6Sshiftreg5J©descram_in7descrum=shift_r«gt5J®shift_reg4©descram_in6descramout5h

25、tft_4Gshift_re3®descrant詞5Idescramou/4=shift_reg3*shift2®descram_加4descram_ouz|3=Mft_rcg2©shift_regffidevcram_詞3deseramoui2-hifi_訴reg0®descram_in2descram_out=shtfl_eg0®descram_irr:7©descram_M1dcscram=descram由/7®descram加6®descram_詞04、仿真輸出波形Mt55age$*帕allelfr部舔代k

26、0irUtQTLl-JTm-LTLTLrLTLrLTLTLr_r_|iZjJ彘1_50部拿戈上式¥11D-J|parallel_scrafftje5t/5cm_ln15俄b3in|105J06J加加朋加比在恥加的IL0;til112li:T14115D-Jftarallel_KramJedt/5cram_odte6ffbo注|欣以J履脫屈BaHl8116加加誨;hrn你E3-Jftjarallel_KramJestAjZ/desaamjn法ifm&-1IDs121£2就饒加爾幃116173加由:hfn甥Ia8fe6帕r部LsaamJ舔燭汨部/世14開求在|斛小5M6

27、昨疑am1m恥同肌就11011112In加h|阿兆l_sa苛i/核制/州上國e6針加10:Hoe121£2如胡至忘h116F加場bfIt甥麗江K0-J帕r眥Lsaamjte川迎的膽與281蛇foe切心就加於1勺加屜現(xiàn)世括0叫帆班眄-如圖所示是并行加擾/解擾器的仿真輸出波形,從圖中可以看出測試文件輸入初始為00000001的8位數(shù)據(jù),每來一個(gè)時(shí)鐘該數(shù)據(jù)加1,該數(shù)據(jù)經(jīng)過加擾器并行擾碼后將數(shù)據(jù)送給并行解碼器解擾,加擾器的輸出作為解擾器的輸入,由圖中可以看出,連0和連1的個(gè)數(shù)最多8個(gè),同時(shí)加擾器輸入數(shù)據(jù)與解擾器輸出數(shù)據(jù)相同,只差一個(gè)時(shí)鐘周期的運(yùn)算延時(shí)。四、擾碼/解擾碼器并行算法的Verilo

28、gHDL程序設(shè)計(jì)1、擾碼器的程序?yàn)閺?fù)位信號,低電平有效擾碼數(shù)據(jù)輸入擾碼數(shù)據(jù)輸出moduleparallel_scrambler(clk,rst_n,scram_in,scram_out);inputclk,rst_n;rst_ninput7:0scram_in;/output7:0scram_out;/reg7:0shift_reg;/反饋移位寄存器/輸出的反饋異或關(guān)系assignscram_out7:0=shift_reg7:0;always(posedgeclkornegedgerst_n)beginif(!rst_n)/已將rst改為!rst(考慮到可綜合性問題)shift_reg<

29、;=8'b1111_1111;elsebegin/寄存器反饋異或關(guān)系shift_reg7:2<=shift_reg6:1Ashift_reg5:0Ascram_in7:2;shift_reg1<=shift_reg0ashift_reg6ashift_reg5ascram_in7ascram_in1;shift_reg0<=shift_reg6ashift_reg4ascram_in7ascram_in6ascram_in0;endendEndmodule2、解擾碼器的程序moduleparallel_decrambler(clk,rst_n,descram_in,descram_out);inputclk,rst_n;/rst_n為復(fù)位信號,低電平有效input7:0descram_in;/擾碼數(shù)據(jù)輸入output7:0descram_out;/擾碼數(shù)據(jù)輸出reg6:0shift_reg;/反饋移位寄存器assigndescram_out7:2=shift_reg6:

溫馨提示

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

最新文檔

評論

0/150

提交評論