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

Subversion Repositories xmatchpro

[/] [xmatchpro/] [trunk/] [xmw4-comdec/] [xmatch_sim7/] [src/] [PIPELINE_R1.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
--  ENTITY       = PIPELINE_R1      --
19
--  version      = 1.0              --
20
--  last update  = 1/08/01          --
21
--  author       = Jose Nunez       --
22
--------------------------------------
23
 
24
 
25
-- FUNCTION
26
-- pipeline R1 for compression
27
 
28
-- PIN LIST
29
-- MATCH_LOC_IN: uncoded match location 
30
-- MATCH_TYPE_IN: match type
31
-- SEARCH_STRING_IN:  literal data
32
-- MASK_IN : mask data
33
-- FLUSH_IN: pipeline signal from csm           
34
-- COMP_IN: pipeline signal from csm       
35
-- INC_IN:pipeline signal from csm         
36
-- CLEAR: asyncronus clear
37
-- CLK: master clock
38
-- MATCH_LOC_OUT 
39
-- MATCH_TYPE_OUT
40
-- SEARCH_STRING_OUT
41
-- MASK_OUT
42
-- FLUSH_OUT
43
-- COMP_OUT
44
-- INC_OUT
45
 
46
 
47
library IEEE;
48
use IEEE.std_logic_1164.all;
49
 
50
entity PIPELINE_R1 is
51
    port(
52
            MATCH_LOC_IN: in bit_vector( 15 downto 0);
53
                MATCH_TYPE_IN: in bit_vector(3 downto 0);
54
            SEARCH_STRING_IN:  in bit_vector(31 downto 0);
55
                MASK_IN : in bit_vector(4 downto 0);
56
            FLUSH_IN:in bit;
57
             COMP_IN:in bit;
58
                 MOVE_ENABLE_IN:in bit;
59
                 INC_IN:in bit;
60
            CLEAR:in bit;
61
                        RESET: in bit;
62
            CLK:in bit;
63
                        MATCH_LOC_OUT: out bit_vector (15 downto 0);
64
                MATCH_TYPE_OUT:out bit_vector(3 downto 0);
65
            SEARCH_STRING_OUT:  out bit_vector(31 downto 0);
66
            MASK_OUT : out bit_vector(4 downto 0);
67
                 FLUSH_OUT:out bit;
68
             COMP_OUT:out bit;
69
                 MOVE_ENABLE_OUT:out bit;
70
                 INC_OUT:out bit
71
            );
72
 
73
end PIPELINE_R1;
74
architecture STRUCTURAL of PIPELINE_R1 is
75
 
76
 signal SEARCH_STRING_OUT_aux:bit_vector(31 downto 0);
77
 signal FLUSH_OUT_aux:bit;
78
 signal COMP_OUT_aux:bit;
79
 signal MATCH_LOC_OUT_aux: bit_vector( 15 downto 0);
80
 signal MATCH_TYPE_OUT_aux: bit_vector(3 downto 0);
81
 signal MASK_OUT_aux : bit_vector(4 downto 0);
82
 signal INC_OUT_aux:bit;
83
 signal MOVE_ENABLE_OUT_aux: bit;
84
 
85
 begin
86
 
87
 process(CLK,CLEAR)
88
 begin
89
        if (CLEAR='0') then
90
                MATCH_LOC_OUT_aux<=x"0000";
91
        MATCH_TYPE_OUT_aux<="1111";
92
            SEARCH_STRING_OUT_aux<=x"00000000";
93
           FLUSH_OUT_aux<='1';
94
            COMP_OUT_aux<='1';
95
                MASK_OUT_aux<="00000";
96
            INC_OUT_aux<='0';
97
                MOVE_ENABLE_OUT_aux<='1';
98
 
99
        elsif ((CLK'event) and (CLK='1')) then
100
                if (RESET='0') then
101
                        MATCH_LOC_OUT_aux<=x"0000";
102
                 MATCH_TYPE_OUT_aux<="1111";
103
                         SEARCH_STRING_OUT_aux<=x"00000000";
104
                 FLUSH_OUT_aux<='1';
105
                COMP_OUT_aux<='1';
106
                MASK_OUT_aux <="00000";
107
           INC_OUT_aux<='0';
108
           MOVE_ENABLE_OUT_aux<='1';
109
 
110
           else
111
                SEARCH_STRING_OUT_aux<=SEARCH_STRING_IN;
112
       FLUSH_OUT_aux<=FLUSH_IN;
113
           COMP_OUT_aux<=COMP_IN;
114
                MASK_OUT_aux<= MASK_IN;
115
                MATCH_TYPE_OUT_aux<=MATCH_TYPE_IN;
116
                MATCH_LOC_OUT_aux<=MATCH_LOC_IN;
117
            INC_OUT_aux<=INC_IN;
118
                MOVE_ENABLE_OUT_aux<=MOVE_ENABLE_IN;
119
 
120
          end if;
121
        end if;
122
 end process;
123
 
124
 SEARCH_STRING_OUT<=SEARCH_STRING_OUT_aux;
125
 FLUSH_OUT<=FLUSH_OUT_aux;
126
 COMP_OUT<=COMP_OUT_aux;
127
 MASK_OUT<=MASK_OUT_aux;
128
 MATCH_TYPE_OUT<=MATCH_TYPE_OUT_aux;
129
 MATCH_LOC_OUT<=MATCH_LOC_OUT_aux;
130
 INC_OUT<=INC_OUT_aux;
131
 MOVE_ENABLE_OUT<=MOVE_ENABLE_OUT_aux;
132
 
133
 
134
 
135
-- SEARCH_STRING_OUT<=SEARCH_STRING_IN;
136
-- FLUSH_OUT<=FLUSH_IN;
137
-- COMP_OUT<=COMP_IN;
138
-- MATCH_TYPE_OUT<=MATCH_TYPE_IN;
139
-- MATCH_LOC_OUT<=MATCH_LOC_IN;
140
-- INC_OUT <= INC_IN;
141
-- COUNT_ENABLE_OUT <= COUNT_ENABLE_IN;
142
 
143
 
144
 
145
end structural;
146
 
147
 
148
 
149
 
150
 
151
 

powered by: WebSVN 2.1.0

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