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

Subversion Repositories pci_express_crc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 2 to Rev 3
    Reverse comparison

Rev 2 → Rev 3

/tags/gutzlogic_v_0/doc/crc.doc Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
tags/gutzlogic_v_0/doc/crc.doc Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: tags/gutzlogic_v_0/doc/~$crc.doc =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: tags/gutzlogic_v_0/doc/~$crc.doc =================================================================== --- tags/gutzlogic_v_0/doc/~$crc.doc (nonexistent) +++ tags/gutzlogic_v_0/doc/~$crc.doc (revision 3)
tags/gutzlogic_v_0/doc/~$crc.doc Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: tags/gutzlogic_v_0/crc32d16N.v =================================================================== --- tags/gutzlogic_v_0/crc32d16N.v (nonexistent) +++ tags/gutzlogic_v_0/crc32d16N.v (revision 3) @@ -0,0 +1,66 @@ +// =========================================================================== +// File : crc32d16N.v +// Author : cwinward +// Date : Sat Dec 8 14:00:37 MST 2007 +// Project : TI PHY design +// +// Copyright (c) notice +// This code adheres to the GNU public license +// +// =========================================================================== +// +// $Id: crc32d16N.v,v 1.1.1.1 2007-12-08 22:26:59 cmagleby Exp $ +// +// =========================================================================== +// +// $Log: not supported by cvs2svn $ +// +// =========================================================================== +// Function : This provides the lcrc for the end of the pci express TLP +// packet. This is 16 bits in 32 bits out. +// For more data widths see www.gutzlogic.com +// =========================================================================== +// =========================================================================== + +module crc32d16N (/*AUTOARG*/ + // Outputs + crc32N, + // Inputs + clk, resetN, load, d, en + ); + input clk; + input resetN; + input load; //load the seed value + input [15:0] d; //16 bit of tlp data starting with seq. num + input en; //should be high the entire packet. + + output [31:0] crc32N; //inverted and swapped per pci spec. + wire [31:0] crc32N; + + assign crc32N = {~crc32[0],~crc32[1],~crc32[2],~crc32[3],~crc32[4],~crc32[5],~crc32[6],~crc32[7], + ~crc32[8],~crc32[9],~crc32[10],~crc32[11],~crc32[12],~crc32[13],~crc32[14],~crc32[15], + ~crc32[16],~crc32[17],~crc32[18],~crc32[19],~crc32[20],~crc32[21],~crc32[22],~crc32[23], + ~crc32[24],~crc32[25],~crc32[26],~crc32[27],~crc32[28],~crc32[29],~crc32[30],~crc32[31]}; + + /*AUTOWIRE*/ + // Beginning of automatic wires (for undeclared instantiated-module outputs) + wire [31:0] crc; // From make_crc32d16 of crc32d16.v + // End of automatics + + /* -----\/----- EXCLUDED -----\/----- + crc32d16 AUTO_TEMPLATE (.init(32'hFFFF_FFFF)); + -----/\----- EXCLUDED -----/\----- */ + + crc32d16 make_crc32d16 (/*AUTOINST*/ + // Outputs + .crc (crc[31:0]), + // Inputs + .clk (clk), + .resetN (resetN), + .load (load), + .d (d[15:0]), + .init (32'hFFFF_FFFF), // Templated + .en (en)); + +endmodule + Index: tags/gutzlogic_v_0/crc32d16.v =================================================================== --- tags/gutzlogic_v_0/crc32d16.v (nonexistent) +++ tags/gutzlogic_v_0/crc32d16.v (revision 3) @@ -0,0 +1,123 @@ +// =========================================================================== +// File : crc32d16N.v +// Author : cwinward +// Date : Sat Dec 8 14:00:37 MST 2007 +// Project : TI PHY design +// +// Copyright (c) notice +// This code adheres to the GNU public license +// +// =========================================================================== +// +// $Id: crc32d16.v,v 1.1.1.1 2007-12-08 22:27:00 cmagleby Exp $ +// +// =========================================================================== +// +// $Log: not supported by cvs2svn $ +// +// =========================================================================== +// Function : CRC for TLP packet +// This was generated by a c program owned by gutzlogic. +// =========================================================================== +// =========================================================================== + + +module crc32d16(/*AUTOARG*/ + // Outputs + crc, + // Inputs + clk, resetN, load, d, init,en + ); + + + input clk; + input resetN; + input load; + input [15:0] d; + input [31:0] init; + input en; + output [31:0] crc; + reg [31:0] crc; + + + always @(posedge clk or negedge resetN) + begin + if(~resetN) + crc <= #1 32'hFFFF_FFFF; + else if(load) + crc <= #1 init; + else + if(en) + begin + crc[0] <= #1 d[3] ^ d[5] ^ d[6] ^ d[9] ^ d[15] ^ crc[16] ^ crc[22] ^ crc[25] ^ crc[26] + ^ crc[28]; + 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[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[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[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[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[29]; + 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[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[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[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[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[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[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] + ^ 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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[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[27] ^ crc[31]; + end // if (en) + else + crc <= #1 crc; + end + +endmodule + +

powered by: WebSVN 2.1.0

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