| 1 | 2 | antanguay | //////////////////////////////////////////////////////////////////////
 | 
      
         | 2 |  |  | ////                                                              ////
 | 
      
         | 3 |  |  | ////  File name "tx_data_fifo.v"                                  ////
 | 
      
         | 4 |  |  | ////                                                              ////
 | 
      
         | 5 |  |  | ////  This file is part of the "10GE MAC" project                 ////
 | 
      
         | 6 |  |  | ////  http://www.opencores.org/cores/xge_mac/                     ////
 | 
      
         | 7 |  |  | ////                                                              ////
 | 
      
         | 8 |  |  | ////  Author(s):                                                  ////
 | 
      
         | 9 |  |  | ////      - A. Tanguay (antanguay@opencores.org)                  ////
 | 
      
         | 10 |  |  | ////                                                              ////
 | 
      
         | 11 |  |  | //////////////////////////////////////////////////////////////////////
 | 
      
         | 12 |  |  | ////                                                              ////
 | 
      
         | 13 |  |  | //// Copyright (C) 2008 AUTHORS. All rights reserved.             ////
 | 
      
         | 14 |  |  | ////                                                              ////
 | 
      
         | 15 |  |  | //// This source file may be used and distributed without         ////
 | 
      
         | 16 |  |  | //// restriction provided that this copyright statement is not    ////
 | 
      
         | 17 |  |  | //// removed from the file and that any derivative work contains  ////
 | 
      
         | 18 |  |  | //// the original copyright notice and the associated disclaimer. ////
 | 
      
         | 19 |  |  | ////                                                              ////
 | 
      
         | 20 |  |  | //// This source file is free software; you can redistribute it   ////
 | 
      
         | 21 |  |  | //// and/or modify it under the terms of the GNU Lesser General   ////
 | 
      
         | 22 |  |  | //// Public License as published by the Free Software Foundation; ////
 | 
      
         | 23 |  |  | //// either version 2.1 of the License, or (at your option) any   ////
 | 
      
         | 24 |  |  | //// later version.                                               ////
 | 
      
         | 25 |  |  | ////                                                              ////
 | 
      
         | 26 |  |  | //// This source is distributed in the hope that it will be       ////
 | 
      
         | 27 |  |  | //// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
 | 
      
         | 28 |  |  | //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
 | 
      
         | 29 |  |  | //// PURPOSE.  See the GNU Lesser General Public License for more ////
 | 
      
         | 30 |  |  | //// details.                                                     ////
 | 
      
         | 31 |  |  | ////                                                              ////
 | 
      
         | 32 |  |  | //// You should have received a copy of the GNU Lesser General    ////
 | 
      
         | 33 |  |  | //// Public License along with this source; if not, download it   ////
 | 
      
         | 34 |  |  | //// from http://www.opencores.org/lgpl.shtml                     ////
 | 
      
         | 35 |  |  | ////                                                              ////
 | 
      
         | 36 |  |  | //////////////////////////////////////////////////////////////////////
 | 
      
         | 37 |  |  |  
 | 
      
         | 38 |  |  |  
 | 
      
         | 39 |  |  | `include "defines.v"
 | 
      
         | 40 |  |  |  
 | 
      
         | 41 |  |  | module tx_data_fifo(/*AUTOARG*/
 | 
      
         | 42 |  |  |   // Outputs
 | 
      
         | 43 |  |  |   txdfifo_wfull, txdfifo_walmost_full, txdfifo_rdata,
 | 
      
         | 44 |  |  |   txdfifo_rstatus, txdfifo_rempty, txdfifo_ralmost_empty,
 | 
      
         | 45 |  |  |   // Inputs
 | 
      
         | 46 |  |  |   clk_xgmii_tx, clk_156m25, reset_xgmii_tx_n, reset_156m25_n,
 | 
      
         | 47 |  |  |   txdfifo_wdata, txdfifo_wstatus, txdfifo_wen, txdfifo_ren
 | 
      
         | 48 |  |  |   );
 | 
      
         | 49 |  |  |  
 | 
      
         | 50 |  |  | input         clk_xgmii_tx;
 | 
      
         | 51 |  |  | input         clk_156m25;
 | 
      
         | 52 |  |  | input         reset_xgmii_tx_n;
 | 
      
         | 53 |  |  | input         reset_156m25_n;
 | 
      
         | 54 |  |  |  
 | 
      
         | 55 |  |  | input [63:0]  txdfifo_wdata;
 | 
      
         | 56 |  |  | input [7:0]   txdfifo_wstatus;
 | 
      
         | 57 |  |  | input         txdfifo_wen;
 | 
      
         | 58 |  |  |  
 | 
      
         | 59 |  |  | input         txdfifo_ren;
 | 
      
         | 60 |  |  |  
 | 
      
         | 61 |  |  | output        txdfifo_wfull;
 | 
      
         | 62 |  |  | output        txdfifo_walmost_full;
 | 
      
         | 63 |  |  |  
 | 
      
         | 64 |  |  | output [63:0] txdfifo_rdata;
 | 
      
         | 65 |  |  | output [7:0]  txdfifo_rstatus;
 | 
      
         | 66 |  |  | output        txdfifo_rempty;
 | 
      
         | 67 |  |  | output        txdfifo_ralmost_empty;
 | 
      
         | 68 |  |  |  
 | 
      
         | 69 |  |  | generic_fifo #(
 | 
      
         | 70 |  |  |   .DWIDTH (72),
 | 
      
         | 71 |  |  |   .AWIDTH (`TX_DATA_FIFO_AWIDTH),
 | 
      
         | 72 | 6 | antanguay |   .REGISTER_READ (1),
 | 
      
         | 73 | 2 | antanguay |   .EARLY_READ (1),
 | 
      
         | 74 |  |  |   .CLOCK_CROSSING (1),
 | 
      
         | 75 |  |  |   .ALMOST_EMPTY_THRESH (7),
 | 
      
         | 76 |  |  |   .ALMOST_FULL_THRESH (12),
 | 
      
         | 77 |  |  |   .MEM_TYPE (`MEM_AUTO_MEDIUM)
 | 
      
         | 78 |  |  | )
 | 
      
         | 79 |  |  | fifo0(
 | 
      
         | 80 |  |  |     .wclk (clk_156m25),
 | 
      
         | 81 |  |  |     .wrst_n (reset_156m25_n),
 | 
      
         | 82 |  |  |     .wen (txdfifo_wen),
 | 
      
         | 83 |  |  |     .wdata ({txdfifo_wstatus, txdfifo_wdata}),
 | 
      
         | 84 |  |  |     .wfull (txdfifo_wfull),
 | 
      
         | 85 |  |  |     .walmost_full (txdfifo_walmost_full),
 | 
      
         | 86 |  |  |  
 | 
      
         | 87 |  |  |     .rclk (clk_xgmii_tx),
 | 
      
         | 88 |  |  |     .rrst_n (reset_xgmii_tx_n),
 | 
      
         | 89 |  |  |     .ren (txdfifo_ren),
 | 
      
         | 90 |  |  |     .rdata ({txdfifo_rstatus, txdfifo_rdata}),
 | 
      
         | 91 |  |  |     .rempty (txdfifo_rempty),
 | 
      
         | 92 |  |  |     .ralmost_empty (txdfifo_ralmost_empty)
 | 
      
         | 93 |  |  | );
 | 
      
         | 94 |  |  |  
 | 
      
         | 95 |  |  | endmodule
 | 
      
         | 96 |  |  |  
 |