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

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [sparc/] [bprom.vhd] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 tarookumic
-------------------------------------------------------------------------------
2
--
3
-- ROM core VHDL template. See the macro description included
4
-- behind this frame.
5
--
6
-- Copyright (C) 2000 Rudolf Matousek <matousek@utia.cas.cz>
7
--
8
-- Modified by Jiri Gaisler <jgais@ws.estec.esa.nl> for LEON boot prom.
9
--
10
-- This code may be used under the terms of Version 2 of the GPL,
11
-- read the file COPYING for details.
12
--
13
--
14
-------------------------------------------------------------------------------
15
 
16
library ieee;
17
use ieee.std_logic_1164.all;
18
use ieee.std_logic_arith.all;
19
 
20
entity gen_bprom is
21
    port(
22
      clk : in std_logic;
23
      csn : in std_logic;
24
      addr : in std_logic_vector (29 downto 0);
25
      data : out std_logic_vector (31 downto 0)
26
      );
27
end;
28
 
29
architecture rtl of gen_bprom is
30
  signal raddr : std_logic_vector(9 downto 0);
31
  signal d : std_logic_vector(31 downto 0);
32
  attribute syn_romstyle : string;
33
  attribute syn_romstyle of d : signal is "select_rom";
34
 
35
begin
36
 
37
  p : process(raddr)
38
  begin
39
    case raddr is
40
    when "0000000000" => d <= "10000001100010000010000011100000";
41
    when "0000000001" => d <= "10000001100100000010000000000010";
42
    when "0000000010" => d <= "10000001110110000010000000000000";
43
    when "0000000011" => d <= "00000011000000000000000001000000";
44
    when "0000000100" => d <= "10000010000100000110000000001111";
45
    when "0000000101" => d <= "00010001001000000000000000000000";
46
    when "0000000110" => d <= "10001000001000100010000000010000";
47
    when "0000000111" => d <= "11000010001000100010000000010100";
48
    when "0000001000" => d <= "11010010000000100010000000100100";
49
    when "0000001001" => d <= "10010010000010100110000000010000";
50
    when "0000001010" => d <= "10010011001010100110000000001000";
51
    when "0000001011" => d <= "10000001100010100110000011100000";
52
    when "0000001100" => d <= "00010011000000000000000000101010";
53
    when "0000001101" => d <= "10010010000100100110001000000000";
54
    when "0000001110" => d <= "11010010001000100010000010100100";
55
    when "0000001111" => d <= "11000000001000100010000001110100";
56
    when "0000010000" => d <= "11000000001000100010000010000100";
57
    when "0000010001" => d <= "10010010000100000010000000000011";
58
    when "0000010010" => d <= "11010010001000100010000001111000";
59
    when "0000010011" => d <= "11010010001000100010000010001000";
60
    when "0000010100" => d <= "10010010000100000011111111111111";
61
    when "0000010101" => d <= "11010010001000100010000001000100";
62
    when "0000010110" => d <= "10010010000100000010000000000111";
63
    when "0000010111" => d <= "11010010001000100010000001001000";
64
    when "0000011000" => d <= "00010011000100000000000000000000";
65
    when "0000011001" => d <= "11010100000000100010000000000100";
66
    when "0000011010" => d <= "10010100000010101010000000001111";
67
    when "0000011011" => d <= "00010111000000000000000000000111";
68
    when "0000011100" => d <= "10010110000100101110001000100000";
69
    when "0000011101" => d <= "10010100000100101100000000001010";
70
    when "0000011110" => d <= "11010100001000100010000000000100";
71
    when "0000011111" => d <= "00010111000000000100100011010001";
72
    when "0000100000" => d <= "10010110000100101110000101100111";
73
    when "0000100001" => d <= "11010110001000100100000000000000";
74
    when "0000100010" => d <= "11000000001000100110000000000100";
75
    when "0000100011" => d <= "11011000100000100100000000000000";
76
    when "0000100100" => d <= "10000000101000101100000000001100";
77
    when "0000100101" => d <= "00000010100000000000000000001101";
78
    when "0000100110" => d <= "11000000001000100100000000000000";
79
    when "0000100111" => d <= "10010100001000101010000000010000";
80
    when "0000101000" => d <= "11010100001000100010000000000100";
81
    when "0000101001" => d <= "11010110001000100100000000000000";
82
    when "0000101010" => d <= "11000000001000100110000000000100";
83
    when "0000101011" => d <= "11011000100000100100000000000000";
84
    when "0000101100" => d <= "10000000101000101100000000001100";
85
    when "0000101101" => d <= "00000010100000000000000000000101";
86
    when "0000101110" => d <= "00000001000000000000000000000000";
87
    when "0000101111" => d <= "10010100001000101010000000010000";
88
    when "0000110000" => d <= "00010000100000000000000000001010";
89
    when "0000110001" => d <= "11010100001000100010000000000100";
90
    when "0000110010" => d <= "11010110001000100100000000000000";
91
    when "0000110011" => d <= "11000000001010100110000000000011";
92
    when "0000110100" => d <= "11011000100000100100000000000000";
93
    when "0000110101" => d <= "10000000101000101100000000001100";
94
    when "0000110110" => d <= "00010010100000000000000000000100";
95
    when "0000110111" => d <= "00000001000000000000000000000000";
96
    when "0000111000" => d <= "10010100000100101010000001000000";
97
    when "0000111001" => d <= "11010100001000100010000000000100";
98
    when "0000111010" => d <= "00000101000001000000000000000000";
99
    when "0000111011" => d <= "11010110001000010000000000000000";
100
    when "0000111100" => d <= "11000000001000010011111111111100";
101
    when "0000111101" => d <= "11011010100000010000000000000000";
102
    when "0000111110" => d <= "10000000101000110100000000001011";
103
    when "0000111111" => d <= "00110010101111111111111111111100";
104
    when "0001000000" => d <= "10001000101000010000000000000010";
105
    when "0001000001" => d <= "10001011001100010010000000011100";
106
    when "0001000010" => d <= "10001010001000010110000000000100";
107
    when "0001000011" => d <= "10010010000000001000000000001001";
108
    when "0001000100" => d <= "10010010001000100110000000010000";
109
    when "0001000101" => d <= "11010110001000100100000000000000";
110
    when "0001000110" => d <= "10000101001100001010000000000001";
111
    when "0001000111" => d <= "10010100001000101010001000000000";
112
    when "0001001000" => d <= "11010100001000100010000000000100";
113
    when "0001001001" => d <= "10010010001000100100000000000010";
114
    when "0001001010" => d <= "11011010100000100100000000000000";
115
    when "0001001011" => d <= "10000000101000110100000000001011";
116
    when "0001001100" => d <= "00000010101111111111111111111010";
117
    when "0001001101" => d <= "00000001000000000000000000000000";
118
    when "0001001110" => d <= "10010100000000101010001000000000";
119
    when "0001001111" => d <= "11010100001000100010000000000100";
120
    when "0001010000" => d <= "00001001000100000000000000000000";
121
    when "0001010001" => d <= "10010010000000100100000000000010";
122
    when "0001010010" => d <= "10010010001010100100000000000100";
123
    when "0001010011" => d <= "10010011001010100100000000000101";
124
    when "0001010100" => d <= "10011100000100100100000000000100";
125
    when "0001010101" => d <= "10010111001010010110000000000001";
126
    when "0001010110" => d <= "01000000000000000000000000011011";
127
    when "0001010111" => d <= "10010000000100000010001101110100";
128
    when "0001011000" => d <= "10010010000100000010001101101100";
129
    when "0001011001" => d <= "01000000000000000000000000011000";
130
    when "0001011010" => d <= "10010000000000101100000000001001";
131
    when "0001011011" => d <= "10010010000100000010001100111100";
132
    when "0001011100" => d <= "10001011001100101010000000000110";
133
    when "0001011101" => d <= "10001010001000010110000000100000";
134
    when "0001011110" => d <= "10001010001010010110000000000001";
135
    when "0001011111" => d <= "01000000000000000000000000010010";
136
    when "0001100000" => d <= "10010000000000100100000000000101";
137
    when "0001100001" => d <= "10010010000100000010001100110000";
138
    when "0001100010" => d <= "10001011001100101010000000000010";
139
    when "0001100011" => d <= "10001010000010010110000000001100";
140
    when "0001100100" => d <= "01000000000000000000000000001101";
141
    when "0001100101" => d <= "10010000000000100100000000000101";
142
    when "0001100110" => d <= "01000000000000000000000000001011";
143
    when "0001100111" => d <= "10010000000100000010001101111101";
144
    when "0001101000" => d <= "10000000100010101010000001000000";
145
    when "0001101001" => d <= "00000010100000000000000000000100";
146
    when "0001101010" => d <= "00000001000000000000000000000000";
147
    when "0001101011" => d <= "01000000000000000000000000000110";
148
    when "0001101100" => d <= "10010000000100000010001110001000";
149
    when "0001101101" => d <= "01000000000000000000000000000100";
150
    when "0001101110" => d <= "10010000000100000010001110001110";
151
    when "0001101111" => d <= "01000000000000000000000000100101";
152
    when "0001110000" => d <= "00000001000000000000000000000000";
153
    when "0001110001" => d <= "11000100000010100000000000000000";
154
    when "0001110010" => d <= "10000000101000001010000000000000";
155
    when "0001110011" => d <= "00000010100000000000000000001101";
156
    when "0001110100" => d <= "00010011001000000000000000000000";
157
    when "0001110101" => d <= "11000110000010100000000000000000";
158
    when "0001110110" => d <= "10010000000000100010000000000001";
159
    when "0001110111" => d <= "11000100000000100110000001110100";
160
    when "0001111000" => d <= "10000000100010001010000000000100";
161
    when "0001111001" => d <= "00000010101111111111111111111110";
162
    when "0001111010" => d <= "10000100000010001110000011111111";
163
    when "0001111011" => d <= "11000100001000100110000001110000";
164
    when "0001111100" => d <= "11000100000010100000000000000000";
165
    when "0001111101" => d <= "10000000101000001010000000000000";
166
    when "0001111110" => d <= "00110010101111111111111111111000";
167
    when "0001111111" => d <= "11000110000010100000000000000000";
168
    when "0010000000" => d <= "10000001110000111110000000001000";
169
    when "0010000001" => d <= "00000001000000000000000000000000";
170
    when "0010000010" => d <= "10010110000100000000000000001000";
171
    when "0010000011" => d <= "10010000000100000010000000000000";
172
    when "0010000100" => d <= "10000000101000100000000000001011";
173
    when "0010000101" => d <= "00011010100000000000000000001101";
174
    when "0010000110" => d <= "10010100000100000010000000000000";
175
    when "0010000111" => d <= "11000100000010100100000000001010";
176
    when "0010001000" => d <= "10000000101000001010000001000000";
177
    when "0010001001" => d <= "00101000100000000000000000000011";
178
    when "0010001010" => d <= "10000100000000001011111111010000";
179
    when "0010001011" => d <= "10000100000000001011111111001001";
180
    when "0010001100" => d <= "10000111001010100010000000000100";
181
    when "0010001101" => d <= "10000100000010001010000011111111";
182
    when "0010001110" => d <= "10010100000000101010000000000001";
183
    when "0010001111" => d <= "10000000101000101000000000001011";
184
    when "0010010000" => d <= "00001010101111111111111111110111";
185
    when "0010010001" => d <= "10010000000100001100000000000010";
186
    when "0010010010" => d <= "10000001110000111110000000001000";
187
    when "0010010011" => d <= "00000001000000000000000000000000";
188
    when "0010010100" => d <= "10011101111000111011111010011000";
189
    when "0010010101" => d <= "00101001001000000000000000000000";
190
    when "0010010110" => d <= "10101100000001111011111011111100";
191
    when "0010010111" => d <= "10101010000001111011111100000100";
192
    when "0010011000" => d <= "10010100000001111011111011111000";
193
    when "0010011001" => d <= "11010000000001010010000001110100";
194
    when "0010011010" => d <= "10000000100010100010000000000001";
195
    when "0010011011" => d <= "00000010101111111111111111111110";
196
    when "0010011100" => d <= "00000001000000000000000000000000";
197
    when "0010011101" => d <= "11010000000001010010000001110000";
198
    when "0010011110" => d <= "10010010000010100010000011111111";
199
    when "0010011111" => d <= "10000000101000100110000000001101";
200
    when "0010100000" => d <= "00000010100000000000000000000101";
201
    when "0010100001" => d <= "11010000001010101000000000000000";
202
    when "0010100010" => d <= "10000000101000100110000000001010";
203
    when "0010100011" => d <= "00010010101111111111111111110110";
204
    when "0010100100" => d <= "10010100000000101010000000000001";
205
    when "0010100101" => d <= "11010000000011111011111011111000";
206
    when "0010100110" => d <= "10000000101000100010000001010011";
207
    when "0010100111" => d <= "00010010101111111111111111110010";
208
    when "0010101000" => d <= "10010100000001111011111011111000";
209
    when "0010101001" => d <= "10010000000100000010000000001000";
210
    when "0010101010" => d <= "01111111111111111111111111011000";
211
    when "0010101011" => d <= "10010010000100000000000000010110";
212
    when "0010101100" => d <= "10100110000100000000000000001000";
213
    when "0010101101" => d <= "11010000000011111011111011111001";
214
    when "0010101110" => d <= "10000000101000100010000000110011";
215
    when "0010101111" => d <= "00010010100000000000000000010111";
216
    when "0010110000" => d <= "10000000101000100010000000110111";
217
    when "0010110001" => d <= "10010000000100000010000000000010";
218
    when "0010110010" => d <= "01111111111111111111111111010000";
219
    when "0010110011" => d <= "10010010000001111011111011111010";
220
    when "0010110100" => d <= "10010001001010100010000000000001";
221
    when "0010110101" => d <= "10010000000000100011111111110110";
222
    when "0010110110" => d <= "10100101001100100010000000000001";
223
    when "0010110111" => d <= "10100010000100000010000000000000";
224
    when "0010111000" => d <= "10000000101001000100000000010010";
225
    when "0010111001" => d <= "00010110101111111111111111100000";
226
    when "0010111010" => d <= "10010100000001111011111011111000";
227
    when "0010111011" => d <= "10100000000100000000000000010101";
228
    when "0010111100" => d <= "10010010000100000000000000010000";
229
    when "0010111101" => d <= "01111111111111111111111111000101";
230
    when "0010111110" => d <= "10010000000100000010000000000010";
231
    when "0010111111" => d <= "11010000001011001100000000010001";
232
    when "0011000000" => d <= "10100010000001000110000000000001";
233
    when "0011000001" => d <= "10000000101001000100000000010010";
234
    when "0011000010" => d <= "00000110101111111111111111111010";
235
    when "0011000011" => d <= "10100000000001000010000000000010";
236
    when "0011000100" => d <= "00010000101111111111111111010101";
237
    when "0011000101" => d <= "10010100000001111011111011111000";
238
    when "0011000110" => d <= "00010010101111111111111111010011";
239
    when "0011000111" => d <= "10010100000001111011111011111000";
240
    when "0011001000" => d <= "10011111110001001100000000000000";
241
    when "0011001001" => d <= "00000001000000000000000000000000";
242
    when "0011001010" => d <= "00010000101111111111111111001111";
243
    when "0011001011" => d <= "10010100000001111011111011111000";
244
    when "0011001100" => d <= "00100000001110000010110100000000";
245
    when "0011001101" => d <= "00110001001101100010110100000000";
246
    when "0011001110" => d <= "00110011001100100010110100000000";
247
    when "0011001111" => d <= "00101010001100010011001000111000";
248
    when "0011010000" => d <= "01001011001000000000000000000000";
249
    when "0011010001" => d <= "00101010001100100011010100110110";
250
    when "0011010010" => d <= "01001011001000000000000000000000";
251
    when "0011010011" => d <= "00101010001101010011000100110010";
252
    when "0011010100" => d <= "01001011001000000000000000000000";
253
    when "0011010101" => d <= "00101010001100010011000000110010";
254
    when "0011010110" => d <= "00110100010010110010000000000000";
255
    when "0011010111" => d <= "00101010001100100011000000110100";
256
    when "0011011000" => d <= "00111000010010110010000000000000";
257
    when "0011011001" => d <= "00101010001101000011000000111001";
258
    when "0011011010" => d <= "00110110010010110010000000000000";
259
    when "0011011011" => d <= "00110001000000000011001000000000";
260
    when "0011011100" => d <= "00110011000000000011010000000000";
261
    when "0011011101" => d <= "01001100010001010100111101001110";
262
    when "0011011110" => d <= "00101101001100010011101000100000";
263
    when "0011011111" => d <= "00000000011000100110100101110100";
264
    when "0011100000" => d <= "00100000011011010110010101101101";
265
    when "0011100001" => d <= "01101111011100100111100100000000";
266
    when "0011100010" => d <= "00101100001000000111001001101101";
267
    when "0011100011" => d <= "01110111000000000000101000001010";
268
    when "0011100100" => d <= "00001101001111100010000000000000";
269
    when "0011100101" => d <= "00000000000000000000000000000000";
270
 
271
    when others => d <= (others => '-');
272
    end case;
273
  end process;
274
 
275
  r : process (clk)
276
  begin
277
    if rising_edge(clk) then
278
      if csn = '0' then raddr <= addr(9 downto 0); end if;
279
    end if;
280
  end process;
281
 
282
  data <= d;
283
end rtl;

powered by: WebSVN 2.1.0

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