以太网帧需要对数据进行CRC校验,原理部分参考以下文章:
https://blog.51cto.com/winda/1063951
https://www.cnblogs.com/masonzhang/p/10261855.html
以太网帧需要进行CRC32校验,FPGA开发一般使用的是CRC32_d4.v这个代码进行校验和的计算,输入数据是4比特,初始值是32’hffffffff,代码是组合逻辑实现的,片段如下:

后来发现一个网站,可以根据需要来生成CRC校验相关的verilog代码,https://www.easics.com/crctool/

为了理解上述代码是如何得到的,以CRC8ATM HEC来说明
CRC8 ATM HEC多项式为:

通过LFSR来进行模2除法运算,示意图如下: