资料
  • 资料
  • 专题
任意的CRC校验
推荐星级:
时间:2019-12-20
大小:2.35KB
阅读数:201
上传用户:givh79_163.com
查看他发布的资源
下载次数
0
所需E币
3
ebi
新用户注册即送 300 E币
更多E币赚取方法,请查看
close
资料介绍
CRC校验的重要性在此不必赘述,因为来看此帖的电子工程师都知道。 我们在设计CRC校验时,有时遇到的情况是串行比特流,即:每一个时钟读一个比特,并刷新CRC校验值,当读取最后一个比特后,CRC的值为最终校验结果。有时碰到的却是并行数据流,比如逐个字节、逐个字或逐个双字等很多情况。这时,每一个时钟周期也需要刷新一次CRC校验值,当读取最后一个并行数据后,需要得到最终的校验结果。 为满足这一需要,我特意用VHDL语言编写了一个任意比特宽、任意生成多项式的CRC校验模块ArbitraryCRC,实体如下,内容见附件。Entity ArbitraryCRC isGeneric( data_width : integer := 1; crc_polynomial : std_logic_vector := "10011" );Port( clock : in std_logic; rst : in std_logic; data : in std_logic_vector(data_width-1 downto 0); q : out std_logic_vector( crc_polynomial'length-2 downto 0) );End ArbitraryCRC;说明: data_width--表示输入数据流的比特宽度,当值为1时表示比特流,为8则是字节流,等等。默认为比特流。 crc_polynomial--生成多项式,默认为CRC_4采用的一种生成多项式。 clock--工作时钟,上升沿读取rst和data并刷新q值。 rst--校验开始,rst有效后接下来的一个时钟周期为需要校验的第一个数。 data--数据流。 q--CRC校验动态结果,最后一个数据有效后接下来的一个周期即为最终校验值,即:在最后一个数据的下一个周期读取q便得到校验结果。与大家共享,欢迎提宝贵意见。……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
PARTNER CONTENT
相关评论 (下载后评价送E币 我要评论)
没有更多评论了
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书