AMC13
Firmwares for the different applications of the AMC13 uTCA board made at Boston University
 All Classes Variables
EthernetCRCD32.vhd
1 --------------------------------------------------------------------------------
2 -- Copyright (C) 1999-2008 Easics NV.
3 -- This source file may be used and distributed without restriction
4 -- provided that this copyright statement is not removed from the file
5 -- and that any derivative work contains the original copyright notice
6 -- and the associated disclaimer.
7 --
8 -- THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS
9 -- OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
10 -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
11 --
12 -- Purpose : synthesizable CRC function
13 -- * polynomial: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)
14 -- * data width: 8
15 --
16 -- Info : tools@easics.be
17 -- http://www.easics.com
18 --------------------------------------------------------------------------------
19 ----------------------------------------------------------------------------------
20 -- Company:
21 -- Engineer:
22 --
23 -- Create Date: 13:20:34 12/01/2011
24 -- Design Name:
25 -- Module Name: EthernetCRC - Behavioral
26 -- Project Name:
27 -- Target Devices:
28 -- Tool versions:
29 -- !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER
30 -- This module is provided only as an example, no correctness or any usefullness is implied.
31 -- Use of it is at users' own risk.
32 -- Do not remove this disclaimer.
33 -- !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER !!!DISCLAIMER
34 -- Description: Ethernet CRC calculation, derived from PCK_CRC32_D8 generated using easics.com tools
35 --
36 -- Dependencies:
37 --
38 -- Revision:
39 -- Revision 0.01 - File Created
40 -- Additional Comments:
41 --
42 ----------------------------------------------------------------------------------
43 library IEEE;
44 use IEEE.STD_LOGIC_1164.ALL;
45 
46 -- Uncomment the following library declaration if using
47 -- arithmetic functions with Signed or Unsigned values
48 --use IEEE.NUMERIC_STD.ALL;
49 
50 -- Uncomment the following library declaration if instantiating
51 -- any Xilinx primitives in this code.
52 --library UNISIM;
53 --use UNISIM.VComponents.all;
54 
55 entity EthernetCRCD32 is
56  Port ( clk : in STD_LOGIC;
57  init : in STD_LOGIC;
58  ce : in STD_LOGIC;
59  d : in STD_LOGIC_VECTOR (31 downto 0);
60  byte_cnt : in STD_LOGIC_VECTOR (1 downto 0);
61  crc : out STD_LOGIC_VECTOR (31 downto 0);
62  bad_crc : out STD_LOGIC
63  );
64 end EthernetCRCD32;
65 
66 architecture Behavioral of EthernetCRCD32 is
67 constant crc_R : std_logic_vector(31 downto 0) := x"c704dd7b";
68 signal c : std_logic_vector(31 downto 0) := (others => '0');
69 begin
70 process(c,d)
71 begin
72  for i in 0 to 31 loop
73  crc(i) <= not c(31-i);
74  end loop;
75 end process;
76 bad_crc <= '0' when c = crc_R else '1';
77 process(clk)
78 begin
79  if(clk'event and clk = '1')then
80  if(init = '1')then
81  c <= (others => '1');
82  elsif(ce = '1')then
83  case byte_cnt is
84  when "01" =>
85  c(0) <= d(7) xor d(1) xor c(30) xor c(24);
86  c(1) <= d(7) xor d(6) xor d(1) xor d(0) xor c(31) xor c(30) xor
87  c(25) xor c(24);
88  c(2) <= d(7) xor d(6) xor d(5) xor d(1) xor d(0) xor c(31) xor
89  c(30) xor c(26) xor c(25) xor c(24);
90  c(3) <= d(6) xor d(5) xor d(4) xor d(0) xor c(31) xor c(27) xor
91  c(26) xor c(25);
92  c(4) <= d(7) xor d(5) xor d(4) xor d(3) xor d(1) xor c(30) xor
93  c(28) xor c(27) xor c(26) xor c(24);
94  c(5) <= d(7) xor d(6) xor d(4) xor d(3) xor d(2) xor d(1) xor
95  d(0) xor c(31) xor c(30) xor c(29) xor c(28) xor c(27) xor
96  c(25) xor c(24);
97  c(6) <= d(6) xor d(5) xor d(3) xor d(2) xor d(1) xor d(0) xor
98  c(31) xor c(30) xor c(29) xor c(28) xor c(26) xor c(25);
99  c(7) <= d(7) xor d(5) xor d(4) xor d(2) xor d(0) xor c(31) xor
100  c(29) xor c(27) xor c(26) xor c(24);
101  c(8) <= d(7) xor d(6) xor d(4) xor d(3) xor c(28) xor c(27) xor
102  c(25) xor c(24) xor c(0);
103  c(9) <= d(6) xor d(5) xor d(3) xor d(2) xor c(29) xor c(28) xor
104  c(26) xor c(25) xor c(1);
105  c(10) <= d(7) xor d(5) xor d(4) xor d(2) xor c(29) xor c(27) xor
106  c(26) xor c(24) xor c(2);
107  c(11) <= d(7) xor d(6) xor d(4) xor d(3) xor c(28) xor c(27) xor
108  c(25) xor c(24) xor c(3);
109  c(12) <= d(7) xor d(6) xor d(5) xor d(3) xor d(2) xor d(1) xor
110  c(30) xor c(29) xor c(28) xor c(26) xor c(25) xor c(24) xor
111  c(4);
112  c(13) <= d(6) xor d(5) xor d(4) xor d(2) xor d(1) xor d(0) xor
113  c(31) xor c(30) xor c(29) xor c(27) xor c(26) xor c(25) xor
114  c(5);
115  c(14) <= d(5) xor d(4) xor d(3) xor d(1) xor d(0) xor c(31) xor
116  c(30) xor c(28) xor c(27) xor c(26) xor c(6);
117  c(15) <= d(4) xor d(3) xor d(2) xor d(0) xor c(31) xor c(29) xor
118  c(28) xor c(27) xor c(7);
119  c(16) <= d(7) xor d(3) xor d(2) xor c(29) xor c(28) xor c(24) xor
120  c(8);
121  c(17) <= d(6) xor d(2) xor d(1) xor c(30) xor c(29) xor c(25) xor
122  c(9);
123  c(18) <= d(5) xor d(1) xor d(0) xor c(31) xor c(30) xor c(26) xor
124  c(10);
125  c(19) <= d(4) xor d(0) xor c(31) xor c(27) xor c(11);
126  c(20) <= d(3) xor c(28) xor c(12);
127  c(21) <= d(2) xor c(29) xor c(13);
128  c(22) <= d(7) xor c(24) xor c(14);
129  c(23) <= d(7) xor d(6) xor d(1) xor c(30) xor c(25) xor c(24) xor
130  c(15);
131  c(24) <= d(6) xor d(5) xor d(0) xor c(31) xor c(26) xor c(25) xor
132  c(16);
133  c(25) <= d(5) xor d(4) xor c(27) xor c(26) xor c(17);
134  c(26) <= d(7) xor d(4) xor d(3) xor d(1) xor c(30) xor c(28) xor
135  c(27) xor c(24) xor c(18);
136  c(27) <= d(6) xor d(3) xor d(2) xor d(0) xor c(31) xor c(29) xor
137  c(28) xor c(25) xor c(19);
138  c(28) <= d(5) xor d(2) xor d(1) xor c(30) xor c(29) xor c(26) xor
139  c(20);
140  c(29) <= d(4) xor d(1) xor d(0) xor c(31) xor c(30) xor c(27) xor
141  c(21);
142  c(30) <= d(3) xor d(0) xor c(31) xor c(28) xor c(22);
143  c(31) <= d(2) xor c(29) xor c(23);
144  when "10" =>
145  c(0) <= d(15) xor d(9) xor d(6) xor d(5) xor d(3) xor c(28) xor
146  c(26) xor c(25) xor c(22) xor c(16);
147  c(1) <= d(15) xor d(14) xor d(9) xor d(8) xor d(6) xor d(4) xor
148  d(3) xor d(2) xor c(29) xor c(28) xor c(27) xor c(25) xor
149  c(23) xor c(22) xor c(17) xor c(16);
150  c(2) <= d(15) xor d(14) xor d(13) xor d(9) xor d(8) xor d(7) xor
151  d(6) xor d(2) xor d(1) xor c(30) xor c(29) xor c(25) xor
152  c(24) xor c(23) xor c(22) xor c(18) xor c(17) xor c(16);
153  c(3) <= d(14) xor d(13) xor d(12) xor d(8) xor d(7) xor d(6) xor
154  d(5) xor d(1) xor d(0) xor c(31) xor c(30) xor c(26) xor
155  c(25) xor c(24) xor c(23) xor c(19) xor c(18) xor c(17);
156  c(4) <= d(15) xor d(13) xor d(12) xor d(11) xor d(9) xor d(7) xor
157  d(4) xor d(3) xor d(0) xor c(31) xor c(28) xor c(27) xor
158  c(24) xor c(22) xor c(20) xor c(19) xor c(18) xor c(16);
159  c(5) <= d(15) xor d(14) xor d(12) xor d(11) xor d(10) xor d(9) xor
160  d(8) xor d(5) xor d(2) xor c(29) xor c(26) xor c(23) xor
161  c(22) xor c(21) xor c(20) xor c(19) xor c(17) xor c(16);
162  c(6) <= d(14) xor d(13) xor d(11) xor d(10) xor d(9) xor d(8) xor
163  d(7) xor d(4) xor d(1) xor c(30) xor c(27) xor c(24) xor
164  c(23) xor c(22) xor c(21) xor c(20) xor c(18) xor c(17);
165  c(7) <= d(15) xor d(13) xor d(12) xor d(10) xor d(8) xor d(7) xor
166  d(5) xor d(0) xor c(31) xor c(26) xor c(24) xor c(23) xor
167  c(21) xor c(19) xor c(18) xor c(16);
168  c(8) <= d(15) xor d(14) xor d(12) xor d(11) xor d(7) xor d(5) xor
169  d(4) xor d(3) xor c(28) xor c(27) xor c(26) xor c(24) xor
170  c(20) xor c(19) xor c(17) xor c(16);
171  c(9) <= d(14) xor d(13) xor d(11) xor d(10) xor d(6) xor d(4) xor
172  d(3) xor d(2) xor c(29) xor c(28) xor c(27) xor c(25) xor
173  c(21) xor c(20) xor c(18) xor c(17);
174  c(10) <= d(15) xor d(13) xor d(12) xor d(10) xor d(6) xor d(2) xor
175  d(1) xor c(30) xor c(29) xor c(25) xor c(21) xor c(19) xor
176  c(18) xor c(16);
177  c(11) <= d(15) xor d(14) xor d(12) xor d(11) xor d(6) xor d(3) xor
178  d(1) xor d(0) xor c(31) xor c(30) xor c(28) xor c(25) xor
179  c(20) xor c(19) xor c(17) xor c(16);
180  c(12) <= d(15) xor d(14) xor d(13) xor d(11) xor d(10) xor d(9) xor
181  d(6) xor d(3) xor d(2) xor d(0) xor c(31) xor c(29) xor
182  c(28) xor c(25) xor c(22) xor c(21) xor c(20) xor c(18) xor
183  c(17) xor c(16);
184  c(13) <= d(14) xor d(13) xor d(12) xor d(10) xor d(9) xor d(8) xor
185  d(5) xor d(2) xor d(1) xor c(30) xor c(29) xor c(26) xor
186  c(23) xor c(22) xor c(21) xor c(19) xor c(18) xor c(17);
187  c(14) <= d(13) xor d(12) xor d(11) xor d(9) xor d(8) xor d(7) xor
188  d(4) xor d(1) xor d(0) xor c(31) xor c(30) xor c(27) xor
189  c(24) xor c(23) xor c(22) xor c(20) xor c(19) xor c(18);
190  c(15) <= d(12) xor d(11) xor d(10) xor d(8) xor d(7) xor d(6) xor
191  d(3) xor d(0) xor c(31) xor c(28) xor c(25) xor c(24) xor
192  c(23) xor c(21) xor c(20) xor c(19);
193  c(16) <= d(15) xor d(11) xor d(10) xor d(7) xor d(3) xor d(2) xor
194  c(29) xor c(28) xor c(24) xor c(21) xor c(20) xor c(16) xor
195  c(0);
196  c(17) <= d(14) xor d(10) xor d(9) xor d(6) xor d(2) xor d(1) xor
197  c(30) xor c(29) xor c(25) xor c(22) xor c(21) xor c(17) xor
198  c(1);
199  c(18) <= d(13) xor d(9) xor d(8) xor d(5) xor d(1) xor d(0) xor
200  c(31) xor c(30) xor c(26) xor c(23) xor c(22) xor c(18) xor
201  c(2);
202  c(19) <= d(12) xor d(8) xor d(7) xor d(4) xor d(0) xor c(31) xor
203  c(27) xor c(24) xor c(23) xor c(19) xor c(3);
204  c(20) <= d(11) xor d(7) xor d(6) xor d(3) xor c(28) xor c(25) xor
205  c(24) xor c(20) xor c(4);
206  c(21) <= d(10) xor d(6) xor d(5) xor d(2) xor c(29) xor c(26) xor
207  c(25) xor c(21) xor c(5);
208  c(22) <= d(15) xor d(6) xor d(4) xor d(3) xor d(1) xor c(30) xor
209  c(28) xor c(27) xor c(25) xor c(16) xor c(6);
210  c(23) <= d(15) xor d(14) xor d(9) xor d(6) xor d(2) xor d(0) xor
211  c(31) xor c(29) xor c(25) xor c(22) xor c(17) xor c(16) xor
212  c(7);
213  c(24) <= d(14) xor d(13) xor d(8) xor d(5) xor d(1) xor c(30) xor
214  c(26) xor c(23) xor c(18) xor c(17) xor c(8);
215  c(25) <= d(13) xor d(12) xor d(7) xor d(4) xor d(0) xor c(31) xor
216  c(27) xor c(24) xor c(19) xor c(18) xor c(9);
217  c(26) <= d(15) xor d(12) xor d(11) xor d(9) xor d(5) xor c(26) xor
218  c(22) xor c(20) xor c(19) xor c(16) xor c(10);
219  c(27) <= d(14) xor d(11) xor d(10) xor d(8) xor d(4) xor c(27) xor
220  c(23) xor c(21) xor c(20) xor c(17) xor c(11);
221  c(28) <= d(13) xor d(10) xor d(9) xor d(7) xor d(3) xor c(28) xor
222  c(24) xor c(22) xor c(21) xor c(18) xor c(12);
223  c(29) <= d(12) xor d(9) xor d(8) xor d(6) xor d(2) xor c(29) xor
224  c(25) xor c(23) xor c(22) xor c(19) xor c(13);
225  c(30) <= d(11) xor d(8) xor d(7) xor d(5) xor d(1) xor c(30) xor
226  c(26) xor c(24) xor c(23) xor c(20) xor c(14);
227  c(31) <= d(10) xor d(7) xor d(6) xor d(4) xor d(0) xor c(31) xor
228  c(27) xor c(25) xor c(24) xor c(21) xor c(15);
229  when "11" =>
230  c(0) <= d(23) xor d(17) xor d(14) xor d(13) xor d(11) xor d(7) xor
231  c(24) xor c(20) xor c(18) xor c(17) xor c(14) xor c(8);
232  c(1) <= d(23) xor d(22) xor d(17) xor d(16) xor d(14) xor d(12) xor
233  d(11) xor d(10) xor d(7) xor d(6) xor c(25) xor c(24) xor
234  c(21) xor c(20) xor c(19) xor c(17) xor c(15) xor c(14) xor
235  c(9) xor c(8);
236  c(2) <= d(23) xor d(22) xor d(21) xor d(17) xor d(16) xor d(15) xor
237  d(14) xor d(10) xor d(9) xor d(7) xor d(6) xor d(5) xor
238  c(26) xor c(25) xor c(24) xor c(22) xor c(21) xor c(17) xor
239  c(16) xor c(15) xor c(14) xor c(10) xor c(9) xor c(8);
240  c(3) <= d(22) xor d(21) xor d(20) xor d(16) xor d(15) xor d(14) xor
241  d(13) xor d(9) xor d(8) xor d(6) xor d(5) xor d(4) xor
242  c(27) xor c(26) xor c(25) xor c(23) xor c(22) xor c(18) xor
243  c(17) xor c(16) xor c(15) xor c(11) xor c(10) xor c(9);
244  c(4) <= d(23) xor d(21) xor d(20) xor d(19) xor d(17) xor d(15) xor
245  d(12) xor d(11) xor d(8) xor d(5) xor d(4) xor d(3) xor
246  c(28) xor c(27) xor c(26) xor c(23) xor c(20) xor c(19) xor
247  c(16) xor c(14) xor c(12) xor c(11) xor c(10) xor c(8);
248  c(5) <= d(23) xor d(22) xor d(20) xor d(19) xor d(18) xor d(17) xor
249  d(16) xor d(13) xor d(10) xor d(4) xor d(3) xor d(2) xor
250  c(29) xor c(28) xor c(27) xor c(21) xor c(18) xor c(15) xor
251  c(14) xor c(13) xor c(12) xor c(11) xor c(9) xor c(8);
252  c(6) <= d(22) xor d(21) xor d(19) xor d(18) xor d(17) xor d(16) xor
253  d(15) xor d(12) xor d(9) xor d(3) xor d(2) xor d(1) xor
254  c(30) xor c(29) xor c(28) xor c(22) xor c(19) xor c(16) xor
255  c(15) xor c(14) xor c(13) xor c(12) xor c(10) xor c(9);
256  c(7) <= d(23) xor d(21) xor d(20) xor d(18) xor d(16) xor d(15) xor
257  d(13) xor d(8) xor d(7) xor d(2) xor d(1) xor d(0) xor
258  c(31) xor c(30) xor c(29) xor c(24) xor c(23) xor c(18) xor
259  c(16) xor c(15) xor c(13) xor c(11) xor c(10) xor c(8);
260  c(8) <= d(23) xor d(22) xor d(20) xor d(19) xor d(15) xor d(13) xor
261  d(12) xor d(11) xor d(6) xor d(1) xor d(0) xor c(31) xor
262  c(30) xor c(25) xor c(20) xor c(19) xor c(18) xor c(16) xor
263  c(12) xor c(11) xor c(9) xor c(8);
264  c(9) <= d(22) xor d(21) xor d(19) xor d(18) xor d(14) xor d(12) xor
265  d(11) xor d(10) xor d(5) xor d(0) xor c(31) xor c(26) xor
266  c(21) xor c(20) xor c(19) xor c(17) xor c(13) xor c(12) xor
267  c(10) xor c(9);
268  c(10) <= d(23) xor d(21) xor d(20) xor d(18) xor d(14) xor d(10) xor
269  d(9) xor d(7) xor d(4) xor c(27) xor c(24) xor c(22) xor
270  c(21) xor c(17) xor c(13) xor c(11) xor c(10) xor c(8);
271  c(11) <= d(23) xor d(22) xor d(20) xor d(19) xor d(14) xor d(11) xor
272  d(9) xor d(8) xor d(7) xor d(6) xor d(3) xor c(28) xor
273  c(25) xor c(24) xor c(23) xor c(22) xor c(20) xor c(17) xor
274  c(12) xor c(11) xor c(9) xor c(8);
275  c(12) <= d(23) xor d(22) xor d(21) xor d(19) xor d(18) xor d(17) xor
276  d(14) xor d(11) xor d(10) xor d(8) xor d(6) xor d(5) xor
277  d(2) xor c(29) xor c(26) xor c(25) xor c(23) xor c(21) xor
278  c(20) xor c(17) xor c(14) xor c(13) xor c(12) xor c(10) xor
279  c(9) xor c(8);
280  c(13) <= d(22) xor d(21) xor d(20) xor d(18) xor d(17) xor d(16) xor
281  d(13) xor d(10) xor d(9) xor d(7) xor d(5) xor d(4) xor
282  d(1) xor c(30) xor c(27) xor c(26) xor c(24) xor c(22) xor
283  c(21) xor c(18) xor c(15) xor c(14) xor c(13) xor c(11) xor
284  c(10) xor c(9);
285  c(14) <= d(21) xor d(20) xor d(19) xor d(17) xor d(16) xor d(15) xor
286  d(12) xor d(9) xor d(8) xor d(6) xor d(4) xor d(3) xor
287  d(0) xor c(31) xor c(28) xor c(27) xor c(25) xor c(23) xor
288  c(22) xor c(19) xor c(16) xor c(15) xor c(14) xor c(12) xor
289  c(11) xor c(10);
290  c(15) <= d(20) xor d(19) xor d(18) xor d(16) xor d(15) xor d(14) xor
291  d(11) xor d(8) xor d(7) xor d(5) xor d(3) xor d(2) xor
292  c(29) xor c(28) xor c(26) xor c(24) xor c(23) xor c(20) xor
293  c(17) xor c(16) xor c(15) xor c(13) xor c(12) xor c(11);
294  c(16) <= d(23) xor d(19) xor d(18) xor d(15) xor d(11) xor d(10) xor
295  d(6) xor d(4) xor d(2) xor d(1) xor c(30) xor c(29) xor
296  c(27) xor c(25) xor c(21) xor c(20) xor c(16) xor c(13) xor
297  c(12) xor c(8);
298  c(17) <= d(22) xor d(18) xor d(17) xor d(14) xor d(10) xor d(9) xor
299  d(5) xor d(3) xor d(1) xor d(0) xor c(31) xor c(30) xor
300  c(28) xor c(26) xor c(22) xor c(21) xor c(17) xor c(14) xor
301  c(13) xor c(9);
302  c(18) <= d(21) xor d(17) xor d(16) xor d(13) xor d(9) xor d(8) xor
303  d(4) xor d(2) xor d(0) xor c(31) xor c(29) xor c(27) xor
304  c(23) xor c(22) xor c(18) xor c(15) xor c(14) xor c(10);
305  c(19) <= d(20) xor d(16) xor d(15) xor d(12) xor d(8) xor d(7) xor
306  d(3) xor d(1) xor c(30) xor c(28) xor c(24) xor c(23) xor
307  c(19) xor c(16) xor c(15) xor c(11);
308  c(20) <= d(19) xor d(15) xor d(14) xor d(11) xor d(7) xor d(6) xor
309  d(2) xor d(0) xor c(31) xor c(29) xor c(25) xor c(24) xor
310  c(20) xor c(17) xor c(16) xor c(12);
311  c(21) <= d(18) xor d(14) xor d(13) xor d(10) xor d(6) xor d(5) xor
312  d(1) xor c(30) xor c(26) xor c(25) xor c(21) xor c(18) xor
313  c(17) xor c(13);
314  c(22) <= d(23) xor d(14) xor d(12) xor d(11) xor d(9) xor d(7) xor
315  d(5) xor d(4) xor d(0) xor c(31) xor c(27) xor c(26) xor
316  c(24) xor c(22) xor c(20) xor c(19) xor c(17) xor c(8);
317  c(23) <= d(23) xor d(22) xor d(17) xor d(14) xor d(10) xor d(8) xor
318  d(7) xor d(6) xor d(4) xor d(3) xor c(28) xor c(27) xor
319  c(25) xor c(24) xor c(23) xor c(21) xor c(17) xor c(14) xor
320  c(9) xor c(8);
321  c(24) <= d(22) xor d(21) xor d(16) xor d(13) xor d(9) xor d(7) xor
322  d(6) xor d(5) xor d(3) xor d(2) xor c(29) xor c(28) xor
323  c(26) xor c(25) xor c(24) xor c(22) xor c(18) xor c(15) xor
324  c(10) xor c(9) xor c(0);
325  c(25) <= d(21) xor d(20) xor d(15) xor d(12) xor d(8) xor d(6) xor
326  d(5) xor d(4) xor d(2) xor d(1) xor c(30) xor c(29) xor
327  c(27) xor c(26) xor c(25) xor c(23) xor c(19) xor c(16) xor
328  c(11) xor c(10) xor c(1);
329  c(26) <= d(23) xor d(20) xor d(19) xor d(17) xor d(13) xor d(5) xor
330  d(4) xor d(3) xor d(1) xor d(0) xor c(31) xor c(30) xor
331  c(28) xor c(27) xor c(26) xor c(18) xor c(14) xor c(12) xor
332  c(11) xor c(8) xor c(2);
333  c(27) <= d(22) xor d(19) xor d(18) xor d(16) xor d(12) xor d(4) xor
334  d(3) xor d(2) xor d(0) xor c(31) xor c(29) xor c(28) xor
335  c(27) xor c(19) xor c(15) xor c(13) xor c(12) xor c(9) xor
336  c(3);
337  c(28) <= d(21) xor d(18) xor d(17) xor d(15) xor d(11) xor d(3) xor
338  d(2) xor d(1) xor c(30) xor c(29) xor c(28) xor c(20) xor
339  c(16) xor c(14) xor c(13) xor c(10) xor c(4);
340  c(29) <= d(20) xor d(17) xor d(16) xor d(14) xor d(10) xor d(2) xor
341  d(1) xor d(0) xor c(31) xor c(30) xor c(29) xor c(21) xor
342  c(17) xor c(15) xor c(14) xor c(11) xor c(5);
343  c(30) <= d(19) xor d(16) xor d(15) xor d(13) xor d(9) xor d(1) xor
344  d(0) xor c(31) xor c(30) xor c(22) xor c(18) xor c(16) xor
345  c(15) xor c(12) xor c(6);
346  c(31) <= d(18) xor d(15) xor d(14) xor d(12) xor d(8) xor d(0) xor
347  c(31) xor c(23) xor c(19) xor c(17) xor c(16) xor c(13) xor
348  c(7);
349  when others =>
350  c(0) <= d(31) xor d(25) xor d(22) xor d(21) xor d(19) xor d(15) xor
351  d(7) xor d(6) xor d(5) xor d(3) xor d(2) xor d(1) xor
352  d(0) xor c(31) xor c(30) xor c(29) xor c(28) xor c(26) xor
353  c(25) xor c(24) xor c(16) xor c(12) xor c(10) xor c(9) xor
354  c(6) xor c(0);
355  c(1) <= d(31) xor d(30) xor d(25) xor d(24) xor d(22) xor d(20) xor
356  d(19) xor d(18) xor d(15) xor d(14) xor d(7) xor d(4) xor
357  d(3) xor c(28) xor c(27) xor c(24) xor c(17) xor c(16) xor
358  c(13) xor c(12) xor c(11) xor c(9) xor c(7) xor c(6) xor
359  c(1) xor c(0);
360  c(2) <= d(31) xor d(30) xor d(29) xor d(25) xor d(24) xor d(23) xor
361  d(22) xor d(18) xor d(17) xor d(15) xor d(14) xor d(13) xor
362  d(7) xor d(5) xor d(1) xor d(0) xor c(31) xor c(30) xor
363  c(26) xor c(24) xor c(18) xor c(17) xor c(16) xor c(14) xor
364  c(13) xor c(9) xor c(8) xor c(7) xor c(6) xor c(2) xor
365  c(1) xor c(0);
366  c(3) <= d(30) xor d(29) xor d(28) xor d(24) xor d(23) xor d(22) xor
367  d(21) xor d(17) xor d(16) xor d(14) xor d(13) xor d(12) xor
368  d(6) xor d(4) xor d(0) xor c(31) xor c(27) xor c(25) xor
369  c(19) xor c(18) xor c(17) xor c(15) xor c(14) xor c(10) xor
370  c(9) xor c(8) xor c(7) xor c(3) xor c(2) xor c(1);
371  c(4) <= d(31) xor d(29) xor d(28) xor d(27) xor d(25) xor d(23) xor
372  d(20) xor d(19) xor d(16) xor d(13) xor d(12) xor d(11) xor
373  d(7) xor d(6) xor d(2) xor d(1) xor d(0) xor c(31) xor
374  c(30) xor c(29) xor c(25) xor c(24) xor c(20) xor c(19) xor
375  c(18) xor c(15) xor c(12) xor c(11) xor c(8) xor c(6) xor
376  c(4) xor c(3) xor c(2) xor c(0);
377  c(5) <= d(31) xor d(30) xor d(28) xor d(27) xor d(26) xor d(25) xor
378  d(24) xor d(21) xor d(18) xor d(12) xor d(11) xor d(10) xor
379  d(7) xor d(3) xor d(2) xor c(29) xor c(28) xor c(24) xor
380  c(21) xor c(20) xor c(19) xor c(13) xor c(10) xor c(7) xor
381  c(6) xor c(5) xor c(4) xor c(3) xor c(1) xor c(0);
382  c(6) <= d(30) xor d(29) xor d(27) xor d(26) xor d(25) xor d(24) xor
383  d(23) xor d(20) xor d(17) xor d(11) xor d(10) xor d(9) xor
384  d(6) xor d(2) xor d(1) xor c(30) xor c(29) xor c(25) xor
385  c(22) xor c(21) xor c(20) xor c(14) xor c(11) xor c(8) xor
386  c(7) xor c(6) xor c(5) xor c(4) xor c(2) xor c(1);
387  c(7) <= d(31) xor d(29) xor d(28) xor d(26) xor d(24) xor d(23) xor
388  d(21) xor d(16) xor d(15) xor d(10) xor d(9) xor d(8) xor
389  d(7) xor d(6) xor d(3) xor d(2) xor c(29) xor c(28) xor
390  c(25) xor c(24) xor c(23) xor c(22) xor c(21) xor c(16) xor
391  c(15) xor c(10) xor c(8) xor c(7) xor c(5) xor c(3) xor
392  c(2) xor c(0);
393  c(8) <= d(31) xor d(30) xor d(28) xor d(27) xor d(23) xor d(21) xor
394  d(20) xor d(19) xor d(14) xor d(9) xor d(8) xor d(3) xor
395  d(0) xor c(31) xor c(28) xor c(23) xor c(22) xor c(17) xor
396  c(12) xor c(11) xor c(10) xor c(8) xor c(4) xor c(3) xor
397  c(1) xor c(0);
398  c(9) <= d(30) xor d(29) xor d(27) xor d(26) xor d(22) xor d(20) xor
399  d(19) xor d(18) xor d(13) xor d(8) xor d(7) xor d(2) xor
400  c(29) xor c(24) xor c(23) xor c(18) xor c(13) xor c(12) xor
401  c(11) xor c(9) xor c(5) xor c(4) xor c(2) xor c(1);
402  c(10) <= d(31) xor d(29) xor d(28) xor d(26) xor d(22) xor d(18) xor
403  d(17) xor d(15) xor d(12) xor d(5) xor d(3) xor d(2) xor
404  d(0) xor c(31) xor c(29) xor c(28) xor c(26) xor c(19) xor
405  c(16) xor c(14) xor c(13) xor c(9) xor c(5) xor c(3) xor
406  c(2) xor c(0);
407  c(11) <= d(31) xor d(30) xor d(28) xor d(27) xor d(22) xor d(19) xor
408  d(17) xor d(16) xor d(15) xor d(14) xor d(11) xor d(7) xor
409  d(6) xor d(5) xor d(4) xor d(3) xor d(0) xor c(31) xor
410  c(28) xor c(27) xor c(26) xor c(25) xor c(24) xor c(20) xor
411  c(17) xor c(16) xor c(15) xor c(14) xor c(12) xor c(9) xor
412  c(4) xor c(3) xor c(1) xor c(0);
413  c(12) <= d(31) xor d(30) xor d(29) xor d(27) xor d(26) xor d(25) xor
414  d(22) xor d(19) xor d(18) xor d(16) xor d(14) xor d(13) xor
415  d(10) xor d(7) xor d(4) xor d(1) xor d(0) xor c(31) xor
416  c(30) xor c(27) xor c(24) xor c(21) xor c(18) xor c(17) xor
417  c(15) xor c(13) xor c(12) xor c(9) xor c(6) xor c(5) xor
418  c(4) xor c(2) xor c(1) xor c(0);
419  c(13) <= d(30) xor d(29) xor d(28) xor d(26) xor d(25) xor d(24) xor
420  d(21) xor d(18) xor d(17) xor d(15) xor d(13) xor d(12) xor
421  d(9) xor d(6) xor d(3) xor d(0) xor c(31) xor c(28) xor
422  c(25) xor c(22) xor c(19) xor c(18) xor c(16) xor c(14) xor
423  c(13) xor c(10) xor c(7) xor c(6) xor c(5) xor c(3) xor
424  c(2) xor c(1);
425  c(14) <= d(29) xor d(28) xor d(27) xor d(25) xor d(24) xor d(23) xor
426  d(20) xor d(17) xor d(16) xor d(14) xor d(12) xor d(11) xor
427  d(8) xor d(5) xor d(2) xor c(29) xor c(26) xor c(23) xor
428  c(20) xor c(19) xor c(17) xor c(15) xor c(14) xor c(11) xor
429  c(8) xor c(7) xor c(6) xor c(4) xor c(3) xor c(2);
430  c(15) <= d(28) xor d(27) xor d(26) xor d(24) xor d(23) xor d(22) xor
431  d(19) xor d(16) xor d(15) xor d(13) xor d(11) xor d(10) xor
432  d(7) xor d(4) xor d(1) xor c(30) xor c(27) xor c(24) xor
433  c(21) xor c(20) xor c(18) xor c(16) xor c(15) xor c(12) xor
434  c(9) xor c(8) xor c(7) xor c(5) xor c(4) xor c(3);
435  c(16) <= d(31) xor d(27) xor d(26) xor d(23) xor d(19) xor d(18) xor
436  d(14) xor d(12) xor d(10) xor d(9) xor d(7) xor d(5) xor
437  d(2) xor d(1) xor c(30) xor c(29) xor c(26) xor c(24) xor
438  c(22) xor c(21) xor c(19) xor c(17) xor c(13) xor c(12) xor
439  c(8) xor c(5) xor c(4) xor c(0);
440  c(17) <= d(30) xor d(26) xor d(25) xor d(22) xor d(18) xor d(17) xor
441  d(13) xor d(11) xor d(9) xor d(8) xor d(6) xor d(4) xor
442  d(1) xor d(0) xor c(31) xor c(30) xor c(27) xor c(25) xor
443  c(23) xor c(22) xor c(20) xor c(18) xor c(14) xor c(13) xor
444  c(9) xor c(6) xor c(5) xor c(1);
445  c(18) <= d(29) xor d(25) xor d(24) xor d(21) xor d(17) xor d(16) xor
446  d(12) xor d(10) xor d(8) xor d(7) xor d(5) xor d(3) xor
447  d(0) xor c(31) xor c(28) xor c(26) xor c(24) xor c(23) xor
448  c(21) xor c(19) xor c(15) xor c(14) xor c(10) xor c(7) xor
449  c(6) xor c(2);
450  c(19) <= d(28) xor d(24) xor d(23) xor d(20) xor d(16) xor d(15) xor
451  d(11) xor d(9) xor d(7) xor d(6) xor d(4) xor d(2) xor
452  c(29) xor c(27) xor c(25) xor c(24) xor c(22) xor c(20) xor
453  c(16) xor c(15) xor c(11) xor c(8) xor c(7) xor c(3);
454  c(20) <= d(27) xor d(23) xor d(22) xor d(19) xor d(15) xor d(14) xor
455  d(10) xor d(8) xor d(6) xor d(5) xor d(3) xor d(1) xor
456  c(30) xor c(28) xor c(26) xor c(25) xor c(23) xor c(21) xor
457  c(17) xor c(16) xor c(12) xor c(9) xor c(8) xor c(4);
458  c(21) <= d(26) xor d(22) xor d(21) xor d(18) xor d(14) xor d(13) xor
459  d(9) xor d(7) xor d(5) xor d(4) xor d(2) xor d(0) xor
460  c(31) xor c(29) xor c(27) xor c(26) xor c(24) xor c(22) xor
461  c(18) xor c(17) xor c(13) xor c(10) xor c(9) xor c(5);
462  c(22) <= d(31) xor d(22) xor d(20) xor d(19) xor d(17) xor d(15) xor
463  d(13) xor d(12) xor d(8) xor d(7) xor d(5) xor d(4) xor
464  d(2) xor d(0) xor c(31) xor c(29) xor c(27) xor c(26) xor
465  c(24) xor c(23) xor c(19) xor c(18) xor c(16) xor c(14) xor
466  c(12) xor c(11) xor c(9) xor c(0);
467  c(23) <= d(31) xor d(30) xor d(25) xor d(22) xor d(18) xor d(16) xor
468  d(15) xor d(14) xor d(12) xor d(11) xor d(5) xor d(4) xor
469  d(2) xor d(0) xor c(31) xor c(29) xor c(27) xor c(26) xor
470  c(20) xor c(19) xor c(17) xor c(16) xor c(15) xor c(13) xor
471  c(9) xor c(6) xor c(1) xor c(0);
472  c(24) <= d(30) xor d(29) xor d(24) xor d(21) xor d(17) xor d(15) xor
473  d(14) xor d(13) xor d(11) xor d(10) xor d(4) xor d(3) xor
474  d(1) xor c(30) xor c(28) xor c(27) xor c(21) xor c(20) xor
475  c(18) xor c(17) xor c(16) xor c(14) xor c(10) xor c(7) xor
476  c(2) xor c(1);
477  c(25) <= d(29) xor d(28) xor d(23) xor d(20) xor d(16) xor d(14) xor
478  d(13) xor d(12) xor d(10) xor d(9) xor d(3) xor d(2) xor
479  d(0) xor c(31) xor c(29) xor c(28) xor c(22) xor c(21) xor
480  c(19) xor c(18) xor c(17) xor c(15) xor c(11) xor c(8) xor
481  c(3) xor c(2);
482  c(26) <= d(31) xor d(28) xor d(27) xor d(25) xor d(21) xor d(13) xor
483  d(12) xor d(11) xor d(9) xor d(8) xor d(7) xor d(6) xor
484  d(5) xor d(3) xor d(0) xor c(31) xor c(28) xor c(26) xor
485  c(25) xor c(24) xor c(23) xor c(22) xor c(20) xor c(19) xor
486  c(18) xor c(10) xor c(6) xor c(4) xor c(3) xor c(0);
487  c(27) <= d(30) xor d(27) xor d(26) xor d(24) xor d(20) xor d(12) xor
488  d(11) xor d(10) xor d(8) xor d(7) xor d(6) xor d(5) xor
489  d(4) xor d(2) xor c(29) xor c(27) xor c(26) xor c(25) xor
490  c(24) xor c(23) xor c(21) xor c(20) xor c(19) xor c(11) xor
491  c(7) xor c(5) xor c(4) xor c(1);
492  c(28) <= d(29) xor d(26) xor d(25) xor d(23) xor d(19) xor d(11) xor
493  d(10) xor d(9) xor d(7) xor d(6) xor d(5) xor d(4) xor
494  d(3) xor d(1) xor c(30) xor c(28) xor c(27) xor c(26) xor
495  c(25) xor c(24) xor c(22) xor c(21) xor c(20) xor c(12) xor
496  c(8) xor c(6) xor c(5) xor c(2);
497  c(29) <= d(28) xor d(25) xor d(24) xor d(22) xor d(18) xor d(10) xor
498  d(9) xor d(8) xor d(6) xor d(5) xor d(4) xor d(3) xor
499  d(2) xor d(0) xor c(31) xor c(29) xor c(28) xor c(27) xor
500  c(26) xor c(25) xor c(23) xor c(22) xor c(21) xor c(13) xor
501  c(9) xor c(7) xor c(6) xor c(3);
502  c(30) <= d(27) xor d(24) xor d(23) xor d(21) xor d(17) xor d(9) xor
503  d(8) xor d(7) xor d(5) xor d(4) xor d(3) xor d(2) xor
504  d(1) xor c(30) xor c(29) xor c(28) xor c(27) xor c(26) xor
505  c(24) xor c(23) xor c(22) xor c(14) xor c(10) xor c(8) xor
506  c(7) xor c(4);
507  c(31) <= d(26) xor d(23) xor d(22) xor d(20) xor d(16) xor d(8) xor
508  d(7) xor d(6) xor d(4) xor d(3) xor d(2) xor d(1) xor
509  d(0) xor c(31) xor c(30) xor c(29) xor c(28) xor c(27) xor
510  c(25) xor c(24) xor c(23) xor c(15) xor c(11) xor c(9) xor
511  c(8) xor c(5);
512  end case;
513  end if;
514  end if;
515 end process;
516 
517 end Behavioral;
518