微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 以太网的CRC校验

以太网的CRC校验

时间:10-02 整理:3721RD 点击:
需要做以太网的CRC校验,用并行32CRC,各位看我说的对不对。接受到32位数据,求一次CRC,再将此次的CRC与下一个32bit异或得到新的数据,在求新数据的CRC,一次类推,是这样吗?

不太正确。应该是,先把每个数据包的第一个32位数据求反,然后求得整个包的CRC。最后把这个结果求反。
第一个32位数据求反,可以用CRC的初值设为32'hFFFFFFFF来实现。
因此可以这样处理:
把CRC的初值设为32'hFFFFFFFF,算第一个8位数据的CRC;以这个结果为初值算下一个8位数据的CRC。如此往复。处理完一个数据包后,把这个结果求反。



   没错

从某博客找到一个数据包(橙黄色的是CRC),验证了一下我在2楼的描述。



C语言程序输出:




   66666,谢了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top