module crc_16(
input clk,
input [47:0]mac,
input rst,
input hash_enable,//哈希控制器使能位
output reg hash_complete,//哈希转换完成标志位
output reg [15:0]crc_16
);
wire[63:0]stemp;
reg[63:0]temp=0;
reg temp_flag;
parameter polynomial=17'b1_0001_0000_0010_0001;
assign stemp={mac,16'b0000000000000000};
always @ (*) begin//posedge clk or negedge rst
if(rst) begin
hash_complete<=0;
crc_16<=0;
temp<=0;
temp_flag<=0;
end
else if(hash_enable && temp_flag)begin
if(temp[63]) temp[63:47]<=temp[63:47]^polynomial;
else if(temp[62]) temp[62:46]<=temp[62:46]^polynomial;
else if(temp[61]) temp[61:45]<=temp[61:45]^polynomial;
else if(temp[60]) temp[60:44]<=temp[60:44]^polynomial;
else if(temp
FPGA CRC-16/XMODEM x16+x12+x5+1
最新推荐文章于 2025-11-01 20:20:19 发布
本文详细介绍了如何在FPGA中实现CRC-16 XMODEM校验算法,该算法使用多项式x16+x12+x5+1。内容涵盖了CRC的基本原理,FPGA设计流程及关键步骤,帮助读者理解并掌握FPGA中的CRC计算实现。

最低0.47元/天 解锁文章
1195

被折叠的 条评论
为什么被折叠?



