1122 lines
34 KiB
VHDL
1122 lines
34 KiB
VHDL
-- ZPU
|
||
--
|
||
-- Copyright 2004-2008 oharboe - <20>yvind Harboe - oyvind.harboe@zylin.com
|
||
-- Modified by Philip Smart 02/2019 for the ZPU Evo implementation.
|
||
--
|
||
-- The FreeBSD license
|
||
--
|
||
-- Redistribution and use in source and binary forms, with or without
|
||
-- modification, are permitted provided that the following conditions
|
||
-- are met:
|
||
--
|
||
-- 1. Redistributions of source code must retain the above copyright
|
||
-- notice, this list of conditions and the following disclaimer.
|
||
-- 2. Redistributions in binary form must reproduce the above
|
||
-- copyright notice, this list of conditions and the following
|
||
-- disclaimer in the documentation and/or other materials
|
||
-- provided with the distribution.
|
||
--
|
||
-- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
|
||
-- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||
-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||
-- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||
-- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||
-- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||
-- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||
-- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||
-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||
-- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
--
|
||
-- The views and conclusions contained in the software and documentation
|
||
-- are those of the authors and should not be interpreted as representing
|
||
-- official policies, either expressed or implied, of the ZPU Project.
|
||
|
||
library ieee;
|
||
library pkgs;
|
||
library work;
|
||
use ieee.std_logic_1164.all;
|
||
use ieee.numeric_std.all;
|
||
use work.zpu_pkg.all;
|
||
use work.zpu_soc_pkg.all;
|
||
|
||
entity BootROM is
|
||
port (
|
||
clk : in std_logic;
|
||
areset : in std_logic := '0';
|
||
memAWriteEnable : in std_logic;
|
||
memAAddr : in std_logic_vector(ADDR_32BIT_BRAM_RANGE);
|
||
memAWrite : in std_logic_vector(WORD_32BIT_RANGE);
|
||
memBWriteEnable : in std_logic;
|
||
memBAddr : in std_logic_vector(ADDR_32BIT_BRAM_RANGE);
|
||
memBWrite : in std_logic_vector(WORD_32BIT_RANGE);
|
||
memARead : out std_logic_vector(WORD_32BIT_RANGE);
|
||
memBRead : out std_logic_vector(WORD_32BIT_RANGE)
|
||
);
|
||
end BootROM;
|
||
|
||
architecture arch of BootROM is
|
||
|
||
type ram_type is array(natural range 0 to (2**(SOC_MAX_ADDR_BRAM_BIT-2))-1) of std_logic_vector(WORD_32BIT_RANGE);
|
||
|
||
shared variable ram : ram_type :=
|
||
(
|
||
0 => x"0b0b0b88",
|
||
1 => x"e0040000",
|
||
2 => x"00000000",
|
||
3 => x"00000000",
|
||
4 => x"00000000",
|
||
5 => x"00000000",
|
||
6 => x"00000000",
|
||
7 => x"00000000",
|
||
8 => x"88088c08",
|
||
9 => x"90080b0b",
|
||
10 => x"0b888008",
|
||
11 => x"2d900c8c",
|
||
12 => x"0c880c04",
|
||
13 => x"00000000",
|
||
14 => x"00000000",
|
||
15 => x"00000000",
|
||
16 => x"71fd0608",
|
||
17 => x"72830609",
|
||
18 => x"81058205",
|
||
19 => x"832b2a83",
|
||
20 => x"ffff0652",
|
||
21 => x"04000000",
|
||
22 => x"00000000",
|
||
23 => x"00000000",
|
||
24 => x"71fd0608",
|
||
25 => x"83ffff73",
|
||
26 => x"83060981",
|
||
27 => x"05820583",
|
||
28 => x"2b2b0906",
|
||
29 => x"7383ffff",
|
||
30 => x"0b0b0b0b",
|
||
31 => x"83a50400",
|
||
32 => x"72098105",
|
||
33 => x"72057373",
|
||
34 => x"09060906",
|
||
35 => x"73097306",
|
||
36 => x"070a8106",
|
||
37 => x"53510400",
|
||
38 => x"00000000",
|
||
39 => x"00000000",
|
||
40 => x"72722473",
|
||
41 => x"732e0753",
|
||
42 => x"51040000",
|
||
43 => x"00000000",
|
||
44 => x"00000000",
|
||
45 => x"00000000",
|
||
46 => x"00000000",
|
||
47 => x"00000000",
|
||
48 => x"71737109",
|
||
49 => x"71068106",
|
||
50 => x"09810572",
|
||
51 => x"0a100a72",
|
||
52 => x"0a100a31",
|
||
53 => x"050a8106",
|
||
54 => x"51515351",
|
||
55 => x"04000000",
|
||
56 => x"72722673",
|
||
57 => x"732e0753",
|
||
58 => x"51040000",
|
||
59 => x"00000000",
|
||
60 => x"00000000",
|
||
61 => x"00000000",
|
||
62 => x"00000000",
|
||
63 => x"00000000",
|
||
64 => x"00000000",
|
||
65 => x"00000000",
|
||
66 => x"00000000",
|
||
67 => x"00000000",
|
||
68 => x"00000000",
|
||
69 => x"00000000",
|
||
70 => x"00000000",
|
||
71 => x"00000000",
|
||
72 => x"0b0b0b88",
|
||
73 => x"c4040000",
|
||
74 => x"00000000",
|
||
75 => x"00000000",
|
||
76 => x"00000000",
|
||
77 => x"00000000",
|
||
78 => x"00000000",
|
||
79 => x"00000000",
|
||
80 => x"720a722b",
|
||
81 => x"0a535104",
|
||
82 => x"00000000",
|
||
83 => x"00000000",
|
||
84 => x"00000000",
|
||
85 => x"00000000",
|
||
86 => x"00000000",
|
||
87 => x"00000000",
|
||
88 => x"72729f06",
|
||
89 => x"0981050b",
|
||
90 => x"0b0b88a7",
|
||
91 => x"05040000",
|
||
92 => x"00000000",
|
||
93 => x"00000000",
|
||
94 => x"00000000",
|
||
95 => x"00000000",
|
||
96 => x"72722aff",
|
||
97 => x"739f062a",
|
||
98 => x"0974090a",
|
||
99 => x"8106ff05",
|
||
100 => x"06075351",
|
||
101 => x"04000000",
|
||
102 => x"00000000",
|
||
103 => x"00000000",
|
||
104 => x"71715351",
|
||
105 => x"04067383",
|
||
106 => x"06098105",
|
||
107 => x"8205832b",
|
||
108 => x"0b2b0772",
|
||
109 => x"fc060c51",
|
||
110 => x"51040000",
|
||
111 => x"00000000",
|
||
112 => x"72098105",
|
||
113 => x"72050970",
|
||
114 => x"81050906",
|
||
115 => x"0a810653",
|
||
116 => x"51040000",
|
||
117 => x"00000000",
|
||
118 => x"00000000",
|
||
119 => x"00000000",
|
||
120 => x"72098105",
|
||
121 => x"72050970",
|
||
122 => x"81050906",
|
||
123 => x"0a098106",
|
||
124 => x"53510400",
|
||
125 => x"00000000",
|
||
126 => x"00000000",
|
||
127 => x"00000000",
|
||
128 => x"71098105",
|
||
129 => x"52040000",
|
||
130 => x"00000000",
|
||
131 => x"00000000",
|
||
132 => x"00000000",
|
||
133 => x"00000000",
|
||
134 => x"00000000",
|
||
135 => x"00000000",
|
||
136 => x"72720981",
|
||
137 => x"05055351",
|
||
138 => x"04000000",
|
||
139 => x"00000000",
|
||
140 => x"00000000",
|
||
141 => x"00000000",
|
||
142 => x"00000000",
|
||
143 => x"00000000",
|
||
144 => x"72097206",
|
||
145 => x"73730906",
|
||
146 => x"07535104",
|
||
147 => x"00000000",
|
||
148 => x"00000000",
|
||
149 => x"00000000",
|
||
150 => x"00000000",
|
||
151 => x"00000000",
|
||
152 => x"71fc0608",
|
||
153 => x"72830609",
|
||
154 => x"81058305",
|
||
155 => x"1010102a",
|
||
156 => x"81ff0652",
|
||
157 => x"04000000",
|
||
158 => x"00000000",
|
||
159 => x"00000000",
|
||
160 => x"71fc0608",
|
||
161 => x"0b0b0b9f",
|
||
162 => x"d0738306",
|
||
163 => x"10100508",
|
||
164 => x"060b0b0b",
|
||
165 => x"88ac0400",
|
||
166 => x"00000000",
|
||
167 => x"00000000",
|
||
168 => x"88088c08",
|
||
169 => x"90087575",
|
||
170 => x"0b0b0b89",
|
||
171 => x"cf2d5050",
|
||
172 => x"88085690",
|
||
173 => x"0c8c0c88",
|
||
174 => x"0c510400",
|
||
175 => x"00000000",
|
||
176 => x"88088c08",
|
||
177 => x"90087575",
|
||
178 => x"0b0b0b8b",
|
||
179 => x"812d5050",
|
||
180 => x"88085690",
|
||
181 => x"0c8c0c88",
|
||
182 => x"0c510400",
|
||
183 => x"00000000",
|
||
184 => x"72097081",
|
||
185 => x"0509060a",
|
||
186 => x"8106ff05",
|
||
187 => x"70547106",
|
||
188 => x"73097274",
|
||
189 => x"05ff0506",
|
||
190 => x"07515151",
|
||
191 => x"04000000",
|
||
192 => x"72097081",
|
||
193 => x"0509060a",
|
||
194 => x"098106ff",
|
||
195 => x"05705471",
|
||
196 => x"06730972",
|
||
197 => x"7405ff05",
|
||
198 => x"06075151",
|
||
199 => x"51040000",
|
||
200 => x"05ff0504",
|
||
201 => x"00000000",
|
||
202 => x"00000000",
|
||
203 => x"00000000",
|
||
204 => x"00000000",
|
||
205 => x"00000000",
|
||
206 => x"00000000",
|
||
207 => x"00000000",
|
||
208 => x"04000000",
|
||
209 => x"00000000",
|
||
210 => x"00000000",
|
||
211 => x"00000000",
|
||
212 => x"00000000",
|
||
213 => x"00000000",
|
||
214 => x"00000000",
|
||
215 => x"00000000",
|
||
216 => x"71810552",
|
||
217 => x"04000000",
|
||
218 => x"00000000",
|
||
219 => x"00000000",
|
||
220 => x"00000000",
|
||
221 => x"00000000",
|
||
222 => x"00000000",
|
||
223 => x"00000000",
|
||
224 => x"04000000",
|
||
225 => x"00000000",
|
||
226 => x"00000000",
|
||
227 => x"00000000",
|
||
228 => x"00000000",
|
||
229 => x"00000000",
|
||
230 => x"00000000",
|
||
231 => x"00000000",
|
||
232 => x"02840572",
|
||
233 => x"10100552",
|
||
234 => x"04000000",
|
||
235 => x"00000000",
|
||
236 => x"00000000",
|
||
237 => x"00000000",
|
||
238 => x"00000000",
|
||
239 => x"00000000",
|
||
240 => x"00000000",
|
||
241 => x"00000000",
|
||
242 => x"00000000",
|
||
243 => x"00000000",
|
||
244 => x"00000000",
|
||
245 => x"00000000",
|
||
246 => x"00000000",
|
||
247 => x"00000000",
|
||
248 => x"717105ff",
|
||
249 => x"05715351",
|
||
250 => x"020d0400",
|
||
251 => x"00000000",
|
||
252 => x"00000000",
|
||
253 => x"00000000",
|
||
254 => x"00000000",
|
||
255 => x"00000000",
|
||
256 => x"00000404",
|
||
257 => x"04000000",
|
||
258 => x"10101010",
|
||
259 => x"10101010",
|
||
260 => x"10101010",
|
||
261 => x"10101010",
|
||
262 => x"10101010",
|
||
263 => x"10101010",
|
||
264 => x"10101010",
|
||
265 => x"10101053",
|
||
266 => x"51040000",
|
||
267 => x"7381ff06",
|
||
268 => x"73830609",
|
||
269 => x"81058305",
|
||
270 => x"1010102b",
|
||
271 => x"0772fc06",
|
||
272 => x"0c515104",
|
||
273 => x"72728072",
|
||
274 => x"8106ff05",
|
||
275 => x"09720605",
|
||
276 => x"71105272",
|
||
277 => x"0a100a53",
|
||
278 => x"72ed3851",
|
||
279 => x"51535104",
|
||
280 => x"9ff470a0",
|
||
281 => x"a4278e38",
|
||
282 => x"80717084",
|
||
283 => x"05530c0b",
|
||
284 => x"0b0b88e2",
|
||
285 => x"0488fe51",
|
||
286 => x"9e9d0400",
|
||
287 => x"80040088",
|
||
288 => x"fe040000",
|
||
289 => x"00940802",
|
||
290 => x"940cfd3d",
|
||
291 => x"0d805394",
|
||
292 => x"088c0508",
|
||
293 => x"52940888",
|
||
294 => x"05085182",
|
||
295 => x"de3f8808",
|
||
296 => x"70880c54",
|
||
297 => x"853d0d94",
|
||
298 => x"0c049408",
|
||
299 => x"02940cfd",
|
||
300 => x"3d0d8153",
|
||
301 => x"94088c05",
|
||
302 => x"08529408",
|
||
303 => x"88050851",
|
||
304 => x"82b93f88",
|
||
305 => x"0870880c",
|
||
306 => x"54853d0d",
|
||
307 => x"940c0494",
|
||
308 => x"0802940c",
|
||
309 => x"f93d0d80",
|
||
310 => x"0b9408fc",
|
||
311 => x"050c9408",
|
||
312 => x"88050880",
|
||
313 => x"25ab3894",
|
||
314 => x"08880508",
|
||
315 => x"30940888",
|
||
316 => x"050c800b",
|
||
317 => x"9408f405",
|
||
318 => x"0c9408fc",
|
||
319 => x"05088838",
|
||
320 => x"810b9408",
|
||
321 => x"f4050c94",
|
||
322 => x"08f40508",
|
||
323 => x"9408fc05",
|
||
324 => x"0c94088c",
|
||
325 => x"05088025",
|
||
326 => x"ab389408",
|
||
327 => x"8c050830",
|
||
328 => x"94088c05",
|
||
329 => x"0c800b94",
|
||
330 => x"08f0050c",
|
||
331 => x"9408fc05",
|
||
332 => x"08883881",
|
||
333 => x"0b9408f0",
|
||
334 => x"050c9408",
|
||
335 => x"f0050894",
|
||
336 => x"08fc050c",
|
||
337 => x"80539408",
|
||
338 => x"8c050852",
|
||
339 => x"94088805",
|
||
340 => x"085181a7",
|
||
341 => x"3f880870",
|
||
342 => x"9408f805",
|
||
343 => x"0c549408",
|
||
344 => x"fc050880",
|
||
345 => x"2e8c3894",
|
||
346 => x"08f80508",
|
||
347 => x"309408f8",
|
||
348 => x"050c9408",
|
||
349 => x"f8050870",
|
||
350 => x"880c5489",
|
||
351 => x"3d0d940c",
|
||
352 => x"04940802",
|
||
353 => x"940cfb3d",
|
||
354 => x"0d800b94",
|
||
355 => x"08fc050c",
|
||
356 => x"94088805",
|
||
357 => x"08802593",
|
||
358 => x"38940888",
|
||
359 => x"05083094",
|
||
360 => x"0888050c",
|
||
361 => x"810b9408",
|
||
362 => x"fc050c94",
|
||
363 => x"088c0508",
|
||
364 => x"80258c38",
|
||
365 => x"94088c05",
|
||
366 => x"08309408",
|
||
367 => x"8c050c81",
|
||
368 => x"5394088c",
|
||
369 => x"05085294",
|
||
370 => x"08880508",
|
||
371 => x"51ad3f88",
|
||
372 => x"08709408",
|
||
373 => x"f8050c54",
|
||
374 => x"9408fc05",
|
||
375 => x"08802e8c",
|
||
376 => x"389408f8",
|
||
377 => x"05083094",
|
||
378 => x"08f8050c",
|
||
379 => x"9408f805",
|
||
380 => x"0870880c",
|
||
381 => x"54873d0d",
|
||
382 => x"940c0494",
|
||
383 => x"0802940c",
|
||
384 => x"fd3d0d81",
|
||
385 => x"0b9408fc",
|
||
386 => x"050c800b",
|
||
387 => x"9408f805",
|
||
388 => x"0c94088c",
|
||
389 => x"05089408",
|
||
390 => x"88050827",
|
||
391 => x"ac389408",
|
||
392 => x"fc050880",
|
||
393 => x"2ea33880",
|
||
394 => x"0b94088c",
|
||
395 => x"05082499",
|
||
396 => x"3894088c",
|
||
397 => x"05081094",
|
||
398 => x"088c050c",
|
||
399 => x"9408fc05",
|
||
400 => x"08109408",
|
||
401 => x"fc050cc9",
|
||
402 => x"399408fc",
|
||
403 => x"0508802e",
|
||
404 => x"80c93894",
|
||
405 => x"088c0508",
|
||
406 => x"94088805",
|
||
407 => x"0826a138",
|
||
408 => x"94088805",
|
||
409 => x"0894088c",
|
||
410 => x"05083194",
|
||
411 => x"0888050c",
|
||
412 => x"9408f805",
|
||
413 => x"089408fc",
|
||
414 => x"05080794",
|
||
415 => x"08f8050c",
|
||
416 => x"9408fc05",
|
||
417 => x"08812a94",
|
||
418 => x"08fc050c",
|
||
419 => x"94088c05",
|
||
420 => x"08812a94",
|
||
421 => x"088c050c",
|
||
422 => x"ffaf3994",
|
||
423 => x"08900508",
|
||
424 => x"802e8f38",
|
||
425 => x"94088805",
|
||
426 => x"08709408",
|
||
427 => x"f4050c51",
|
||
428 => x"8d399408",
|
||
429 => x"f8050870",
|
||
430 => x"9408f405",
|
||
431 => x"0c519408",
|
||
432 => x"f4050888",
|
||
433 => x"0c853d0d",
|
||
434 => x"940c04ff",
|
||
435 => x"3d0d8188",
|
||
436 => x"0b87c092",
|
||
437 => x"8c0c810b",
|
||
438 => x"87c0928c",
|
||
439 => x"0c850b87",
|
||
440 => x"c0988c0c",
|
||
441 => x"87c0928c",
|
||
442 => x"08708206",
|
||
443 => x"51517080",
|
||
444 => x"2e8a3887",
|
||
445 => x"c0988c08",
|
||
446 => x"5170e938",
|
||
447 => x"87c0928c",
|
||
448 => x"08fc8080",
|
||
449 => x"06527193",
|
||
450 => x"3887c098",
|
||
451 => x"8c085170",
|
||
452 => x"802e8838",
|
||
453 => x"710b0b0b",
|
||
454 => x"9ff0340b",
|
||
455 => x"0b0b9ff0",
|
||
456 => x"33880c83",
|
||
457 => x"3d0d04fa",
|
||
458 => x"3d0d787b",
|
||
459 => x"7d565856",
|
||
460 => x"800b0b0b",
|
||
461 => x"0b9ff033",
|
||
462 => x"81065255",
|
||
463 => x"82527075",
|
||
464 => x"2e098106",
|
||
465 => x"819e3885",
|
||
466 => x"0b87c098",
|
||
467 => x"8c0c7987",
|
||
468 => x"c092800c",
|
||
469 => x"840b87c0",
|
||
470 => x"928c0c87",
|
||
471 => x"c0928c08",
|
||
472 => x"70852a70",
|
||
473 => x"81065152",
|
||
474 => x"5370802e",
|
||
475 => x"a73887c0",
|
||
476 => x"92840870",
|
||
477 => x"81ff0676",
|
||
478 => x"79275253",
|
||
479 => x"5173802e",
|
||
480 => x"90387080",
|
||
481 => x"2e8b3871",
|
||
482 => x"76708105",
|
||
483 => x"5834ff14",
|
||
484 => x"54811555",
|
||
485 => x"72a20651",
|
||
486 => x"70802e8b",
|
||
487 => x"3887c098",
|
||
488 => x"8c085170",
|
||
489 => x"ffb53887",
|
||
490 => x"c0988c08",
|
||
491 => x"51709538",
|
||
492 => x"810b87c0",
|
||
493 => x"928c0c87",
|
||
494 => x"c0928c08",
|
||
495 => x"70820651",
|
||
496 => x"5170f438",
|
||
497 => x"8073fc80",
|
||
498 => x"80065252",
|
||
499 => x"70722e09",
|
||
500 => x"81068f38",
|
||
501 => x"87c0988c",
|
||
502 => x"08517072",
|
||
503 => x"2e098106",
|
||
504 => x"83388152",
|
||
505 => x"71880c88",
|
||
506 => x"3d0d04fe",
|
||
507 => x"3d0d7481",
|
||
508 => x"11337133",
|
||
509 => x"71882b07",
|
||
510 => x"880c5351",
|
||
511 => x"843d0d04",
|
||
512 => x"fd3d0d75",
|
||
513 => x"83113382",
|
||
514 => x"12337190",
|
||
515 => x"2b71882b",
|
||
516 => x"07811433",
|
||
517 => x"70720788",
|
||
518 => x"2b753371",
|
||
519 => x"07880c52",
|
||
520 => x"53545654",
|
||
521 => x"52853d0d",
|
||
522 => x"04f93d0d",
|
||
523 => x"790b0b0b",
|
||
524 => x"9ff40857",
|
||
525 => x"57817727",
|
||
526 => x"80ed3876",
|
||
527 => x"88170827",
|
||
528 => x"80e53875",
|
||
529 => x"33557482",
|
||
530 => x"2e893874",
|
||
531 => x"832eae38",
|
||
532 => x"80d53974",
|
||
533 => x"54761083",
|
||
534 => x"fe065376",
|
||
535 => x"882a8c17",
|
||
536 => x"08055288",
|
||
537 => x"3d705255",
|
||
538 => x"fdbd3f88",
|
||
539 => x"08b93874",
|
||
540 => x"51fef83f",
|
||
541 => x"880883ff",
|
||
542 => x"ff0655ad",
|
||
543 => x"39845476",
|
||
544 => x"822b83fc",
|
||
545 => x"06537687",
|
||
546 => x"2a8c1708",
|
||
547 => x"0552883d",
|
||
548 => x"705255fd",
|
||
549 => x"923f8808",
|
||
550 => x"8e387451",
|
||
551 => x"fee23f88",
|
||
552 => x"08f00a06",
|
||
553 => x"55833981",
|
||
554 => x"5574880c",
|
||
555 => x"893d0d04",
|
||
556 => x"fb3d0d0b",
|
||
557 => x"0b0b9ff4",
|
||
558 => x"08fe1988",
|
||
559 => x"1208fe05",
|
||
560 => x"55565480",
|
||
561 => x"56747327",
|
||
562 => x"8d388214",
|
||
563 => x"33757129",
|
||
564 => x"94160805",
|
||
565 => x"57537588",
|
||
566 => x"0c873d0d",
|
||
567 => x"04fd3d0d",
|
||
568 => x"7554800b",
|
||
569 => x"0b0b0b9f",
|
||
570 => x"f4087033",
|
||
571 => x"51535371",
|
||
572 => x"832e0981",
|
||
573 => x"068c3894",
|
||
574 => x"1451fdef",
|
||
575 => x"3f880890",
|
||
576 => x"2b539a14",
|
||
577 => x"51fde43f",
|
||
578 => x"880883ff",
|
||
579 => x"ff067307",
|
||
580 => x"880c853d",
|
||
581 => x"0d04fc3d",
|
||
582 => x"0d760b0b",
|
||
583 => x"0b9ff408",
|
||
584 => x"55558075",
|
||
585 => x"23881508",
|
||
586 => x"5372812e",
|
||
587 => x"88388814",
|
||
588 => x"08732685",
|
||
589 => x"388152b0",
|
||
590 => x"39729038",
|
||
591 => x"73335271",
|
||
592 => x"832e0981",
|
||
593 => x"06853890",
|
||
594 => x"14085372",
|
||
595 => x"8c160c72",
|
||
596 => x"802e8b38",
|
||
597 => x"7251fed8",
|
||
598 => x"3f880852",
|
||
599 => x"85399014",
|
||
600 => x"08527190",
|
||
601 => x"160c8052",
|
||
602 => x"71880c86",
|
||
603 => x"3d0d04fa",
|
||
604 => x"3d0d780b",
|
||
605 => x"0b0b9ff4",
|
||
606 => x"08712281",
|
||
607 => x"057083ff",
|
||
608 => x"ff065754",
|
||
609 => x"57557380",
|
||
610 => x"2e883890",
|
||
611 => x"15085372",
|
||
612 => x"86388352",
|
||
613 => x"80dc3973",
|
||
614 => x"8f065271",
|
||
615 => x"80cf3881",
|
||
616 => x"1390160c",
|
||
617 => x"8c150853",
|
||
618 => x"728f3883",
|
||
619 => x"0b841722",
|
||
620 => x"57527376",
|
||
621 => x"27bc38b5",
|
||
622 => x"39821633",
|
||
623 => x"ff057484",
|
||
624 => x"2a065271",
|
||
625 => x"a8387251",
|
||
626 => x"fcdf3f81",
|
||
627 => x"52718808",
|
||
628 => x"27a03883",
|
||
629 => x"52880888",
|
||
630 => x"17082796",
|
||
631 => x"3888088c",
|
||
632 => x"160c8808",
|
||
633 => x"51fdc93f",
|
||
634 => x"88089016",
|
||
635 => x"0c737523",
|
||
636 => x"80527188",
|
||
637 => x"0c883d0d",
|
||
638 => x"04f23d0d",
|
||
639 => x"60626458",
|
||
640 => x"5e5c7533",
|
||
641 => x"5574a02e",
|
||
642 => x"09810688",
|
||
643 => x"38811670",
|
||
644 => x"4456ef39",
|
||
645 => x"62703356",
|
||
646 => x"5674af2e",
|
||
647 => x"09810684",
|
||
648 => x"38811643",
|
||
649 => x"800b881d",
|
||
650 => x"0c627033",
|
||
651 => x"5155749f",
|
||
652 => x"268f387b",
|
||
653 => x"51fddf3f",
|
||
654 => x"88085680",
|
||
655 => x"7d3482d3",
|
||
656 => x"39933d84",
|
||
657 => x"1d087058",
|
||
658 => x"5a5f8a55",
|
||
659 => x"a0767081",
|
||
660 => x"055834ff",
|
||
661 => x"155574ff",
|
||
662 => x"2e098106",
|
||
663 => x"ef388070",
|
||
664 => x"595b887f",
|
||
665 => x"085f5a7a",
|
||
666 => x"811c7081",
|
||
667 => x"ff066013",
|
||
668 => x"703370af",
|
||
669 => x"327030a0",
|
||
670 => x"73277180",
|
||
671 => x"25075151",
|
||
672 => x"525b535d",
|
||
673 => x"57557480",
|
||
674 => x"c73876ae",
|
||
675 => x"2e098106",
|
||
676 => x"83388155",
|
||
677 => x"777a2775",
|
||
678 => x"07557480",
|
||
679 => x"2e9f3879",
|
||
680 => x"88327030",
|
||
681 => x"78ae3270",
|
||
682 => x"30707307",
|
||
683 => x"9f2a5351",
|
||
684 => x"57515675",
|
||
685 => x"9b388858",
|
||
686 => x"8b5affab",
|
||
687 => x"39778119",
|
||
688 => x"7081ff06",
|
||
689 => x"721c535a",
|
||
690 => x"57557675",
|
||
691 => x"34ff9839",
|
||
692 => x"7a1e7f0c",
|
||
693 => x"805576a0",
|
||
694 => x"26833881",
|
||
695 => x"55748b1a",
|
||
696 => x"347b51fc",
|
||
697 => x"b13f8808",
|
||
698 => x"80ef38a0",
|
||
699 => x"547b2270",
|
||
700 => x"852b83e0",
|
||
701 => x"06545590",
|
||
702 => x"1c08527c",
|
||
703 => x"51f8a83f",
|
||
704 => x"88085788",
|
||
705 => x"0880fb38",
|
||
706 => x"7c335574",
|
||
707 => x"802e80ee",
|
||
708 => x"388b1d33",
|
||
709 => x"70832a70",
|
||
710 => x"81065156",
|
||
711 => x"5674b238",
|
||
712 => x"8b7d841e",
|
||
713 => x"08880859",
|
||
714 => x"5b5b58ff",
|
||
715 => x"185877ff",
|
||
716 => x"2e9a3879",
|
||
717 => x"7081055b",
|
||
718 => x"33797081",
|
||
719 => x"055b3371",
|
||
720 => x"71315256",
|
||
721 => x"5675802e",
|
||
722 => x"e2388639",
|
||
723 => x"75802e92",
|
||
724 => x"387b51fc",
|
||
725 => x"9a3fff8e",
|
||
726 => x"39880856",
|
||
727 => x"8808b438",
|
||
728 => x"83397656",
|
||
729 => x"841c088b",
|
||
730 => x"11335155",
|
||
731 => x"74a5388b",
|
||
732 => x"1d337084",
|
||
733 => x"2a708106",
|
||
734 => x"51565674",
|
||
735 => x"89388356",
|
||
736 => x"92398156",
|
||
737 => x"8e397c51",
|
||
738 => x"fad33f88",
|
||
739 => x"08881d0c",
|
||
740 => x"fdaf3975",
|
||
741 => x"880c903d",
|
||
742 => x"0d04f93d",
|
||
743 => x"0d797b59",
|
||
744 => x"57825483",
|
||
745 => x"fe537752",
|
||
746 => x"7651f6fb",
|
||
747 => x"3f835688",
|
||
748 => x"0880e738",
|
||
749 => x"7651f8b3",
|
||
750 => x"3f880883",
|
||
751 => x"ffff0655",
|
||
752 => x"82567482",
|
||
753 => x"d4d52e09",
|
||
754 => x"810680ce",
|
||
755 => x"387554b6",
|
||
756 => x"53775276",
|
||
757 => x"51f6d03f",
|
||
758 => x"88085688",
|
||
759 => x"08943876",
|
||
760 => x"51f8883f",
|
||
761 => x"880883ff",
|
||
762 => x"ff065574",
|
||
763 => x"8182c62e",
|
||
764 => x"a9388254",
|
||
765 => x"80d25377",
|
||
766 => x"527651f6",
|
||
767 => x"aa3f8808",
|
||
768 => x"56880894",
|
||
769 => x"387651f7",
|
||
770 => x"e23f8808",
|
||
771 => x"83ffff06",
|
||
772 => x"55748182",
|
||
773 => x"c62e8338",
|
||
774 => x"81567588",
|
||
775 => x"0c893d0d",
|
||
776 => x"04ed3d0d",
|
||
777 => x"6559800b",
|
||
778 => x"0b0b0b9f",
|
||
779 => x"f40cf59b",
|
||
780 => x"3f880881",
|
||
781 => x"06558256",
|
||
782 => x"7482f238",
|
||
783 => x"7475538d",
|
||
784 => x"3d705357",
|
||
785 => x"5afed33f",
|
||
786 => x"880881ff",
|
||
787 => x"06577681",
|
||
788 => x"2e098106",
|
||
789 => x"b3389054",
|
||
790 => x"83be5374",
|
||
791 => x"527551f5",
|
||
792 => x"c63f8808",
|
||
793 => x"ab388d3d",
|
||
794 => x"33557480",
|
||
795 => x"2eac3895",
|
||
796 => x"3de40551",
|
||
797 => x"f78a3f88",
|
||
798 => x"08880853",
|
||
799 => x"76525afe",
|
||
800 => x"993f8808",
|
||
801 => x"81ff0657",
|
||
802 => x"76832e09",
|
||
803 => x"81068638",
|
||
804 => x"81568299",
|
||
805 => x"3976802e",
|
||
806 => x"86388656",
|
||
807 => x"828f39a4",
|
||
808 => x"548d5379",
|
||
809 => x"527551f4",
|
||
810 => x"fe3f8156",
|
||
811 => x"880881fd",
|
||
812 => x"38953de5",
|
||
813 => x"0551f6b3",
|
||
814 => x"3f880883",
|
||
815 => x"ffff0658",
|
||
816 => x"778c3895",
|
||
817 => x"3df30551",
|
||
818 => x"f6b63f88",
|
||
819 => x"085802af",
|
||
820 => x"05337871",
|
||
821 => x"29028805",
|
||
822 => x"ad057054",
|
||
823 => x"52595bf6",
|
||
824 => x"8a3f8808",
|
||
825 => x"83ffff06",
|
||
826 => x"7a058c1a",
|
||
827 => x"0c8c3d33",
|
||
828 => x"821a3495",
|
||
829 => x"3de00551",
|
||
830 => x"f5f13f88",
|
||
831 => x"08841a23",
|
||
832 => x"953de205",
|
||
833 => x"51f5e43f",
|
||
834 => x"880883ff",
|
||
835 => x"ff065675",
|
||
836 => x"8c38953d",
|
||
837 => x"ef0551f5",
|
||
838 => x"e73f8808",
|
||
839 => x"567a51f5",
|
||
840 => x"ca3f8808",
|
||
841 => x"83ffff06",
|
||
842 => x"76713179",
|
||
843 => x"31841b22",
|
||
844 => x"70842a82",
|
||
845 => x"1d335672",
|
||
846 => x"71315559",
|
||
847 => x"5c5155ee",
|
||
848 => x"c43f8808",
|
||
849 => x"82057088",
|
||
850 => x"1b0c8808",
|
||
851 => x"e08a0556",
|
||
852 => x"567483df",
|
||
853 => x"fe268338",
|
||
854 => x"825783ff",
|
||
855 => x"f6762785",
|
||
856 => x"38835789",
|
||
857 => x"39865676",
|
||
858 => x"802e80c1",
|
||
859 => x"38767934",
|
||
860 => x"76832e09",
|
||
861 => x"81069038",
|
||
862 => x"953dfb05",
|
||
863 => x"51f5813f",
|
||
864 => x"8808901a",
|
||
865 => x"0c88398c",
|
||
866 => x"19081890",
|
||
867 => x"1a0c7983",
|
||
868 => x"ffff068c",
|
||
869 => x"1a081971",
|
||
870 => x"842a0594",
|
||
871 => x"1b0c5580",
|
||
872 => x"0b811a34",
|
||
873 => x"780b0b0b",
|
||
874 => x"9ff40c80",
|
||
875 => x"5675880c",
|
||
876 => x"953d0d04",
|
||
877 => x"ea3d0d0b",
|
||
878 => x"0b0b9ff4",
|
||
879 => x"08558554",
|
||
880 => x"74802e80",
|
||
881 => x"df38800b",
|
||
882 => x"81163498",
|
||
883 => x"3de01145",
|
||
884 => x"6954893d",
|
||
885 => x"705457ec",
|
||
886 => x"0551f89d",
|
||
887 => x"3f880854",
|
||
888 => x"880880c0",
|
||
889 => x"38883d33",
|
||
890 => x"5473802e",
|
||
891 => x"933802a7",
|
||
892 => x"05337084",
|
||
893 => x"2a708106",
|
||
894 => x"51555773",
|
||
895 => x"802e8538",
|
||
896 => x"8354a139",
|
||
897 => x"7551f5d5",
|
||
898 => x"3f8808a0",
|
||
899 => x"160c983d",
|
||
900 => x"dc0551f3",
|
||
901 => x"eb3f8808",
|
||
902 => x"9c160c73",
|
||
903 => x"98160c81",
|
||
904 => x"0b811634",
|
||
905 => x"73880c98",
|
||
906 => x"3d0d04f6",
|
||
907 => x"3d0d7d7f",
|
||
908 => x"7e0b0b0b",
|
||
909 => x"9ff40859",
|
||
910 => x"5b5c5880",
|
||
911 => x"7b0c8557",
|
||
912 => x"75802e81",
|
||
913 => x"d1388116",
|
||
914 => x"33810655",
|
||
915 => x"84577480",
|
||
916 => x"2e81c338",
|
||
917 => x"91397481",
|
||
918 => x"17348639",
|
||
919 => x"800b8117",
|
||
920 => x"34815781",
|
||
921 => x"b1399c16",
|
||
922 => x"08981708",
|
||
923 => x"31557478",
|
||
924 => x"27833874",
|
||
925 => x"5877802e",
|
||
926 => x"819a3898",
|
||
927 => x"16087083",
|
||
928 => x"ff065657",
|
||
929 => x"7480c738",
|
||
930 => x"821633ff",
|
||
931 => x"0577892a",
|
||
932 => x"067081ff",
|
||
933 => x"065b5579",
|
||
934 => x"9e387687",
|
||
935 => x"38a01608",
|
||
936 => x"558b39a4",
|
||
937 => x"160851f3",
|
||
938 => x"803f8808",
|
||
939 => x"55817527",
|
||
940 => x"ffaa3874",
|
||
941 => x"a4170ca4",
|
||
942 => x"160851f3",
|
||
943 => x"f33f8808",
|
||
944 => x"55880880",
|
||
945 => x"2eff8f38",
|
||
946 => x"88081aa8",
|
||
947 => x"170c9816",
|
||
948 => x"0883ff06",
|
||
949 => x"84807131",
|
||
950 => x"51557775",
|
||
951 => x"27833877",
|
||
952 => x"55745498",
|
||
953 => x"160883ff",
|
||
954 => x"0653a816",
|
||
955 => x"08527851",
|
||
956 => x"f0b53f88",
|
||
957 => x"08fee538",
|
||
958 => x"98160815",
|
||
959 => x"98170c77",
|
||
960 => x"75317b08",
|
||
961 => x"167c0c58",
|
||
962 => x"78802efe",
|
||
963 => x"e8387419",
|
||
964 => x"59fee239",
|
||
965 => x"80577688",
|
||
966 => x"0c8c3d0d",
|
||
967 => x"04fb3d0d",
|
||
968 => x"87c0948c",
|
||
969 => x"08548784",
|
||
970 => x"80527351",
|
||
971 => x"ead73f88",
|
||
972 => x"08902b87",
|
||
973 => x"c0948c08",
|
||
974 => x"56548784",
|
||
975 => x"80527451",
|
||
976 => x"eac33f73",
|
||
977 => x"88080787",
|
||
978 => x"c0948c0c",
|
||
979 => x"87c0949c",
|
||
980 => x"08548784",
|
||
981 => x"80527351",
|
||
982 => x"eaab3f88",
|
||
983 => x"08902b87",
|
||
984 => x"c0949c08",
|
||
985 => x"56548784",
|
||
986 => x"80527451",
|
||
987 => x"ea973f73",
|
||
988 => x"88080787",
|
||
989 => x"c0949c0c",
|
||
990 => x"8c80830b",
|
||
991 => x"87c09484",
|
||
992 => x"0c8c8083",
|
||
993 => x"0b87c094",
|
||
994 => x"940c9ff8",
|
||
995 => x"51f9923f",
|
||
996 => x"8808b838",
|
||
997 => x"9fe051fc",
|
||
998 => x"9b3f8808",
|
||
999 => x"ae38a080",
|
||
1000 => x"0b880887",
|
||
1001 => x"c098880c",
|
||
1002 => x"55873dfc",
|
||
1003 => x"05538480",
|
||
1004 => x"527451fc",
|
||
1005 => x"f63f8808",
|
||
1006 => x"8d387554",
|
||
1007 => x"73802e86",
|
||
1008 => x"38731555",
|
||
1009 => x"e439a080",
|
||
1010 => x"54730480",
|
||
1011 => x"54fb3900",
|
||
1012 => x"00ffffff",
|
||
1013 => x"ff00ffff",
|
||
1014 => x"ffff00ff",
|
||
1015 => x"ffffff00",
|
||
1016 => x"424f4f54",
|
||
1017 => x"54494e59",
|
||
1018 => x"2e524f4d",
|
||
1019 => x"00000000",
|
||
1020 => x"01000000",
|
||
others => x"00000000"
|
||
);
|
||
|
||
begin
|
||
|
||
process (clk)
|
||
begin
|
||
if (clk'event and clk = '1') then
|
||
if (memAWriteEnable = '1') and (memBWriteEnable = '1') and (memAAddr=memBAddr) and (memAWrite/=memBWrite) then
|
||
report "write collision" severity failure;
|
||
end if;
|
||
|
||
if (memAWriteEnable = '1') then
|
||
ram(to_integer(unsigned(memAAddr(ADDR_32BIT_BRAM_RANGE)))) := memAWrite;
|
||
memARead <= memAWrite;
|
||
else
|
||
memARead <= ram(to_integer(unsigned(memAAddr(ADDR_32BIT_BRAM_RANGE))));
|
||
end if;
|
||
end if;
|
||
end process;
|
||
|
||
process (clk)
|
||
begin
|
||
if (clk'event and clk = '1') then
|
||
if (memBWriteEnable = '1') then
|
||
ram(to_integer(unsigned(memBAddr(ADDR_32BIT_BRAM_RANGE)))) := memBWrite;
|
||
memBRead <= memBWrite;
|
||
else
|
||
memBRead <= ram(to_integer(unsigned(memBAddr(ADDR_32BIT_BRAM_RANGE))));
|
||
end if;
|
||
end if;
|
||
end process;
|
||
|
||
|
||
end arch;
|
||
|