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

Subversion Repositories xmatchpro

[/] [xmatchpro/] [trunk/] [xmw4-comdec/] [xmatch_sim7/] [src/] [cam_word_zero.vhd] - Blame information for rev 9

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 eejlny
--This library is free software; you can redistribute it and/or
2
--modify it under the terms of the GNU Lesser General Public
3
--License as published by the Free Software Foundation; either
4
--version 2.1 of the License, or (at your option) any later version.
5
 
6
--This library is distributed in the hope that it will be useful,
7
--but WITHOUT ANY WARRANTY; without even the implied warranty of
8
--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
9
--Lesser General Public License for more details.
10
 
11
--You should have received a copy of the GNU Lesser General Public
12
--License along with this library; if not, write to the Free Software
13
--Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
14
 
15
-- e_mail : j.l.nunez-yanez@byacom.co.uk
16
 
17
 
18
---------------------------------
19
--  ENTITY       = CAM_WORD    --
20
--  version      = 1.0         --
21
--  last update  = 29/04/98    --
22
--  author       = Jose Nunez  --
23
---------------------------------
24
 
25
 
26
-- FUNCTION
27
-- 32 bit word element of the CAM array.
28
 
29
 
30
--  PIN LIST
31
--  SEARCH    = input search data word
32
--  PREVIOUS  = data word from the previous location in the array
33
--  MOVE      = movement control
34
--  CLEAR     = asynchronous clear of the data latch (active LOW)
35
--  CLK       = master clock
36
--  DOUT      = output of the data latch
37
--  MATCH     = indicates a match between search bytes and data bytes (active LOW)
38
 
39
 
40
library ieee;
41
use ieee.std_logic_1164.all;
42
 
43
entity CAM_WORD_ZERO is
44
port
45
(
46
        SEARCH : in bit_vector(31 downto 0);
47
        PREVIOUS : in bit_vector(31 downto 0);
48
        MOVE : in bit;
49
        CLEAR : in bit ;
50
        RESET : in bit;
51
        CLK : in bit ;
52
        DOUT : out bit_vector(31 downto 0);
53
        MATCH : out bit_vector(3 downto 0)
54
);
55
 
56
 
57
end CAM_WORD_ZERO;
58
 
59
 
60
 
61
 
62
 
63
 
64
architecture WORD1 of CAM_WORD_ZERO is
65
 
66
 
67
 
68
component CAM_BYTE
69
 
70
port
71
 
72
(
73
 
74
        SEARCH : in bit_vector(7 downto 0);
75
 
76
        PREVIOUS : in bit_vector(7 downto 0);
77
 
78
        MOVE : in bit;
79
 
80
        CLEAR : in bit ;
81
 
82
    RESET : in bit;
83
 
84
        CLK : in bit ;
85
 
86
        DOUT : out bit_vector(7 downto 0);
87
 
88
        MATCH : out bit
89
 
90
);
91
 
92
end component;
93
 
94
 
95
 
96
begin
97
 
98
 
99
 
100
BYTE1 : CAM_BYTE port map ( SEARCH => SEARCH(7 downto 0),
101
 
102
                                PREVIOUS => PREVIOUS(7 downto 0),
103
 
104
                              MOVE => MOVE,
105
 
106
                              CLEAR => CLEAR,
107
 
108
                                          RESET => RESET,
109
 
110
                                CLK => CLK,
111
 
112
                                DOUT => DOUT(7 downto 0),
113
 
114
                                MATCH => MATCH(0));
115
 
116
 
117
 
118
BYTE2 : CAM_BYTE port map ( SEARCH => SEARCH(15 downto 8),
119
 
120
                                PREVIOUS => PREVIOUS(15 downto 8),
121
 
122
                                MOVE => MOVE,
123
 
124
                                CLEAR => CLEAR,
125
 
126
                                        RESET => RESET,
127
 
128
                                CLK => CLK,
129
 
130
                                DOUT => DOUT(15 downto 8),
131
 
132
                                MATCH => MATCH(1));
133
 
134
 
135
 
136
BYTE3 : CAM_BYTE port map ( SEARCH => SEARCH(23 downto 16),
137
 
138
                                PREVIOUS => PREVIOUS(23 downto 16),
139
 
140
                                MOVE => MOVE,
141
 
142
                                CLEAR => CLEAR,
143
 
144
                                        RESET => RESET,
145
 
146
                                CLK => CLK,
147
 
148
                                DOUT => DOUT(23 downto 16),
149
 
150
                                MATCH => MATCH(2));
151
 
152
BYTE4 : CAM_BYTE port map ( SEARCH => SEARCH(31 downto 24),
153
 
154
                                PREVIOUS => PREVIOUS(31 downto 24),
155
 
156
                                MOVE => MOVE,
157
 
158
                                CLEAR => CLEAR,
159
 
160
                                        RESET=> RESET,
161
 
162
                                CLK => CLK,
163
 
164
                                DOUT => DOUT(31 downto 24),
165
 
166
                                MATCH => MATCH(3));
167
 
168
 
169
 
170
-- No logic for validate the word. All the words valid because the dictionary does not grow
171
 
172
 
173
 
174
end WORD1;
175
 
176
 
177
 
178
 
179
 

powered by: WebSVN 2.1.0

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