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

Subversion Repositories wdsp

[/] [wdsp/] [trunk/] [rtl/] [vhdl/] [WISHBONE_FFT/] [rom4.vhd] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 parrado
-- Rom file for twiddle factors 
2
-- ../../../rtl/vhdl/WISHBONE_FFT/rom4.vhd contains 16 points of 16 width 
3
--  for a 1024 point fft.
4
 
5
LIBRARY ieee;
6
USE ieee.std_logic_1164.ALL;
7
USE ieee.std_logic_arith.ALL;
8
 
9
 
10
ENTITY rom4 IS
11
         GENERIC(
12
        data_width : integer :=16;
13
        address_width : integer :=4
14
    );
15
    PORT(
16
        clk :in std_logic;
17
        address :in std_logic_vector (3      downto 0);
18
        datar : OUT std_logic_vector (data_width-1 DOWNTO 0) ;
19
        datai : OUT std_logic_vector (data_width-1 DOWNTO 0)
20
    );
21
end rom4;
22
ARCHITECTURE behavior OF rom4 IS
23
 
24
 BEGIN
25
 
26
process (address,clk)
27
begin
28
        if(rising_edge(clk)) then
29
 case address is
30
        when "0000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
31
        when "0001" => datar <= "0101101010000010";datai <= "1010010101111110"; --128
32
        when "0010" => datar <= "0000000000000000";datai <= "1000000000000001"; --256
33
        when "0011" => datar <= "1010010101111110";datai <= "1010010101111110"; --384
34
        when "0100" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
35
        when "0101" => datar <= "0111011001000001";datai <= "1100111100000101"; --64
36
        when "0110" => datar <= "0101101010000010";datai <= "1010010101111110"; --128
37
        when "0111" => datar <= "0011000011111011";datai <= "1000100110111111"; --192
38
        when "1000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
39
        when "1001" => datar <= "0011000011111011";datai <= "1000100110111111"; --192
40
        when "1010" => datar <= "1010010101111110";datai <= "1010010101111110"; --384
41
        when "1011" => datar <= "1000100110111111";datai <= "0011000011111011"; --576
42
           when "1100" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
43
           when "1101" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
44
           when "1110" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
45
           when "1111" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
46
        when others => for i in data_width-1 downto 0 loop
47
            datar(i)<='0';datai(i)<='0';end loop;
48
    end case;
49
 
50
    end if;
51
 
52
end process;
53
END behavior;

powered by: WebSVN 2.1.0

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