循环冗余校验模块设计

上传人:夏** 文档编号:563081273 上传时间:2024-03-01 格式:DOCX 页数:4 大小:31.33KB
返回 下载 相关 举报
循环冗余校验模块设计_第1页
第1页 / 共4页
循环冗余校验模块设计_第2页
第2页 / 共4页
循环冗余校验模块设计_第3页
第3页 / 共4页
循环冗余校验模块设计_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《循环冗余校验模块设计》由会员分享,可在线阅读,更多相关《循环冗余校验模块设计(4页珍藏版)》请在金锄头文库上搜索。

1、实验十三循环冗余校验(CRC )模块设计一、实验目的1、学习使用FPGA器件完成数据传输中的差错控制;2、了解循环冗余校验CRC模块的工作原理3、应用VHDL语言设计循环冗余校验CRC模块,实现在数字传输中的校验和 纠错功能。3、学习实验环节的设计与实现。二、实验仪器计算机、Max+plusII或QuartusII软件、EDA试验箱、示波器。三、实验内容原理:CRC即Cyclic Redundancy Check循环冗余校验,是一种数字通信中的信 道编码技术。经过CRC方式编码的串行发送序列码,可称为CRC码,共由两部 分构成:k位有效信息数据和r位CRC校验码。其中r位CRC校验码是通过k

2、位有效信息序列被一个事先选择的r+1位“生成多项式”相“除”后得到的(r位余数 即是CRC校验码),这里的除法是“模2运算”。CRC校验码一般在有效信息发送 时产生,拼接在有效信息后被发送;在接收端,CRC码用同样的生成多项式相 除,除尽表示无误,弃掉r位CRC校验码,接收有效信息;反之,则表示传输 出错,纠错或请求重发。本设计完成12位信息加5位CRC校验码发送、接收, 由两个模块构成,CRC校验生成模块(发送)和CRC校验检错模块(接收),采用输 入、输出都为并行的CRC校验生成方式。图12.1的CRC模块端口数据说明如 下:datald: sdata 的装datafini:数据接收sda

3、ta: 12位的待发送信息;载信号;error:误码警告信号校验完成;elk:时钟信号;rdata:接收模块(检错模块)接收的12位有效信息数据;datacrc:附加上5位CRC校验码的17位CRC码,在生成模块被发送,在接收 模块被接收;hsend、hreev:生成、检错模块的握手信号,协调相互之间关系; 实验要求:1、设计CRC校验生成模块,采用的CRC生成多项式为X5+X4+X2+1,校验码 为5位,有效信息数据为12位。2、设计CRC校验查错模块,并将CRC校验生成模块和CRC校验查错模块连接 在一起,协调工作。3、估计实验使用的硬件资源,自行设定测试方法和测试内容。4、自行设定测试方

4、案和测试步骤。5、自行设定实验步骤和设计纪录方式,完成实验报告。四、实验研究与思考1、如果输入数据、输出CRC码都是串行的,设计该如何实现(提示:采用LFSR)。3、在例子程序中需要8个时钟周期才能完成一次CRC校验,试重新设计使得在 一个elk周期内完成。实验vhdl程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;USE IEEE.STD_LOGIC_arith.ALL;ENTITY crcm ISPORT( clk,hrecv,datald:IN STD_LOGIC;sdata:IN S

5、TD_LOGIC_VECTOR(11 DOWNTO 0); datacrco:out STD_LOGIC_VECTOR(16 DOWNTO 0);datacrci:in STD_LOGIC_VECTOR(16 DOWNTO 0);rdata:out STD_LOGIC_VECTOR(11 DOWNTO 0); datafini:out std_logic;ERROR0,hsend:out std_logic);END crcm;ARCHITECTURE comm OF crcm ISconstant multi_coef : std_logic_vector(5 downto 0) := 11

6、0101;signal cnt,rcnt :std_logic_vector(4 downto 0);signal dtemp,sdatam,rdtemp:std_logic_vector(11 downto 0);signal rdatacrc:std_logic_vector(16 downto 0);signal st,rt :std_logic;begin process(clk)variable crcvar : std_logic_vector(5 downto 0);begin if(clkevent and clk = T)thenif(st=0and datald=1)the

7、n dtemp0);hsendv=0;stv=T;elsif(st=T and cnt7)then cnt=cnt+1;if(dtemp(11)=1)then crcvar:=dtemp(11 downto 6)xor multi_coef; dtemp=crcvar(4 downto 0)& dtemp(5 downto 0) & 0;else dtemp=dtemp(10 downto 0) & 0;end if;elsif(st=1 and cnt=7)then datacrco=sdatam & dtemp(11 downto 7); hsendv=T;cntv=cnt+1;elsif

8、(st=1 and cnt=8) then hsend=0; st0);errorOv=0;rtv=T;elsif(rt=1and rcnt7)then datafiniv=0;rcntv=rcnt+1;rcrcvar:=rdtemp(11 downto multi_coef;if(rdtemp(11)=1)then rdtempv=rcrcvar(4 downto 0) & rdtemp(5 downto 0) & O; else rdtempv=rdtemp(10 downto 0) & 0;end if;elsif(rt=1 and rcnt=7)then datafini=1;rdat

9、a=rdatacrc(16 downto 5);rt=0;if(rdatacrc(4 downto 0) /=rdtemp(11 downto 7) then errorO elk,datacrci = dataerei,dataereo = datacreo, datafini = datafini, datald = datald,ERROR0 = ERROR0,hreev = hreev,hsend = hsend,rdata = rdata,sdata = sdata);init : PROCESSBEGINWAIT;END PROCESS init;always : PROCESSBEGINWAIT;END PROCESS always;END erem_areh;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号