首页 > 代码库 > CRC校验
CRC校验
小试一下CRC校验的verilog实现,采用最stupid的直接法。
/* date : 2014/06/06 designer : pengxiaoen virsion : Altera-Modelsim 6.6d function Straightforward CRC Implementation */ module CRC_stra ( clock , reset , and_crc_code ); input clock,reset ; output [13:0] and_crc_code ; parameter un_crc_code = 10‘b11_0101_1011, //10位 待测数据 gener_code = 5‘b10011; //生成项 reg [3:0] cnt ; //计算次数 = 待测数据的位数 - 1 reg [4:0] crc_code ; //余数缓存器 reg [9:0] code_reg ; //待测数据缓存 always @ (posedge clock ) if(!reset) begin cnt <= 3‘d0 ; crc_code <= 5‘d0 ; code_reg <= un_crc_code ; end else begin if(cnt==0) begin cnt <= cnt + 4‘d1; code_reg <= code_reg<<1 ; // crc_code <= {gener_code[3:0] ^ code_reg[8:5] ,code_reg[4]}; end else if((cnt<=4‘d8) &&(cnt)) begin cnt <= cnt + 4‘d1; code_reg <= code_reg<<1 ; if(crc_code[4]) crc_code <= {gener_code[3:0] ^ crc_code[3:0] ,code_reg[4]}; else crc_code <= {crc_code[3:0], code_reg[4]}; end else begin cnt = 4‘d9; end end assign and_crc_code = (cnt == 4‘d9) ? {un_crc_code,crc_code[3:0]} : 14‘dz; endmodule
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。