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/] [MAC_rx_ctrl.v] - Diff between revs 5 and 6

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 5 Rev 6
Line 35... Line 35...
//// from http://www.opencores.org/lgpl.shtml                     ////
//// from http://www.opencores.org/lgpl.shtml                     ////
////                                                              ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//                                                                    
//                                                                    
// CVS Revision History                                               
// CVS Revision History                                               
//                                                                    
 
// $Log: not supported by cvs2svn $                                           
// $Log: not supported by cvs2svn $                                           
 
// Revision 1.1.1.1  2005/12/13 01:51:45  Administrator
 
// no message
 
//                                           
 
 
module MAC_rx_ctrl (
module MAC_rx_ctrl (
Reset   ,
Reset   ,
Clk         ,
Clk         ,
 
 
Line 119... Line 121...
//******************************************************************************
//******************************************************************************
parameter               State_idle                      =4'd00;
parameter               State_idle                      =4'd00;
parameter               State_preamble      =4'd01;
parameter               State_preamble      =4'd01;
parameter               State_SFD           =4'd02;
parameter               State_SFD           =4'd02;
parameter               State_data          =4'd03;
parameter               State_data          =4'd03;
 
parameter               State_checkCRC      =4'd04;
parameter               State_OkEnd                     =4'd07;
parameter               State_OkEnd                     =4'd07;
parameter               State_drop          =4'd08;
parameter               State_drop          =4'd08;
parameter               State_ErrEnd            =4'd09;
parameter               State_ErrEnd            =4'd09;
parameter               State_CRCErrEnd         =4'd10;
parameter               State_CRCErrEnd         =4'd10;
parameter               State_FFFullDrop        =4'd11;
parameter               State_FFFullDrop        =4'd11;
Line 220... Line 223...
                                        else if (RxErr)
                                        else if (RxErr)
                                                Next_state      =State_drop;
                                                Next_state      =State_drop;
                                        else
                                        else
                                                Next_state      =State_data;
                                                Next_state      =State_data;
                        State_data:
                        State_data:
                                        if (!Crs_dv&&!CRC_err&&!Too_short&&!Too_long)
                                        if (!Crs_dv&&!Too_short&&!Too_long)
                                                Next_state      =State_OkEnd;
                                                Next_state      =State_checkCRC;
                                        else if (!Crs_dv&&(Too_short||Too_long))
                                        else if (!Crs_dv&&(Too_short||Too_long))
                                                Next_state      =State_ErrEnd;
                                                Next_state      =State_ErrEnd;
                                        else if (!Crs_dv&&CRC_err)
 
                                                Next_state      =State_CRCErrEnd;
 
                                        else if (Fifo_full)
                                        else if (Fifo_full)
                                                Next_state      =State_FFFullErrEnd;
                                                Next_state      =State_FFFullErrEnd;
                                        else if (RxErr||MAC_rx_add_chk_err||Too_long||broadcast_drop)
                                        else if (RxErr||MAC_rx_add_chk_err||Too_long||broadcast_drop)
                                                Next_state      =State_drop;
                                                Next_state      =State_drop;
                                        else
                                        else
                                                Next_state      =State_data;
                                                Next_state      =State_data;
 
                        State_checkCRC:
 
                                         if (CRC_err)
 
                                                Next_state      =State_CRCErrEnd;
 
                                         else
 
                                                Next_state      =State_OkEnd;
                        State_drop:
                        State_drop:
                                        if (!Crs_dv)
                                        if (!Crs_dv)
                                                Next_state      =State_ErrEnd;
                                                Next_state      =State_ErrEnd;
                                        else
                                        else
                                                Next_state      =Current_state;
                                                Next_state      =Current_state;
Line 317... Line 323...
//******************************************************************************        
//******************************************************************************        
always @ (posedge Clk or posedge Reset)
always @ (posedge Clk or posedge Reset)
        if (Reset)
        if (Reset)
                Frame_length_counter            <=0;
                Frame_length_counter            <=0;
        else if (Current_state==State_SFD)
        else if (Current_state==State_SFD)
                Frame_length_counter            <=0;
                Frame_length_counter            <=1;
        else if (Current_state==State_data)
        else if (Current_state==State_data)
                Frame_length_counter            <=Frame_length_counter+ 1;
                Frame_length_counter            <=Frame_length_counter+ 1;
 
 
always @ (Frame_length_counter or RX_MIN_LENGTH)
always @ (Frame_length_counter or RX_MIN_LENGTH)
        if (Frame_length_counter<RX_MIN_LENGTH)
        if (Frame_length_counter<RX_MIN_LENGTH)

powered by: WebSVN 2.1.0

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