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

Subversion Repositories adaptive_lms_equalizer

[/] [adaptive_lms_equalizer/] [tags/] [V10/] [code/] [core_filt.vhd] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 digish
--  Copyright (C) 2004-2005 Digish Pandya <digish.pandya@gmail.com>
2
 
3
--  This program is free software; you can redistribute it and/or modify
4
--  it under the terms of the GNU General Public License as published by
5
--  the Free Software Foundation; either version 2 of the License, or
6
--  (at your option) any later version.
7
--
8
--  This program is distributed in the hope that it will be useful,
9
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
10
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
--  GNU General Public License for more details.
12
--
13
--  You should have received a copy of the GNU General Public License
14
--  along with this program; if not, write to the Free Software
15
--  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
16
 
17
 
18
-- A.7
19
-- Filter core for adaptive equalizer
20
-- Five tap filter
21
-- structuaral description
22
 
23
library IEEE;
24
use IEEE.STD_LOGIC_1164.ALL;
25
use IEEE.STD_LOGIC_ARITH.ALL;
26
use IEEE.STD_LOGIC_UNSIGNED.ALL;
27
 
28
entity core_filt is
29
    Port (
30
                 x_in : in std_logic_vector(7 downto 0);
31
           x_N_in : in std_logic_vector(7 downto 0);
32
           ue_in : in std_logic_vector(7 downto 0);
33
           clock : in std_logic;
34
           y_out : out std_logic_vector(7 downto 0));
35
end core_filt;
36
 
37
architecture pm_chain of core_filt is
38
 
39
                -- basic tap processing element
40
                component unit_calc
41
             Port ( x_in : in std_logic_vector(7 downto 0);
42
                   x_N_in : in std_logic_vector(7 downto 0);
43
                   ue_in : in std_logic_vector(7 downto 0);
44
                   y_in : in std_logic_vector(7 downto 0);
45
                   x_out : out std_logic_vector(7 downto 0);
46
                   x_N_out : out std_logic_vector(7 downto 0);
47
                   ue_out : out std_logic_vector(7 downto 0);
48
                         y_out: out std_logic_vector(7 downto 0);
49
                   clock : in std_logic);
50
                end component ;
51
 
52
 
53
        signal x_out_t1  :std_logic_vector(7 downto 0);
54
        signal x_out_t2  :std_logic_vector(7 downto 0);
55
        signal x_out_t3  :std_logic_vector(7 downto 0);
56
        signal x_out_t4  :std_logic_vector(7 downto 0);
57
 
58
        signal x_N_out_t1  :std_logic_vector(7 downto 0);
59
        signal x_N_out_t2  :std_logic_vector(7 downto 0);
60
        signal x_N_out_t3  :std_logic_vector(7 downto 0);
61
        signal x_N_out_t4  :std_logic_vector(7 downto 0);
62
 
63
        signal ue_out_t1  :std_logic_vector(7 downto 0);
64
        signal ue_out_t2  :std_logic_vector(7 downto 0);
65
        signal ue_out_t3  :std_logic_vector(7 downto 0);
66
        signal ue_out_t4  :std_logic_vector(7 downto 0);
67
 
68
        signal y_out_t1  :std_logic_vector(7 downto 0);
69
        signal y_out_t2  :std_logic_vector(7 downto 0);
70
        signal y_out_t3  :std_logic_vector(7 downto 0);
71
        signal y_out_t4  :std_logic_vector(7 downto 0);
72
 
73
 
74
 
75
begin
76
 
77
   tap1: unit_calc
78
   port map (
79
                      x_in      => x_in,
80
                 x_N_in         => x_N_in,
81
                         ue_in          => ue_in,
82
                         y_in   => "00000000",
83
                         x_out  => x_out_t1,
84
                         x_N_out        => x_N_out_t1,
85
                         ue_out         => ue_out_t1,
86
                         y_out  => y_out_t1,
87
                         clock  => clock
88
           );
89
   tap2: unit_calc
90
   port map (
91
                      x_in      => x_out_t1,
92
                 x_N_in         => x_N_out_t1,
93
                         ue_in          => ue_out_t1,
94
                         y_in   => y_out_t1,
95
                         x_out  => x_out_t2,
96
                         x_N_out        => x_N_out_t2,
97
                         ue_out         => ue_out_t2,
98
                         y_out  => y_out_t2,
99
                         clock  => clock
100
           );
101
   tap3: unit_calc
102
   port map (
103
                      x_in      => x_out_t2,
104
                 x_N_in         => x_N_out_t2,
105
                         ue_in          => ue_out_t2,
106
                         y_in   => y_out_t2,
107
                         x_out  => x_out_t3,
108
                         x_N_out        => x_N_out_t3,
109
                         ue_out         => ue_out_t3,
110
                         y_out  => y_out_t3,
111
                         clock  => clock
112
           );
113
   tap4: unit_calc
114
   port map (
115
                      x_in      => x_out_t3,
116
                 x_N_in         => x_N_out_t3,
117
                         ue_in          => ue_out_t3,
118
                         y_in   => y_out_t3,
119
                         x_out  => x_out_t4,
120
                         x_N_out        => x_N_out_t4,
121
                         ue_out         => ue_out_t4,
122
                         y_out  => y_out_t4,
123
                         clock  => clock
124
         );
125
   tap5: unit_calc
126
   port map (
127
                      x_in      => x_out_t4,
128
                 x_N_in         => x_N_out_t4,
129
                         ue_in          => ue_out_t4,
130
                         y_in   => y_out_t4,
131
                         x_out  => open,
132
                         x_N_out        => open,
133
                         ue_out         => open,
134
                         y_out  => y_out,
135
                         clock  => clock
136
           );
137
 
138
 
139
 
140
 
141
end pm_chain;

powered by: WebSVN 2.1.0

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