欢迎来到天天文库
浏览记录
ID:36750618
大小:327.00 KB
页数:7页
时间:2019-05-14
《循环冗余校验CRC模块设计EDA实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《EDA技术》实验报告实验名称:循环冗余校验(CRC)模块设计姓名:xxx班级:xxxx学号:xxxxx实验日期:指导教师:一、实验设计要求编译示例文件,给出仿真波形。建立一个新的设计,调入crcm模块。把其中的CRC校验生成模块和CRC校验查错模块连接在一起,协调工作。引出必要的信号,锁定引脚,并在EDA实验系统上实现。二、设计原理电路结构图或原理图:Crcm:Crcma:电路功能描述:把crcm模块的datacrco和datacrci连接起来,hrecv和hsend连接起来,输入有效数据后CRC校验生成模块对数据进行特殊运算,产生5位校验码,并和原数据并接成17位传
2、输数据,CRC校验查错模块取出传输数据后12位并对它进行同样的特殊运算,得到5位校验码,于传输数据钱5位比较,如果一样那么传输无误,不一样说明数据在传输途中错误了。三、实验程序程序一:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitycrcmisport(clk,hrecv,datald,rst:instd_logic;sdata:instd_logic_vector(11downto0);datacrco:out
3、std_logic_vector(16downto0);datacrci:instd_logic_vector(16downto0);rdata:outstd_logic_vector(11downto0);datafini:outstd_logic;error0,hsend:outstd_logic);endcrcm;architecturecommofcrcmisconstantmulti_coef:std_logic_vector(5downto0):="110101";signalcnt,rcnt:std_logic_vector(4downto0);signa
4、ldtemp,sdatam,rdtemp:std_logic_vector(11downto0);signalrdatacrc:std_logic_vector(16downto0);signalst,rt:std_logic;beginprocess(rst,clk)variablecrcvar:std_logic_vector(5downto0);beginifrst='1'thenst<='0';elsif(clk'eventandclk='1')thenif(st='0'anddatald='1')thendtemp<=sdata;sdatam<=sdata;c
5、nt<=(others=>'0');hsend<='0';st<='1';elsif(st='1'andcnt<7)thencnt<=cnt+1;if(dtemp(11)='1')thencrcvar:=dtemp(11downto6)xormulti_coef;dtemp<=crcvar(4downto0)&dtemp(5downto0)&'0';elsedtemp<=dtemp(10downto0)&'0';endif;elsif(st='1'andcnt=7)thendatacrco<=sdatam&dtemp(11downto7);hsend<='1';cnt<
6、=cnt+1;elsif(st='1'andcnt=8)thenhsend<='0';st<='0';endif;endif;endprocess;process(rst,hrecv,clk)variablercrcvar:std_logic_vector(5downto0);beginifrst='1'thenrt<='0';elsif(clk'eventandclk='1')thenif(rt='0'andhrecv='1')thenrdtemp<=datacrci(16downto5);rdatacrc<=datacrci;rcnt<=(others=>'0');
7、error0<='0';rt<='1';elsif(rt='1'andrcnt<7)thendatafini<='0';rcnt<=rcnt+1;if(rdtemp(11)='1')thenrcrcvar:=rdtemp(11downto6)xormulti_coef;rdtemp<=rcrcvar(4downto0)&rdtemp(5downto0)&'0';elserdtemp<=rdtemp(10downto0)&'0';endif;elsif(rt='1'andrcnt=7)thendatafini<='1';rdata<=rda
此文档下载收益归作者所有