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

Subversion Repositories pci_express_crc

[/] [pci_express_crc/] [tags/] [gutzlogic_v_0/] [crc32d16.v] - Diff between revs 3 and 4

Only display areas with differences | Details | Blame | View Log

Rev 3 Rev 4
// ===========================================================================
// ===========================================================================
// File    : crc32d16N.v
// File    : crc32d16N.v
// Author  : cwinward
// Author  : cwinward
// Date    : Sat Dec 8 14:00:37 MST 2007
// Date    : Sat Dec 8 14:00:37 MST 2007
// Project : TI PHY design
// Project : TI PHY design
//
//
// Copyright (c) notice
// Copyright (c) notice
// This code adheres to the GNU public license
// This code adheres to the GNU public license
//
//
// ===========================================================================
// ===========================================================================
//
//
// $Id: crc32d16.v,v 1.1.1.1 2007-12-08 22:27:00 cmagleby Exp $
// $Id: crc32d16.v,v 1.1.1.1 2007-12-08 22:27:00 cmagleby Exp $
//
//
// ===========================================================================
// ===========================================================================
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
//
//
// ===========================================================================
// ===========================================================================
// Function :  CRC for TLP packet
// Function :  CRC for TLP packet
//             This was generated by a c program owned by gutzlogic.
//             This was generated by a c program owned by gutzlogic.
// ===========================================================================
// ===========================================================================
// ===========================================================================
// ===========================================================================
 
 
 
 
module crc32d16(/*AUTOARG*/
module crc32d16(/*AUTOARG*/
   // Outputs
   // Outputs
   crc,
   crc,
   // Inputs
   // Inputs
   clk, resetN, load, d, init,en
   clk, resetN, load, d, init,en
   );
   );
 
 
 
 
   input clk;
   input clk;
   input resetN;
   input resetN;
   input load;
   input load;
   input [15:0] d;
   input [15:0] d;
   input [31:0] init;
   input [31:0] init;
   input        en;
   input        en;
   output [31:0] crc;
   output [31:0] crc;
   reg [31:0]    crc;
   reg [31:0]    crc;
 
 
 
 
   always @(posedge clk or negedge resetN)
   always @(posedge clk or negedge resetN)
     begin
     begin
        if(~resetN)
        if(~resetN)
          crc <= #1 32'hFFFF_FFFF;
          crc <= #1 32'hFFFF_FFFF;
        else if(load)
        else if(load)
          crc <= #1 init;
          crc <= #1 init;
        else
        else
          if(en)
          if(en)
            begin
            begin
               crc[0] <= #1 d[3] ^ d[5] ^ d[6] ^ d[9] ^ d[15] ^ crc[16] ^ crc[22] ^ crc[25] ^ crc[26]
               crc[0] <= #1 d[3] ^ d[5] ^ d[6] ^ d[9] ^ d[15] ^ crc[16] ^ crc[22] ^ crc[25] ^ crc[26]
              ^ crc[28];
              ^ crc[28];
               crc[1] <= #1 d[2] ^ d[3] ^ d[4] ^ d[6] ^ d[8] ^ d[9] ^ d[14] ^ d[15] ^ crc[16] ^
               crc[1] <= #1 d[2] ^ d[3] ^ d[4] ^ d[6] ^ d[8] ^ d[9] ^ d[14] ^ d[15] ^ crc[16] ^
                         crc[17] ^ crc[22] ^ crc[23] ^ crc[25] ^ crc[27] ^ crc[28] ^ crc[29];
                         crc[17] ^ crc[22] ^ crc[23] ^ crc[25] ^ crc[27] ^ crc[28] ^ crc[29];
               crc[2] <= #1 d[1] ^ d[2] ^ d[6] ^ d[7] ^ d[8] ^ d[9] ^ d[13] ^ d[14] ^ d[15] ^
               crc[2] <= #1 d[1] ^ d[2] ^ d[6] ^ d[7] ^ d[8] ^ d[9] ^ d[13] ^ d[14] ^ d[15] ^
                         crc[16] ^ crc[17] ^ crc[18] ^ crc[22] ^ crc[23] ^ crc[24] ^ crc[25] ^ crc[29] ^ crc[30];
                         crc[16] ^ crc[17] ^ crc[18] ^ crc[22] ^ crc[23] ^ crc[24] ^ crc[25] ^ crc[29] ^ crc[30];
               crc[3] <= #1 d[0] ^ d[1] ^ d[5] ^ d[6] ^ d[7] ^ d[8] ^ d[12] ^ d[13] ^ d[14] ^
               crc[3] <= #1 d[0] ^ d[1] ^ d[5] ^ d[6] ^ d[7] ^ d[8] ^ d[12] ^ d[13] ^ d[14] ^
                         crc[17] ^ crc[18] ^ crc[19] ^ crc[23] ^ crc[24] ^ crc[25] ^ crc[26] ^ crc[30] ^ crc[31];
                         crc[17] ^ crc[18] ^ crc[19] ^ crc[23] ^ crc[24] ^ crc[25] ^ crc[26] ^ crc[30] ^ crc[31];
               crc[4] <= #1 d[0] ^ d[3] ^ d[4] ^ d[7] ^ d[9] ^ d[11] ^ d[12] ^ d[13] ^ d[15] ^
               crc[4] <= #1 d[0] ^ d[3] ^ d[4] ^ d[7] ^ d[9] ^ d[11] ^ d[12] ^ d[13] ^ d[15] ^
                         crc[16] ^ crc[18] ^ crc[19] ^ crc[20] ^ crc[22] ^ crc[24] ^ crc[27] ^ crc[28] ^ crc[31];
                         crc[16] ^ crc[18] ^ crc[19] ^ crc[20] ^ crc[22] ^ crc[24] ^ crc[27] ^ crc[28] ^ crc[31];
               crc[5] <= #1 d[2] ^ d[5] ^ d[8] ^ d[9] ^ d[10] ^ d[11] ^ d[12] ^ d[14] ^ d[15]
               crc[5] <= #1 d[2] ^ d[5] ^ d[8] ^ d[9] ^ d[10] ^ d[11] ^ d[12] ^ d[14] ^ d[15]
                 ^ crc[16] ^ crc[17] ^ crc[19] ^ crc[20] ^ crc[21] ^ crc[22] ^ crc[23] ^ crc[26] ^
                 ^ crc[16] ^ crc[17] ^ crc[19] ^ crc[20] ^ crc[21] ^ crc[22] ^ crc[23] ^ crc[26] ^
                         crc[29];
                         crc[29];
               crc[6] <= #1 d[1] ^ d[4] ^ d[7] ^ d[8] ^ d[9] ^ d[10] ^ d[11] ^ d[13] ^ d[14] ^
               crc[6] <= #1 d[1] ^ d[4] ^ d[7] ^ d[8] ^ d[9] ^ d[10] ^ d[11] ^ d[13] ^ d[14] ^
                         crc[17] ^ crc[18] ^ crc[20] ^ crc[21] ^ crc[22] ^ crc[23] ^ crc[24] ^ crc[27] ^ crc[30];
                         crc[17] ^ crc[18] ^ crc[20] ^ crc[21] ^ crc[22] ^ crc[23] ^ crc[24] ^ crc[27] ^ crc[30];
               crc[7] <= #1 d[0] ^ d[5] ^ d[7] ^ d[8] ^ d[10] ^ d[12] ^ d[13] ^ d[15] ^ crc[16]
               crc[7] <= #1 d[0] ^ d[5] ^ d[7] ^ d[8] ^ d[10] ^ d[12] ^ d[13] ^ d[15] ^ crc[16]
                 ^ crc[18] ^ crc[19] ^ crc[21] ^ crc[23] ^ crc[24] ^ crc[26] ^ crc[31];
                 ^ crc[18] ^ crc[19] ^ crc[21] ^ crc[23] ^ crc[24] ^ crc[26] ^ crc[31];
               crc[8] <= #1 d[3] ^ d[4] ^ d[5] ^ d[7] ^ d[11] ^ d[12] ^ d[14] ^ d[15] ^ crc[16]
               crc[8] <= #1 d[3] ^ d[4] ^ d[5] ^ d[7] ^ d[11] ^ d[12] ^ d[14] ^ d[15] ^ crc[16]
                 ^ crc[17] ^ crc[19] ^ crc[20] ^ crc[24] ^ crc[26] ^ crc[27] ^ crc[28];
                 ^ crc[17] ^ crc[19] ^ crc[20] ^ crc[24] ^ crc[26] ^ crc[27] ^ crc[28];
               crc[9] <= #1 d[2] ^ d[3] ^ d[4] ^ d[6] ^ d[10] ^ d[11] ^ d[13] ^ d[14] ^ crc[17]
               crc[9] <= #1 d[2] ^ d[3] ^ d[4] ^ d[6] ^ d[10] ^ d[11] ^ d[13] ^ d[14] ^ crc[17]
                 ^ crc[18] ^ crc[20] ^ crc[21] ^ crc[25] ^ crc[27] ^ crc[28] ^ crc[29];
                 ^ crc[18] ^ crc[20] ^ crc[21] ^ crc[25] ^ crc[27] ^ crc[28] ^ crc[29];
               crc[10] <= #1 d[1] ^ d[2] ^ d[6] ^ d[10] ^ d[12] ^ d[13] ^ d[15] ^ crc[16] ^ crc[18]
               crc[10] <= #1 d[1] ^ d[2] ^ d[6] ^ d[10] ^ d[12] ^ d[13] ^ d[15] ^ crc[16] ^ crc[18]
                 ^ crc[19] ^ crc[21] ^ crc[25] ^ crc[29] ^ crc[30];
                 ^ crc[19] ^ crc[21] ^ crc[25] ^ crc[29] ^ crc[30];
               crc[11] <= #1 d[0] ^ d[1] ^ d[3] ^ d[6] ^ d[11] ^ d[12] ^ d[14] ^ d[15] ^ crc[16]
               crc[11] <= #1 d[0] ^ d[1] ^ d[3] ^ d[6] ^ d[11] ^ d[12] ^ d[14] ^ d[15] ^ crc[16]
                 ^ crc[17] ^ crc[19] ^ crc[20] ^ crc[25] ^ crc[28] ^ crc[30] ^ crc[31];
                 ^ crc[17] ^ crc[19] ^ crc[20] ^ crc[25] ^ crc[28] ^ crc[30] ^ crc[31];
               crc[12] <= #1 d[0] ^ d[2] ^ d[3] ^ d[6] ^ d[9] ^ d[10] ^ d[11] ^ d[13] ^ d[14] ^
               crc[12] <= #1 d[0] ^ d[2] ^ d[3] ^ d[6] ^ d[9] ^ d[10] ^ d[11] ^ d[13] ^ d[14] ^
                          d[15] ^ crc[16] ^ crc[17] ^ crc[18] ^ crc[20] ^ crc[21] ^ crc[22] ^ crc[25] ^ crc[28]
                          d[15] ^ crc[16] ^ crc[17] ^ crc[18] ^ crc[20] ^ crc[21] ^ crc[22] ^ crc[25] ^ crc[28]
                 ^ crc[29] ^ crc[31];
                 ^ crc[29] ^ crc[31];
               crc[13] <= #1 d[1] ^ d[2] ^ d[5] ^ d[8] ^ d[9] ^ d[10] ^ d[12] ^ d[13] ^ d[14] ^
               crc[13] <= #1 d[1] ^ d[2] ^ d[5] ^ d[8] ^ d[9] ^ d[10] ^ d[12] ^ d[13] ^ d[14] ^
                          crc[17] ^ crc[18] ^ crc[19] ^ crc[21] ^ crc[22] ^ crc[23] ^ crc[26] ^ crc[29] ^ crc[30];
                          crc[17] ^ crc[18] ^ crc[19] ^ crc[21] ^ crc[22] ^ crc[23] ^ crc[26] ^ crc[29] ^ crc[30];
               crc[14] <= #1 d[0] ^ d[1] ^ d[4] ^ d[7] ^ d[8] ^ d[9] ^ d[11] ^ d[12] ^ d[13] ^
               crc[14] <= #1 d[0] ^ d[1] ^ d[4] ^ d[7] ^ d[8] ^ d[9] ^ d[11] ^ d[12] ^ d[13] ^
                          crc[18] ^ crc[19] ^ crc[20] ^ crc[22] ^ crc[23] ^ crc[24] ^ crc[27] ^ crc[30] ^ crc[31];
                          crc[18] ^ crc[19] ^ crc[20] ^ crc[22] ^ crc[23] ^ crc[24] ^ crc[27] ^ crc[30] ^ crc[31];
               crc[15] <= #1 d[0] ^ d[3] ^ d[6] ^ d[7] ^ d[8] ^ d[10] ^ d[11] ^ d[12] ^ crc[19] ^
               crc[15] <= #1 d[0] ^ d[3] ^ d[6] ^ d[7] ^ d[8] ^ d[10] ^ d[11] ^ d[12] ^ crc[19] ^
                          crc[20] ^ crc[21] ^ crc[23] ^ crc[24] ^ crc[25] ^ crc[28] ^ crc[31];
                          crc[20] ^ crc[21] ^ crc[23] ^ crc[24] ^ crc[25] ^ crc[28] ^ crc[31];
               crc[16] <= #1 d[2] ^ d[3] ^ d[7] ^ d[10] ^ d[11] ^ d[15] ^ crc[0] ^ crc[16] ^ crc[20]
               crc[16] <= #1 d[2] ^ d[3] ^ d[7] ^ d[10] ^ d[11] ^ d[15] ^ crc[0] ^ crc[16] ^ crc[20]
                 ^ crc[21] ^ crc[24] ^ crc[28] ^ crc[29];
                 ^ crc[21] ^ crc[24] ^ crc[28] ^ crc[29];
               crc[17] <= #1 d[1] ^ d[2] ^ d[6] ^ d[9] ^ d[10] ^ d[14] ^ crc[1] ^ crc[17] ^ crc[21] ^
               crc[17] <= #1 d[1] ^ d[2] ^ d[6] ^ d[9] ^ d[10] ^ d[14] ^ crc[1] ^ crc[17] ^ crc[21] ^
                          crc[22] ^ crc[25] ^ crc[29] ^ crc[30];
                          crc[22] ^ crc[25] ^ crc[29] ^ crc[30];
               crc[18] <= #1 d[0] ^ d[1] ^ d[5] ^ d[8] ^ d[9] ^ d[13] ^ crc[2] ^ crc[18] ^ crc[22] ^
               crc[18] <= #1 d[0] ^ d[1] ^ d[5] ^ d[8] ^ d[9] ^ d[13] ^ crc[2] ^ crc[18] ^ crc[22] ^
                          crc[23] ^ crc[26] ^ crc[30] ^ crc[31];
                          crc[23] ^ crc[26] ^ crc[30] ^ crc[31];
               crc[19] <= #1 d[0] ^ d[4] ^ d[7] ^ d[8] ^ d[12] ^ crc[3] ^ crc[19] ^ crc[23] ^ crc[24] ^
               crc[19] <= #1 d[0] ^ d[4] ^ d[7] ^ d[8] ^ d[12] ^ crc[3] ^ crc[19] ^ crc[23] ^ crc[24] ^
                          crc[27] ^ crc[31];
                          crc[27] ^ crc[31];
               crc[20] <= #1 d[3] ^ d[6] ^ d[7] ^ d[11] ^ crc[4] ^ crc[20] ^ crc[24] ^ crc[25] ^ crc[28];
               crc[20] <= #1 d[3] ^ d[6] ^ d[7] ^ d[11] ^ crc[4] ^ crc[20] ^ crc[24] ^ crc[25] ^ crc[28];
               crc[21] <= #1 d[2] ^ d[5] ^ d[6] ^ d[10] ^ crc[5] ^ crc[21] ^ crc[25] ^ crc[26] ^ crc[29];
               crc[21] <= #1 d[2] ^ d[5] ^ d[6] ^ d[10] ^ crc[5] ^ crc[21] ^ crc[25] ^ crc[26] ^ crc[29];
               crc[22] <= #1 d[1] ^ d[3] ^ d[4] ^ d[6] ^ d[15] ^ crc[6] ^ crc[16] ^ crc[25] ^ crc[27] ^
               crc[22] <= #1 d[1] ^ d[3] ^ d[4] ^ d[6] ^ d[15] ^ crc[6] ^ crc[16] ^ crc[25] ^ crc[27] ^
                          crc[28] ^ crc[30];
                          crc[28] ^ crc[30];
               crc[23] <= #1 d[0] ^ d[2] ^ d[6] ^ d[9] ^ d[14] ^ d[15] ^ crc[7] ^ crc[16] ^ crc[17] ^
               crc[23] <= #1 d[0] ^ d[2] ^ d[6] ^ d[9] ^ d[14] ^ d[15] ^ crc[7] ^ crc[16] ^ crc[17] ^
                          crc[22] ^ crc[25] ^ crc[29] ^ crc[31];
                          crc[22] ^ crc[25] ^ crc[29] ^ crc[31];
               crc[24] <= #1 d[1] ^ d[5] ^ d[8] ^ d[13] ^ d[14] ^ crc[8] ^ crc[17] ^ crc[18] ^ crc[23]
               crc[24] <= #1 d[1] ^ d[5] ^ d[8] ^ d[13] ^ d[14] ^ crc[8] ^ crc[17] ^ crc[18] ^ crc[23]
                 ^ crc[26] ^ crc[30];
                 ^ crc[26] ^ crc[30];
               crc[25] <= #1 d[0] ^ d[4] ^ d[7] ^ d[12] ^ d[13] ^ crc[9] ^ crc[18] ^ crc[19] ^ crc[24]
               crc[25] <= #1 d[0] ^ d[4] ^ d[7] ^ d[12] ^ d[13] ^ crc[9] ^ crc[18] ^ crc[19] ^ crc[24]
                 ^ crc[27] ^ crc[31];
                 ^ crc[27] ^ crc[31];
               crc[26] <= #1 d[5] ^ d[9] ^ d[11] ^ d[12] ^ d[15] ^ crc[10] ^ crc[16] ^ crc[19] ^ crc[20]
               crc[26] <= #1 d[5] ^ d[9] ^ d[11] ^ d[12] ^ d[15] ^ crc[10] ^ crc[16] ^ crc[19] ^ crc[20]
                 ^ crc[22] ^ crc[26];
                 ^ crc[22] ^ crc[26];
               crc[27] <= #1 d[4] ^ d[8] ^ d[10] ^ d[11] ^ d[14] ^ crc[11] ^ crc[17] ^ crc[20] ^ crc[21]
               crc[27] <= #1 d[4] ^ d[8] ^ d[10] ^ d[11] ^ d[14] ^ crc[11] ^ crc[17] ^ crc[20] ^ crc[21]
                 ^ crc[23] ^ crc[27];
                 ^ crc[23] ^ crc[27];
               crc[28] <= #1 d[3] ^ d[7] ^ d[9] ^ d[10] ^ d[13] ^ crc[12] ^ crc[18] ^ crc[21] ^ crc[22]
               crc[28] <= #1 d[3] ^ d[7] ^ d[9] ^ d[10] ^ d[13] ^ crc[12] ^ crc[18] ^ crc[21] ^ crc[22]
                 ^ crc[24] ^ crc[28];
                 ^ crc[24] ^ crc[28];
               crc[29] <= #1 d[2] ^ d[6] ^ d[8] ^ d[9] ^ d[12] ^ crc[13] ^ crc[19] ^ crc[22] ^ crc[23]
               crc[29] <= #1 d[2] ^ d[6] ^ d[8] ^ d[9] ^ d[12] ^ crc[13] ^ crc[19] ^ crc[22] ^ crc[23]
                 ^ crc[25] ^ crc[29];
                 ^ crc[25] ^ crc[29];
               crc[30] <= #1 d[1] ^ d[5] ^ d[7] ^ d[8] ^ d[11] ^ crc[14] ^ crc[20] ^ crc[23] ^ crc[24]
               crc[30] <= #1 d[1] ^ d[5] ^ d[7] ^ d[8] ^ d[11] ^ crc[14] ^ crc[20] ^ crc[23] ^ crc[24]
                 ^ crc[26] ^ crc[30];
                 ^ crc[26] ^ crc[30];
               crc[31] <= #1 d[0] ^ d[4] ^ d[6] ^ d[7] ^ d[10] ^ crc[15] ^ crc[21] ^ crc[24] ^ crc[25]
               crc[31] <= #1 d[0] ^ d[4] ^ d[6] ^ d[7] ^ d[10] ^ crc[15] ^ crc[21] ^ crc[24] ^ crc[25]
                 ^ crc[27] ^ crc[31];
                 ^ crc[27] ^ crc[31];
            end // if (en)
            end // if (en)
          else
          else
            crc <= #1 crc;
            crc <= #1 crc;
     end
     end
 
 
endmodule
endmodule
 
 
 
 
 
 

powered by: WebSVN 2.1.0

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