并行CRC-校驗(yàn)碼產(chǎn)生器設(shè)計管理資料_第1頁
并行CRC-校驗(yàn)碼產(chǎn)生器設(shè)計管理資料_第2頁
并行CRC-校驗(yàn)碼產(chǎn)生器設(shè)計管理資料_第3頁
并行CRC-校驗(yàn)碼產(chǎn)生器設(shè)計管理資料_第4頁
并行CRC-校驗(yàn)碼產(chǎn)生器設(shè)計管理資料_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程設(shè)計報告題目:并行CRC-16校驗(yàn)碼產(chǎn)生器設(shè)計院(系):電子與信息工程學(xué)院專業(yè):電子信息科學(xué)與技術(shù)班級:姓名:設(shè)計日期:2013.12.16-2013.12.20

一、設(shè)計目的1.掌握數(shù)字系統(tǒng)的設(shè)計方法;2.掌握硬件描述語言——VerilogHDL;3.掌握模塊化設(shè)計方法;4.掌握開發(fā)軟件的使用方法。二、設(shè)計要求8bit并行輸入數(shù)據(jù)進(jìn)行CRC-16校驗(yàn)。1.輸入為連續(xù)數(shù)據(jù)流,時鐘為單位,起始位有1bit寬Soc指示信號;2.生成多項(xiàng)式:;3.校驗(yàn)數(shù)據(jù)與碼流同步送出;4.完成全部流程:設(shè)計規(guī)范文檔、模塊設(shè)計、代碼輸入、功能仿真、約束與綜合、布局布線、下載驗(yàn)證等。三、設(shè)計環(huán)境計算機(jī)、QuatusII開發(fā)軟件四、設(shè)計內(nèi)容(設(shè)計原理和方案、程序設(shè)計、仿真分析和適配)4.1設(shè)計原理和方案CRC即循環(huán)冗余校驗(yàn)碼(CyclicRedundancyCheck):是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長度可以任意選定。冗余編碼是在二進(jìn)制通信系統(tǒng)中常用的差錯檢測方法,它是通過在原始數(shù)據(jù)后加冗余校驗(yàn)碼來檢測差錯,冗余位越多,檢測出傳輸錯誤的機(jī)率越大。循環(huán)冗余編碼(CyclicRedundancyCodes,簡稱CRC)是一種常用的冗余編碼。CRC校驗(yàn)的基本原理是:CRC碼是由兩部分組成的,前部分是信息碼,就是需要校驗(yàn)的信息,后部分是校驗(yàn)碼,如果CRC碼長共nbit,信息碼長kbit,就稱為(n,k)碼,剩余的rbit即為校驗(yàn)位。如:(7,3)碼:1101001,前三位110為信息碼,1001為校驗(yàn)碼。CRC校驗(yàn)碼的生成規(guī)則:A、將原信息碼左移rbit,右側(cè)補(bǔ)零,如110-->1100000;B、用1100000除以G(x),得到的余數(shù)即為CRC校驗(yàn)碼;CRC可由一稱為生成多項(xiàng)式的常數(shù)去除該數(shù)據(jù)流的二進(jìn)制數(shù)值而得,商數(shù)被放棄,余數(shù)作為冗余編碼追加到數(shù)據(jù)流尾,產(chǎn)生新的數(shù)據(jù)流進(jìn)行發(fā)送。在接收端,新的數(shù)據(jù)流被同一常數(shù)去除,檢查余數(shù)是否為零。如果余數(shù)為零,就認(rèn)為傳輸正確,否則就認(rèn)為傳輸中已發(fā)生差錯,該數(shù)據(jù)流重發(fā)。在產(chǎn)生CRC校驗(yàn)碼時,需要用到除法運(yùn)算。一般說來,非常大的數(shù)字進(jìn)行除法時,用數(shù)字邏輯實(shí)現(xiàn)時是比較麻煩的。因此,把二進(jìn)制信息預(yù)先轉(zhuǎn)換成一定的格式,這就是CRC的多項(xiàng)式表示。二進(jìn)制數(shù)表示為生成多項(xiàng)式的系數(shù),如下公式所示:生成多項(xiàng)式是接受方和發(fā)送方的一個約定,也就是一個二進(jìn)制數(shù),在整個傳輸過程中,這個數(shù)始終保持不變。在發(fā)送方,利用生成多項(xiàng)式對信息多項(xiàng)式做模2除生成校驗(yàn)碼。在接受方利用生成多項(xiàng)式對收到的編碼多項(xiàng)式做模2除檢測和確定錯誤位置。應(yīng)滿足以下條件:A、生成多項(xiàng)式的最高位和最低位必須為1;B、當(dāng)被傳送信息任何一位發(fā)生錯誤時,被生成多項(xiàng)式做除后應(yīng)該使余數(shù)不為0;C、不同位發(fā)生錯誤時,應(yīng)該使余數(shù)不同;D、對余數(shù)繼續(xù)做除,應(yīng)使余數(shù)循環(huán)。在多項(xiàng)式表示中,所有的二進(jìn)制數(shù)均被表示成一個多項(xiàng)式,多項(xiàng)式的系數(shù)就是二進(jìn)制中的對應(yīng)值。D為數(shù)據(jù)流多項(xiàng)式,G為生成多項(xiàng)式,Q為商數(shù)多項(xiàng)式,R為余數(shù)多項(xiàng)式。在生成CRC校驗(yàn)碼時,數(shù)據(jù)流多項(xiàng)式D被乘以Xn,這里n為生成多項(xiàng)式G的最高次數(shù),也就是CRC的長度。這個操作是通過將左移n位得到的,我們可以用CRC來代替多項(xiàng)式最后的n個0,組成新的數(shù)據(jù)流多項(xiàng)式。由于二進(jìn)制的加法和減法是等價的,所以產(chǎn)生新的數(shù)據(jù)流多項(xiàng)式應(yīng)能被生成多項(xiàng)式G除盡。用以下公式表示為:在接收端,傳輸信息的前一部分為原始數(shù)據(jù)流D;后一部分(最后n位數(shù))為余數(shù)R。整個數(shù)據(jù)流多項(xiàng)式被同一生成多項(xiàng)式G去除,商數(shù)被丟棄,余數(shù)應(yīng)為0。如果余數(shù)不為0,說明傳輸數(shù)據(jù)時發(fā)生錯誤,數(shù)據(jù)需要重傳。不同的生成多項(xiàng)式有不同的檢錯能力,為了得到優(yōu)化的結(jié)果,我們必須根據(jù)需要選擇合適的生成多項(xiàng)式,CRC-16的生成多項(xiàng)式為:SerialData即為需要校驗(yàn)的8bit數(shù)據(jù)。從把數(shù)據(jù)移位開始計算,將數(shù)據(jù)位(從最低的數(shù)據(jù)位開始)逐位移入反向耦合移位寄存器。當(dāng)所有數(shù)據(jù)位都這樣操作后,計算結(jié)束。此時,16位移位寄存器中的內(nèi)容即為CRC的16位校驗(yàn)碼。生成CRC-16的移位寄存器的工作原理如圖4.1所示說明并行CRC-16校驗(yàn)碼產(chǎn)生器設(shè)計中CRC校驗(yàn)值的計算原理。圖4.1生成CRC-16的移位寄存器的工作原理4.2程序設(shè)計及仿真CRC校驗(yàn)碼產(chǎn)生器分兩種:串行CRC校驗(yàn)碼產(chǎn)生器和并行CRC校驗(yàn)碼產(chǎn)生器。本文用到的是并行CRC校驗(yàn)碼產(chǎn)生器。由于計算并行CRC時用到了串行CRC的一些思想,所以在此先講一下串行CRC的產(chǎn)生。通常,CRC校驗(yàn)碼的值可以通過線性移位寄存器和異或門求得,線性移位寄存器一次移一位,完成除法功能,異或門完成不帶進(jìn)位的減法功能。如果商數(shù)為1,則從被除數(shù)的高階位減去除數(shù),同時移位寄存器右移一位,準(zhǔn)備為被除數(shù)的較低位進(jìn)行運(yùn)算。如果商數(shù)為0,則移位寄存器直接右移一位。串行CRC-16校驗(yàn)碼產(chǎn)生器的原理圖如圖4.2所示。圖4.2串行CRC-16校驗(yàn)碼產(chǎn)生器原理圖在設(shè)計并行CRC校驗(yàn)碼產(chǎn)生器的時候,我們可以采用串行CRC校驗(yàn)碼的思想,用線性移位寄存器的方法產(chǎn)生并行CRC校驗(yàn)碼。與串行CRC校驗(yàn)碼產(chǎn)生器不同的是,并行CRC校驗(yàn)碼產(chǎn)生器16位CRC同時輸出,所以要求在一個時鐘周期內(nèi),移位寄存器一次需要移16位。實(shí)際上,移位寄存器不可能在一個時鐘周期內(nèi)移16位,所以這部分電路是用組合邏輯來完成。利用串行CRC校驗(yàn)碼的思想,采用8次For循環(huán)的方法產(chǎn)生并行CRC校驗(yàn)碼。通過以上分析可得以下程序源代碼。如下所示://TOPMODULEmoduleCRC16_PARA( Reset,//Resetsignal Gclk,//Clocksignal Soc,//Startofcell Data_in,//inputdataofcell Crc_out//outputCRCsignal );//SIGNALDECLARATIONS inputReset; inputGclk; inputSoc; input[7:0]Data_in; output[15:0]Crc_out;//SIGNALDECLARATIONS wireReset; wireGclk; wireSoc; wire[7:0]Data_in; reg[15:0]Crc_out; reg[15:0]Crc_tmp; regTemp; integeri,j,k,l;//PARAMETERS parameterU_DLY=1;//Crc_outsignal always@(posedgeResetorposedgeGclk) begin if(Reset) Crc_out<=#U_DLY16'b0; elseif(Soc==1'b1) Crc_out<=#U_DLY16'b0; else Crc_out<=#U_DLYCrc_tmp; end//Crc_tmpsignal always@(Crc_outorData_in) begin Crc_tmp=Crc_out; for(i=7;i>=0;i=i-1) begin Temp=Data_in[i]^Crc_tmp[15]; for(j=15;j>12;j=j-1) Crc_tmp[j]=Crc_tmp[j-1]; Crc_tmp[12]=Temp^Crc_tmp[11]; for(k=11;k>5;k=k-1) Crc_tmp[k]=Crc_tmp[k-1]; Crc_tmp[5]=Temp^Crc_tmp[4]; for(l=4;l>0;l=l-1) Crc_tmp[l]=Crc_tmp[l-1]; Crc_tmp[0]=Temp; end endendmodule并行CRC-16校驗(yàn)碼產(chǎn)生器設(shè)計的波形功能仿真如圖4.3所示。圖4.3并行CRC-16校驗(yàn)碼產(chǎn)生器設(shè)計的波形功能仿真Gclk為時鐘信號,時鐘周期為1ns;Reset為復(fù)位信號,高電平復(fù)位清零;Soc為指示信號,低電平指示工作狀態(tài);Data_in為8bit并行輸入數(shù)據(jù);Crc_out為16位CRC校驗(yàn)碼;Data_in與Crc_out對應(yīng)關(guān)系由圖可知:當(dāng)8bit并行數(shù)據(jù)時,對應(yīng)數(shù)據(jù)流多項(xiàng)式。此時對應(yīng)的16位CRC校驗(yàn)碼,則對應(yīng)的余數(shù)多項(xiàng)式。因?yàn)樯啥囗?xiàng)式,由CRC-16校驗(yàn)原理可知。由原理公式可得:多項(xiàng)式,所以多項(xiàng)式。即。因?yàn)樯啥囗?xiàng)式,所以商數(shù)多項(xiàng)式為整數(shù)。綜上所述,設(shè)計程序源代碼符合8bit并行數(shù)據(jù)Data_in與16位CRC校驗(yàn)碼Crc_out的對應(yīng)關(guān)系。4.3適配器件選擇AlteraCycloneEP1C3T100C8,它具有可現(xiàn)場編程,低功耗,低價格等特點(diǎn)。外部引腳圖如圖4.4所示。圖4.4外部引腳圖引腳分配如圖4.5所示。圖4.5引腳分配小結(jié)通過對并行CRC-16校驗(yàn)碼產(chǎn)生器設(shè)計,我了解CRC校驗(yàn)的基本原理和算法,還掌握數(shù)字系統(tǒng)的設(shè)計方法及設(shè)計過程,進(jìn)一步熟悉掌握硬件描述語言——VerilogHDL。還掌握運(yùn)用模塊化的設(shè)計方法,熟悉開發(fā)軟件QuartusII軟件的使用方法及其開發(fā)流程。在此感謝在本次課程設(shè)計過程中給予

溫馨提示

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

評論

0/150

提交評論