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

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

Rev 5 Rev 6
Line 37... Line 37...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//                                                                    
//                                                                    
// 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_FF (
module MAC_rx_FF (
Reset           ,
Reset           ,
Clk_MAC     ,
Clk_MAC     ,
Clk_SYS     ,
Clk_SYS     ,
Line 138... Line 142...
reg                             Packet_number_sub ;
reg                             Packet_number_sub ;
wire                    Packet_number_add_edge;
wire                    Packet_number_add_edge;
reg                             Packet_number_add_dl1;
reg                             Packet_number_add_dl1;
reg                             Packet_number_add_dl2;
reg                             Packet_number_add_dl2;
reg                             Packet_number_add ;
reg                             Packet_number_add ;
 
reg                             Packet_number_add_tmp    ;
 
reg                             Packet_number_add_tmp_dl1;
 
reg                             Packet_number_add_tmp_dl2;
 
 
reg                     Rx_mac_sop_tmp_dl1;
reg                     Rx_mac_sop_tmp_dl1;
reg[35:0]                Dout_dl1;
reg[35:0]                Dout_dl1;
reg[1:0]         Rx_mac_BE       ;
reg[1:0]         Rx_mac_BE       ;
//******************************************************************************
//******************************************************************************
Line 307... Line 314...
        if (Reset)
        if (Reset)
                Fifo_data_byte1         <=0;
                Fifo_data_byte1         <=0;
        else if (Current_state==State_byte1&&Fifo_data_en_dl1)
        else if (Current_state==State_byte1&&Fifo_data_en_dl1)
                Fifo_data_byte1         <=Fifo_data_dl1;
                Fifo_data_byte1         <=Fifo_data_dl1;
 
 
always @ (posedge Clk_MAC or posedge Reset)
always @ (Current_state or Fifo_data_byte3 or Fifo_data_byte2 or Fifo_data_byte1 )
        if (Reset)
 
                Fifo_data_byte0         <=0;
 
        else if (Current_state==State_byte0&&Fifo_data_en_dl1)
 
                Fifo_data_byte0         <=Fifo_data_dl1;
 
 
 
always @ (Current_state or Fifo_data_byte3 or Fifo_data_byte2 or Fifo_data_byte1 or Fifo_data_byte0 )
 
        case (Current_state)
        case (Current_state)
                State_be0:
                State_be0:
                        Din     ={4'b1000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_byte0};
                        Din     ={4'b1000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_dl1};
                State_be1:
                State_be1:
                        Din     ={4'b1001,Fifo_data_byte3,24'h0};
                        Din     ={4'b1001,Fifo_data_byte3,24'h0};
                State_be2:
                State_be2:
                        Din     ={4'b1010,Fifo_data_byte3,Fifo_data_byte2,16'h0};
                        Din     ={4'b1010,Fifo_data_byte3,Fifo_data_byte2,16'h0};
                State_be3:
                State_be3:
                        Din     ={4'b1011,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,8'h0};
                        Din     ={4'b1011,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,8'h0};
                default:
                default:
                        Din     ={4'b0000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_byte0};
                        Din     ={4'b0000,Fifo_data_byte3,Fifo_data_byte2,Fifo_data_byte1,Fifo_data_dl1};
        endcase
        endcase
 
 
always @ (Current_state or Fifo_data_en)
always @ (Current_state or Fifo_data_en)
        if (Current_state==State_be0||Current_state==State_be1||
        if (Current_state==State_be0||Current_state==State_be1||
           Current_state==State_be2||Current_state==State_be3||
           Current_state==State_be2||Current_state==State_be3||
Line 337... Line 338...
        else
        else
                Wr_en   <=0;
                Wr_en   <=0;
//this signal for read side to handle the packet number in fifo
//this signal for read side to handle the packet number in fifo
always @ (posedge Clk_MAC or posedge Reset)
always @ (posedge Clk_MAC or posedge Reset)
        if (Reset)
        if (Reset)
                Packet_number_add       <=0;
                Packet_number_add_tmp   <=0;
        else if (Current_state==State_be0||Current_state==State_be1||
        else if (Current_state==State_be0||Current_state==State_be1||
                         Current_state==State_be2||Current_state==State_be3)
                         Current_state==State_be2||Current_state==State_be3)
 
                Packet_number_add_tmp   <=1;
 
        else
 
                Packet_number_add_tmp   <=0;
 
 
 
always @ (posedge Clk_MAC or posedge Reset)
 
        if (Reset)
 
                begin
 
                Packet_number_add_tmp_dl1       <=0;
 
                Packet_number_add_tmp_dl2       <=0;
 
                end
 
        else
 
                begin
 
                Packet_number_add_tmp_dl1       <=Packet_number_add_tmp;
 
                Packet_number_add_tmp_dl2       <=Packet_number_add_tmp_dl1;
 
                end
 
 
 
//Packet_number_add delay to Din[35] is needed to make sure the data have been wroten to ram.           
 
//expand to two cycles long almost=16 ns
 
//if the Clk_SYS period less than 16 ns ,this signal need to expand to 3 or more clock cycles           
 
always @ (posedge Clk_MAC or posedge Reset)
 
        if (Reset)
 
                Packet_number_add       <=0;
 
        else if (Packet_number_add_tmp_dl1||Packet_number_add_tmp_dl2)
                Packet_number_add       <=1;
                Packet_number_add       <=1;
        else
        else
                Packet_number_add       <=0;
                Packet_number_add       <=0;
 
 
 
 

powered by: WebSVN 2.1.0

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