循環(huán)冗余(CRC)模塊設(shè)計(jì)資料_第1頁(yè)
循環(huán)冗余(CRC)模塊設(shè)計(jì)資料_第2頁(yè)
循環(huán)冗余(CRC)模塊設(shè)計(jì)資料_第3頁(yè)
循環(huán)冗余(CRC)模塊設(shè)計(jì)資料_第4頁(yè)
循環(huán)冗余(CRC)模塊設(shè)計(jì)資料_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、附表1:廣州大學(xué)學(xué)生實(shí)驗(yàn)報(bào)告開課學(xué)院及實(shí)驗(yàn)室:物理與電子工程學(xué)院-電子樓317室 2016 年 5 月 26 日 學(xué) 院物 電年級(jí)、專業(yè)、班姓名Jason.P學(xué)號(hào)實(shí)驗(yàn)課程名稱EDA技術(shù)實(shí)驗(yàn)成績(jī)實(shí)驗(yàn)項(xiàng)目名稱循環(huán)冗余(CRC)模塊設(shè)計(jì)指 導(dǎo) 教 師一、 實(shí)驗(yàn)?zāi)康模涸O(shè)計(jì)一個(gè)在數(shù)字傳輸中常用的校驗(yàn)、糾錯(cuò)模塊:循環(huán)冗余校驗(yàn)CRC模塊,學(xué)習(xí)使用FPGA器件完成數(shù)據(jù)傳輸中的差錯(cuò)控制。二、 實(shí)驗(yàn)內(nèi)容:1、實(shí)驗(yàn)原理:CRC即Cyclic Redundancy Check 循環(huán)冗余校驗(yàn),是一種數(shù)字通信中的信道編碼技術(shù)。經(jīng)過CRC方式編碼的串行發(fā)送序列碼,可稱為CRC碼,共由兩部分構(gòu)成:k位有效信息數(shù)據(jù)和r位CRC

2、校驗(yàn)碼。其中r位CRC校驗(yàn)碼是通過k位有效信息序列被一個(gè)事先選擇的r+1位“生成多項(xiàng)式”相“除”后得到(r位余數(shù)即是CRC校驗(yàn)碼),這里的除法是“模2運(yùn)算”。CRC校驗(yàn)碼一般在有效信息發(fā)送時(shí)產(chǎn)生,拼接在有效信息后被發(fā)送;在接收端,CRC碼用同樣的生成多項(xiàng)式相除,除盡表示無誤,棄掉r位CRC校驗(yàn)碼,接收有效信息;反之,則表示傳輸出錯(cuò),糾錯(cuò)或請(qǐng)求重發(fā)。本設(shè)計(jì)完成12位信息加5位CRC校驗(yàn)碼發(fā)送、接收,由兩個(gè)模塊構(gòu)成,CRC校驗(yàn)生成模塊(發(fā)送)和CRC校驗(yàn)檢錯(cuò)模塊(接收),采用輸入、輸出都為并行的CRC校驗(yàn)生成方式。圖10-1的CRC模塊端口數(shù)據(jù)說明如下:圖10-1 CRC模塊sdata:12位的待

3、發(fā)送信息datald:sdata的裝載信號(hào)datacrc:附加上5位CRC校驗(yàn)碼的17位CRC碼,在生成模塊被發(fā)送,在接收模塊被接收。clk:時(shí)鐘信號(hào)rdata:接收模塊(檢錯(cuò)模塊)接收的12位有效信息數(shù)據(jù)hsend、hrecv:生成、檢錯(cuò)模塊的握手信號(hào),協(xié)調(diào)相互之間關(guān)系error:誤碼警告信號(hào)datafini:數(shù)據(jù)接收校驗(yàn)完成采用的CRC生成多項(xiàng)式為X5+X4+X2+1,校驗(yàn)碼為5位,有效信息數(shù)據(jù)為12位。2、實(shí)驗(yàn)步驟:(1)編譯以上示例文件,給出仿真波形。(2)建立一個(gè)新的設(shè)計(jì),調(diào)入crcm模塊,把其中的CRC校驗(yàn)生成模塊和CRC校驗(yàn)查錯(cuò)模塊連接在一起,協(xié)調(diào)工作。引出必要的觀察信號(hào),鎖定引

4、腳,并在EDA實(shí)驗(yàn)系統(tǒng)上的FPGA目標(biāo)器件中實(shí)現(xiàn)。三、 實(shí)驗(yàn)HDL描述:module sender(clk,sdata,datald,datacrc,hsend);input11:0 sdata;input clk,datald;output16:0 datacrc;output hsend;parameter D=6b;reg16:0 datacrc;parameter s0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8,s9=9;reg hsend;reg3:0 cs;reg11:0 data;always(posedge clk) if(datald

5、) cs=s0; else case(cs) s0:begin cs=s1;data=sdata;datacrc16:5=sdata;hsend=0;end s1:begin cs=s2; if(data11=1) data=dataD; data=data1; end s2:begin cs=s3; if(data11=1) data=dataD; data=data1; end s3:begin cs=s4; if(data11=1) data=dataD; data=data1; end s4:begin cs=s5; if(data11=1) data=dataD; data=data

6、1; end s5:begin cs=s6; if(data11=1) data=dataD; data=data1; end s6:begin cs=s7; if(data11=1) data=dataD; data=data1; end s7:begin cs=s8; if(data11=1) data=dataD; data=data1; end s8:begin cs=s9; hsend=1; datacrc=datacrc16:5,data11:7; end s9:begin hsend=0; end endcaseendmodulemodule receive(clk,rdata,

7、datafini,datacrc,hrecv,error);input16:0 datacrc;input clk,hrecv;output11:0 rdata;output datafini,error;parameter D=6b;parameter s0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8;reg datafini,error;reg 11:0 rdata;reg3:0 cs;reg11:0 data;always(posedge clk) if(hrecv) cs=s0;else case(cs) s0:begin cs=s1;data=

8、datacrc16:5;rdata11:0=datacrc16:5;error=0; datafini=0;end s1:begin cs=s2; if(data11=1) data=dataD; data=data1; end s2:begin cs=s3; if(data11=1) data=dataD; data=data1; end s3:begin cs=s4; if(data11=1) data=dataD; data=data1; end s4:begin cs=s5; if(data11=1) data=dataD; data=data1; end s5:begin cs=s6

9、; if(data11=1) data=dataD; data=data1; end s6:begin cs=s7; if(data11=1) data=dataD; data=data1; end s7:begin cs=s8; if(data11=1) data=dataD; data=data1; end s8:begin if (data11:7=datacrc4:0) error=0; else error=1; datafini=1; end endcaseendmodule電路原理圖的頂層設(shè)計(jì)四、仿真結(jié)果:仿真時(shí)序圖運(yùn)行流程:datald為0時(shí),生成、接收模塊最終保持在s9、s8

10、狀態(tài);當(dāng)datald在一個(gè)時(shí)鐘上升沿為1時(shí),生成模塊從s0運(yùn)行至保持s9;其中生成模塊s8狀態(tài)的操作使聯(lián)絡(luò)信號(hào)置1,接收模塊也將因此從s0運(yùn)行至保持s9。上圖初始時(shí)運(yùn)行流程為:第1個(gè)時(shí)鐘上升沿,datald信號(hào)置1,生成模塊狀態(tài)置為s0;此時(shí)接收模塊狀態(tài)為s0,執(zhí)行狀態(tài)操作(rdata取得數(shù)據(jù)為0,中間變量data取得數(shù)據(jù)為sdata);第2個(gè)時(shí)鐘上升沿,生成模塊處理狀態(tài)s0時(shí)事件,此時(shí)數(shù)據(jù)輸出口高12位為原始數(shù)據(jù)sdata;接收端在2-8時(shí)鐘上升沿(s1-s7)生成校驗(yàn)碼;第3-9個(gè)時(shí)鐘上升沿,生成模塊狀態(tài)為s1-s7,生成校驗(yàn)碼;第9個(gè)時(shí)鐘上升沿,接收模塊狀態(tài)為s8,提取接收的校驗(yàn)碼,與自

11、身生成的校驗(yàn)碼比較,若不同則error為1,最后校驗(yàn)完成信號(hào)datafini置1,接收端停留在此狀態(tài),直至接收聯(lián)絡(luò)信號(hào)為1,回到s0狀態(tài);第10個(gè)時(shí)鐘上升沿,生成模塊狀態(tài)為s8,將校驗(yàn)碼并位至輸出口低5位,并將聯(lián)絡(luò)信號(hào)置1;時(shí)鐘上升沿時(shí)聯(lián)絡(luò)信號(hào)為0,接收模塊保持狀態(tài)s8,并執(zhí)行相應(yīng)操作;第11個(gè)時(shí)鐘上升沿,生成模塊狀態(tài)為s9,將聯(lián)絡(luò)信號(hào)置0,無datald高電平將保持此狀態(tài);時(shí)鐘上升沿時(shí)聯(lián)絡(luò)信號(hào)為1,接收模塊狀態(tài)置為s0;第12個(gè)時(shí)鐘上升沿,接收模塊狀態(tài)為s0,執(zhí)行操作為:rdata和中間變量data均取得帶校驗(yàn)碼的17位數(shù)據(jù)的高12位,即sdata,并清除datafini和error信號(hào);第

12、13-20個(gè)時(shí)鐘上升沿,接收模塊事件情況同第2-9個(gè)時(shí)鐘上升沿;第21個(gè)時(shí)鐘上升沿及之后,由于聯(lián)絡(luò)信號(hào)始終為0,接收模塊保持狀態(tài)s8。五、引腳鎖定:六、硬件測(cè)試結(jié)果:下載程序到目標(biāo)機(jī)圖1圖2圖3注:采用模式1。由鍵4-鍵2設(shè)置待發(fā)送的數(shù)據(jù)并由數(shù)碼管4-數(shù)碼管2顯示;數(shù)碼管7-數(shù)碼管5顯示接收到的數(shù)據(jù);LED-D8為error信號(hào);LED-D7為datafini信號(hào);鍵7控制datald信號(hào),由硬件測(cè)試可以清晰的看到,當(dāng)datald信號(hào)經(jīng)過一次高低電平切換后,在數(shù)碼管7-數(shù)碼管5顯示出接收到的數(shù)據(jù)和輸入的數(shù)據(jù)一致。七、實(shí)驗(yàn)心得:通過本次實(shí)驗(yàn)使我明白了循環(huán)冗余(CRC)校驗(yàn)實(shí)現(xiàn)的原理,同時(shí)也掌握了其Verilog HDL代碼編寫及原理圖設(shè)計(jì)的方法。八、思考題:1. 如果輸入數(shù)據(jù)、輸出CRC碼都是串行的,設(shè)計(jì)該如何實(shí)現(xiàn)(提示:采用LFSR)。答:通過線性反饋移位寄存器(LFSR)實(shí)現(xiàn)。 通過CRC的生成原理知道CRC的檢驗(yàn)碼生成是通過除法得到,由此聯(lián)想到可以通過LFSR來產(chǎn)生校驗(yàn)碼。 假設(shè)原信息碼子多項(xiàng)式為 生成多項(xiàng)式為 那么CRC的碼字為,使用用LFSR電路來進(jìn)行實(shí)現(xiàn),將M(x)向左移r位在電路中的意義即為輸入完信息碼后再輸入r個(gè)0,所以在電路上的表現(xiàn)就如圖所示。 將這個(gè)時(shí)刻產(chǎn)生的寄存器輸入添加到原信息

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論