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

Subversion Repositories xmatchpro

[/] [xmatchpro/] [trunk/] [xmw4-comdec/] [src/] [my_memory.vhd] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 eejlny
--This library is free software; you can redistribute it and/or
2
--modify it under the terms of the GNU Lesser General Public
3
--License as published by the Free Software Foundation; either
4
--version 2.1 of the License, or (at your option) any later version.
5
 
6
--This library is distributed in the hope that it will be useful,
7
--but WITHOUT ANY WARRANTY; without even the implied warranty of
8
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
9
--Lesser General Public License for more details.
10
 
11
--You should have received a copy of the GNU Lesser General Public
12
--License along with this library; if not, write to the Free Software
13
--Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
14
 
15
-- e_mail : j.l.nunez-yanez@byacom.co.uk
16
 
17
-- Name = mem1
18
-- type = RAM
19
-- width = 32
20
-- depth = 256
21
-- part family = A500K
22
-- output type = transparent
23
-- optimization = speed
24
-- input type = synchronous
25
-- parity control = ignore
26
-- Write =  active high
27
-- Read =  active high
28
-- Read clock =  posedge
29
-- Write clock =  posedge
30
 
31
library IEEE;
32
use IEEE.std_logic_1164.all;
33
library A500K;
34
use A500K.all;
35
 
36
entity MY_MEMORY is
37
 
38
   port(DO : out std_logic_vector (31 downto 0);
39
      RCLOCK : in std_logic;
40
      WCLOCK : in std_logic;
41
      DI : in std_logic_vector (31 downto 0);
42
      WRB : in std_logic;
43
      RDB : in std_logic;
44
      WADDR : in std_logic_vector (7 downto 0);
45
      RADDR : in std_logic_vector (7 downto 0));
46
 
47
end MY_MEMORY;
48
 
49
architecture STRUCT of MY_MEMORY is
50
component PWR
51
   port(Y : out std_logic);
52
end component;
53
 
54
attribute black_box: boolean;
55
attribute black_box of PWR: component is true;
56
 
57
component GND
58
   port(Y : out std_logic);
59
end component;
60
 
61
-- attribute black_box: boolean;
62
attribute black_box of GND: component is true;
63
 
64
component RAM256x9SST
65
   port(RCLKS : in std_logic;
66
      WCLKS : in std_logic;
67
      DO8 : out std_logic;
68
      DO7 : out std_logic;
69
      DO6 : out std_logic;
70
      DO5 : out std_logic;
71
      DO4 : out std_logic;
72
      DO3 : out std_logic;
73
      DO2 : out std_logic;
74
      DO1 : out std_logic;
75
      DO0 : out std_logic;
76
      DOS : out std_logic;
77
      WPE : out std_logic;
78
      RPE : out std_logic;
79
      WADDR7 : in std_logic;
80
      WADDR6 : in std_logic;
81
      WADDR5 : in std_logic;
82
      WADDR4 : in std_logic;
83
      WADDR3 : in std_logic;
84
      WADDR2 : in std_logic;
85
      WADDR1 : in std_logic;
86
      WADDR0 : in std_logic;
87
      RADDR7 : in std_logic;
88
      RADDR6 : in std_logic;
89
      RADDR5 : in std_logic;
90
      RADDR4 : in std_logic;
91
      RADDR3 : in std_logic;
92
      RADDR2 : in std_logic;
93
      RADDR1 : in std_logic;
94
      RADDR0 : in std_logic;
95
      DI8 : in std_logic;
96
      DI7 : in std_logic;
97
      DI6 : in std_logic;
98
      DI5 : in std_logic;
99
      DI4 : in std_logic;
100
      DI3 : in std_logic;
101
      DI2 : in std_logic;
102
      DI1 : in std_logic;
103
      DI0 : in std_logic;
104
      WRB : in std_logic;
105
      RDB : in std_logic;
106
      WBLKB : in std_logic;
107
      RBLKB : in std_logic;
108
      PARODD : in std_logic;
109
      DIS : in std_logic);
110
end component;
111
 
112
-- attribute black_box: boolean;
113
attribute black_box of RAM256x9SST: component is true;
114
 
115
component INV
116
   port(Y : out std_logic;
117
      A : in std_logic);
118
end component;
119
 
120
-- attribute black_box: boolean;
121
attribute black_box of INV: component is true;
122
 
123
signal WADDRAUX : std_logic_vector(7 downto 0); -- artificial delays
124
signal RADDRAUX : std_logic_vector(7 downto 0);
125
signal WRBAUX : std_logic;
126
signal RDBAUX : std_logic;
127
signal DIAUX : std_logic_vector(31 downto 0);
128
 
129
signal VDD, VSS, n1, n2 : std_logic;
130
 
131
begin
132
 
133
 
134
   WADDRAUX <= WADDR after 5 ns;
135
   RADDRAUX <= RADDR after 5 ns;
136
   WRBAUX <= WRB after 5 ns;
137
   RDBAUX <= RDB after 5 ns;
138
   DIAUX <= DI after 5 ns;
139
 
140
   U1 : GND port map(Y => VSS);
141
   M0 : RAM256x9SST port map(RCLKS =>RCLOCK, WCLKS => WCLOCK, DO8 => DO(8), DO7 => DO(7), DO6 => DO(6),
142
      DO5 => DO(5), DO4 => DO(4), DO3 => DO(3), DO2 => DO(2), DO1 => DO(1),
143
      DO0 => DO(0), WADDR7 => WADDRAUX(7), WADDR6 => WADDRAUX(6), WADDR5 => WADDRAUX(5),
144
      WADDR4 => WADDRAUX(4), WADDR3 => WADDRAUX(3), WADDR2 => WADDRAUX(2), WADDR1 => WADDRAUX(1),
145
      WADDR0 => WADDRAUX(0), RADDR7 => RADDRAUX(7), RADDR6 => RADDRAUX(6), RADDR5 => RADDRAUX(5),
146
      RADDR4 => RADDRAUX(4), RADDR3 => RADDRAUX(3), RADDR2 => RADDRAUX(2), RADDR1 => RADDRAUX(1),
147
      RADDR0 => RADDRAUX(0), DI8 => DIAUX(8), DI7 => DIAUX(7), DI6 => DIAUX(6), DI5 => DIAUX(5),
148
      DI4 => DIAUX(4), DI3 => DIAUX(3), DI2 => DIAUX(2), DI1 => DIAUX(1), DI0 => DIAUX(0),
149
      WRB => n1, RDB => n2, WBLKB => VSS, RBLKB => VSS, PARODD => VSS, DIS => VSS);
150
   M1 : RAM256x9SST port map(RCLKS =>RCLOCK, WCLKS => WCLOCK, DO8 => DO(17), DO7 => DO(16), DO6 => DO(15),
151
      DO5 => DO(14), DO4 => DO(13), DO3 => DO(12), DO2 => DO(11), DO1 => DO(10),
152
      DO0 => DO(9), WADDR7 => WADDRAUX(7), WADDR6 => WADDRAUX(6), WADDR5 => WADDRAUX(5),
153
      WADDR4 => WADDRAUX(4), WADDR3 => WADDRAUX(3), WADDR2 => WADDRAUX(2), WADDR1 => WADDRAUX(1),
154
      WADDR0 => WADDRAUX(0), RADDR7 => RADDRAUX(7), RADDR6 => RADDRAUX(6), RADDR5 => RADDRAUX(5),
155
      RADDR4 => RADDRAUX(4), RADDR3 => RADDRAUX(3), RADDR2 => RADDRAUX(2), RADDR1 => RADDRAUX(1),
156
      RADDR0 => RADDRAUX(0), DI8 => DIAUX(17), DI7 => DIAUX(16), DI6 => DIAUX(15), DI5 => DIAUX(14),
157
      DI4 => DIAUX(13), DI3 => DIAUX(12), DI2 => DIAUX(11), DI1 => DIAUX(10), DI0 => DIAUX(9),
158
      WRB => n1, RDB => n2, WBLKB => VSS, RBLKB => VSS, PARODD => VSS, DIS => VSS);
159
   M2 : RAM256x9SST port map(RCLKS =>RCLOCK, WCLKS => WCLOCK, DO8 => DO(26), DO7 => DO(25), DO6 => DO(24),
160
      DO5 => DO(23), DO4 => DO(22), DO3 => DO(21), DO2 => DO(20), DO1 => DO(19),
161
      DO0 => DO(18), WADDR7 => WADDRAUX(7), WADDR6 => WADDRAUX(6), WADDR5 => WADDRAUX(5),
162
      WADDR4 => WADDRAUX(4), WADDR3 => WADDRAUX(3), WADDR2 => WADDRAUX(2), WADDR1 => WADDRAUX(1),
163
      WADDR0 => WADDRAUX(0), RADDR7 => RADDRAUX(7), RADDR6 => RADDRAUX(6), RADDR5 => RADDRAUX(5),
164
      RADDR4 => RADDRAUX(4), RADDR3 => RADDRAUX(3), RADDR2 => RADDRAUX(2), RADDR1 => RADDRAUX(1),
165
      RADDR0 => RADDRAUX(0), DI8 => DIAUX(26), DI7 => DIAUX(25), DI6 => DIAUX(24), DI5 => DIAUX(23),
166
      DI4 => DIAUX(22), DI3 => DIAUX(21), DI2 => DIAUX(20), DI1 => DIAUX(19), DI0 => DIAUX(18),
167
      WRB => n1, RDB => n2, WBLKB => VSS, RBLKB => VSS, PARODD => VSS, DIS => VSS);
168
   M3 : RAM256x9SST port map(RCLKS =>RCLOCK, WCLKS => WCLOCK, DO4 => DO(31), DO3 => DO(30), DO2 => DO(29),
169
      DO1 => DO(28), DO0 => DO(27), WADDR7 => WADDRAUX(7), WADDR6 => WADDRAUX(6), WADDR5 => WADDRAUX(5),
170
      WADDR4 => WADDRAUX(4), WADDR3 => WADDRAUX(3), WADDR2 => WADDRAUX(2), WADDR1 => WADDRAUX(1),
171
      WADDR0 => WADDRAUX(0), RADDR7 => RADDRAUX(7), RADDR6 => RADDRAUX(6), RADDR5 => RADDRAUX(5),
172
      RADDR4 => RADDRAUX(4), RADDR3 => RADDRAUX(3), RADDR2 => RADDRAUX(2), RADDR1 => RADDRAUX(1),
173
      RADDR0 => RADDRAUX(0), DI8 => VSS, DI7 => VSS, DI6 => VSS, DI5 => VSS, DI4 => DIAUX(31), DI3 => DIAUX(30),
174
      DI2 => DIAUX(29), DI1 => DIAUX(28), DI0 => DIAUX(27), WRB => n1, RDB => n2, WBLKB => VSS, RBLKB => VSS,
175
      PARODD => VSS, DIS => VSS);
176
   U2 : INV port map(Y => n1, A => WRBAUX);
177
   U3 : INV port map(Y => n2, A => RDBAUX);
178
 
179
end STRUCT;
180
 
181
 

powered by: WebSVN 2.1.0

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