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

Subversion Repositories yavga

[/] [yavga/] [trunk/] [vhdl/] [chars_RAM.vhd] - Blame information for rev 35

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

Line No. Rev Author Line
1 2 sandroamt
--------------------------------------------------------------------------------
2
----                                                                        ----
3
---- This file is part of the yaVGA project                                 ----
4
---- http://www.opencores.org/?do=project&who=yavga                         ----
5
----                                                                        ----
6
---- Description                                                            ----
7
---- Implementation of yaVGA IP core                                        ----
8
----                                                                        ----
9
---- To Do:                                                                 ----
10
----                                                                        ----
11
----                                                                        ----
12
---- Author(s):                                                             ----
13
---- Sandro Amato, sdroamt@netscape.net                                     ----
14
----                                                                        ----
15
--------------------------------------------------------------------------------
16
----                                                                        ----
17
---- Copyright (c) 2009, Sandro Amato                                       ----
18
---- All rights reserved.                                                   ----
19
----                                                                        ----
20
---- Redistribution  and  use in  source  and binary forms, with or without ----
21
---- modification,  are  permitted  provided that  the following conditions ----
22
---- are met:                                                               ----
23
----                                                                        ----
24
----     * Redistributions  of  source  code  must  retain the above        ----
25
----       copyright   notice,  this  list  of  conditions  and  the        ----
26
----       following disclaimer.                                            ----
27
----     * Redistributions  in  binary form must reproduce the above        ----
28
----       copyright   notice,  this  list  of  conditions  and  the        ----
29
----       following  disclaimer in  the documentation and/or  other        ----
30
----       materials provided with the distribution.                        ----
31
----     * Neither  the  name  of  SANDRO AMATO nor the names of its        ----
32
----       contributors may be used to  endorse or  promote products        ----
33
----       derived from this software without specific prior written        ----
34
----       permission.                                                      ----
35
----                                                                        ----
36
---- THIS SOFTWARE IS PROVIDED  BY THE COPYRIGHT  HOLDERS AND  CONTRIBUTORS ----
37
---- "AS IS"  AND  ANY EXPRESS OR  IMPLIED  WARRANTIES, INCLUDING,  BUT NOT ----
38
---- LIMITED  TO, THE  IMPLIED  WARRANTIES  OF MERCHANTABILITY  AND FITNESS ----
39
---- FOR  A PARTICULAR  PURPOSE  ARE  DISCLAIMED. IN  NO  EVENT  SHALL  THE ----
40
---- COPYRIGHT  OWNER  OR CONTRIBUTORS  BE LIABLE FOR ANY DIRECT, INDIRECT, ----
41
---- INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ----
42
---- BUT  NOT LIMITED  TO,  PROCUREMENT OF  SUBSTITUTE  GOODS  OR SERVICES; ----
43
---- LOSS  OF  USE,  DATA,  OR PROFITS;  OR  BUSINESS INTERRUPTION) HOWEVER ----
44
---- CAUSED  AND  ON  ANY THEORY  OF LIABILITY, WHETHER IN CONTRACT, STRICT ----
45
---- LIABILITY,  OR  TORT  (INCLUDING  NEGLIGENCE  OR OTHERWISE) ARISING IN ----
46
---- ANY  WAY OUT  OF THE  USE  OF  THIS  SOFTWARE,  EVEN IF ADVISED OF THE ----
47
---- POSSIBILITY OF SUCH DAMAGE.                                            ----
48
--------------------------------------------------------------------------------
49
 
50
 
51
library IEEE;
52
use IEEE.STD_LOGIC_1164.all;
53
use IEEE.STD_LOGIC_ARITH.all;
54
use IEEE.STD_LOGIC_UNSIGNED.all;
55
 
56 28 sandroamt
use work.yavga_pkg.all;
57
 
58 2 sandroamt
-- Uncomment the following lines to use the declarations that are
59
-- provided for instantiating Xilinx primitive components.
60
library UNISIM;
61
use UNISIM.VComponents.all;
62
 
63
entity chars_RAM is
64
  port (
65
    i_clock_rw : in  std_logic;         -- Write Clock
66
    i_EN_rw    : in  std_logic;         -- Write RAM Enable Input
67 28 sandroamt
    i_WE_rw    : in  std_logic_vector(c_CHR_WE_BUS_W - 1 downto 0);  -- Write Enable Input
68 2 sandroamt
    i_ADDR_rw  : in  std_logic_vector(10 downto 0);  -- Write 11-bit Address Input
69
    i_DI_rw    : in  std_logic_vector(31 downto 0);  -- Write 32-bit Data Input
70
    o_DI_rw    : out std_logic_vector(31 downto 0);  -- Write 32-bit Data Input
71
 
72
    i_SSR : in std_logic;               -- Synchronous Set/Reset Input
73
 
74
    i_clock_r : in  std_logic;          -- Read Clock
75 23 sandroamt
    i_EN_r    : in  std_logic;
76 2 sandroamt
    i_ADDR_r  : in  std_logic_vector(12 downto 0);  -- Read 13-bit Address Input
77
    o_DO_r    : out std_logic_vector(7 downto 0)    -- Read 8-bit Data Output
78
    );
79
end chars_RAM;
80
 
81
architecture rtl of chars_RAM is
82
  signal s0_DO_r : std_logic_vector(7 downto 0);
83
  signal s1_DO_r : std_logic_vector(7 downto 0);
84
  signal s2_DO_r : std_logic_vector(7 downto 0);
85
  signal s3_DO_r : std_logic_vector(7 downto 0);
86
 
87
begin
88
 
89
  u0_chars_ram : RAMB16_S9_S9
90
    generic map (
91
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
92
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
93
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
94
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
95
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
96
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
97
      --
98 35 sandroamt
      INIT_00      => X"000000005E000000000000000000000000000000000000000000000000000000",
99 2 sandroamt
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
100
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
101
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
102
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
103
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
104
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
105
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
106
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
107
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
108
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
109
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
110
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
111
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
112
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
113
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
114
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
115
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
116
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
117
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
118
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
119
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
120
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
121
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
122
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
123
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
124
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
125
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
126
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
127
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
128
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
129
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
130
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
131
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
132
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
133 35 sandroamt
      INIT_23      => X"000000000000000000000000000000000000002E636E61736F41640000000000",
134 2 sandroamt
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
135
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
136
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
137
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
138
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
139
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
140
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
141
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
142
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
143
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
144
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
145
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
146
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
147
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
148
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
149
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
150
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
151
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
152
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
153
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
154
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
155
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
156
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
157
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
158
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
159
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
160
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
161
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
162
      )
163
    port map(
164
      -- read
165
      DIA   => (others => '0'),         -- 2-bit Data Input
166
      DIPA  => (others => '0'),
167 28 sandroamt
      ENA   => i_EN_r,                  -- RAM Enable Input
168 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
169
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
170
      CLKA  => i_clock_r,               -- Clock
171
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
172
      DOA   => s0_DO_r,                 -- 8-bit Data Output
173
      DOPA  => open,
174
 
175
      -- read/write
176
      DIB   => i_DI_rw(7 downto 0),     -- 8-bit Data Input
177
      DIPB  => (others => '0'),
178
      ENB   => i_EN_rw,                 -- RAM Enable Input
179
      WEB   => i_WE_rw(0),              -- Write Enable Input
180
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
181
      CLKB  => i_clock_rw,              -- Clock
182
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
183
      DOB   => o_DI_rw(7 downto 0),     -- 8-bit Data Input
184
      DOPB  => open
185
      );
186
 
187
  u1_chars_ram : RAMB16_S9_S9
188
    generic map (
189
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
190
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
191
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
192
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
193
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
194
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
195
      --
196 35 sandroamt
      INIT_00      => X"0000000009000000000000000000000000000000000000000000000000000000",
197 2 sandroamt
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
198
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
199
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
200
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
201
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
202
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
203
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
204
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
205
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
206
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
207
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
208
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
209
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
210
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
211
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
212
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
213
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
214
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
215
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
216
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
217
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
218
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
219
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
220
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
221
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
222
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
223
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
224
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
225
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
226
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
227
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
228
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
229
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
230
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
231 35 sandroamt
      INIT_23      => X"000000000000000000000000000000000000746573406F2074206E0000000000",
232 2 sandroamt
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
233
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
234
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
235
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
236
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
237
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
238
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
239
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
240
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
241
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
242
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
243
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
244
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
245
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
246
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
247
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
248
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
249
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
250
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
251
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
252
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
253
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
254
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
255
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
256
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
257
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
258
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
259
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
260
      )
261
    port map(
262
      -- read
263
      DIA   => (others => '0'),         -- 2-bit Data Input
264
      DIPA  => (others => '0'),
265 28 sandroamt
      ENA   => i_EN_r,                  -- RAM Enable Input
266 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
267
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
268
      CLKA  => i_clock_r,               -- Clock
269
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
270
      DOA   => s1_DO_r,                 -- 8-bit Data Output
271
      DOPA  => open,
272
 
273
      -- read/write
274
      DIB   => i_DI_rw(15 downto 8),    -- 8-bit Data Input
275
      DIPB  => (others => '0'),
276
      ENB   => i_EN_rw,                 -- RAM Enable Input
277
      WEB   => i_WE_rw(1),              -- Write Enable Input
278
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
279
      CLKB  => i_clock_rw,              -- Clock
280
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
281
      DOB   => o_DI_rw(15 downto 8),    -- 8-bit Data Input
282
      DOPB  => open
283
      );
284
 
285
  u2_chars_ram : RAMB16_S9_S9
286
    generic map (
287
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
288
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
289
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
290
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
291
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
292
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
293
      --
294 35 sandroamt
      INIT_00      => X"0000000007000000000000000000000000000000000000000000000000000000",
295 2 sandroamt
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
296
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
297
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
298
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
299
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
300
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
301
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
302
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
303
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
304
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
305
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
306
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
307
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
308
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
309
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
310
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
311
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
312
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
313
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
314
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
315
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
316
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
317
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
318
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
319
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
320
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
321
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
322
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
323
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
324
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
325
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
326
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
327
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
328
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
329 35 sandroamt
      INIT_23      => X"00000000000000000000000000000000000065707474722D616F610000000000",
330 2 sandroamt
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
331
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
332
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
333
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
334
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
335
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
336
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
337
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
338
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
339
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
340
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
341
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
342
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
343
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
344
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
345
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
346
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
347
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
348
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
349
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
350
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
351
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
352
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
353
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
354
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
355
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
356
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
357
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
358
      )
359
    port map(
360
      -- read
361
      DIA   => (others => '0'),         -- 2-bit Data Input
362
      DIPA  => (others => '0'),
363 28 sandroamt
      ENA   => i_EN_r,                  -- RAM Enable Input
364 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
365
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
366
      CLKA  => i_clock_r,               -- Clock
367
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
368
      DOA   => s2_DO_r,                 -- 8-bit Data Output
369
      DOPA  => open,
370
 
371
      -- read/write
372
      DIB   => i_DI_rw(23 downto 16),   -- 8-bit Data Input
373
      DIPB  => (others => '0'),
374
      ENB   => i_EN_rw,                 -- RAM Enable Input
375
      WEB   => i_WE_rw(2),              -- Write Enable Input
376
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
377
      CLKB  => i_clock_rw,              -- Clock
378
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
379
      DOB   => o_DI_rw(23 downto 16),   -- 8-bit Data Input
380
      DOPB  => open
381
      );
382
 
383
  u3_chars_ram : RAMB16_S9_S9
384
    generic map (
385
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
386
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
387
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
388
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
389
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
390
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
391
      --
392 35 sandroamt
      INIT_00      => X"0000000005000000000000000000000000000000000000000000000000000000",
393 2 sandroamt
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
394
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
395
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
396
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
397
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
398
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
399
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
400
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
401
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
402
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
403
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
404
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
405
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
406
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
407
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
408
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
409
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
410
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
411
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
412
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
413
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
414
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
415
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
416
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
417
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
418
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
419
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
420
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
421
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
422
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
423
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
424
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
425
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
426
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
427 35 sandroamt
      INIT_23      => X"0000000000000000000000000000000000006E61656D64206D72530000000000",
428 2 sandroamt
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
429
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
430
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
431
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
432
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
433
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
434
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
435
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
436
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
437
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
438
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
439
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
440
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
441
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
442
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
443
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
444
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
445
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
446
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
447
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
448
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
449
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
450
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
451
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
452
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
453
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
454
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
455
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
456
      )
457
    port map(
458
      -- read
459
      DIA   => (others => '0'),         -- 2-bit Data Input
460
      DIPA  => (others => '0'),
461 28 sandroamt
      ENA   => i_EN_r,                  -- RAM Enable Input
462 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
463
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
464
      CLKA  => i_clock_r,               -- Clock
465
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
466
      DOA   => s3_DO_r,                 -- 8-bit Data Output
467
      DOPA  => open,
468
 
469
      -- read/write
470
      DIB   => i_DI_rw(31 downto 24),   -- 8-bit Data Input
471
      DIPB  => (others => '0'),
472
      ENB   => i_EN_rw,                 -- RAM Enable Input
473
      WEB   => i_WE_rw(3),              -- Write Enable Input
474
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
475
      CLKB  => i_clock_rw,              -- Clock
476
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
477
      DOB   => o_DI_rw(31 downto 24),   -- 8-bit Data Input
478
      DOPB  => open
479
      );
480
 
481
  o_DO_r <= s0_DO_r when i_ADDR_r(1 downto 0) = "11" else
482
            s1_DO_r when i_ADDR_r(1 downto 0) = "10" else
483
            s2_DO_r when i_ADDR_r(1 downto 0) = "01" else
484
            s3_DO_r when i_ADDR_r(1 downto 0) = "00" else
485
            (others => 'X');
486
 
487
end rtl;

powered by: WebSVN 2.1.0

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