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

Subversion Repositories srdydrdy_lib

[/] [srdydrdy_lib/] [trunk/] [examples/] [bridge/] [rtl/] [mac_crc32.v] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 ghutchis
//----------------------------------------------------------------------
2
//  8-bit parallel CRC generator
3
//----------------------------------------------------------------------
4
 
5
module mac_crc32
6
  (input         clk,
7
   input         clear,   // also functions as reset
8
   input [7:0]   data,
9
   input         valid,
10
 
11
   output [31:0] crc);
12
 
13
  reg [31:0]      icrc;
14
  reg [31:0]      nxt_icrc;
15
  integer        i;
16
 
17
  assign         crc = ~icrc;
18
 
19
  always @*
20
    begin
21
      nxt_icrc[7:0] = icrc[7:0] ^ data;
22
      nxt_icrc[31:8] = icrc[31:8];
23
 
24
      for (i=0; i<8; i=i+1)
25
        begin
26
          if (nxt_icrc[0])
27
            nxt_icrc = nxt_icrc[31:1] ^ 32'hEDB88320;
28
          else
29
            nxt_icrc = nxt_icrc[31:1];
30
        end
31
    end // always @ *
32
 
33
  always @(posedge clk)
34
    begin
35
      if (clear)
36
        icrc <= #1 {32{1'b1}};
37
      else if (valid)
38
        icrc <= nxt_icrc;
39
    end
40
 
41
endmodule

powered by: WebSVN 2.1.0

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