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

Subversion Repositories cxd9731

[/] [cxd9731/] [CRC_CL.v] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 regttycomi
`timescale 1ns / 1ps
2
//////////////////////////////////////////////////////////////////////////////////
3
// Company: 
4
// Engineer: 
5
// 
6
// Create Date:    15:32:40 03/04/2009 
7
// Design Name: 
8
// Module Name:    CRC_CL 
9
// Project Name: 
10
// Target Devices: 
11
// Tool versions: 
12
// Description: 
13
//
14
// Dependencies: 
15
//
16
// Revision: 
17
// Revision 0.01 - File Created
18
// Additional Comments: 
19
//
20
//////////////////////////////////////////////////////////////////////////////////
21
module CRC_CL(
22
        input [15:0] D,
23
        input [15:0] C,
24
        output [15:0] Q
25
);
26
 
27
wire [16:1]     f;              // internal wire
28
// The polynomial is
29
// G(X) = X16 + X12 + X5 + 1
30
 
31
assign f[1]             = D[0]  ^ C[15];
32
assign f[2]             = D[1]  ^ C[14];
33
assign f[3]             = D[2]  ^ C[13];
34
assign f[4]             = D[3]  ^ C[12];
35
assign f[5]             = D[4]  ^ C[11] ^ f[1];
36
assign f[6]             = D[5]  ^ C[10] ^ f[2];
37
assign f[7]             = D[6]  ^ C[9]  ^ f[3];
38
assign f[8]             = D[7]  ^ C[8]  ^ f[4];
39
assign f[9]             = D[8]  ^ C[7]  ^ f[5];
40
assign f[10]    = D[9]  ^ C[6]  ^ f[6];
41
assign f[11]    = D[10] ^ C[5]  ^ f[7];
42
assign f[12]    = D[11] ^ C[4]  ^ f[8]  ^ f[1];
43
assign f[13]    = D[12] ^ C[3]          ^ f[9]  ^ f[2];
44
assign f[14]    = D[13] ^ C[2]          ^ f[10] ^ f[3];
45
assign f[15]    = D[14] ^ C[1]          ^ f[11] ^ f[4];
46
assign f[16]    = D[15] ^ C[0]           ^ f[12] ^ f[5];
47
 
48
assign Q[0]              = f[16];
49
assign Q[1]             = f[15];
50
assign Q[2]             = f[14];
51
assign Q[3]             = f[13];
52
assign Q[4]             = f[12];
53
assign Q[5]             = f[11]         ^ f[16];
54
assign Q[6]             = f[10] ^ f[15];
55
assign Q[7]             = f[9]  ^ f[14];
56
assign Q[8]             = f[8]  ^ f[13];
57
assign Q[9]             = f[7]  ^ f[12];
58
assign Q[10]    = f[6]  ^ f[11];
59
assign Q[11]    = f[5]  ^ f[10];
60
assign Q[12]    = f[4]  ^ f[9]  ^ f[16];
61
assign Q[13]    = f[3]  ^ f[8]  ^ f[15];
62
assign Q[14]    = f[2]  ^ f[7]  ^ f[14];
63
assign Q[15]    = f[1]  ^ f[6]  ^ f[13];
64
 
65
endmodule

powered by: WebSVN 2.1.0

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