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

Subversion Repositories ethernet_tri_mode

[/] [ethernet_tri_mode/] [trunk/] [rtl/] [verilog/] [MAC_rx.v] - Blame information for rev 7

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

Line No. Rev Author Line
1 5 maverickis
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3 7 maverickis
////  MAC_rx.v                                                    ////
4 5 maverickis
////                                                              ////
5
////  This file is part of the Ethernet IP core project           ////
6
////  http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
7
////                                                              ////
8
////  Author(s):                                                  ////
9 7 maverickis
////      - Jon Gao (gaojon@yahoo.com)                            ////
10 5 maverickis
////                                                              ////
11
////                                                              ////
12
//////////////////////////////////////////////////////////////////////
13
////                                                              ////
14
//// Copyright (C) 2001 Authors                                   ////
15
////                                                              ////
16
//// This source file may be used and distributed without         ////
17
//// restriction provided that this copyright statement is not    ////
18
//// removed from the file and that any derivative work contains  ////
19
//// the original copyright notice and the associated disclaimer. ////
20
////                                                              ////
21
//// This source file is free software; you can redistribute it   ////
22
//// and/or modify it under the terms of the GNU Lesser General   ////
23
//// Public License as published by the Free Software Foundation; ////
24
//// either version 2.1 of the License, or (at your option) any   ////
25
//// later version.                                               ////
26
////                                                              ////
27
//// This source is distributed in the hope that it will be       ////
28
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
29
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
30
//// PURPOSE.  See the GNU Lesser General Public License for more ////
31
//// details.                                                     ////
32
////                                                              ////
33
//// You should have received a copy of the GNU Lesser General    ////
34
//// Public License along with this source; if not, download it   ////
35
//// from http://www.opencores.org/lgpl.shtml                     ////
36
////                                                              ////
37
//////////////////////////////////////////////////////////////////////
38
//                                                                    
39
// CVS Revision History                                               
40
//                                                                    
41 6 maverickis
// $Log: not supported by cvs2svn $
42 7 maverickis
// Revision 1.2  2005/12/16 06:44:13  Administrator
43
// replaced tab with space.
44
// passed 9.6k length frame test.
45
//
46 6 maverickis
// Revision 1.1.1.1  2005/12/13 01:51:44  Administrator
47
// no message
48
// 
49 5 maverickis
module MAC_rx (
50 7 maverickis
input           Reset   ,
51
input           Clk_user,
52
input           Clk     ,
53
                //RMII interface
54
input           MCrs_dv ,
55
input   [7:0]   MRxD    ,
56
input           MRxErr  ,
57
                //flow_control signals  
58
output  [15:0]  pause_quanta        ,
59
output          pause_quanta_val    ,
60
                //user interface 
61
output          Rx_mac_ra   ,
62
input           Rx_mac_rd   ,
63
output  [31:0]  Rx_mac_data ,
64
output  [1:0]   Rx_mac_BE   ,
65
output          Rx_mac_pa   ,
66
output          Rx_mac_sop  ,
67
output          Rx_mac_eop  ,
68
                //CPU
69
input           MAC_rx_add_chk_en   ,
70
input   [7:0]   MAC_add_prom_data   ,
71
input   [2:0]   MAC_add_prom_add    ,
72
input           MAC_add_prom_wr     ,
73
input           broadcast_filter_en     ,
74
input   [15:0]  broadcast_bucket_depth              ,
75
input   [15:0]  broadcast_bucket_interval           ,
76
input           RX_APPEND_CRC,
77
input   [4:0]   Rx_Hwmark           ,
78
input   [4:0]   Rx_Lwmark           ,
79
input           CRC_chk_en  ,
80
input   [5:0]   RX_IFG_SET    ,
81
input   [15:0]  RX_MAX_LENGTH   ,// 1518
82
input   [6:0]   RX_MIN_LENGTH   ,// 64
83
                //RMON interface
84
output  [15:0]  Rx_pkt_length_rmon      ,
85
output          Rx_apply_rmon           ,
86
output  [2:0]   Rx_pkt_err_type_rmon    ,
87
output  [2:0]   Rx_pkt_type_rmon
88 5 maverickis
);
89
//******************************************************************************
90
//internal signals                                                              
91
//******************************************************************************
92 7 maverickis
                //CRC_chk interface
93
wire            CRC_en  ;
94
wire            CRC_init;
95
wire            CRC_err ;
96
                //MAC_rx_add_chk interface
97
wire            MAC_add_en          ;
98
wire            MAC_rx_add_chk_err  ;
99
                //broadcast_filter
100
wire            broadcast_ptr           ;
101
wire            broadcast_drop          ;
102
                //flow_control signals  
103
wire    [15:0]  pause_quanta        ;
104
wire            pause_quanta_val    ;
105
                //MAC_rx_ctrl interface 
106
wire    [7:0]   Fifo_data       ;
107
wire            Fifo_data_en    ;
108
wire            Fifo_full       ;
109
wire            Fifo_data_err   ;
110
wire            Fifo_data_end   ;
111 5 maverickis
//******************************************************************************
112
//instantiation                                                            
113
//******************************************************************************
114
 
115
 
116
MAC_rx_ctrl U_MAC_rx_ctrl(
117 7 maverickis
.Reset                       (Reset                     ),
118
.Clk                         (Clk                       ),
119 5 maverickis
  //RMII interface           ( //RMII interface         ),                                                    
120 7 maverickis
.MCrs_dv                     (MCrs_dv                   ),
121
.MRxD                        (MRxD                      ),
122
.MRxErr                      (MRxErr                    ),
123 5 maverickis
 //CRC_chk interface         (//CRC_chk interface       ),                                                   
124
.CRC_en                      (CRC_en                    ),
125
.CRC_init                    (CRC_init                  ),
126
.CRC_err                     (CRC_err                   ),
127
 //MAC_rx_add_chk interface  (//MAC_rx_add_chk interface),                                                   
128 7 maverickis
.MAC_add_en                  (MAC_add_en                ),
129
.MAC_rx_add_chk_err          (MAC_rx_add_chk_err        ),
130 5 maverickis
 //broadcast_filter          (//broadcast_filter        ),                           
131 7 maverickis
.broadcast_ptr               (broadcast_ptr             ),
132
.broadcast_drop              (broadcast_drop            ),
133 5 maverickis
 //flow_control signals      (//flow_control signals    ),                           
134 7 maverickis
.pause_quanta                (pause_quanta              ),
135
.pause_quanta_val            (pause_quanta_val          ),
136 5 maverickis
 //MAC_rx_FF interface       (//MAC_rx_FF interface     ),                                                   
137 7 maverickis
.Fifo_data                   (Fifo_data                 ),
138
.Fifo_data_en                (Fifo_data_en              ),
139
.Fifo_data_err               (Fifo_data_err             ),
140
.Fifo_data_end               (Fifo_data_end             ),
141
.Fifo_full                   (Fifo_full                 ),
142 5 maverickis
 //RMON interface            (//RMON interface          ),                               
143 7 maverickis
.Rx_pkt_type_rmon            (Rx_pkt_type_rmon          ),
144
.Rx_pkt_length_rmon          (Rx_pkt_length_rmon        ),
145
.Rx_apply_rmon               (Rx_apply_rmon             ),
146
.Rx_pkt_err_type_rmon        (Rx_pkt_err_type_rmon      ),
147
 //CPU                       (//CPU                     ),   
148
.RX_IFG_SET                  (RX_IFG_SET                ),
149 5 maverickis
.RX_MAX_LENGTH               (RX_MAX_LENGTH             ),
150
.RX_MIN_LENGTH               (RX_MIN_LENGTH             )
151
);
152
 
153
MAC_rx_FF  U_MAC_rx_FF (
154 7 maverickis
.Reset                       (Reset                     ),
155
.Clk_MAC                     (Clk                       ),
156
.Clk_SYS                     (Clk_user                  ),
157 5 maverickis
 //MAC_rx_ctrl interface     (//MAC_rx_ctrl interface   ),
158 7 maverickis
.Fifo_data                   (Fifo_data                 ),
159
.Fifo_data_en                (Fifo_data_en              ),
160
.Fifo_full                   (Fifo_full                 ),
161
.Fifo_data_err               (Fifo_data_err             ),
162
.Fifo_data_end               (Fifo_data_end             ),
163 5 maverickis
 //CPU                       (//CPU                     ),
164 7 maverickis
.Rx_Hwmark                   (Rx_Hwmark                 ),
165
.Rx_Lwmark                   (Rx_Lwmark                 ),
166 5 maverickis
.RX_APPEND_CRC               (RX_APPEND_CRC             ),
167
 //user interface            (//user interface          ),
168 7 maverickis
.Rx_mac_ra                   (Rx_mac_ra                 ),
169
.Rx_mac_rd                   (Rx_mac_rd                 ),
170
.Rx_mac_data                 (Rx_mac_data               ),
171
.Rx_mac_BE                   (Rx_mac_BE                 ),
172
.Rx_mac_sop                  (Rx_mac_sop                ),
173 5 maverickis
.Rx_mac_pa                   (Rx_mac_pa                 ),
174 7 maverickis
.Rx_mac_eop                  (Rx_mac_eop                )
175 5 maverickis
);
176
 
177 7 maverickis
`ifdef MAC_BROADCAST_FILTER_EN
178 5 maverickis
Broadcast_filter U_Broadcast_filter(
179 7 maverickis
.Reset                      (Reset                      ),
180
.Clk                        (Clk                        ),
181 5 maverickis
 //MAC_rx_ctrl              (//MAC_rx_ctrl              ),
182 7 maverickis
.broadcast_ptr              (broadcast_ptr              ),
183
.broadcast_drop             (broadcast_drop             ),
184
 //FromCPU                  (//FromCPU                  ),
185
.broadcast_filter_en        (broadcast_filter_en        ),
186
.broadcast_bucket_depth     (broadcast_bucket_depth     ),
187
.broadcast_bucket_interval  (broadcast_bucket_interval  )
188 5 maverickis
);
189 7 maverickis
`else
190
assign broadcast_drop=0;
191
`endif
192 5 maverickis
 
193
CRC_chk U_CRC_chk(
194 7 maverickis
.Reset                      (Reset                      ),
195
.Clk                        (Clk                        ),
196
.CRC_data                   (Fifo_data                  ),
197
.CRC_init                   (CRC_init                   ),
198
.CRC_en                     (CRC_en                     ),
199 5 maverickis
 //From CPU                 (//From CPU                 ),
200 7 maverickis
.CRC_chk_en                 (CRC_chk_en                 ),
201
.CRC_err                    (CRC_err                    )
202 5 maverickis
);
203
 
204 7 maverickis
`ifdef MAC_TARGET_CHECK_EN
205 5 maverickis
MAC_rx_add_chk U_MAC_rx_add_chk(
206 7 maverickis
.Reset                      (Reset                      ),
207
.Clk                        (Clk                        ),
208
.Init                       (CRC_init                   ),
209
.data                       (Fifo_data                  ),
210
.MAC_add_en                 (MAC_add_en                 ),
211
.MAC_rx_add_chk_err         (MAC_rx_add_chk_err         ),
212 5 maverickis
 //From CPU                 (//From CPU                 ),
213 7 maverickis
.MAC_rx_add_chk_en          (MAC_rx_add_chk_en          ),
214
.MAC_add_prom_data          (MAC_add_prom_data          ),
215
.MAC_add_prom_add           (MAC_add_prom_add           ),
216
.MAC_add_prom_wr            (MAC_add_prom_wr            )
217 5 maverickis
);
218 7 maverickis
`else
219
assign MAC_rx_add_chk_err=0;
220
`endif
221 5 maverickis
 
222 7 maverickis
 
223
 
224 5 maverickis
endmodule

powered by: WebSVN 2.1.0

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