循环冗余校验(crc)模块设计_第1页
循环冗余校验(crc)模块设计_第2页
循环冗余校验(crc)模块设计_第3页
循环冗余校验(crc)模块设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、;error:误码警告信号;datafini :数据接收校验完成;rdata:接收模块(检错模块)接收的12位有效信息数据;clk:时钟信号;datacrc附加上5位CRC校验码的17位CRC码,在生成模块被发送,在接收 模块被接收;hsend hrecv:生成、检错模块的握手信号,协调相互之间关系; 实验要求: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_ un sig ned.ALL;USE IEEE.STD_LOGIC_arith.ALL;ENTITY crcm ISPORT( clk,hrecv,datald:IN STD_LOGIC;sdata:IN

5、STD_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);datafi ni:out std_logic; ERROR0,hse nd:out std_logic);END crcm;ARCHITECTURE comm OF crcm IScon sta nt multi_coef : std_logic_vector(5 dow nto 0)

6、:= "110101"sig nal cn t,rc nt :std_logic_vector(4 dow nto 0);sig nal dtemp,sdatam,rdtemp:std_logic_vector(11 dow nto 0);sig nal rdatacrc:std_logic_vector(16 dow nto 0);sig nal st,rt :std_logic;begi nprocess(clk)variable crcvar : std_logic_vector(5 dow nto 0);begi n if(clk'eve nt and cl

7、k = '1')the nif(st='0'a nd datald='1')the n dtemp<=sdata;sdatam<=sdata;c nt<=(others=>'0');hse nd<='0'st<='1'elsif(st='1' and cn t<7)the n cn t<=c nt+1;if(dtemp(11)='1')the n crcvar:=dtemp(11 dow nto 6)xor multi_

8、coef;dtemp<=crcvar(4 dow nto 0)& dtemp(5 dow nto 0) & '0'else dtemp<=dtemp(10 dow nto 0) & '0'end if;elsif(st='1' and cn t=7)the n datacrco<=sdatam & dtemp(11 dow nto 7);hse nd<='1'c nt<=c nt+1;elsif(st='1' and cnt=8) then hsen d

9、<='0' st<='0'end if;end if;end process;process(clk,hrecv)variable rcrcvar : std_logic_vector(5 dow nto 0);beginif(clk'event and elk = '1')then6)xorif(rt='O'a nd hrecv='1')the n rdtemp<=datacrci(16 DOWNTO 5); rdatacrc<=datacrci;rc nt<=(others

10、=>'0');errorO<='0'rt<='1'elsif(rt='1'a ndren t<7)the ndatafi ni<='O'rc nt<=rc nt+1;rcrcvar:=rdtemp(11dow ntomulti_coef;if(rdtemp(11)='1')the n rdtemp<=rcrcvar(4 down to 0) & rdtemp(5 dow nto 0) & 'O' else rdtemp<

11、=rdtemp(10 dow nto 0) & 'O'end if;elsif(rt='1' and ren t=7)the n datafi ni<='1:rdata<=rdatacrc(16 dow nto 5);rt<='0'if(rdatacrc(4 dow nto 0) /=rdtemp(11 dow nto 7) the n errorO <='1'end if; end if; end if;end process;end comm;以下内容为上面的源代码生成的 tesh ba

12、nch模板文件,这个时候该怎么修改!LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY crcm_vhd_tst ISEND crcm_vhd_tst;ARCHITECTURE crcm_arch OF crcm_vhd_tst ISSIGNAL clk : STD_LOGIC;SIGNAL datacrci : STD_LOGIC_VECTOR(16 DOWNTO 0);SIGNAL datacrco : STD_LOGIC_VECTOR(16 DOWNTO 0);SIGNAL datafi ni : STD_LOGIC;SIGNAL datald

13、 : STD_LOGIC;SIGNAL ERROR0 : STD_LOGIC;SIGNAL hrecv : STD_LOGIC;SIGNAL hse nd : STD_LOGIC;SIGNAL rdata : STD_LOGIC_VECTOR(11 DOWNTO 0);SIGNAL sdata : STD_LOGIC_VECTOR(11 DOWNTO 0); COMPONENT crcmPORT (clk : IN STD_LOGIC;datacrci : IN STD_LOGIC_VECTOR(16 DOWNTO 0); datacrco : OUT STD_LOGIC_VECTOR(16

14、DOWNTO 0); datafi ni : OUT STD_LOGIC;datald : IN STD_LOGIC;ERROR0 : OUT STD_LOGIC;hrecv : IN STD_LOGIC;hse nd : OUT STD_LOGIC;rdata : OUT STD_LOGIC_VECTOR(11 DOWNTO 0); sdata : IN STD_LOGIC_VECTOR(11 DOWNTO 0) );END COMPONENT;BEGINi1 : crcmPORT MAP (clk => clk,datacrci => datacrci,datacrco => datacrco, datafi ni => datafi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论