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

Subversion Repositories xmatchpro

[/] [xmatchpro/] [trunk/] [xmw4-comdec/] [src/] [my_mask_memory.vhd] - Blame information for rev 9

Go to most recent revision | 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_MASK_MEMORY is
37
 
38
   port(DO : out std_logic_vector (3 downto 0);
39
      RCLOCK : in std_logic;
40
      WCLOCK : in std_logic;
41
      DI : in std_logic_vector (3 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_MASK_MEMORY;
48
 
49
architecture STRUCT of MY_MASK_MEMORY is
50
component PWR
51
   port(Y : out std_logic);
52
end component;
53
 
54
attribute noopt: boolean;
55
attribute noopt of PWR: component is true;
56
 
57
component GND
58
   port(Y : out std_logic);
59
end component;
60
 
61
-- attribute noopt: boolean;
62
attribute noopt 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 noopt: boolean;
113
attribute noopt 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 noopt: boolean;
121
attribute noopt 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(3 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,  DO3 => DO(3), DO2 => DO(2), DO1 => DO(1),
142
      DO0 => DO(0), WADDR7 => WADDRAUX(7), WADDR6 => WADDRAUX(6), WADDR5 => WADDRAUX(5),
143
      WADDR4 => WADDRAUX(4), WADDR3 => WADDRAUX(3), WADDR2 => WADDRAUX(2), WADDR1 => WADDRAUX(1),
144
      WADDR0 => WADDRAUX(0), RADDR7 => RADDRAUX(7), RADDR6 => RADDRAUX(6), RADDR5 => RADDRAUX(5),
145
      RADDR4 => RADDRAUX(4), RADDR3 => RADDRAUX(3), RADDR2 => RADDRAUX(2), RADDR1 => RADDRAUX(1),
146
      RADDR0 => RADDRAUX(0),  DI8 => VSS, DI7 => VSS, DI6 => VSS, DI5 => VSS, DI4 => VSS, DI3 => DIAUX(3), DI2 => DIAUX(2), DI1 => DIAUX(1), DI0 => DIAUX(0),
147
      WRB => n1, RDB => n2, WBLKB => VSS, RBLKB => VSS, PARODD => VSS, DIS => VSS);
148
 
149
   U2 : INV port map(Y => n1, A => WRBAUX);
150
   U3 : INV port map(Y => n2, A => RDBAUX);
151
 
152
end STRUCT;
153
 
154
 

powered by: WebSVN 2.1.0

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