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
common
AMC_if
crc16D16.vhd
1
--
2
-- Purpose: VHDL
package
containing a synthesizable CRC
function
3
-- * polynomial: (
0
2
15
16
)
4
-- * data width:
16
5
--
6
library
IEEE
;
7
use
IEEE.STD_LOGIC_1164.
ALL
;
8
entity
crc16D16
is
9
Port
(
clk
:
in
std_logic
;
10
init_crc
:
in
std_logic
;
11
we_crc
:
in
std_logic
;
12
d
:
in
std_logic_vector
(
15
downto
0
)
;
13
crc
:
out
std_logic_vector
(
15
downto
0
)
)
;
14
end
crc16D16
;
15
16
architecture
my_arch
of
crc16D16
is
17
signal
c
:
std_logic_vector
(
15
downto
0
)
:=
(
others
=
>
'
0
'
)
;
18
begin
19
crc
<=
c
;
20
process
(clk)
21
begin
22
if
(
clk
'
event
and
clk
=
'
1
'
)
then
23
if
(
init_crc
=
'
1
'
)
then
24
c
<=
(
others
=
>
'
1
'
)
;
25
elsif
(
we_crc
=
'
1
'
)
then
26
c
(
0
)
<=
d
(
15
)
xor
d
(
13
)
xor
d
(
12
)
xor
d
(
11
)
xor
d
(
10
)
xor
d
(
9
)
xor
27
d
(
8
)
xor
d
(
7
)
xor
d
(
6
)
xor
d
(
5
)
xor
d
(
4
)
xor
d
(
3
)
xor
28
d
(
2
)
xor
d
(
1
)
xor
d
(
0
)
xor
c
(
15
)
xor
c
(
13
)
xor
c
(
12
)
xor
29
c
(
11
)
xor
c
(
10
)
xor
c
(
9
)
xor
c
(
8
)
xor
c
(
7
)
xor
c
(
6
)
xor
30
c
(
5
)
xor
c
(
4
)
xor
c
(
3
)
xor
c
(
2
)
xor
c
(
1
)
xor
c
(
0
)
;
31
c
(
1
)
<=
d
(
14
)
xor
d
(
13
)
xor
d
(
12
)
xor
d
(
11
)
xor
d
(
10
)
xor
d
(
9
)
xor
32
d
(
8
)
xor
d
(
7
)
xor
d
(
6
)
xor
d
(
5
)
xor
d
(
4
)
xor
d
(
3
)
xor
33
d
(
2
)
xor
d
(
1
)
xor
c
(
14
)
xor
c
(
13
)
xor
c
(
12
)
xor
c
(
11
)
xor
34
c
(
10
)
xor
c
(
9
)
xor
c
(
8
)
xor
c
(
7
)
xor
c
(
6
)
xor
c
(
5
)
xor
35
c
(
4
)
xor
c
(
3
)
xor
c
(
2
)
xor
c
(
1
)
;
36
c
(
2
)
<=
d
(
14
)
xor
d
(
1
)
xor
d
(
0
)
xor
c
(
14
)
xor
c
(
1
)
xor
c
(
0
)
;
37
c
(
3
)
<=
d
(
15
)
xor
d
(
2
)
xor
d
(
1
)
xor
c
(
15
)
xor
c
(
2
)
xor
c
(
1
)
;
38
c
(
4
)
<=
d
(
3
)
xor
d
(
2
)
xor
c
(
3
)
xor
c
(
2
)
;
39
c
(
5
)
<=
d
(
4
)
xor
d
(
3
)
xor
c
(
4
)
xor
c
(
3
)
;
40
c
(
6
)
<=
d
(
5
)
xor
d
(
4
)
xor
c
(
5
)
xor
c
(
4
)
;
41
c
(
7
)
<=
d
(
6
)
xor
d
(
5
)
xor
c
(
6
)
xor
c
(
5
)
;
42
c
(
8
)
<=
d
(
7
)
xor
d
(
6
)
xor
c
(
7
)
xor
c
(
6
)
;
43
c
(
9
)
<=
d
(
8
)
xor
d
(
7
)
xor
c
(
8
)
xor
c
(
7
)
;
44
c
(
10
)
<=
d
(
9
)
xor
d
(
8
)
xor
c
(
9
)
xor
c
(
8
)
;
45
c
(
11
)
<=
d
(
10
)
xor
d
(
9
)
xor
c
(
10
)
xor
c
(
9
)
;
46
c
(
12
)
<=
d
(
11
)
xor
d
(
10
)
xor
c
(
11
)
xor
c
(
10
)
;
47
c
(
13
)
<=
d
(
12
)
xor
d
(
11
)
xor
c
(
12
)
xor
c
(
11
)
;
48
c
(
14
)
<=
d
(
13
)
xor
d
(
12
)
xor
c
(
13
)
xor
c
(
12
)
;
49
c
(
15
)
<=
d
(
15
)
xor
d
(
14
)
xor
d
(
12
)
xor
d
(
11
)
xor
d
(
10
)
xor
d
(
9
)
xor
50
d
(
8
)
xor
d
(
7
)
xor
d
(
6
)
xor
d
(
5
)
xor
d
(
4
)
xor
d
(
3
)
xor
51
d
(
2
)
xor
d
(
1
)
xor
d
(
0
)
xor
c
(
15
)
xor
c
(
14
)
xor
c
(
12
)
xor
52
c
(
11
)
xor
c
(
10
)
xor
c
(
9
)
xor
c
(
8
)
xor
c
(
7
)
xor
c
(
6
)
xor
53
c
(
5
)
xor
c
(
4
)
xor
c
(
3
)
xor
c
(
2
)
xor
c
(
1
)
xor
c
(
0
)
;
54
end
if
;
55
end
if
;
56
end
process
;
57
end
my_arch
;
Generated on Wed Apr 18 2018 10:55:27 for AMC13 by
1.8.1