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

Subversion Repositories wdsp

[/] [wdsp/] [trunk/] [rtl/] [vhdl/] [WISHBONE_FFT/] [rom3.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/rom3.vhd contains 64 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 rom3 IS
11
         GENERIC(
12
        data_width : integer :=16;
13
        address_width : integer :=6
14
    );
15
    PORT(
16
        clk :in std_logic;
17
        address :in std_logic_vector (5      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 rom3;
22
ARCHITECTURE behavior OF rom3 IS
23
 
24
 BEGIN
25
 
26
process (address,clk)
27
begin
28
        if(rising_edge(clk)) then
29
 case address is
30
        when "000000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
31
        when "000001" => datar <= "0111110110001001";datai <= "1110011100000111"; --32
32
        when "000010" => datar <= "0111011001000001";datai <= "1100111100000101"; --64
33
        when "000011" => datar <= "0110101001101101";datai <= "1011100011100100"; --96
34
        when "000100" => datar <= "0101101010000010";datai <= "1010010101111110"; --128
35
        when "000101" => datar <= "0100011100011100";datai <= "1001010110010011"; --160
36
        when "000110" => datar <= "0011000011111011";datai <= "1000100110111111"; --192
37
        when "000111" => datar <= "0001100011111001";datai <= "1000001001110111"; --224
38
        when "001000" => datar <= "0000000000000000";datai <= "1000000000000001"; --256
39
        when "001001" => datar <= "1110011100000111";datai <= "1000001001110111"; --288
40
        when "001010" => datar <= "1100111100000101";datai <= "1000100110111111"; --320
41
        when "001011" => datar <= "1011100011100100";datai <= "1001010110010011"; --352
42
        when "001100" => datar <= "1010010101111110";datai <= "1010010101111110"; --384
43
        when "001101" => datar <= "1001010110010011";datai <= "1011100011100100"; --416
44
        when "001110" => datar <= "1000100110111111";datai <= "1100111100000101"; --448
45
        when "001111" => datar <= "1000001001110111";datai <= "1110011100000111"; --480
46
        when "010000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
47
        when "010001" => datar <= "0111111101100001";datai <= "1111001101110100"; --16
48
        when "010010" => datar <= "0111110110001001";datai <= "1110011100000111"; --32
49
        when "010011" => datar <= "0111101001111100";datai <= "1101101011011000"; --48
50
        when "010100" => datar <= "0111011001000001";datai <= "1100111100000101"; --64
51
        when "010101" => datar <= "0111000011100010";datai <= "1100001110101010"; --80
52
        when "010110" => datar <= "0110101001101101";datai <= "1011100011100100"; --96
53
        when "010111" => datar <= "0110001011110001";datai <= "1010111011001101"; --112
54
        when "011000" => datar <= "0101101010000010";datai <= "1010010101111110"; --128
55
        when "011001" => datar <= "0101000100110011";datai <= "1001110100001111"; --144
56
        when "011010" => datar <= "0100011100011100";datai <= "1001010110010011"; --160
57
        when "011011" => datar <= "0011110001010110";datai <= "1000111100011110"; --176
58
        when "011100" => datar <= "0011000011111011";datai <= "1000100110111111"; --192
59
        when "011101" => datar <= "0010010100101000";datai <= "1000010110000100"; --208
60
        when "011110" => datar <= "0001100011111001";datai <= "1000001001110111"; --224
61
        when "011111" => datar <= "0000110010001100";datai <= "1000000010011111"; --240
62
        when "100000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
63
        when "100001" => datar <= "0111101001111100";datai <= "1101101011011000"; --48
64
        when "100010" => datar <= "0110101001101101";datai <= "1011100011100100"; --96
65
        when "100011" => datar <= "0101000100110011";datai <= "1001110100001111"; --144
66
        when "100100" => datar <= "0011000011111011";datai <= "1000100110111111"; --192
67
        when "100101" => datar <= "0000110010001100";datai <= "1000000010011111"; --240
68
        when "100110" => datar <= "1110011100000111";datai <= "1000001001110111"; --288
69
        when "100111" => datar <= "1100001110101010";datai <= "1000111100011110"; --336
70
        when "101000" => datar <= "1010010101111110";datai <= "1010010101111110"; --384
71
        when "101001" => datar <= "1000111100011110";datai <= "1100001110101010"; --432
72
        when "101010" => datar <= "1000001001110111";datai <= "1110011100000111"; --480
73
        when "101011" => datar <= "1000000010011111";datai <= "0000110010001100"; --528
74
        when "101100" => datar <= "1000100110111111";datai <= "0011000011111011"; --576
75
        when "101101" => datar <= "1001110100001111";datai <= "0101000100110011"; --624
76
        when "101110" => datar <= "1011100011100100";datai <= "0110101001101101"; --672
77
        when "101111" => datar <= "1101101011011000";datai <= "0111101001111100"; --720
78
           when "110000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
79
           when "110001" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
80
           when "110010" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
81
           when "110011" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
82
           when "110100" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
83
           when "110101" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
84
           when "110110" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
85
           when "110111" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
86
           when "111000" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
87
           when "111001" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
88
           when "111010" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
89
           when "111011" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
90
           when "111100" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
91
           when "111101" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
92
           when "111110" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
93
           when "111111" => datar <= "0111111111111111";datai <= "0000000000000000"; --0
94
        when others => for i in data_width-1 downto 0 loop
95
            datar(i)<='0';datai(i)<='0';end loop;
96
    end case;
97
 
98
    end if;
99
 
100
end process;
101
END behavior;

powered by: WebSVN 2.1.0

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