OpenCores
URL https://opencores.org/ocsvn/srdydrdy_lib/srdydrdy_lib/trunk

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [examples/] [bridge/] [rtl/] [mac_crc32.v] - Rev 24

Compare with Previous | Blame | View Log

//----------------------------------------------------------------------
//  8-bit parallel CRC generator
//----------------------------------------------------------------------
 
module mac_crc32
  (input         clk,
   input         clear,   // also functions as reset
   input [7:0]   data,
   input         valid,
 
   output [31:0] crc);
 
  reg [31:0] 	 icrc;
  reg [31:0] 	 nxt_icrc;
  integer 	 i;
 
  assign 	 crc = ~icrc;
 
  always @*
    begin
      nxt_icrc[7:0] = icrc[7:0] ^ data;
      nxt_icrc[31:8] = icrc[31:8];
 
      for (i=0; i<8; i=i+1)
	begin
	  if (nxt_icrc[0])
	    nxt_icrc = nxt_icrc[31:1] ^ 32'hEDB88320;
	  else
	    nxt_icrc = nxt_icrc[31:1];
	end
    end // always @ *
 
  always @(posedge clk)
    begin
      if (clear)
	icrc <= #1 {32{1'b1}};
      else if (valid)
	icrc <= nxt_icrc;
    end
 
endmodule

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.