]>
Commit | Line | Data |
---|---|---|
be8a9b96 MG |
1 | -- **** |
2 | -- T80(b) core. In an effort to merge and maintain bug fixes .... | |
3 | -- | |
4 | -- | |
5 | -- Ver 300 started tidyup | |
6 | -- MikeJ March 2005 | |
7 | -- Latest version from www.fpgaarcade.com (original www.opencores.org) | |
8 | -- | |
9 | -- **** | |
10 | -- | |
11 | -- T80 Registers for Xilinx Select RAM | |
12 | -- | |
13 | -- Version : 0244 | |
14 | -- | |
15 | -- Copyright (c) 2002 Daniel Wallner (jesus@opencores.org) | |
16 | -- | |
17 | -- All rights reserved | |
18 | -- | |
19 | -- Redistribution and use in source and synthezised forms, with or without | |
20 | -- modification, are permitted provided that the following conditions are met: | |
21 | -- | |
22 | -- Redistributions of source code must retain the above copyright notice, | |
23 | -- this list of conditions and the following disclaimer. | |
24 | -- | |
25 | -- Redistributions in synthesized form must reproduce the above copyright | |
26 | -- notice, this list of conditions and the following disclaimer in the | |
27 | -- documentation and/or other materials provided with the distribution. | |
28 | -- | |
29 | -- Neither the name of the author nor the names of other contributors may | |
30 | -- be used to endorse or promote products derived from this software without | |
31 | -- specific prior written permission. | |
32 | -- | |
33 | -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
34 | -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | |
35 | -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
36 | -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE | |
37 | -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
38 | -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
39 | -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
40 | -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
41 | -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
42 | -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
43 | -- POSSIBILITY OF SUCH DAMAGE. | |
44 | -- | |
45 | -- Please report bugs to the author, but before you do so, please | |
46 | -- make sure that this is not a derivative work and that | |
47 | -- you have the latest version of this file. | |
48 | -- | |
49 | -- The latest version of this file can be found at: | |
50 | -- http://www.opencores.org/cvsweb.shtml/t51/ | |
51 | -- | |
52 | -- Limitations : | |
53 | -- | |
54 | -- File history : | |
55 | -- | |
56 | -- 0242 : Initial release | |
57 | -- | |
58 | -- 0244 : Removed UNISIM library and added componet declaration | |
59 | -- | |
60 | ||
61 | library IEEE; | |
62 | use IEEE.std_logic_1164.all; | |
63 | use IEEE.numeric_std.all; | |
64 | ||
65 | entity T80_Reg is | |
66 | port( | |
67 | Clk : in std_logic; | |
68 | CEN : in std_logic; | |
69 | WEH : in std_logic; | |
70 | WEL : in std_logic; | |
71 | AddrA : in std_logic_vector(2 downto 0); | |
72 | AddrB : in std_logic_vector(2 downto 0); | |
73 | AddrC : in std_logic_vector(2 downto 0); | |
74 | DIH : in std_logic_vector(7 downto 0); | |
75 | DIL : in std_logic_vector(7 downto 0); | |
76 | DOAH : out std_logic_vector(7 downto 0); | |
77 | DOAL : out std_logic_vector(7 downto 0); | |
78 | DOBH : out std_logic_vector(7 downto 0); | |
79 | DOBL : out std_logic_vector(7 downto 0); | |
80 | DOCH : out std_logic_vector(7 downto 0); | |
81 | DOCL : out std_logic_vector(7 downto 0) | |
82 | ); | |
83 | end T80_Reg; | |
84 | ||
85 | architecture rtl of T80_Reg is | |
86 | ||
87 | component RAM16X1D | |
88 | port( | |
89 | DPO : out std_ulogic; | |
90 | SPO : out std_ulogic; | |
91 | A0 : in std_ulogic; | |
92 | A1 : in std_ulogic; | |
93 | A2 : in std_ulogic; | |
94 | A3 : in std_ulogic; | |
95 | D : in std_ulogic; | |
96 | DPRA0 : in std_ulogic; | |
97 | DPRA1 : in std_ulogic; | |
98 | DPRA2 : in std_ulogic; | |
99 | DPRA3 : in std_ulogic; | |
100 | WCLK : in std_ulogic; | |
101 | WE : in std_ulogic); | |
102 | end component; | |
103 | ||
104 | signal ENH : std_logic; | |
105 | signal ENL : std_logic; | |
106 | ||
107 | begin | |
108 | ||
109 | ENH <= CEN and WEH; | |
110 | ENL <= CEN and WEL; | |
111 | ||
112 | bG1: for I in 0 to 7 generate | |
113 | begin | |
114 | Reg1H : RAM16X1D | |
115 | port map( | |
116 | DPO => DOBH(i), | |
117 | SPO => DOAH(i), | |
118 | A0 => AddrA(0), | |
119 | A1 => AddrA(1), | |
120 | A2 => AddrA(2), | |
121 | A3 => '0', | |
122 | D => DIH(i), | |
123 | DPRA0 => AddrB(0), | |
124 | DPRA1 => AddrB(1), | |
125 | DPRA2 => AddrB(2), | |
126 | DPRA3 => '0', | |
127 | WCLK => Clk, | |
128 | WE => ENH); | |
129 | Reg1L : RAM16X1D | |
130 | port map( | |
131 | DPO => DOBL(i), | |
132 | SPO => DOAL(i), | |
133 | A0 => AddrA(0), | |
134 | A1 => AddrA(1), | |
135 | A2 => AddrA(2), | |
136 | A3 => '0', | |
137 | D => DIL(i), | |
138 | DPRA0 => AddrB(0), | |
139 | DPRA1 => AddrB(1), | |
140 | DPRA2 => AddrB(2), | |
141 | DPRA3 => '0', | |
142 | WCLK => Clk, | |
143 | WE => ENL); | |
144 | Reg2H : RAM16X1D | |
145 | port map( | |
146 | DPO => DOCH(i), | |
147 | SPO => open, | |
148 | A0 => AddrA(0), | |
149 | A1 => AddrA(1), | |
150 | A2 => AddrA(2), | |
151 | A3 => '0', | |
152 | D => DIH(i), | |
153 | DPRA0 => AddrC(0), | |
154 | DPRA1 => AddrC(1), | |
155 | DPRA2 => AddrC(2), | |
156 | DPRA3 => '0', | |
157 | WCLK => Clk, | |
158 | WE => ENH); | |
159 | Reg2L : RAM16X1D | |
160 | port map( | |
161 | DPO => DOCL(i), | |
162 | SPO => open, | |
163 | A0 => AddrA(0), | |
164 | A1 => AddrA(1), | |
165 | A2 => AddrA(2), | |
166 | A3 => '0', | |
167 | D => DIL(i), | |
168 | DPRA0 => AddrC(0), | |
169 | DPRA1 => AddrC(1), | |
170 | DPRA2 => AddrC(2), | |
171 | DPRA3 => '0', | |
172 | WCLK => Clk, | |
173 | WE => ENL); | |
174 | end generate; | |
175 | ||
176 | end; |