下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課程設(shè)計報告題目:并行CRC-16校驗碼產(chǎn)生器設(shè)計院〔系〕:電子與信息工程學(xué)院專業(yè):電子信息科學(xué)與技術(shù)班級:姓名:設(shè)計日期:2023.12.16-2023.12.20一、設(shè)計目的1.掌握數(shù)字系統(tǒng)的設(shè)計方法;2.掌握硬件描述語言——VerilogHDL;3.掌握模塊化設(shè)計方法;4.掌握開發(fā)軟件的使用方法。二、設(shè)計要求8bit并行輸入數(shù)據(jù)進行CRC-16校驗。1.輸入為連續(xù)數(shù)據(jù)流,時鐘為單位,起始位有1bit寬Soc指示信號;2.生成多項式:;3.校驗數(shù)據(jù)與碼流同步送出;4.完成全部流程:設(shè)計標準文檔、模塊設(shè)計、代碼輸入、功能仿真、約束與綜合、布局布線、下載驗證等。三、設(shè)計環(huán)境計算機、QuatusII開發(fā)軟件四、設(shè)計內(nèi)容〔設(shè)計原理和方案、程序設(shè)計、仿真分析和適配〕4.1設(shè)計原理和方案CRC即循環(huán)冗余校驗碼〔CyclicRedundancyCheck〕:是數(shù)據(jù)通信領(lǐng)域中最常用的一種過失校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。冗余編碼是在二進制通信系統(tǒng)中常用的過失檢測方法,它是通過在原始數(shù)據(jù)后加冗余校驗碼來檢測過失,冗余位越多,檢測出傳輸錯誤的機率越大。循環(huán)冗余編碼〔CyclicRedundancyCodes,簡稱CRC〕是一種常用的冗余編碼。CRC校驗的根本原理是:CRC碼是由兩局部組成的,前局部是信息碼,就是需要校驗的信息,后局部是校驗碼,如果CRC碼長共nbit,信息碼長kbit,就稱為〔n,k〕碼,剩余的rbit即為校驗位。如:〔7,3〕碼:1101001,前三位110為信息碼,1001為校驗碼。CRC校驗碼的生成規(guī)那么:A、將原信息碼左移rbit,右側(cè)補零,如110-->1100000;B、用1100000除以G(x),得到的余數(shù)即為CRC校驗碼;CRC可由一稱為生成多項式的常數(shù)去除該數(shù)據(jù)流的二進制數(shù)值而得,商數(shù)被放棄,余數(shù)作為冗余編碼追加到數(shù)據(jù)流尾,產(chǎn)生新的數(shù)據(jù)流進行發(fā)送。在接收端,新的數(shù)據(jù)流被同一常數(shù)去除,檢查余數(shù)是否為零。如果余數(shù)為零,就認為傳輸正確,否那么就認為傳輸中已發(fā)生過失,該數(shù)據(jù)流重發(fā)。在產(chǎn)生CRC校驗碼時,需要用到除法運算。一般說來,非常大的數(shù)字進行除法時,用數(shù)字邏輯實現(xiàn)時是比擬麻煩的。因此,把二進制信息預(yù)先轉(zhuǎn)換成一定的格式,這就是CRC的多項式表示。二進制數(shù)表示為生成多項式的系數(shù),如下公式所示:生成多項式是接受方和發(fā)送方的一個約定,也就是一個二進制數(shù),在整個傳輸過程中,這個數(shù)始終保持不變。在發(fā)送方,利用生成多項式對信息多項式做模2除生成校驗碼。在接受方利用生成多項式對收到的編碼多項式做模2除檢測和確定錯誤位置。應(yīng)滿足以下條件:A、生成多項式的最高位和最低位必須為1;B、當被傳送信息任何一位發(fā)生錯誤時,被生成多項式做除后應(yīng)該使余數(shù)不為0;C、不同位發(fā)生錯誤時,應(yīng)該使余數(shù)不同;D、對余數(shù)繼續(xù)做除,應(yīng)使余數(shù)循環(huán)。在多項式表示中,所有的二進制數(shù)均被表示成一個多項式,多項式的系數(shù)就是二進制中的對應(yīng)值。D為數(shù)據(jù)流多項式,G為生成多項式,Q為商數(shù)多項式,R為余數(shù)多項式。在生成CRC校驗碼時,數(shù)據(jù)流多項式D被乘以Xn,這里n為生成多項式G的最高次數(shù),也就是CRC的長度。這個操作是通過將左移n位得到的,我們可以用CRC來代替多項式最后的n個0,組成新的數(shù)據(jù)流多項式。由于二進制的加法和減法是等價的,所以產(chǎn)生新的數(shù)據(jù)流多項式應(yīng)能被生成多項式G除盡。用以下公式表示為:在接收端,傳輸信息的前一局部為原始數(shù)據(jù)流D;后一局部〔最后n位數(shù)〕為余數(shù)R。整個數(shù)據(jù)流多項式被同一生成多項式G去除,商數(shù)被丟棄,余數(shù)應(yīng)為0。如果余數(shù)不為0,說明傳輸數(shù)據(jù)時發(fā)生錯誤,數(shù)據(jù)需要重傳。不同的生成多項式有不同的檢錯能力,為了得到優(yōu)化的結(jié)果,我們必須根據(jù)需要選擇適宜的生成多項式,CRC-16的生成多項式為:SerialData即為需要校驗的8bit數(shù)據(jù)。從把數(shù)據(jù)移位開始計算,將數(shù)據(jù)位〔從最低的數(shù)據(jù)位開始〕逐位移入反向耦合移位存放器。當所有數(shù)據(jù)位都這樣操作后,計算結(jié)束。此時,16位移位存放器中的內(nèi)容即為CRC的16位校驗碼。生成CRC-16的移位存放器的工作原理如圖4.1所示說明并行CRC-16校驗碼產(chǎn)生器設(shè)計中CRC校驗值的計算原理。圖4.1生成CRC-16的移位存放器的工作原理4.2程序設(shè)計及仿真CRC校驗碼產(chǎn)生器分兩種:串行CRC校驗碼產(chǎn)生器和并行CRC校驗碼產(chǎn)生器。本文用到的是并行CRC校驗碼產(chǎn)生器。由于計算并行CRC時用到了串行CRC的一些思想,所以在此先講一下串行CRC的產(chǎn)生。通常,CRC校驗碼的值可以通過線性移位存放器和異或門求得,線性移位存放器一次移一位,完成除法功能,異或門完成不帶進位的減法功能。如果商數(shù)為1,那么從被除數(shù)的高階位減去除數(shù),同時移位存放器右移一位,準備為被除數(shù)的較低位進行運算。如果商數(shù)為0,那么移位存放器直接右移一位。串行CRC-16校驗碼產(chǎn)生器的原理圖如圖4.2所示。圖4.2串行CRC-16校驗碼產(chǎn)生器原理圖在設(shè)計并行CRC校驗碼產(chǎn)生器的時候,我們可以采用串行CRC校驗碼的思想,用線性移位存放器的方法產(chǎn)生并行CRC校驗碼。與串行CRC校驗碼產(chǎn)生器不同的是,并行CRC校驗碼產(chǎn)生器16位CRC同時輸出,所以要求在一個時鐘周期內(nèi),移位存放器一次需要移16位。實際上,移位存放器不可能在一個時鐘周期內(nèi)移16位,所以這局部電路是用組合邏輯來完成。利用串行CRC校驗碼的思想,采用8次For循環(huán)的方法產(chǎn)生并行CRC校驗碼。通過以上分析可得以下程序源代碼。如下所示://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校驗碼產(chǎn)生器設(shè)計的波形功能仿真如圖4.3所示。圖4.3并行CRC-16校驗碼產(chǎn)生器設(shè)計的波形功能仿真Gclk為時鐘信號,時鐘周期為1ns;Reset為復(fù)位信號,高電平復(fù)位清零;Soc為指示信號,低電平指示工作狀態(tài);Data_in為8bit并行輸入數(shù)據(jù);Crc_out為16位CRC校驗碼;Data_in與Crc_out對應(yīng)關(guān)系由圖可知:當8bit并行數(shù)據(jù)時,對應(yīng)數(shù)據(jù)流多項式。此時對應(yīng)的16位CRC校驗碼,那么對應(yīng)的余數(shù)多項式。因為生成多項式,由CRC-16校驗原理可知。由原理公式可得:多項式,所以多項式。即。因為生成多項式,所以商數(shù)多項式為整數(shù)。綜上所述,設(shè)計程序源代碼符合8bit并行數(shù)據(jù)Data_in與16位CRC校驗碼Crc_out的對應(yīng)關(guān)系。4.3適配器件選擇AlteraCycloneEP1C3T100C8,它具有可現(xiàn)場編程,低功耗,低價格等特點。外部引腳圖如圖4.4所示。圖4.4外部引腳圖引腳分配如圖4.5所示。圖4.5引腳分配小結(jié)通過對并行CRC-16校驗碼產(chǎn)生器設(shè)計,我了解CRC校驗的根本原理和算法,還掌握數(shù)字系統(tǒng)的設(shè)計方法及設(shè)計過程,進一步熟悉掌握硬件描述語言——VerilogHDL。還掌握運用模塊化的設(shè)計方法,熟悉開發(fā)軟件QuartusII軟件的使用方法及其開發(fā)流程。在此感謝在本次課程設(shè)計過程中給予我?guī)椭睦蠋熀屯瑢W(xué)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省隨州市部分高中2025-2026學(xué)年高一上學(xué)期期末聯(lián)考物理答案
- 貴州省貴陽市2025-2026學(xué)年上學(xué)期期末九年級物理試卷(含答案)
- 過程裝備密封技術(shù)
- 會東事業(yè)單位招聘2022年考試全真模擬試題4套及答案解析(附后)
- 鋼結(jié)構(gòu)成型技術(shù)操作要點
- 事業(yè)編考試判斷推理題及答案
- 社區(qū)護士考試題及答案
- 社保業(yè)務(wù)知識試題及答案
- 禽病防治試題庫及答案
- 甘肅省定西市岷縣2025-2026學(xué)年三年級上學(xué)期學(xué)情監(jiān)測數(shù)學(xué)試卷(含答案)
- 2024年風(fēng)電、光伏項目前期及建設(shè)手續(xù)辦理流程匯編
- 不良資產(chǎn)合作戰(zhàn)略框架協(xié)議文本
- 先進班級介紹
- 2025年浙江省輔警考試真題及答案
- 2025中國熱帶農(nóng)業(yè)科學(xué)院科技信息研究所第一批招聘4人備考題庫(第1號)附答案
- 雨課堂學(xué)堂在線學(xué)堂云《婚姻家庭法(武漢科大 )》單元測試考核答案
- (高清版)DB11∕T 2440-2025 學(xué)校食堂病媒生物防制規(guī)范
- 學(xué)堂在線 雨課堂 學(xué)堂云 研究生學(xué)術(shù)與職業(yè)素養(yǎng)講座 章節(jié)測試答案
- 2025光纖供貨合同模板
- 2025年山東省濟南市歷下區(qū)中考一模英語試題(原卷版+解析版)
- 制造部年終總結(jié)
評論
0/150
提交評論