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

Subversion Repositories yavga

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

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
-- Uncomment the following lines to use the declarations that are
57
-- provided for instantiating Xilinx primitive components.
58
library UNISIM;
59
use UNISIM.VComponents.all;
60
 
61
entity chars_RAM is
62
  port (
63
    i_clock_rw : in  std_logic;         -- Write Clock
64
    i_EN_rw    : in  std_logic;         -- Write RAM Enable Input
65
    i_WE_rw    : in  std_logic_vector(3 downto 0);   -- Write Enable Input
66
    i_ADDR_rw  : in  std_logic_vector(10 downto 0);  -- Write 11-bit Address Input
67
    i_DI_rw    : in  std_logic_vector(31 downto 0);  -- Write 32-bit Data Input
68
    o_DI_rw    : out std_logic_vector(31 downto 0);  -- Write 32-bit Data Input
69
 
70
    i_SSR : in std_logic;               -- Synchronous Set/Reset Input
71
 
72
    i_clock_r : in  std_logic;          -- Read Clock
73 23 sandroamt
    i_EN_r    : in  std_logic;
74 2 sandroamt
    i_ADDR_r  : in  std_logic_vector(12 downto 0);  -- Read 13-bit Address Input
75
    o_DO_r    : out std_logic_vector(7 downto 0)    -- Read 8-bit Data Output
76
    );
77
end chars_RAM;
78
 
79
architecture rtl of chars_RAM is
80
  signal s0_DO_r : std_logic_vector(7 downto 0);
81
  signal s1_DO_r : std_logic_vector(7 downto 0);
82
  signal s2_DO_r : std_logic_vector(7 downto 0);
83
  signal s3_DO_r : std_logic_vector(7 downto 0);
84
 
85
begin
86
 
87
  u0_chars_ram : RAMB16_S9_S9
88
    generic map (
89
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
90
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
91
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
92
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
93
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
94
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
95
      --
96
      INIT_00      => X"0000000000000000000000000000000000000000000000000000000000000000",
97
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
98
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
99
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
100
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
101
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
102
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
103
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
104
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
105
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
106
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
107
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
108
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
109
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
110
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
111
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
112
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
113
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
114
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
115
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
116
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
117
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
118
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
119
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
120
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
121
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
122
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
123
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
124
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
125
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
126
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
127
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
128
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
129
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
130
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
131
      INIT_23      => X"0000000000000000000000000000000000000000000000000000000000000000",
132
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
133
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
134
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
135
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
136
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
137
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
138
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
139
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
140
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
141
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
142
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
143
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
144
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
145
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
146
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
147
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
148
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
149
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
150
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
151
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
152
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
153
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
154
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
155
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
156
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
157
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
158
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
159
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
160
      )
161
    port map(
162
      -- read
163
      DIA   => (others => '0'),         -- 2-bit Data Input
164
      DIPA  => (others => '0'),
165 23 sandroamt
      ENA   => i_EN_r,                     -- RAM Enable Input
166 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
167
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
168
      CLKA  => i_clock_r,               -- Clock
169
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
170
      DOA   => s0_DO_r,                 -- 8-bit Data Output
171
      DOPA  => open,
172
 
173
      -- read/write
174
      DIB   => i_DI_rw(7 downto 0),     -- 8-bit Data Input
175
      DIPB  => (others => '0'),
176
      ENB   => i_EN_rw,                 -- RAM Enable Input
177
      WEB   => i_WE_rw(0),              -- Write Enable Input
178
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
179
      CLKB  => i_clock_rw,              -- Clock
180
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
181
      DOB   => o_DI_rw(7 downto 0),     -- 8-bit Data Input
182
      DOPB  => open
183
      );
184
 
185
  u1_chars_ram : RAMB16_S9_S9
186
    generic map (
187
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
188
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
189
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
190
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
191
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
192
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
193
      --
194
      INIT_00      => X"0000000000000000000000000000000000000000000000000000000000000000",
195
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
196
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
197
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
198
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
199
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
200
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
201
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
202
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
203
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
204
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
205
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
206
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
207
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
208
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
209
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
210
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
211
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
212
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
213
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
214
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
215
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
216
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
217
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
218
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
219
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
220
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
221
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
222
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
223
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
224
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
225
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
226
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
227
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
228
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
229
      INIT_23      => X"0000000000000000000000000000000000000000000000000000000000000000",
230
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
231
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
232
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
233
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
234
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
235
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
236
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
237
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
238
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
239
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
240
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
241
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
242
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
243
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
244
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
245
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
246
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
247
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
248
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
249
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
250
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
251
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
252
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
253
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
254
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
255
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
256
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
257
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
258
      )
259
    port map(
260
      -- read
261
      DIA   => (others => '0'),         -- 2-bit Data Input
262
      DIPA  => (others => '0'),
263 23 sandroamt
      ENA   => i_EN_r,                     -- RAM Enable Input
264 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
265
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
266
      CLKA  => i_clock_r,               -- Clock
267
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
268
      DOA   => s1_DO_r,                 -- 8-bit Data Output
269
      DOPA  => open,
270
 
271
      -- read/write
272
      DIB   => i_DI_rw(15 downto 8),    -- 8-bit Data Input
273
      DIPB  => (others => '0'),
274
      ENB   => i_EN_rw,                 -- RAM Enable Input
275
      WEB   => i_WE_rw(1),              -- Write Enable Input
276
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
277
      CLKB  => i_clock_rw,              -- Clock
278
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
279
      DOB   => o_DI_rw(15 downto 8),    -- 8-bit Data Input
280
      DOPB  => open
281
      );
282
 
283
  u2_chars_ram : RAMB16_S9_S9
284
    generic map (
285
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
286
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
287
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
288
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
289
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
290
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
291
      --
292
      INIT_00      => X"0000000000000000000000000000000000000000000000000000000000000000",
293
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
294
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
295
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
296
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
297
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
298
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
299
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
300
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
301
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
302
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
303
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
304
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
305
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
306
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
307
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
308
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
309
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
310
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
311
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
312
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
313
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
314
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
315
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
316
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
317
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
318
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
319
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
320
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
321
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
322
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
323
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
324
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
325
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
326
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
327
      INIT_23      => X"0000000000000000000000000000000000000000000000000000000000000000",
328
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
329
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
330
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
331
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
332
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
333
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
334
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
335
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
336
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
337
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
338
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
339
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
340
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
341
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
342
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
343
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
344
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
345
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
346
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
347
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
348
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
349
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
350
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
351
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
352
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
353
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
354
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
355
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
356
      )
357
    port map(
358
      -- read
359
      DIA   => (others => '0'),         -- 2-bit Data Input
360
      DIPA  => (others => '0'),
361 23 sandroamt
      ENA   => i_EN_r,                     -- RAM Enable Input
362 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
363
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
364
      CLKA  => i_clock_r,               -- Clock
365
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
366
      DOA   => s2_DO_r,                 -- 8-bit Data Output
367
      DOPA  => open,
368
 
369
      -- read/write
370
      DIB   => i_DI_rw(23 downto 16),   -- 8-bit Data Input
371
      DIPB  => (others => '0'),
372
      ENB   => i_EN_rw,                 -- RAM Enable Input
373
      WEB   => i_WE_rw(2),              -- Write Enable Input
374
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
375
      CLKB  => i_clock_rw,              -- Clock
376
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
377
      DOB   => o_DI_rw(23 downto 16),   -- 8-bit Data Input
378
      DOPB  => open
379
      );
380
 
381
  u3_chars_ram : RAMB16_S9_S9
382
    generic map (
383
      WRITE_MODE_A => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
384
      INIT_A       => B"000000000",  --  Value of output RAM registers at startup
385
      SRVAL_A      => B"000000000",     --  Ouput value upon SSR assertion
386
      WRITE_MODE_B => "WRITE_FIRST",   --  WRITE_FIRST, READ_FIRST or NO_CHANGE
387
      INIT_B       => B"000000000",  --  Value of output RAM registers at startup
388
      SRVAL_B      => B"000000000",     --  Ouput value upon SSR assertion
389
      --
390
      INIT_00      => X"0000000000000000000000000000000000000000000000000000000000000000",
391
      INIT_01      => X"0000000000000000000000000000000000000000000000000000000000000000",
392
      INIT_02      => X"0000000000000000000000000000000000000000000000000000000000000000",
393
      INIT_03      => X"0000000000000000000000000000000000000000000000000000000000000000",
394
      INIT_04      => X"0000000000000000000000000000000000000000000000000000000000000000",
395
      INIT_05      => X"0000000000000000000000000000000000000000000000000000000000000000",
396
      INIT_06      => X"0000000000000000000000000000000000000000000000000000000000000000",
397
      INIT_07      => X"0000000000000000000000000000000000000000000000000000000000000000",
398
      INIT_08      => X"0000000000000000000000000000000000000000000000000000000000000000",
399
      INIT_09      => X"0000000000000000000000000000000000000000000000000000000000000000",
400
      INIT_0A      => X"0000000000000000000000000000000000000000000000000000000000000000",
401
      INIT_0B      => X"0000000000000000000000000000000000000000000000000000000000000000",
402
      INIT_0C      => X"0000000000000000000000000000000000000000000000000000000000000000",
403
      INIT_0D      => X"0000000000000000000000000000000000000000000000000000000000000000",
404
      INIT_0E      => X"0000000000000000000000000000000000000000000000000000000000000000",
405
      INIT_0F      => X"0000000000000000000000000000000000000000000000000000000000000000",
406
      INIT_10      => X"0000000000000000000000000000000000000000000000000000000000000000",
407
      INIT_11      => X"0000000000000000000000000000000000000000000000000000000000000000",
408
      INIT_12      => X"0000000000000000000000000000000000000000000000000000000000000000",
409
      INIT_13      => X"0000000000000000000000000000000000000000000000000000000000000000",
410
      INIT_14      => X"0000000000000000000000000000000000000000000000000000000000000000",
411
      INIT_15      => X"0000000000000000000000000000000000000000000000000000000000000000",
412
      INIT_16      => X"0000000000000000000000000000000000000000000000000000000000000000",
413
      INIT_17      => X"0000000000000000000000000000000000000000000000000000000000000000",
414
      INIT_18      => X"0000000000000000000000000000000000000000000000000000000000000000",
415
      INIT_19      => X"0000000000000000000000000000000000000000000000000000000000000000",
416
      INIT_1A      => X"0000000000000000000000000000000000000000000000000000000000000000",
417
      INIT_1B      => X"0000000000000000000000000000000000000000000000000000000000000000",
418
      INIT_1C      => X"0000000000000000000000000000000000000000000000000000000000000000",
419
      INIT_1D      => X"0000000000000000000000000000000000000000000000000000000000000000",
420
      INIT_1E      => X"0000000000000000000000000000000000000000000000000000000000000000",
421
      INIT_1F      => X"0000000000000000000000000000000000000000000000000000000000000000",
422
      INIT_20      => X"0000000000000000000000000000000000000000000000000000000000000000",
423
      INIT_21      => X"0000000000000000000000000000000000000000000000000000000000000000",
424
      INIT_22      => X"0000000000000000000000000000000000000000000000000000000000000000",
425
      INIT_23      => X"0000000000000000000000000000000000000000000000000000000000000000",
426
      INIT_24      => X"0000000000000000000000000000000000000000000000000000000000000000",
427
      INIT_25      => X"0000000000000000000000000000000000000000000000000000000000000000",
428
      INIT_26      => X"0000000000000000000000000000000000000000000000000000000000000000",
429
      INIT_27      => X"0000000000000000000000000000000000000000000000000000000000000000",
430
      INIT_28      => X"0000000000000000000000000000000000000000000000000000000000000000",
431
      INIT_29      => X"0000000000000000000000000000000000000000000000000000000000000000",
432
      INIT_2A      => X"0000000000000000000000000000000000000000000000000000000000000000",
433
      INIT_2B      => X"0000000000000000000000000000000000000000000000000000000000000000",
434
      INIT_2C      => X"0000000000000000000000000000000000000000000000000000000000000000",
435
      INIT_2D      => X"0000000000000000000000000000000000000000000000000000000000000000",
436
      INIT_2E      => X"0000000000000000000000000000000000000000000000000000000000000000",
437
      INIT_2F      => X"0000000000000000000000000000000000000000000000000000000000000000",
438
      INIT_30      => X"0000000000000000000000000000000000000000000000000000000000000000",
439
      INIT_31      => X"0000000000000000000000000000000000000000000000000000000000000000",
440
      INIT_32      => X"0000000000000000000000000000000000000000000000000000000000000000",
441
      INIT_33      => X"0000000000000000000000000000000000000000000000000000000000000000",
442
      INIT_34      => X"0000000000000000000000000000000000000000000000000000000000000000",
443
      INIT_35      => X"0000000000000000000000000000000000000000000000000000000000000000",
444
      INIT_36      => X"0000000000000000000000000000000000000000000000000000000000000000",
445
      INIT_37      => X"0000000000000000000000000000000000000000000000000000000000000000",
446
      INIT_38      => X"0000000000000000000000000000000000000000000000000000000000000000",
447
      INIT_39      => X"0000000000000000000000000000000000000000000000000000000000000000",
448
      INIT_3A      => X"0000000000000000000000000000000000000000000000000000000000000000",
449
      INIT_3B      => X"0000000000000000000000000000000000000000000000000000000000000000",
450
      INIT_3C      => X"0000000000000000000000000000000000000000000000000000000000000000",
451
      INIT_3D      => X"0000000000000000000000000000000000000000000000000000000000000000",
452
      INIT_3E      => X"0000000000000000000000000000000000000000000000000000000000000000",
453
      INIT_3F      => X"0000000000000000000000000000000000000000000000000000000000000000"
454
      )
455
    port map(
456
      -- read
457
      DIA   => (others => '0'),         -- 2-bit Data Input
458
      DIPA  => (others => '0'),
459 23 sandroamt
      ENA   => i_EN_r,                     -- RAM Enable Input
460 2 sandroamt
      WEA   => '0',                     -- Write Enable Input
461
      SSRA  => i_SSR,                   -- Synchronous Set/Reset Input
462
      CLKA  => i_clock_r,               -- Clock
463
      ADDRA => i_ADDR_r(12 downto 2),   -- 11-bit Address Input
464
      DOA   => s3_DO_r,                 -- 8-bit Data Output
465
      DOPA  => open,
466
 
467
      -- read/write
468
      DIB   => i_DI_rw(31 downto 24),   -- 8-bit Data Input
469
      DIPB  => (others => '0'),
470
      ENB   => i_EN_rw,                 -- RAM Enable Input
471
      WEB   => i_WE_rw(3),              -- Write Enable Input
472
      SSRB  => i_SSR,                   -- Synchronous Set/Reset Input
473
      CLKB  => i_clock_rw,              -- Clock
474
      ADDRB => i_ADDR_rw,               -- 11-bit Address Input
475
      DOB   => o_DI_rw(31 downto 24),   -- 8-bit Data Input
476
      DOPB  => open
477
      );
478
 
479
  o_DO_r <= s0_DO_r when i_ADDR_r(1 downto 0) = "11" else
480
            s1_DO_r when i_ADDR_r(1 downto 0) = "10" else
481
            s2_DO_r when i_ADDR_r(1 downto 0) = "01" else
482
            s3_DO_r when i_ADDR_r(1 downto 0) = "00" else
483
            (others => 'X');
484
 
485
end rtl;

powered by: WebSVN 2.1.0

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