CRC編碼模塊設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
CRC編碼模塊設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
CRC編碼模塊設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
CRC編碼模塊設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
CRC編碼模塊設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南科技大學(xué)《數(shù)字系統(tǒng)設(shè)計(jì)》綜合實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目CRC編碼模塊設(shè)計(jì) 班級(jí): 學(xué)號(hào): 姓名: 日期::題目功能分析;設(shè)計(jì)一個(gè)在數(shù)字傳輸中常用的校驗(yàn)、糾錯(cuò)模塊,CRC循環(huán)冗余校驗(yàn)?zāi)K設(shè)計(jì)簡介:循環(huán)冗余校驗(yàn)(CRC)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)封包或電腦檔案等數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗(yàn)碼的一種散列函數(shù),主要用來檢測或校驗(yàn)數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。生成的數(shù)字在傳輸或者儲(chǔ)存之前計(jì)算出來并且附加到數(shù)據(jù)后面,然后接收方進(jìn)行檢驗(yàn)確定數(shù)據(jù)是否發(fā)生變化。而且CRC碼是目前通信系統(tǒng)中最常用的一種差錯(cuò)控制編碼,利用其進(jìn)行檢錯(cuò)的過程可簡單描述為:在發(fā)送端根據(jù)要傳送的二進(jìn)制碼序列,以一定的規(guī)則產(chǎn)生一個(gè)校驗(yàn)用的監(jiān)督碼,附在原始信息后邊,構(gòu)成一個(gè)新的二進(jìn)制碼序列數(shù),然后發(fā)送出去。在接收端根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進(jìn)行檢驗(yàn),一旦傳輸過程中發(fā)生差錯(cuò),則信息碼元與監(jiān)督碼元之間的關(guān)系遭到破壞,從而可以發(fā)現(xiàn)錯(cuò)誤,乃至糾正錯(cuò)誤°CRC實(shí)驗(yàn)原理:CRC檢驗(yàn)原理實(shí)際上就是在一個(gè)p位二位進(jìn)制數(shù)據(jù)序列之后附加一個(gè)r位二進(jìn)制檢驗(yàn)碼(序列),從而構(gòu)成一個(gè)總長為n=p+r位的二進(jìn)制序列;附加在數(shù)據(jù)序列之后的這個(gè)檢驗(yàn)碼與數(shù)據(jù)序列的內(nèi)容之間存在著某種特定的關(guān)系。如果因干擾等原因使數(shù)據(jù)序列中的某一位或某些位發(fā)生錯(cuò)誤,這種特定關(guān)系就會(huì)被破壞。因此,通過檢查這一關(guān)系,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)正確性的檢驗(yàn)。本設(shè)計(jì)需要完成16位信息和5位CRC校驗(yàn)碼發(fā)送、接收,其功能實(shí)現(xiàn)為:采用平臺(tái)上的A、B兩組開關(guān)輸入16位二進(jìn)制數(shù),輸出為X、Y、Z三組發(fā)光二極管,同時(shí)要求6個(gè)數(shù)碼管顯示其相對(duì)應(yīng)的16進(jìn)制編碼結(jié)果。二:總模塊劃分;由兩個(gè)模塊構(gòu)成:CRC校驗(yàn)生成模塊(發(fā)送)和CRC校驗(yàn)檢錯(cuò)模塊(接收),采用輸入、輸出否為并行的CRC校驗(yàn)生成方式。(結(jié)構(gòu)圖)三:代碼實(shí)現(xiàn);VHDL代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitycrcisport(clk:instd_logic;sdata:instd_logic_vector(15downto0);smg:outstd_logic_vector(7downto0);led:outstd_logic_vector(7downto0);error,hsend:outstd_logic);endcrc;architecturecommofcrcisconstantmulti_coef:std_logic_vector(5downto0):="110101";--signal sdata:std_logic_vector(15 downto0):="1010001000100011";signaldatacrco:std_logic_vector(23downto0);signalcnt:std_logic_vector(4downto0);signaldtemp:std_logic_vector(15downto0);signalsdatam:std_logic_vector(15downto0);signalrdtemp:std_logic_vector(15downto0);signalrdatacrc:std_logic_vector(20downto0);signalrcnt:std_logic_vector(4downto0);signalst:std_logic;signalrt:std_logic;signalcn:std_logic;signalstate:integerrange0to8;signaltdata1,tdata2,tdata3,tdata49tdata59tdata6,data:std_logic_vector(3downto0);beginp1:process(clk)variablecrcvar:std_logic_vector(5downto0);beginifclk'eventandclk='1'thenif(st='0')thendtemp<=sdata;sdatam<=sdata;cnt<=(others=>'0');hsend<='0';st<=T;elsif(st='1'andcnt<11)thencnt<=cnt+1;if(dtemp(15)='1')thencrcvar:=dtemp(15downto10)xormulti_coef;dtemp<=crcvar(4downto0)&dtemp(5downto0)&'0'&'0'&'0'&'0'&'0';elsedtemp<=dtemp(14downto0)&'0';endif;elsif(st='1'andcnt=11)thendatacrco<='0'&'0'&'0'&sdata&dtemp(15downto11);hsend<='1';cnt<=cnt+1;elsif(st='1'andcnt=11)thenhsend<='0';st<='0';endif;endif;endprocesspl;tdata1<=datacrco(23downto20);tdata2<=datacrco(19downto16);tdata3<=datacrco(15downto12);tdata4<=datacrco(11downto8);tdata5<=datacrco(7downto4);tdata6<=datacrco(3downto0);cn<=T;process(clk)beginif(clk'eventandclk='1'andcn='1')thenstate<=state+1;endif;endprocess;process(data,state)begincasedataiswhen"0000"=>smg<="10111111";when"0001"=>smg<="10000110";when"0010"=>smg<="11011011";whenn0011n=>smg<=n11001111n;whenn0100n=>smg<=n11100110n;whenn0101n=>smg<=n11101101n;whenn0110n=>smg<=n11111101n;whenn0111n=>smg<=n10000111n;whenn1000n=>smg<=nlllllllln;whenn1001n=>smg<=n11101111H;whenn1010n=>smg<=n11110111H;whenn1011n=>smg<=n11011110H;whenn1100n=>smg<=n10111001H;whenn1101n=>smg<=n11111100H;whenn1110n=>smg<=n11111001H;when"lllln=>smg<=n11110001H;whenothers=>smg<=nOOOOOOOOH;endcase;endprocess;process(tdatal9tdata29tdata39tdata49tdata59tdata6,state)begincasestateiswhenl=>led<="11111110";data<=tdatal;when2=>led<="11111101";data<=tdata2;when3=>led<="11111011";data<=tdata3;when4=>led<="11110111";data<=tdata4;when5=>led<="11101111";data<=tdata5;when6=>led<="11011111";data<=tdata6;whenothers=>led<="11111111”;data<="1111”;endcase;endprocess;endcomm;四:仿真與實(shí)驗(yàn)結(jié)果;???????????["q匚ig匚qEg2"TOC\o"1-5"\h\z二?—身HIIHHMUH4*一' zE”?n "?”eh;SStS^I*}-mi遍!:窯”甚乎?上A?g“,川一o.■_** |十"*?上, ...■■.■■?■■■..?.■,■■...i._■?■—*I???. ..?-..s*牛I ― -匕七?? 9,■二廣J? … QRC^9ItaMMMMKMmII?Ab■■III**9 ? q “… 9 .芝匕烏*89■善??”~ =二二二二■■■左—";Y.孑XX*7^^>jG■一■a?w■sracwaQ?~;MUUf XSwS^K^^成由,—f.._.—一一

.?■.——.* —?—7^一.?TOC\o"1-5"\h\z_,*■*"*■* ■? r\~??■.....?.?“.■?********■--T. ?? -日?*-*<.,_9"M*iPJ-Tmf 1| ?首先在工程下VHDLfile編寫上述代碼,編寫完成,點(diǎn)擊電腦上的complication圖標(biāo),然后再點(diǎn)擊assignments,選擇pins選項(xiàng),按照所編程程序的要求,完成對(duì)輸入輸出引腳的綁定,在點(diǎn)擊仿真模擬的圖標(biāo),將程序仿真模擬,在實(shí)驗(yàn)平臺(tái)上顯示結(jié)果如上圖。五:小組成員及分工說明;小組成員:分工說明:首先各自通過老師發(fā)的資料安裝破解quartus軟件,再看視頻來學(xué)習(xí)其軟件的基礎(chǔ)使用。然后再翻閱書籍和在網(wǎng)上查閱資料了解到CRC編碼模塊設(shè)計(jì)的基本原理,一起編寫VHDl代碼,在軟件上進(jìn)行調(diào)試,運(yùn)行,糾錯(cuò)。通過多次,最后在實(shí)驗(yàn)平臺(tái)上進(jìn)行功能實(shí)現(xiàn)。六:設(shè)計(jì)心得,體會(huì);通過這次的EDA課題設(shè)計(jì),讓我們對(duì)CRC校驗(yàn)碼有了很深的了解,也相應(yīng)的對(duì)quartus軟件的使用有了很大的加深。經(jīng)過我們幾周的努力,還是比較符合要求的完成了課題的設(shè)計(jì)。這使我們明白了,學(xué)習(xí)上的很多事情,只要肯下工夫去鉆研,就一定能夠有所收獲,提高了我們對(duì)通信電路設(shè)計(jì)領(lǐng)域的認(rèn)識(shí),通過與同學(xué)分工合作既鍛煉了我們合作能力也提高了我們獨(dú)立分析問題和解決問題的能力。設(shè)計(jì)過程的復(fù)雜加老師的嚴(yán)格要求有益于培養(yǎng)我們嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)。在CRC編碼模塊設(shè)計(jì)的實(shí)驗(yàn)中,最開始對(duì)其完全沒有任何概念,也不知道是拿來做什么的,覺得對(duì)其基礎(chǔ)知識(shí)掌握的很差,對(duì)VHDL代碼的編寫也不了解,不知道怎樣做本實(shí)驗(yàn),突然感覺我們應(yīng)該仔細(xì)的看看書本知識(shí)才行,首先我們學(xué)習(xí)了怎樣操作quartus軟件,我們上網(wǎng)查詢了CRC的基本原理。了解其實(shí)驗(yàn)需要實(shí)現(xiàn)的功能。然后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論