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

Subversion Repositories fft_fir_filter

[/] [fft_fir_filter/] [trunk/] [rtl/] [ramb16_s18_s18.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 unicore
---------------------------------------------------------------------
2
----                                                             ----
3
----  FFT Filter IP core                                         ----
4
----                                                             ----
5
----  Authors: Anatoliy Sergienko, Volodya Lepeha                ----
6
----  Company: Unicore Systems http://unicore.co.ua              ----
7
----                                                             ----
8
----  Downloaded from: http://www.opencores.org                  ----
9
----                                                             ----
10
---------------------------------------------------------------------
11
----                                                             ----
12
---- Copyright (C) 2006-2010 Unicore Systems LTD                 ----
13
---- www.unicore.co.ua                                           ----
14
---- o.uzenkov@unicore.co.ua                                     ----
15
----                                                             ----
16
---- This source file may be used and distributed without        ----
17
---- restriction provided that this copyright statement is not   ----
18
---- removed from the file and that any derivative work contains ----
19
---- the original copyright notice and the associated disclaimer.----
20
----                                                             ----
21
---- THIS SOFTWARE IS PROVIDED "AS IS"                           ----
22
---- AND ANY EXPRESSED OR IMPLIED WARRANTIES,                    ----
23
---- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED                  ----
24
---- WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT              ----
25
---- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.        ----
26
---- IN NO EVENT SHALL THE UNICORE SYSTEMS OR ITS                ----
27
---- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,            ----
28
---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL            ----
29
---- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT         ----
30
---- OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,               ----
31
---- DATA, OR PROFITS; OR BUSINESS INTERRUPTION)                 ----
32
---- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,              ----
33
---- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT              ----
34
---- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING                 ----
35
---- IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,                 ----
36
---- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.          ----
37
----                                                             ----
38
---------------------------------------------------------------------
39
--  File: RAMB4_S18_S18.vhd
40
--  created by Design Wizard: 12/13/99 08:52:59
41
--
42
library IEEE;
43
use IEEE.std_logic_1164.all;
44
use IEEE.std_logic_unsigned.all;
45
 
46
entity   RAMB16_S18_S18 is
47
        port (DIA    : in STD_LOGIC_VECTOR (15 downto 0);
48
                DIB    : in STD_LOGIC_VECTOR (15 downto 0);
49
                DIPA    : in STD_LOGIC_VECTOR (1 downto 0);
50
                DIPB    : in STD_LOGIC_VECTOR (1 downto 0);
51
                ENA    : in STD_ULOGIC;
52
                ENB    : in STD_ULOGIC;
53
                WEA    : in STD_ULOGIC;
54
                WEB    : in STD_ULOGIC;
55
                SSRA   : in STD_ULOGIC;
56
                SSRB   : in STD_ULOGIC;
57
                CLKA   : in STD_ULOGIC;
58
                CLKB   : in STD_ULOGIC;
59
                ADDRA  : in STD_LOGIC_VECTOR (9 downto 0);
60
                ADDRB  : in STD_LOGIC_VECTOR (9 downto 0);
61
                DOA    : out STD_LOGIC_VECTOR (15 downto 0);
62
                DOB    : out STD_LOGIC_VECTOR (15 downto 0);
63
                DOPA    : out STD_LOGIC_VECTOR (1 downto 0);
64
                DOPB    : out STD_LOGIC_VECTOR (1 downto 0)
65
                );
66
end RAMB16_S18_S18;
67
 
68
architecture BEH of RAMB16_S18_S18 is
69
 
70
        type mem is array (0 to 1023) of std_logic_vector (17 downto 0);
71
        signal adra,adrb:std_logic_vector (9 downto 0):=(others=>'0');
72
        signal data_a,data_b:std_logic_vector (17 downto 0);
73
        signal wea_1,web_1: STD_LOGIC;
74
begin
75
        process(clka,ssra,clkb,ssrb,adra,adrb,wea,web,dia,dib)
76
                variable ram: mem:=(others=>"000000000000000000") ;
77
                variable ia,ib: integer;
78
                variable a,b:std_logic_vector (17 downto 0);
79
        begin
80
 
81
 
82
                ia:= conv_integer(To_X01(adra));
83
                a:=      ram(ia);
84
                dopa<=a(17 downto 16);
85
                doa <= a(15 downto 0);
86
                if wea_1 = '1' then
87
                        ram(ia) :=data_a;
88
                end if;
89
 
90
 
91
                ib:= conv_integer(To_X01(adrb));
92
                b:=      ram(ib);
93
                dopb<=b(17 downto 16);
94
                dob <= b(15 downto 0);
95
                if web_1 = '1' then
96
                        ram(ib) := data_b;
97
                end if;
98
 
99
                if ssra = '1' then
100
                        dopa<="00";
101
                        doa <= X"0000";
102
                        adra <= "0000000000";
103
                        wea_1 <= '0';
104
                elsif clka = '1' and clka'event then
105
                        data_a <= dipa&dia;
106
                        adra(9 downto 0) <= addra;
107
                        wea_1 <= wea;
108
                end if;
109
 
110
                if ssrb = '1' then
111
                        dopb<="00";
112
                        dob <= X"0000";
113
                        adrb <= "0000000000";
114
                        web_1 <= '0';
115
                elsif clkb = '1' and clkb'event then
116
                        data_b <= dipb&dib;
117
                        adrb(9 downto 0)  <= addrb;
118
                        web_1 <= web;
119
                end if;
120
        end process;
121
 
122
end BEH;

powered by: WebSVN 2.1.0

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