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

Subversion Repositories wdsp

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 parrado
--Component for Stages using BF2II (last stage only) 
2
--When BF2II is the last butterfly, there is no   multiplier after it 
3
--Input is a standar d logic vector of data_width -add_g 
4
--data_width - wid th  of the internal busses 
5
--add_g - Add growth variable - if 1, data_width grows by 1, if 0 then - 0 
6
 
7
library IEEE;
8
use IEEE.std_logic_1164.all;
9
use ieee.std_logic_arith.all;
10
 
11
entity stage_II_last is
12
generic  (
13
        data_width : INTEGER :=14;
14
    add_g : INTEGER := 1
15
  );
16
 
17
port  (
18
        prvs_r :in std_logic_vector(data_width-1-add_g downto 0);
19
        prvs_i :in std_logic_vector(data_width-1-add_g downto 0);
20
        t :in  std_logic;
21
    s :in  std_logic;
22
    clock : in std_logic;
23
         enable : in std_logic;
24
        resetn : in std_logic ;
25
        tonext_r :out std_logic_vector(data_width  -1 downto 0);
26
    tonext_i :out std_logic_vector(data_width-1 downto 0)
27
  );
28
 
29
end stage_II_last;
30
 
31
architecture structure of stage_II_last is
32
signal toreg_r : std_logic_vector(data_width-1 downto 0);
33
signal toreg_i : std_logic_vector(data_width-1 downto 0);
34
signal  fromreg_r : std_logic_vector( data_width-1 downto 0);
35
signal  fromreg_i : std_logic_vector( data_width-1 downto 0);
36
 
37
signal tonext_r_aux : std_logic_vector(data_width-1 downto 0);
38
signal tonext_i_aux : std_logic_vector(data_width-1 downto 0);
39
 
40
 
41
component shiftreg1
42
  generic (
43
        data_width : integer
44
        );
45
  port  (
46
        clock : IN std_logic;
47
        enable : in std_logic;
48
        clear : in std_logic;
49
    read_data  : OUT    std_logic_vector (data_width-1 DOWNTO 0 );
50
    write_data : IN     std_logic_vector (data_width-1 DOWNTO 0);
51
    resetn     : IN     std_logic
52
      );
53
end component;
54
 
55
component BF2II
56
  generic (
57
        data_width : INTEGER;
58
        add_g: INTEGER
59
        );
60
  port    (
61
        fromreg_r :in std_logic_vector(data_width-1 downto 0);
62
        fromreg_i :in std_logic_vector(data_width-1 downto 0);
63
        prvs_r :in std_logic_vector(data_width-add_g-1 downto 0);
64
        prvs_i :in std_logic_vector(data_width-add_g-1 downto 0);
65
        t : in std_logic;
66
        s : in std_logic;
67
    toreg_r :out std_logic_vector(data_width-1 downto 0);
68
    toreg_i :  out std_logic_vector(data_width-1 downto 0);
69
    tonext_r :out std_logic_vector(data_width-1 downto 0);
70
      tonext_i :out std_logic_vector(data_width-1 downto 0)
71
   );
72
end component;
73
 
74
begin
75
regr : shiftreg1
76
  generic map (
77
                data_width=>data_width
78
                )
79
     port map (
80
                clock=>clock,
81
                enable=>enable,
82
                clear =>'0',
83
                read_data=>fromreg_r,
84
                write_data=>toreg_r,
85
                resetn=>resetn
86
                );
87
 
88
regi  : shiftreg1
89
  generic map (
90
                data_width=>data_width
91
                )
92
  port map (
93
                clock=>clock,
94
                enable=>enable,
95
                clear =>'0',
96
                read_data=>fromreg_i,
97
                write_data=>toreg_i,
98
                resetn=>resetn
99
                );
100
 
101
btrfly : BF2II
102
  generic map (
103
        data_width=>data_width,
104
        add_g=>add_g
105
        )
106
     port map (
107
        fromreg_r=>fromreg_r,
108
        fromreg_i=>fromreg_i,
109
    prvs_r=>prvs_r,
110
        prvs_i=>prvs_i,
111
    t=>t,
112
        s=>s,
113
    toreg_r=>toreg_r,
114
        toreg_i=>toreg_i,
115
    tonext_r=>tonext_r_aux,
116
        tonext_i=>tonext_i_aux
117
        );
118
 
119
 
120
 
121
regsegr : shiftreg1
122
  generic map (
123
        data_width=>data_width
124
 
125
        )
126
port map (
127
        clock=>clock,
128
        enable=>'1',
129
        clear=>'0',
130
        read_data=>tonext_r,
131
        write_data=>tonext_r_aux,
132
        resetn=>resetn
133
        );
134
 
135
regsegi : shiftreg1
136
  generic map (
137
        data_width=>data_width
138
 
139
        )
140
port map (
141
        clock=>clock,
142
        enable=>'1',
143
        clear=>'0',
144
        read_data=>tonext_i,
145
        write_data=>tonext_i_aux,
146
        resetn=>resetn
147
        );
148
 
149
end;

powered by: WebSVN 2.1.0

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