CRC编码模块设计实验报告.doc

CRC编码模块设计实验报告.doc

ID:58676895

大小:482.00 KB

页数:11页

时间:2020-10-15

CRC编码模块设计实验报告.doc_第1页
CRC编码模块设计实验报告.doc_第2页
CRC编码模块设计实验报告.doc_第3页
CRC编码模块设计实验报告.doc_第4页
CRC编码模块设计实验报告.doc_第5页
资源描述:

《CRC编码模块设计实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、湖南科技大学《数字系统设计》综合实验报告实验题目:CRC编码模块设计班级:学号:姓名:日期:一:题目功能分析;设计一个在数字传输中常用的校验、纠错模块,CRC循环冗余校验模块设计简介:循环冗余校验(CRC)是一种根据网络数据封包或电脑档案等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。而且CRC码是目前通信系统中最常用的一种差错控制编码,利用其进行检错的过程可简单描述为:在发送端根据要传送的二进制码

2、序列,以一定的规则产生一个校验用的监督码,附在原始信息后边,构成一个新的二进制码序列数,然后发送出去。在接收端根据信息码和CRC码之间所遵循的规则进行检验,一旦传输过程中发生差错,则信息码元与监督码元之间的关系遭到破坏,从而可以发现错误,乃至纠正错误。CRC实验原理:CRC检验原理实际上就是在一个p位二位进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破

3、坏。因此,通过检查这一关系,就可以实现对数据正确性的检验。本设计需要完成16位信息和5位CRC校验码发送、接收,其功能实现为:采用平台上的A、B两组开关输入16位二进制数,输出为X、Y、Z三组发光二极管,同时要求6个数码管显示其相对应的16进制编码结果。二:总模块划分;由两个模块构成:CRC校验生成模块(发送)和CRC校验检错模块(接收),采用输入、输出否为并行的CRC校验生成方式。(结构图)三:代码实现;VHDL代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arit

4、h.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

5、):="";--signalsdata:std_logic_vector(15downto0):="00011";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

6、:std_logic_vector(20downto0);signalrcnt:std_logic_vector(4downto0);signalst:std_logic;signalrt:std_logic;signalcn:std_logic;signalstate:integerrange0to8;signaltdata1,tdata2,tdata3,tdata4,tdata5,tdata6,data:std_logic_vector(3downto0);beginp1:process(clk)variablecrcvar:std_l

7、ogic_vector(5downto0);beginifclk'eventandclk='1'thenif(st='0')thendtemp<=sdata;sdatam<=sdata;cnt<=(others=>'0');hsend<='0';st<='1';elsif(st='1'andcnt<11)thencnt<=cnt+1;if(dtemp(15)='1')thencrcvar:=dtemp(15downto10)xormulti_coef;dtemp<=crcvar(4downto0)&dtemp(5downto0)&'0'&'

8、0'&'0'&'0'&'0';elsedtemp<=dtemp(14downto0)&'0';endif;elsif(st='1'andcnt=11)thendatacrco<=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。