gateware

A collection of little open source FPGA hobby projects
git clone http://frotz.net/git/gateware.git
Log | Files | Refs | README

eth_crc32_2.sv (1367B)


      1 // autogenerated by crctool -poly=4c11db7 -crcsz=32 -dinsz=2 -reverse
      2 
      3 module eth_crc32_2(
      4 	input clk,
      5 	input rst,
      6 	input en,
      7 	input [1:0]din,
      8 	output [31:0]crc
      9 	);
     10 
     11 reg [31:0]c;
     12 reg [31:0]n;
     13 
     14 wire [1:0]d = {din[0],din[1]};
     15 
     16 assign crc = {
     17 	c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]
     18 	,c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]
     19 	,c[16],c[17],c[18],c[19],c[20],c[21],c[22],c[23]
     20 	,c[24],c[25],c[26],c[27],c[28],c[29],c[30],c[31]
     21 	};
     22 
     23 always_comb begin
     24 	n[0] = c[30]^d[0];
     25 	n[1] = c[30]^c[31]^d[0]^d[1];
     26 	n[2] = c[0]^c[30]^c[31]^d[0]^d[1];
     27 	n[3] = c[1]^c[31]^d[1];
     28 	n[4] = c[2]^c[30]^d[0];
     29 	n[5] = c[3]^c[30]^c[31]^d[0]^d[1];
     30 	n[6] = c[4]^c[31]^d[1];
     31 	n[7] = c[5]^c[30]^d[0];
     32 	n[8] = c[6]^c[30]^c[31]^d[0]^d[1];
     33 	n[9] = c[7]^c[31]^d[1];
     34 	n[10] = c[8]^c[30]^d[0];
     35 	n[11] = c[9]^c[30]^c[31]^d[0]^d[1];
     36 	n[12] = c[10]^c[30]^c[31]^d[0]^d[1];
     37 	n[13] = c[11]^c[31]^d[1];
     38 	n[14] = c[12];
     39 	n[15] = c[13];
     40 	n[16] = c[14]^c[30]^d[0];
     41 	n[17] = c[15]^c[31]^d[1];
     42 	n[18] = c[16];
     43 	n[19] = c[17];
     44 	n[20] = c[18];
     45 	n[21] = c[19];
     46 	n[22] = c[20]^c[30]^d[0];
     47 	n[23] = c[21]^c[30]^c[31]^d[0]^d[1];
     48 	n[24] = c[22]^c[31]^d[1];
     49 	n[25] = c[23];
     50 	n[26] = c[24]^c[30]^d[0];
     51 	n[27] = c[25]^c[31]^d[1];
     52 	n[28] = c[26];
     53 	n[29] = c[27];
     54 	n[30] = c[28];
     55 	n[31] = c[29];
     56 end
     57 
     58 always_ff @(posedge clk) begin
     59 	if (rst) begin
     60 		c <= 32'hFFFFFFFF;
     61 	end else if (en) begin
     62 		c <= n;
     63 	end
     64 end
     65 
     66 endmodule