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

Subversion Repositories cxd9731

[/] [cxd9731/] [CRC_CL.v] - Rev 5

Compare with Previous | Blame | View Log

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    15:32:40 03/04/2009 
// Design Name: 
// Module Name:    CRC_CL 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module CRC_CL(
	input [15:0] D,
	input [15:0] C,
	output [15:0] Q
);
 
wire [16:1]	f;		// internal wire
// The polynomial is
// G(X) = X16 + X12 + X5 + 1
 
assign f[1]		= D[0]  ^ C[15];
assign f[2]		= D[1]  ^ C[14];
assign f[3]		= D[2]  ^ C[13];
assign f[4]		= D[3]  ^ C[12];
assign f[5]		= D[4]  ^ C[11]	^ f[1];
assign f[6]		= D[5]  ^ C[10]	^ f[2];
assign f[7]		= D[6]  ^ C[9] 	^ f[3];
assign f[8]		= D[7]  ^ C[8] 	^ f[4];
assign f[9]		= D[8]  ^ C[7] 	^ f[5];
assign f[10]	= D[9]  ^ C[6] 	^ f[6];
assign f[11]	= D[10] ^ C[5] 	^ f[7];
assign f[12]	= D[11] ^ C[4] 	^ f[8]	^ f[1];
assign f[13]	= D[12] ^ C[3]		^ f[9]	^ f[2];
assign f[14]	= D[13] ^ C[2]		^ f[10]	^ f[3];
assign f[15]	= D[14] ^ C[1]		^ f[11]	^ f[4];
assign f[16]	= D[15] ^ C[0]		^ f[12]	^ f[5];
 
assign Q[0]		= f[16];
assign Q[1]		= f[15];
assign Q[2]		= f[14];
assign Q[3]		= f[13];
assign Q[4]		= f[12];
assign Q[5]		= f[11] 	^ f[16];
assign Q[6]		= f[10]	^ f[15];
assign Q[7]		= f[9] 	^ f[14];
assign Q[8]		= f[8] 	^ f[13];
assign Q[9]		= f[7] 	^ f[12];
assign Q[10]	= f[6]	^ f[11];
assign Q[11]	= f[5]	^ f[10];
assign Q[12]	= f[4]	^ f[9]	^ f[16];
assign Q[13]	= f[3]	^ f[8]	^ f[15];
assign Q[14]	= f[2]	^ f[7]	^ f[14];
assign Q[15]	= f[1]	^ f[6]	^ f[13];
 
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.