AMC13
Firmwares for the different applications of the AMC13 uTCA board made at Boston University
Main Page
Design Unit List
Files
File List
All
Classes
Variables
src
CMS_DAQ_if
10Gb
slink
crc_SLINKx.vhd
1
library
IEEE
;
2
use
IEEE.STD_LOGIC_1164.
ALL
;
3
use
IEEE.STD_LOGIC_ARITH.
ALL
;
4
use
IEEE.STD_LOGIC_UNSIGNED.
ALL
;
5
6
7
8
entity
CRC_SLINKx
is
9
Port
(
10
D
:
in
std_logic_vector
(
63
downto
0
)
;
11
CRC_out
:
out
std_logic_vector
(
15
downto
0
)
;
12
clk
:
in
std_logic
;
13
clear
:
in
std_logic
;
14
enable :
in
std_logic
);
15
end
CRC_SLINKx
;
16
17
architecture
Behavioral
of
CRC_SLINKx
is
18
signal
C
:
STD_LOGIC_VECTOR
(
15
downto
0
)
;
19
20
begin
21
22
process
(clk)
23
variable
NewCRC
:
STD_LOGIC_VECTOR
(
15
downto
0
)
;
24
begin
25
26
if
rising_edge
(
clk
)
then
27
if
clear
=
'
1
'
then
28
C
<=
(
Others
=
>
'
1
'
)
;
29
elsif
enable
=
'
1
'
then
30
31
NewCRC
(
0
)
:=
D
(
63
)
xor
D
(
62
)
xor
D
(
61
)
xor
D
(
60
)
xor
D
(
55
)
xor
D
(
54
)
xor
32
D
(
53
)
xor
D
(
52
)
xor
D
(
51
)
xor
D
(
50
)
xor
D
(
49
)
xor
D
(
48
)
xor
33
D
(
47
)
xor
D
(
46
)
xor
D
(
45
)
xor
D
(
43
)
xor
D
(
41
)
xor
D
(
40
)
xor
34
D
(
39
)
xor
D
(
38
)
xor
D
(
37
)
xor
D
(
36
)
xor
D
(
35
)
xor
D
(
34
)
xor
35
D
(
33
)
xor
D
(
32
)
xor
D
(
31
)
xor
D
(
30
)
xor
D
(
27
)
xor
D
(
26
)
xor
36
D
(
25
)
xor
D
(
24
)
xor
D
(
23
)
xor
D
(
22
)
xor
D
(
21
)
xor
D
(
20
)
xor
37
D
(
19
)
xor
D
(
18
)
xor
D
(
17
)
xor
D
(
16
)
xor
D
(
15
)
xor
D
(
13
)
xor
38
D
(
12
)
xor
D
(
11
)
xor
D
(
10
)
xor
D
(
9
)
xor
D
(
8
)
xor
D
(
7
)
xor
39
D
(
6
)
xor
D
(
5
)
xor
D
(
4
)
xor
D
(
3
)
xor
D
(
2
)
xor
D
(
1
)
xor
40
D
(
0
)
xor
C
(
0
)
xor
C
(
1
)
xor
C
(
2
)
xor
C
(
3
)
xor
C
(
4
)
xor
41
C
(
5
)
xor
C
(
6
)
xor
C
(
7
)
xor
C
(
12
)
xor
C
(
13
)
xor
C
(
14
)
xor
42
C
(
15
)
;
43
NewCRC
(
1
)
:=
D
(
63
)
xor
D
(
62
)
xor
D
(
61
)
xor
D
(
56
)
xor
D
(
55
)
xor
D
(
54
)
xor
44
D
(
53
)
xor
D
(
52
)
xor
D
(
51
)
xor
D
(
50
)
xor
D
(
49
)
xor
D
(
48
)
xor
45
D
(
47
)
xor
D
(
46
)
xor
D
(
44
)
xor
D
(
42
)
xor
D
(
41
)
xor
D
(
40
)
xor
46
D
(
39
)
xor
D
(
38
)
xor
D
(
37
)
xor
D
(
36
)
xor
D
(
35
)
xor
D
(
34
)
xor
47
D
(
33
)
xor
D
(
32
)
xor
D
(
31
)
xor
D
(
28
)
xor
D
(
27
)
xor
D
(
26
)
xor
48
D
(
25
)
xor
D
(
24
)
xor
D
(
23
)
xor
D
(
22
)
xor
D
(
21
)
xor
D
(
20
)
xor
49
D
(
19
)
xor
D
(
18
)
xor
D
(
17
)
xor
D
(
16
)
xor
D
(
14
)
xor
D
(
13
)
xor
50
D
(
12
)
xor
D
(
11
)
xor
D
(
10
)
xor
D
(
9
)
xor
D
(
8
)
xor
D
(
7
)
xor
51
D
(
6
)
xor
D
(
5
)
xor
D
(
4
)
xor
D
(
3
)
xor
D
(
2
)
xor
D
(
1
)
xor
52
C
(
0
)
xor
C
(
1
)
xor
C
(
2
)
xor
C
(
3
)
xor
C
(
4
)
xor
C
(
5
)
xor
53
C
(
6
)
xor
C
(
7
)
xor
C
(
8
)
xor
C
(
13
)
xor
C
(
14
)
xor
C
(
15
)
;
54
NewCRC
(
2
)
:=
D
(
61
)
xor
D
(
60
)
xor
D
(
57
)
xor
D
(
56
)
xor
D
(
46
)
xor
D
(
42
)
xor
55
D
(
31
)
xor
D
(
30
)
xor
D
(
29
)
xor
D
(
28
)
xor
D
(
16
)
xor
D
(
14
)
xor
56
D
(
1
)
xor
D
(
0
)
xor
C
(
8
)
xor
C
(
9
)
xor
C
(
12
)
xor
C
(
13
)
;
57
NewCRC
(
3
)
:=
D
(
62
)
xor
D
(
61
)
xor
D
(
58
)
xor
D
(
57
)
xor
D
(
47
)
xor
D
(
43
)
xor
58
D
(
32
)
xor
D
(
31
)
xor
D
(
30
)
xor
D
(
29
)
xor
D
(
17
)
xor
D
(
15
)
xor
59
D
(
2
)
xor
D
(
1
)
xor
C
(
9
)
xor
C
(
10
)
xor
C
(
13
)
xor
C
(
14
)
;
60
NewCRC
(
4
)
:=
D
(
63
)
xor
D
(
62
)
xor
D
(
59
)
xor
D
(
58
)
xor
D
(
48
)
xor
D
(
44
)
xor
61
D
(
33
)
xor
D
(
32
)
xor
D
(
31
)
xor
D
(
30
)
xor
D
(
18
)
xor
D
(
16
)
xor
62
D
(
3
)
xor
D
(
2
)
xor
C
(
0
)
xor
C
(
10
)
xor
C
(
11
)
xor
C
(
14
)
xor
63
C
(
15
)
;
64
NewCRC
(
5
)
:=
D
(
63
)
xor
D
(
60
)
xor
D
(
59
)
xor
D
(
49
)
xor
D
(
45
)
xor
D
(
34
)
xor
65
D
(
33
)
xor
D
(
32
)
xor
D
(
31
)
xor
D
(
19
)
xor
D
(
17
)
xor
D
(
4
)
xor
66
D
(
3
)
xor
C
(
1
)
xor
C
(
11
)
xor
C
(
12
)
xor
C
(
15
)
;
67
NewCRC
(
6
)
:=
D
(
61
)
xor
D
(
60
)
xor
D
(
50
)
xor
D
(
46
)
xor
D
(
35
)
xor
D
(
34
)
xor
68
D
(
33
)
xor
D
(
32
)
xor
D
(
20
)
xor
D
(
18
)
xor
D
(
5
)
xor
D
(
4
)
xor
69
C
(
2
)
xor
C
(
12
)
xor
C
(
13
)
;
70
NewCRC
(
7
)
:=
D
(
62
)
xor
D
(
61
)
xor
D
(
51
)
xor
D
(
47
)
xor
D
(
36
)
xor
D
(
35
)
xor
71
D
(
34
)
xor
D
(
33
)
xor
D
(
21
)
xor
D
(
19
)
xor
D
(
6
)
xor
D
(
5
)
xor
72
C
(
3
)
xor
C
(
13
)
xor
C
(
14
)
;
73
NewCRC
(
8
)
:=
D
(
63
)
xor
D
(
62
)
xor
D
(
52
)
xor
D
(
48
)
xor
D
(
37
)
xor
D
(
36
)
xor
74
D
(
35
)
xor
D
(
34
)
xor
D
(
22
)
xor
D
(
20
)
xor
D
(
7
)
xor
D
(
6
)
xor
75
C
(
0
)
xor
C
(
4
)
xor
C
(
14
)
xor
C
(
15
)
;
76
NewCRC
(
9
)
:=
D
(
63
)
xor
D
(
53
)
xor
D
(
49
)
xor
D
(
38
)
xor
D
(
37
)
xor
D
(
36
)
xor
77
D
(
35
)
xor
D
(
23
)
xor
D
(
21
)
xor
D
(
8
)
xor
D
(
7
)
xor
C
(
1
)
xor
78
C
(
5
)
xor
C
(
15
)
;
79
NewCRC
(
10
)
:=
D
(
54
)
xor
D
(
50
)
xor
D
(
39
)
xor
D
(
38
)
xor
D
(
37
)
xor
D
(
36
)
xor
80
D
(
24
)
xor
D
(
22
)
xor
D
(
9
)
xor
D
(
8
)
xor
C
(
2
)
xor
C
(
6
)
;
81
NewCRC
(
11
)
:=
D
(
55
)
xor
D
(
51
)
xor
D
(
40
)
xor
D
(
39
)
xor
D
(
38
)
xor
D
(
37
)
xor
82
D
(
25
)
xor
D
(
23
)
xor
D
(
10
)
xor
D
(
9
)
xor
C
(
3
)
xor
C
(
7
)
;
83
NewCRC
(
12
)
:=
D
(
56
)
xor
D
(
52
)
xor
D
(
41
)
xor
D
(
40
)
xor
D
(
39
)
xor
D
(
38
)
xor
84
D
(
26
)
xor
D
(
24
)
xor
D
(
11
)
xor
D
(
10
)
xor
C
(
4
)
xor
C
(
8
)
;
85
NewCRC
(
13
)
:=
D
(
57
)
xor
D
(
53
)
xor
D
(
42
)
xor
D
(
41
)
xor
D
(
40
)
xor
D
(
39
)
xor
86
D
(
27
)
xor
D
(
25
)
xor
D
(
12
)
xor
D
(
11
)
xor
C
(
5
)
xor
C
(
9
)
;
87
NewCRC
(
14
)
:=
D
(
58
)
xor
D
(
54
)
xor
D
(
43
)
xor
D
(
42
)
xor
D
(
41
)
xor
D
(
40
)
xor
88
D
(
28
)
xor
D
(
26
)
xor
D
(
13
)
xor
D
(
12
)
xor
C
(
6
)
xor
C
(
10
)
;
89
NewCRC
(
15
)
:=
D
(
63
)
xor
D
(
62
)
xor
D
(
61
)
xor
D
(
60
)
xor
D
(
59
)
xor
D
(
54
)
xor
90
D
(
53
)
xor
D
(
52
)
xor
D
(
51
)
xor
D
(
50
)
xor
D
(
49
)
xor
D
(
48
)
xor
91
D
(
47
)
xor
D
(
46
)
xor
D
(
45
)
xor
D
(
44
)
xor
D
(
42
)
xor
D
(
40
)
xor
92
D
(
39
)
xor
D
(
38
)
xor
D
(
37
)
xor
D
(
36
)
xor
D
(
35
)
xor
D
(
34
)
xor
93
D
(
33
)
xor
D
(
32
)
xor
D
(
31
)
xor
D
(
30
)
xor
D
(
29
)
xor
D
(
26
)
xor
94
D
(
25
)
xor
D
(
24
)
xor
D
(
23
)
xor
D
(
22
)
xor
D
(
21
)
xor
D
(
20
)
xor
95
D
(
19
)
xor
D
(
18
)
xor
D
(
17
)
xor
D
(
16
)
xor
D
(
15
)
xor
D
(
14
)
xor
96
D
(
12
)
xor
D
(
11
)
xor
D
(
10
)
xor
D
(
9
)
xor
D
(
8
)
xor
D
(
7
)
xor
97
D
(
6
)
xor
D
(
5
)
xor
D
(
4
)
xor
D
(
3
)
xor
D
(
2
)
xor
D
(
1
)
xor
98
D
(
0
)
xor
C
(
0
)
xor
C
(
1
)
xor
C
(
2
)
xor
C
(
3
)
xor
C
(
4
)
xor
99
C
(
5
)
xor
C
(
6
)
xor
C
(
11
)
xor
C
(
12
)
xor
C
(
13
)
xor
C
(
14
)
xor
100
C
(
15
)
;
101
102
103
C
<=
NewCRC
;
104
end
if
;
105
end
if
;
106
107
end
process
;
108
109
CRC_out
<=
C
;
110
111
112
end
Behavioral
;
Generated on Wed Apr 18 2018 10:55:25 for AMC13 by
1.8.1