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_top.v] - Diff between revs 28 and 33

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 28 Rev 33
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
////                                                              ////
////                                                              ////
////  MAC_top.v                                                   ////
////  MAC_top.v                                                   ////
////                                                              ////
////                                                              ////
////  This file is part of the Ethernet IP core project           ////
////  This file is part of the Ethernet IP core project           ////
////  http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
////  http://www.opencores.org/projects.cgi/web/ethernet_tri_mode/////
////                                                              ////
////                                                              ////
////  Author(s):                                                  ////
////  Author(s):                                                  ////
////      - Jon Gao (gaojon@yahoo.com)                            ////
////      - Jon Gao (gaojon@yahoo.com)                            ////
////                                                              ////
////                                                              ////
////                                                              ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
////                                                              ////
////                                                              ////
//// Copyright (C) 2001 Authors                                   ////
//// Copyright (C) 2001 Authors                                   ////
////                                                              ////
////                                                              ////
//// This source file may be used and distributed without         ////
//// This source file may be used and distributed without         ////
//// restriction provided that this copyright statement is not    ////
//// restriction provided that this copyright statement is not    ////
//// removed from the file and that any derivative work contains  ////
//// removed from the file and that any derivative work contains  ////
//// the original copyright notice and the associated disclaimer. ////
//// the original copyright notice and the associated disclaimer. ////
////                                                              ////
////                                                              ////
//// This source file is free software; you can redistribute it   ////
//// This source file is free software; you can redistribute it   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// Public License as published by the Free Software Foundation; ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any   ////
//// either version 2.1 of the License, or (at your option) any   ////
//// later version.                                               ////
//// later version.                                               ////
////                                                              ////
////                                                              ////
//// This source is distributed in the hope that it will be       ////
//// This source is distributed in the hope that it will be       ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
//// PURPOSE.  See the GNU Lesser General Public License for more ////
//// PURPOSE.  See the GNU Lesser General Public License for more ////
//// details.                                                     ////
//// details.                                                     ////
////                                                              ////
////                                                              ////
//// You should have received a copy of the GNU Lesser General    ////
//// You should have received a copy of the GNU Lesser General    ////
//// Public License along with this source; if not, download it   ////
//// Public License along with this source; if not, download it   ////
//// 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.3  2006/01/19 14:07:52  maverickist
// Revision 1.3  2006/01/19 14:07:52  maverickist
// verification is complete.
// verification is complete.
//
//
// Revision 1.2  2005/12/16 06:44:13  Administrator
// Revision 1.2  2005/12/16 06:44:13  Administrator
// replaced tab with space.
// replaced tab with space.
// passed 9.6k length frame test.
// passed 9.6k length frame test.
//
//
// Revision 1.1.1.1  2005/12/13 01:51:44  Administrator
// Revision 1.1.1.1  2005/12/13 01:51:44  Administrator
// no message
// no message
// 
// 
 
 
module MAC_top(
module MAC_top(
                //system signals
                //system signals
input           Reset                   ,
input           Reset                   ,
input           Clk_125M                ,
input           Clk_125M                ,
input           Clk_user                ,
input           Clk_user                ,
input           Clk_reg                 ,
input           Clk_reg                 ,
output  [2:0]   Speed                   ,
output  [2:0]   Speed                   ,
                //user interface 
                //user interface 
output          Rx_mac_ra               ,
output          Rx_mac_ra               ,
input           Rx_mac_rd               ,
input           Rx_mac_rd               ,
output  [31:0]  Rx_mac_data             ,
output  [31:0]  Rx_mac_data             ,
output  [1:0]   Rx_mac_BE               ,
output  [1:0]   Rx_mac_BE               ,
output          Rx_mac_pa               ,
output          Rx_mac_pa               ,
output          Rx_mac_sop              ,
output          Rx_mac_sop              ,
output          Rx_mac_eop              ,
output          Rx_mac_eop              ,
                //user interface 
                //user interface 
output          Tx_mac_wa               ,
output          Tx_mac_wa               ,
input           Tx_mac_wr               ,
input           Tx_mac_wr               ,
input   [31:0]  Tx_mac_data             ,
input   [31:0]  Tx_mac_data             ,
input   [1:0]   Tx_mac_BE               ,//big endian
input   [1:0]   Tx_mac_BE               ,//big endian
input           Tx_mac_sop              ,
input           Tx_mac_sop              ,
input           Tx_mac_eop              ,
input           Tx_mac_eop              ,
                //pkg_lgth fifo
                //pkg_lgth fifo
input           Pkg_lgth_fifo_rd        ,
input           Pkg_lgth_fifo_rd        ,
output          Pkg_lgth_fifo_ra        ,
output          Pkg_lgth_fifo_ra        ,
output  [15:0]  Pkg_lgth_fifo_data      ,
output  [15:0]  Pkg_lgth_fifo_data      ,
                //Phy interface          
                //Phy interface          
                //Phy interface         
                //Phy interface         
output          Gtx_clk                 ,//used only in GMII mode
output          Gtx_clk                 ,//used only in GMII mode
input           Rx_clk                  ,
input           Rx_clk                  ,
input           Tx_clk                  ,//used only in MII mode
input           Tx_clk                  ,//used only in MII mode
output          Tx_er                   ,
output          Tx_er                   ,
output          Tx_en                   ,
output          Tx_en                   ,
output  [7:0]   Txd                     ,
output  [7:0]   Txd                     ,
input           Rx_er                   ,
input           Rx_er                   ,
input           Rx_dv                   ,
input           Rx_dv                   ,
input   [7:0]   Rxd                     ,
input   [7:0]   Rxd                     ,
input           Crs                     ,
input           Crs                     ,
input           Col                     ,
input           Col                     ,
                //host interface
                //host interface
input           CSB                     ,
input           CSB                     ,
input           WRB                     ,
input           WRB                     ,
input   [15:0]  CD_in                   ,
input   [15:0]  CD_in                   ,
output  [15:0]  CD_out                  ,
output  [15:0]  CD_out                  ,
input   [7:0]   CA                      ,
input   [7:0]   CA                      ,
                //mdx
                //mdx
output          Mdo,                // MII Management Data Output
output          Mdo,                // MII Management Data Output
output          MdoEn,              // MII Management Data Output Enable
output          MdoEn,              // MII Management Data Output Enable
input           Mdi,
input           Mdi,
output          Mdc                      // MII Management Data Clock       
output          Mdc                      // MII Management Data Clock       
 
 
);
);
//******************************************************************************
//******************************************************************************
//internal signals                                                              
//internal signals                                                              
//******************************************************************************
//******************************************************************************
                //RMON interface
                //RMON interface
wire    [15:0]  Rx_pkt_length_rmon      ;
wire    [15:0]  Rx_pkt_length_rmon      ;
wire            Rx_apply_rmon           ;
wire            Rx_apply_rmon           ;
wire    [2:0]   Rx_pkt_err_type_rmon    ;
wire    [2:0]   Rx_pkt_err_type_rmon    ;
wire    [2:0]   Rx_pkt_type_rmon        ;
wire    [2:0]   Rx_pkt_type_rmon        ;
wire    [2:0]   Tx_pkt_type_rmon        ;
wire    [2:0]   Tx_pkt_type_rmon        ;
wire    [15:0]  Tx_pkt_length_rmon      ;
wire    [15:0]  Tx_pkt_length_rmon      ;
wire            Tx_apply_rmon           ;
wire            Tx_apply_rmon           ;
wire    [2:0]   Tx_pkt_err_type_rmon    ;
wire    [2:0]   Tx_pkt_err_type_rmon    ;
                //PHY interface
                //PHY interface
wire            MCrs_dv                 ;
wire            MCrs_dv                 ;
wire    [7:0]   MRxD                    ;
wire    [7:0]   MRxD                    ;
wire            MRxErr                  ;
wire            MRxErr                  ;
                //flow_control signals  
                //flow_control signals  
wire    [15:0]  pause_quanta            ;
wire    [15:0]  pause_quanta            ;
wire            pause_quanta_val        ;
wire            pause_quanta_val        ;
                //PHY interface
                //PHY interface
wire    [7:0]   MTxD                    ;
wire    [7:0]   MTxD                    ;
wire            MTxEn                   ;
wire            MTxEn                   ;
wire            MCRS                    ;
wire            MCRS                    ;
                //interface clk signals
                //interface clk signals
wire            MAC_tx_clk              ;
wire            MAC_tx_clk              ;
wire            MAC_rx_clk              ;
wire            MAC_rx_clk              ;
wire            MAC_tx_clk_div          ;
wire            MAC_tx_clk_div          ;
wire            MAC_rx_clk_div          ;
wire            MAC_rx_clk_div          ;
                //reg signals   
                //reg signals   
wire    [4:0]    Tx_Hwmark                               ;
wire    [4:0]    Tx_Hwmark                               ;
wire    [4:0]    Tx_Lwmark                               ;
wire    [4:0]    Tx_Lwmark                               ;
wire                    pause_frame_send_en             ;
wire                    pause_frame_send_en             ;
wire    [15:0]   pause_quanta_set                ;
wire    [15:0]   pause_quanta_set                ;
wire                    MAC_tx_add_en                   ;
wire                    MAC_tx_add_en                   ;
wire                    FullDuplex                      ;
wire                    FullDuplex                      ;
wire    [3:0]    MaxRetry                        ;
wire    [3:0]    MaxRetry                        ;
wire    [5:0]    IFGset                                  ;
wire    [5:0]    IFGset                                  ;
wire    [7:0]    MAC_tx_add_prom_data    ;
wire    [7:0]    MAC_tx_add_prom_data    ;
wire    [2:0]    MAC_tx_add_prom_add             ;
wire    [2:0]    MAC_tx_add_prom_add             ;
wire                    MAC_tx_add_prom_wr              ;
wire                    MAC_tx_add_prom_wr              ;
wire                    tx_pause_en                             ;
wire                    tx_pause_en                             ;
wire                    xoff_cpu                        ;
wire                    xoff_cpu                        ;
wire                    xon_cpu                 ;
wire                    xon_cpu                 ;
                        //Rx host interface      
                        //Rx host interface      
wire                    MAC_rx_add_chk_en               ;
wire                    MAC_rx_add_chk_en               ;
wire    [7:0]    MAC_rx_add_prom_data    ;
wire    [7:0]    MAC_rx_add_prom_data    ;
wire    [2:0]    MAC_rx_add_prom_add             ;
wire    [2:0]    MAC_rx_add_prom_add             ;
wire                    MAC_rx_add_prom_wr              ;
wire                    MAC_rx_add_prom_wr              ;
wire                    broadcast_filter_en         ;
wire                    broadcast_filter_en         ;
wire    [15:0]   broadcast_MAX           ;
wire    [15:0]   broadcast_MAX           ;
wire                    RX_APPEND_CRC                   ;
wire                    RX_APPEND_CRC                   ;
wire    [4:0]    Rx_Hwmark                           ;
wire    [4:0]    Rx_Hwmark                           ;
wire    [4:0]    Rx_Lwmark                           ;
wire    [4:0]    Rx_Lwmark                           ;
wire                    CRC_chk_en                              ;
wire                    CRC_chk_en                              ;
wire    [5:0]    RX_IFG_SET                              ;
wire    [5:0]    RX_IFG_SET                              ;
wire    [15:0]   RX_MAX_LENGTH                   ;
wire    [15:0]   RX_MAX_LENGTH                   ;
wire    [6:0]    RX_MIN_LENGTH                   ;
wire    [6:0]    RX_MIN_LENGTH                   ;
                                        //RMON host interface    
                                        //RMON host interface    
wire    [5:0]    CPU_rd_addr                             ;
wire    [5:0]    CPU_rd_addr                             ;
wire                    CPU_rd_apply                    ;
wire                    CPU_rd_apply                    ;
wire                    CPU_rd_grant                    ;
wire                    CPU_rd_grant                    ;
wire    [31:0]   CPU_rd_dout                             ;
wire    [31:0]   CPU_rd_dout                             ;
                                        //Phy int host interface 
                                        //Phy int host interface 
wire                    Line_loop_en                    ;
wire                    Line_loop_en                    ;
                                        //MII to CPU             
                                        //MII to CPU             
wire    [7:0]    Divider                         ;
wire    [7:0]    Divider                         ;
wire    [15:0]   CtrlData                        ;
wire    [15:0]   CtrlData                        ;
wire    [4:0]    Rgad                            ;
wire    [4:0]    Rgad                            ;
wire    [4:0]    Fiad                            ;
wire    [4:0]    Fiad                            ;
wire            NoPre                           ;
wire            NoPre                           ;
wire            WCtrlData                       ;
wire            WCtrlData                       ;
wire            RStat                           ;
wire            RStat                           ;
wire            ScanStat                        ;
wire            ScanStat                        ;
wire            Busy                            ;
wire            Busy                            ;
wire            LinkFail                        ;
wire            LinkFail                        ;
wire            Nvalid                          ;
wire            Nvalid                          ;
wire    [15:0]   Prsd                            ;
wire    [15:0]   Prsd                            ;
wire            WCtrlDataStart                  ;
wire            WCtrlDataStart                  ;
wire            RStatStart                      ;
wire            RStatStart                      ;
wire            UpdateMIIRX_DATAReg             ;
wire            UpdateMIIRX_DATAReg             ;
wire    [15:0]  broadcast_bucket_depth              ;
wire    [15:0]  broadcast_bucket_depth              ;
wire    [15:0]  broadcast_bucket_interval           ;
wire    [15:0]  broadcast_bucket_interval           ;
wire            Pkg_lgth_fifo_empty;
wire            Pkg_lgth_fifo_empty;
 
 
reg             rx_pkg_lgth_fifo_wr_tmp;
reg             rx_pkg_lgth_fifo_wr_tmp;
reg             rx_pkg_lgth_fifo_wr_tmp_pl1;
reg             rx_pkg_lgth_fifo_wr_tmp_pl1;
reg             rx_pkg_lgth_fifo_wr;
reg             rx_pkg_lgth_fifo_wr;
 
 
//******************************************************************************
//******************************************************************************
//internal signals                                                              
//internal signals                                                              
//******************************************************************************
//******************************************************************************
MAC_rx U_MAC_rx(
MAC_rx U_MAC_rx(
.Reset                      (Reset                      ),
.Reset                      (Reset                      ),
.Clk_user                   (Clk_user                   ),
.Clk_user                   (Clk_user                   ),
.Clk                        (MAC_rx_clk_div             ),
.Clk                        (MAC_rx_clk_div             ),
 //RMII interface           (//PHY interface            ),  
 //RMII interface           (//PHY interface            ),  
.MCrs_dv                    (MCrs_dv                    ),
.MCrs_dv                    (MCrs_dv                    ),
.MRxD                       (MRxD                       ),
.MRxD                       (MRxD                       ),
.MRxErr                     (MRxErr                     ),
.MRxErr                     (MRxErr                     ),
 //flow_control signals     (//flow_control signals     ),  
 //flow_control signals     (//flow_control signals     ),  
.pause_quanta               (pause_quanta               ),
.pause_quanta               (pause_quanta               ),
.pause_quanta_val           (pause_quanta_val           ),
.pause_quanta_val           (pause_quanta_val           ),
 //user interface           (//user interface           ),  
 //user interface           (//user interface           ),  
.Rx_mac_ra                  (Rx_mac_ra                  ),
.Rx_mac_ra                  (Rx_mac_ra                  ),
.Rx_mac_rd                  (Rx_mac_rd                  ),
.Rx_mac_rd                  (Rx_mac_rd                  ),
.Rx_mac_data                (Rx_mac_data                ),
.Rx_mac_data                (Rx_mac_data                ),
.Rx_mac_BE                  (Rx_mac_BE                  ),
.Rx_mac_BE                  (Rx_mac_BE                  ),
.Rx_mac_pa                  (Rx_mac_pa                  ),
.Rx_mac_pa                  (Rx_mac_pa                  ),
.Rx_mac_sop                 (Rx_mac_sop                 ),
.Rx_mac_sop                 (Rx_mac_sop                 ),
.Rx_mac_eop                 (Rx_mac_eop                 ),
.Rx_mac_eop                 (Rx_mac_eop                 ),
 //CPU                      (//CPU                      ),  
 //CPU                      (//CPU                      ),  
.MAC_rx_add_chk_en          (MAC_rx_add_chk_en          ),
.MAC_rx_add_chk_en          (MAC_rx_add_chk_en          ),
.MAC_add_prom_data          (MAC_rx_add_prom_data       ),
.MAC_add_prom_data          (MAC_rx_add_prom_data       ),
.MAC_add_prom_add           (MAC_rx_add_prom_add        ),
.MAC_add_prom_add           (MAC_rx_add_prom_add        ),
.MAC_add_prom_wr            (MAC_rx_add_prom_wr         ),
.MAC_add_prom_wr            (MAC_rx_add_prom_wr         ),
.broadcast_filter_en        (broadcast_filter_en        ),
.broadcast_filter_en        (broadcast_filter_en        ),
.broadcast_bucket_depth     (broadcast_bucket_depth     ),
.broadcast_bucket_depth     (broadcast_bucket_depth     ),
.broadcast_bucket_interval  (broadcast_bucket_interval  ),
.broadcast_bucket_interval  (broadcast_bucket_interval  ),
.RX_APPEND_CRC              (RX_APPEND_CRC              ),
.RX_APPEND_CRC              (RX_APPEND_CRC              ),
.Rx_Hwmark                  (Rx_Hwmark                  ),
.Rx_Hwmark                  (Rx_Hwmark                  ),
.Rx_Lwmark                  (Rx_Lwmark                  ),
.Rx_Lwmark                  (Rx_Lwmark                  ),
.CRC_chk_en                 (CRC_chk_en                 ),
.CRC_chk_en                 (CRC_chk_en                 ),
.RX_IFG_SET                 (RX_IFG_SET                 ),
.RX_IFG_SET                 (RX_IFG_SET                 ),
.RX_MAX_LENGTH              (RX_MAX_LENGTH              ),
.RX_MAX_LENGTH              (RX_MAX_LENGTH              ),
.RX_MIN_LENGTH              (RX_MIN_LENGTH              ),
.RX_MIN_LENGTH              (RX_MIN_LENGTH              ),
 //RMON interface           (//RMON interface           ),  
 //RMON interface           (//RMON interface           ),  
.Rx_pkt_length_rmon         (Rx_pkt_length_rmon         ),
.Rx_pkt_length_rmon         (Rx_pkt_length_rmon         ),
.Rx_apply_rmon              (Rx_apply_rmon              ),
.Rx_apply_rmon              (Rx_apply_rmon              ),
.Rx_pkt_err_type_rmon       (Rx_pkt_err_type_rmon       ),
.Rx_pkt_err_type_rmon       (Rx_pkt_err_type_rmon       ),
.Rx_pkt_type_rmon           (Rx_pkt_type_rmon           )
.Rx_pkt_type_rmon           (Rx_pkt_type_rmon           )
);
);
 
 
MAC_tx U_MAC_tx(
MAC_tx U_MAC_tx(
.Reset                      (Reset                      ),
.Reset                      (Reset                      ),
.Clk                        (MAC_tx_clk_div             ),
.Clk                        (MAC_tx_clk_div             ),
.Clk_user                   (Clk_user                   ),
.Clk_user                   (Clk_user                   ),
 //PHY interface            (//PHY interface            ),
 //PHY interface            (//PHY interface            ),
.TxD                        (MTxD                       ),
.TxD                        (MTxD                       ),
.TxEn                       (MTxEn                      ),
.TxEn                       (MTxEn                      ),
.CRS                        (MCRS                       ),
.CRS                        (MCRS                       ),
 //RMON                     (//RMON                     ),
 //RMON                     (//RMON                     ),
.Tx_pkt_type_rmon           (Tx_pkt_type_rmon           ),
.Tx_pkt_type_rmon           (Tx_pkt_type_rmon           ),
.Tx_pkt_length_rmon         (Tx_pkt_length_rmon         ),
.Tx_pkt_length_rmon         (Tx_pkt_length_rmon         ),
.Tx_apply_rmon              (Tx_apply_rmon              ),
.Tx_apply_rmon              (Tx_apply_rmon              ),
.Tx_pkt_err_type_rmon       (Tx_pkt_err_type_rmon       ),
.Tx_pkt_err_type_rmon       (Tx_pkt_err_type_rmon       ),
 //user interface           (//user interface           ),
 //user interface           (//user interface           ),
.Tx_mac_wa                  (Tx_mac_wa                  ),
.Tx_mac_wa                  (Tx_mac_wa                  ),
.Tx_mac_wr                  (Tx_mac_wr                  ),
.Tx_mac_wr                  (Tx_mac_wr                  ),
.Tx_mac_data                (Tx_mac_data                ),
.Tx_mac_data                (Tx_mac_data                ),
.Tx_mac_BE                  (Tx_mac_BE                  ),
.Tx_mac_BE                  (Tx_mac_BE                  ),
.Tx_mac_sop                 (Tx_mac_sop                 ),
.Tx_mac_sop                 (Tx_mac_sop                 ),
.Tx_mac_eop                 (Tx_mac_eop                 ),
.Tx_mac_eop                 (Tx_mac_eop                 ),
 //host interface           (//host interface           ),
 //host interface           (//host interface           ),
.Tx_Hwmark                  (Tx_Hwmark                  ),
.Tx_Hwmark                  (Tx_Hwmark                  ),
.Tx_Lwmark                  (Tx_Lwmark                  ),
.Tx_Lwmark                  (Tx_Lwmark                  ),
.pause_frame_send_en        (pause_frame_send_en        ),
.pause_frame_send_en        (pause_frame_send_en        ),
.pause_quanta_set           (pause_quanta_set           ),
.pause_quanta_set           (pause_quanta_set           ),
.MAC_tx_add_en              (MAC_tx_add_en              ),
.MAC_tx_add_en              (MAC_tx_add_en              ),
.FullDuplex                 (FullDuplex                 ),
.FullDuplex                 (FullDuplex                 ),
.MaxRetry                   (MaxRetry                   ),
.MaxRetry                   (MaxRetry                   ),
.IFGset                     (IFGset                     ),
.IFGset                     (IFGset                     ),
.MAC_add_prom_data          (MAC_tx_add_prom_data       ),
.MAC_add_prom_data          (MAC_tx_add_prom_data       ),
.MAC_add_prom_add           (MAC_tx_add_prom_add        ),
.MAC_add_prom_add           (MAC_tx_add_prom_add        ),
.MAC_add_prom_wr            (MAC_tx_add_prom_wr         ),
.MAC_add_prom_wr            (MAC_tx_add_prom_wr         ),
.tx_pause_en                (tx_pause_en                ),
.tx_pause_en                (tx_pause_en                ),
.xoff_cpu                   (xoff_cpu                   ),
.xoff_cpu                   (xoff_cpu                   ),
.xon_cpu                    (xon_cpu                    ),
.xon_cpu                    (xon_cpu                    ),
 //MAC_rx_flow              (//MAC_rx_flow              ),
 //MAC_rx_flow              (//MAC_rx_flow              ),
.pause_quanta               (pause_quanta               ),
.pause_quanta               (pause_quanta               ),
.pause_quanta_val           (pause_quanta_val           )
.pause_quanta_val           (pause_quanta_val           )
);
);
 
 
 
 
assign Pkg_lgth_fifo_ra=!Pkg_lgth_fifo_empty;
assign Pkg_lgth_fifo_ra=!Pkg_lgth_fifo_empty;
always @ (posedge Reset or posedge MAC_rx_clk_div)
always @ (posedge Reset or posedge MAC_rx_clk_div)
    if (Reset)
    if (Reset)
        rx_pkg_lgth_fifo_wr_tmp <=0;
        rx_pkg_lgth_fifo_wr_tmp <=0;
    else if(Rx_apply_rmon&&Rx_pkt_err_type_rmon==3'b100)
    else if(Rx_apply_rmon&&Rx_pkt_err_type_rmon==3'b100)
        rx_pkg_lgth_fifo_wr_tmp <=1;
        rx_pkg_lgth_fifo_wr_tmp <=1;
    else
    else
        rx_pkg_lgth_fifo_wr_tmp <=0;
        rx_pkg_lgth_fifo_wr_tmp <=0;
 
 
always @ (posedge Reset or posedge MAC_rx_clk_div)
always @ (posedge Reset or posedge MAC_rx_clk_div)
    if (Reset)
    if (Reset)
        rx_pkg_lgth_fifo_wr_tmp_pl1 <=0;
        rx_pkg_lgth_fifo_wr_tmp_pl1 <=0;
    else
    else
        rx_pkg_lgth_fifo_wr_tmp_pl1 <=rx_pkg_lgth_fifo_wr_tmp;
        rx_pkg_lgth_fifo_wr_tmp_pl1 <=rx_pkg_lgth_fifo_wr_tmp;
 
 
always @ (posedge Reset or posedge MAC_rx_clk_div)
always @ (posedge Reset or posedge MAC_rx_clk_div)
    if (Reset)
    if (Reset)
        rx_pkg_lgth_fifo_wr <=0;
        rx_pkg_lgth_fifo_wr <=0;
    else if(rx_pkg_lgth_fifo_wr_tmp&!rx_pkg_lgth_fifo_wr_tmp_pl1)
    else if(rx_pkg_lgth_fifo_wr_tmp&!rx_pkg_lgth_fifo_wr_tmp_pl1)
        rx_pkg_lgth_fifo_wr <=1;
        rx_pkg_lgth_fifo_wr <=1;
    else
    else
        rx_pkg_lgth_fifo_wr <=0;
        rx_pkg_lgth_fifo_wr <=0;
 
 
afifo U_rx_pkg_lgth_fifo (
afifo U_rx_pkg_lgth_fifo (
.din                        (RX_APPEND_CRC?Rx_pkt_length_rmon:Rx_pkt_length_rmon-4),
.din                        (RX_APPEND_CRC?Rx_pkt_length_rmon:Rx_pkt_length_rmon-4),
.wr_en                      (rx_pkg_lgth_fifo_wr        ),
.wr_en                      (rx_pkg_lgth_fifo_wr        ),
.wr_clk                     (MAC_rx_clk_div             ),
.wr_clk                     (MAC_rx_clk_div             ),
.rd_en                      (Pkg_lgth_fifo_rd           ),
.rd_en                      (Pkg_lgth_fifo_rd           ),
.rd_clk                     (Clk_user                   ),
.rd_clk                     (Clk_user                   ),
.ainit                      (Reset                      ),
.ainit                      (Reset                      ),
.dout                       (Pkg_lgth_fifo_data         ),
.dout                       (Pkg_lgth_fifo_data         ),
.full                       (                           ),
.full                       (                           ),
.almost_full                (                           ),
.almost_full                (                           ),
.empty                      (Pkg_lgth_fifo_empty        ),
.empty                      (Pkg_lgth_fifo_empty        ),
.wr_count                   (                           ),
.wr_count                   (                           ),
.rd_count                   (                           ),
.rd_count                   (                           ),
.rd_ack                     (                           ),
.rd_ack                     (                           ),
.wr_ack                     (                           ));
.wr_ack                     (                           ));
 
 
 
 
RMON U_RMON(
RMON U_RMON(
.Clk                        (Clk_reg                    ),
.Clk                        (Clk_reg                    ),
.Reset                      (Reset                      ),
.Reset                      (Reset                      ),
 //Tx_RMON                  (//Tx_RMON                  ),
 //Tx_RMON                  (//Tx_RMON                  ),
.Tx_pkt_type_rmon           (Tx_pkt_type_rmon           ),
.Tx_pkt_type_rmon           (Tx_pkt_type_rmon           ),
.Tx_pkt_length_rmon         (Tx_pkt_length_rmon         ),
.Tx_pkt_length_rmon         (Tx_pkt_length_rmon         ),
.Tx_apply_rmon              (Tx_apply_rmon              ),
.Tx_apply_rmon              (Tx_apply_rmon              ),
.Tx_pkt_err_type_rmon       (Tx_pkt_err_type_rmon       ),
.Tx_pkt_err_type_rmon       (Tx_pkt_err_type_rmon       ),
 //Tx_RMON                  (//Tx_RMON                  ),
 //Tx_RMON                  (//Tx_RMON                  ),
.Rx_pkt_type_rmon           (Rx_pkt_type_rmon           ),
.Rx_pkt_type_rmon           (Rx_pkt_type_rmon           ),
.Rx_pkt_length_rmon         (Rx_pkt_length_rmon         ),
.Rx_pkt_length_rmon         (Rx_pkt_length_rmon         ),
.Rx_apply_rmon              (Rx_apply_rmon              ),
.Rx_apply_rmon              (Rx_apply_rmon              ),
.Rx_pkt_err_type_rmon       (Rx_pkt_err_type_rmon       ),
.Rx_pkt_err_type_rmon       (Rx_pkt_err_type_rmon       ),
 //CPU                      (//CPU                      ),
 //CPU                      (//CPU                      ),
.CPU_rd_addr                (CPU_rd_addr                ),
.CPU_rd_addr                (CPU_rd_addr                ),
.CPU_rd_apply               (CPU_rd_apply               ),
.CPU_rd_apply               (CPU_rd_apply               ),
.CPU_rd_grant               (CPU_rd_grant               ),
.CPU_rd_grant               (CPU_rd_grant               ),
.CPU_rd_dout                (CPU_rd_dout                )
.CPU_rd_dout                (CPU_rd_dout                )
);
);
 
 
Phy_int U_Phy_int(
Phy_int U_Phy_int(
.Reset                      (Reset                      ),
.Reset                      (Reset                      ),
.MAC_rx_clk                 (MAC_rx_clk                 ),
.MAC_rx_clk                 (MAC_rx_clk                 ),
.MAC_tx_clk                 (MAC_tx_clk                 ),
.MAC_tx_clk                 (MAC_tx_clk                 ),
 //Rx interface             (//Rx interface             ),
 //Rx interface             (//Rx interface             ),
.MCrs_dv                    (MCrs_dv                    ),
.MCrs_dv                    (MCrs_dv                    ),
.MRxD                       (MRxD                       ),
.MRxD                       (MRxD                       ),
.MRxErr                     (MRxErr                     ),
.MRxErr                     (MRxErr                     ),
 //Tx interface             (//Tx interface             ),
 //Tx interface             (//Tx interface             ),
.MTxD                       (MTxD                       ),
.MTxD                       (MTxD                       ),
.MTxEn                      (MTxEn                      ),
.MTxEn                      (MTxEn                      ),
.MCRS                       (MCRS                       ),
.MCRS                       (MCRS                       ),
 //Phy interface            (//Phy interface            ),
 //Phy interface            (//Phy interface            ),
.Tx_er                      (Tx_er                      ),
.Tx_er                      (Tx_er                      ),
.Tx_en                      (Tx_en                      ),
.Tx_en                      (Tx_en                      ),
.Txd                        (Txd                        ),
.Txd                        (Txd                        ),
.Rx_er                      (Rx_er                      ),
.Rx_er                      (Rx_er                      ),
.Rx_dv                      (Rx_dv                      ),
.Rx_dv                      (Rx_dv                      ),
.Rxd                        (Rxd                        ),
.Rxd                        (Rxd                        ),
.Crs                        (Crs                        ),
.Crs                        (Crs                        ),
.Col                        (Col                        ),
.Col                        (Col                        ),
 //host interface           (//host interface           ),
 //host interface           (//host interface           ),
.Line_loop_en               (Line_loop_en               ),
.Line_loop_en               (Line_loop_en               ),
.Speed                      (Speed                      )
.Speed                      (Speed                      )
);
);
 
 
Clk_ctrl U_Clk_ctrl(
Clk_ctrl U_Clk_ctrl(
.Reset                      (Reset                      ),
.Reset                      (Reset                      ),
.Clk_125M                   (Clk_125M                   ),
.Clk_125M                   (Clk_125M                   ),
 //host interface           (//host interface           ),
 //host interface           (//host interface           ),
.Speed                      (Speed                      ),
.Speed                      (Speed                      ),
 //Phy interface            (//Phy interface            ),
 //Phy interface            (//Phy interface            ),
.Gtx_clk                    (Gtx_clk                    ),
.Gtx_clk                    (Gtx_clk                    ),
.Rx_clk                     (Rx_clk                     ),
.Rx_clk                     (Rx_clk                     ),
.Tx_clk                     (Tx_clk                     ),
.Tx_clk                     (Tx_clk                     ),
 //interface clk            (//interface clk            ),
 //interface clk            (//interface clk            ),
.MAC_tx_clk                 (MAC_tx_clk                 ),
.MAC_tx_clk                 (MAC_tx_clk                 ),
.MAC_rx_clk                 (MAC_rx_clk                 ),
.MAC_rx_clk                 (MAC_rx_clk                 ),
.MAC_tx_clk_div             (MAC_tx_clk_div             ),
.MAC_tx_clk_div             (MAC_tx_clk_div             ),
.MAC_rx_clk_div             (MAC_rx_clk_div             )
.MAC_rx_clk_div             (MAC_rx_clk_div             )
);
);
 
 
eth_miim U_eth_miim(
eth_miim U_eth_miim(
.Clk                        (Clk_reg                    ),
.Clk                        (Clk_reg                    ),
.Reset                      (Reset                      ),
.Reset                      (Reset                      ),
.Divider                    (Divider                    ),
.Divider                    (Divider                    ),
.NoPre                      (NoPre                      ),
.NoPre                      (NoPre                      ),
.CtrlData                   (CtrlData                   ),
.CtrlData                   (CtrlData                   ),
.Rgad                       (Rgad                       ),
.Rgad                       (Rgad                       ),
.Fiad                       (Fiad                       ),
.Fiad                       (Fiad                       ),
.WCtrlData                  (WCtrlData                  ),
.WCtrlData                  (WCtrlData                  ),
.RStat                      (RStat                      ),
.RStat                      (RStat                      ),
.ScanStat                   (ScanStat                   ),
.ScanStat                   (ScanStat                   ),
.Mdo                        (Mdo                        ),
.Mdo                        (Mdo                        ),
.MdoEn                      (MdoEn                      ),
.MdoEn                      (MdoEn                      ),
.Mdi                        (Mdi                        ),
.Mdi                        (Mdi                        ),
.Mdc                        (Mdc                        ),
.Mdc                        (Mdc                        ),
.Busy                       (Busy                       ),
.Busy                       (Busy                       ),
.Prsd                       (Prsd                       ),
.Prsd                       (Prsd                       ),
.LinkFail                   (LinkFail                   ),
.LinkFail                   (LinkFail                   ),
.Nvalid                     (Nvalid                     ),
.Nvalid                     (Nvalid                     ),
.WCtrlDataStart             (WCtrlDataStart             ),
.WCtrlDataStart             (WCtrlDataStart             ),
.RStatStart                 (RStatStart                 ),
.RStatStart                 (RStatStart                 ),
.UpdateMIIRX_DATAReg        (UpdateMIIRX_DATAReg        ));
.UpdateMIIRX_DATAReg        (UpdateMIIRX_DATAReg        ));
 
 
Reg_int U_Reg_int(
Reg_int U_Reg_int(
.Reset                          (Reset                          ),
.Reset                          (Reset                          ),
.Clk_reg                        (Clk_reg                        ),
.Clk_reg                        (Clk_reg                        ),
.CSB                        (CSB                        ),
.CSB                        (CSB                        ),
.WRB                        (WRB                        ),
.WRB                        (WRB                        ),
.CD_in                      (CD_in                      ),
.CD_in                      (CD_in                      ),
.CD_out                     (CD_out                     ),
.CD_out                     (CD_out                     ),
.CA                         (CA                         ),
.CA                         (CA                         ),
 //Tx host interface        (//Tx host interface        ),
 //Tx host interface        (//Tx host interface        ),
.Tx_Hwmark                                  (Tx_Hwmark                              ),
.Tx_Hwmark                                  (Tx_Hwmark                              ),
.Tx_Lwmark                                  (Tx_Lwmark                              ),
.Tx_Lwmark                                  (Tx_Lwmark                              ),
.pause_frame_send_en            (pause_frame_send_en            ),
.pause_frame_send_en            (pause_frame_send_en            ),
.pause_quanta_set                   (pause_quanta_set               ),
.pause_quanta_set                   (pause_quanta_set               ),
.MAC_tx_add_en                      (MAC_tx_add_en                          ),
.MAC_tx_add_en                      (MAC_tx_add_en                          ),
.FullDuplex                     (FullDuplex                     ),
.FullDuplex                     (FullDuplex                     ),
.MaxRetry                           (MaxRetry                       ),
.MaxRetry                           (MaxRetry                       ),
.IFGset                                     (IFGset                                         ),
.IFGset                                     (IFGset                                         ),
.MAC_tx_add_prom_data       (MAC_tx_add_prom_data           ),
.MAC_tx_add_prom_data       (MAC_tx_add_prom_data           ),
.MAC_tx_add_prom_add            (MAC_tx_add_prom_add            ),
.MAC_tx_add_prom_add            (MAC_tx_add_prom_add            ),
.MAC_tx_add_prom_wr                 (MAC_tx_add_prom_wr             ),
.MAC_tx_add_prom_wr                 (MAC_tx_add_prom_wr             ),
.tx_pause_en                            (tx_pause_en                            ),
.tx_pause_en                            (tx_pause_en                            ),
.xoff_cpu                           (xoff_cpu                       ),
.xoff_cpu                           (xoff_cpu                       ),
.xon_cpu                        (xon_cpu                        ),
.xon_cpu                        (xon_cpu                        ),
 //Rx host interface        (//Rx host interface            ),
 //Rx host interface        (//Rx host interface            ),
.MAC_rx_add_chk_en                  (MAC_rx_add_chk_en              ),
.MAC_rx_add_chk_en                  (MAC_rx_add_chk_en              ),
.MAC_rx_add_prom_data       (MAC_rx_add_prom_data           ),
.MAC_rx_add_prom_data       (MAC_rx_add_prom_data           ),
.MAC_rx_add_prom_add            (MAC_rx_add_prom_add            ),
.MAC_rx_add_prom_add            (MAC_rx_add_prom_add            ),
.MAC_rx_add_prom_wr                 (MAC_rx_add_prom_wr             ),
.MAC_rx_add_prom_wr                 (MAC_rx_add_prom_wr             ),
.broadcast_filter_en        (broadcast_filter_en            ),
.broadcast_filter_en        (broadcast_filter_en            ),
.broadcast_bucket_depth     (broadcast_bucket_depth     ),
.broadcast_bucket_depth     (broadcast_bucket_depth     ),
.broadcast_bucket_interval  (broadcast_bucket_interval  ),
.broadcast_bucket_interval  (broadcast_bucket_interval  ),
.RX_APPEND_CRC                      (RX_APPEND_CRC                          ),
.RX_APPEND_CRC                      (RX_APPEND_CRC                          ),
.Rx_Hwmark                              (Rx_Hwmark                                      ),
.Rx_Hwmark                              (Rx_Hwmark                                      ),
.Rx_Lwmark                  (Rx_Lwmark                  ),
.Rx_Lwmark                  (Rx_Lwmark                  ),
.CRC_chk_en                                 (CRC_chk_en                             ),
.CRC_chk_en                                 (CRC_chk_en                             ),
.RX_IFG_SET                                 (RX_IFG_SET                             ),
.RX_IFG_SET                                 (RX_IFG_SET                             ),
.RX_MAX_LENGTH                      (RX_MAX_LENGTH                          ),
.RX_MAX_LENGTH                      (RX_MAX_LENGTH                          ),
.RX_MIN_LENGTH                      (RX_MIN_LENGTH                          ),
.RX_MIN_LENGTH                      (RX_MIN_LENGTH                          ),
 //RMON host interface      (//RMON host interface      ),
 //RMON host interface      (//RMON host interface      ),
.CPU_rd_addr                            (CPU_rd_addr                            ),
.CPU_rd_addr                            (CPU_rd_addr                            ),
.CPU_rd_apply                       (CPU_rd_apply                           ),
.CPU_rd_apply                       (CPU_rd_apply                           ),
.CPU_rd_grant                       (CPU_rd_grant                           ),
.CPU_rd_grant                       (CPU_rd_grant                           ),
.CPU_rd_dout                            (CPU_rd_dout                            ),
.CPU_rd_dout                            (CPU_rd_dout                            ),
 //Phy int host interface   (//Phy int host interface   ),
 //Phy int host interface   (//Phy int host interface   ),
.Line_loop_en                       (Line_loop_en                           ),
.Line_loop_en                       (Line_loop_en                           ),
.Speed                                      (Speed                                          ),
.Speed                                      (Speed                                          ),
 //MII to CPU               (//MII to CPU               ),
 //MII to CPU               (//MII to CPU               ),
.Divider                        (Divider                        ),
.Divider                        (Divider                        ),
.CtrlData                       (CtrlData                       ),
.CtrlData                       (CtrlData                       ),
.Rgad                           (Rgad                           ),
.Rgad                           (Rgad                           ),
.Fiad                           (Fiad                           ),
.Fiad                           (Fiad                           ),
.NoPre                          (NoPre                          ),
.NoPre                          (NoPre                          ),
.WCtrlData                      (WCtrlData                      ),
.WCtrlData                      (WCtrlData                      ),
.RStat                          (RStat                          ),
.RStat                          (RStat                          ),
.ScanStat                       (ScanStat                       ),
.ScanStat                       (ScanStat                       ),
.Busy                           (Busy                           ),
.Busy                           (Busy                           ),
.LinkFail                       (LinkFail                       ),
.LinkFail                       (LinkFail                       ),
.Nvalid                         (Nvalid                         ),
.Nvalid                         (Nvalid                         ),
.Prsd                           (Prsd                           ),
.Prsd                           (Prsd                           ),
.WCtrlDataStart                 (WCtrlDataStart                 ),
.WCtrlDataStart                 (WCtrlDataStart                 ),
.RStatStart                     (RStatStart                     ),
.RStatStart                     (RStatStart                     ),
.UpdateMIIRX_DATAReg            (UpdateMIIRX_DATAReg            )
.UpdateMIIRX_DATAReg            (UpdateMIIRX_DATAReg            )
);
);
 
 
endmodule
endmodule
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

powered by: WebSVN 2.1.0

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