OpenCores
URL https://opencores.org/ocsvn/fpga-cf/fpga-cf/trunk

Subversion Repositories fpga-cf

[/] [fpga-cf/] [trunk/] [hdl/] [boardsupport/] [v5/] [eth_fifo_8.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 peteralieb
//-----------------------------------------------------------------------------
2
// Title      : 10/100/1G Ethernet FIFO for 8-bit client I/F
3
// Project    : Virtex-5 Ethernet MAC Wrappers
4
//-----------------------------------------------------------------------------
5
// File       : eth_fifo_8.v
6
// Author     : Xilinx
7
//-----------------------------------------------------------------------------
8
// Copyright (c) 2004-2008 by Xilinx, Inc. All rights reserved.
9
// This text/file contains proprietary, confidential
10
// information of Xilinx, Inc., is distributed under license
11
// from Xilinx, Inc., and may be used, copied and/or
12
// disclosed only pursuant to the terms of a valid license
13
// agreement with Xilinx, Inc. Xilinx hereby grants you
14
// a license to use this text/file solely for design, simulation,
15
// implementation and creation of design files limited
16
// to Xilinx devices or technologies. Use with non-Xilinx
17
// devices or technologies is expressly prohibited and
18
// immediately terminates your license unless covered by
19
// a separate agreement.
20
//
21
// Xilinx is providing this design, code, or information
22
// "as is" solely for use in developing programs and
23
// solutions for Xilinx devices. By providing this design,
24
// code, or information as one possible implementation of
25
// this feature, application or standard, Xilinx is making no
26
// representation that this implementation is free from any
27
// claims of infringement. You are responsible for
28
// obtaining any rights you may require for your implementation.
29
// Xilinx expressly disclaims any warranty whatsoever with
30
// respect to the adequacy of the implementation, including
31
// but not limited to any warranties or representations that this
32
// implementation is free from claims of infringement, implied
33
// warranties of merchantability or fitness for a particular
34
// purpose.
35
//
36
// Xilinx products are not intended for use in life support
37
// appliances, devices, or systems. Use in such applications are
38
// expressly prohibited.
39
//
40
// This copyright and support notice must be retained as part
41
// of this text at all times. (c) Copyright 2004-2008 Xilinx, Inc.
42
// All rights reserved.
43
//-----------------------------------------------------------------------------
44
// Description: This is the top level wrapper for the 10/100/1G Ethernet FIFO.
45
//              The top level wrapper consists of individual fifos on the 
46
//              transmitter path and on the receiver path.
47
//
48
//              Each path consists of an 8 bit local link to 8 bit client
49
//              interface FIFO.
50
//-----------------------------------------------------------------------------
51
 
52
 
53
`timescale 1ps / 1ps
54
 
55
 
56
module eth_fifo_8
57
    (
58
        // Transmit FIFO MAC TX Interface
59
        tx_clk,              // MAC transmit clock
60
        tx_reset,            // Synchronous reset (tx_clk)
61
        tx_enable,           // Clock enable for tx_clk
62
        tx_data,             // Data to MAC transmitter
63
        tx_data_valid,       // Valid signal to MAC transmitter
64
        tx_ack,              // Ack signal from MAC transmitter
65
        tx_underrun,         // Underrun signal to MAC transmitter
66
        tx_collision,        // Collsion signal from MAC transmitter
67
        tx_retransmit,       // Retransmit signal from MAC transmitter
68
 
69
        // Transmit FIFO Local-link Interface
70
        tx_ll_clock,         // Local link write clock
71
        tx_ll_reset,         // synchronous reset (tx_ll_clock)
72
        tx_ll_data_in,       // Data to Tx FIFO
73
        tx_ll_sof_in_n,      // sof indicator to FIFO
74
        tx_ll_eof_in_n,      // eof indicator to FIFO
75
        tx_ll_src_rdy_in_n,  // src ready indicator to FIFO
76
        tx_ll_dst_rdy_out_n, // dst ready indicator from FIFO
77
        tx_fifo_status,      // FIFO memory status
78
        tx_overflow,         // FIFO overflow indicator from FIFO
79
 
80
        // Receive FIFO MAC RX Interface
81
        rx_clk,              // MAC receive clock 
82
        rx_reset,            // Synchronous reset (rx_clk)
83
        rx_enable,           // Clock enable for rx_clk
84
        rx_data,             // Data from MAC receiver
85
        rx_data_valid,       // Valid signal from MAC receiver
86
        rx_good_frame,       // Good frame indicator from MAC receiver
87
        rx_bad_frame,        // Bad frame indicator from MAC receiver
88
        rx_overflow,         // FIFO overflow indicator from FIFO
89
 
90
        // Receive FIFO Local-link Interface
91
        rx_ll_clock,         // Local link read clock
92
        rx_ll_reset,         // synchronous reset (rx_ll_clock)
93
        rx_ll_data_out,      // Data from Rx FIFO
94
        rx_ll_sof_out_n,     // sof indicator from FIFO
95
        rx_ll_eof_out_n,     // eof indicator from FIFO
96
        rx_ll_src_rdy_out_n, // src ready indicator from FIFO
97
        rx_ll_dst_rdy_in_n,  // dst ready indicator to FIFO
98
        rx_fifo_status       // FIFO memory status
99
        );
100
 
101
  //---------------------------------------------------------------------------
102
  // Define Interface Signals
103
  //---------------------------------------------------------------------------
104
 
105
   parameter FULL_DUPLEX_ONLY = 0;
106
 
107
   // Transmit FIFO MAC TX Interface
108
   input        tx_clk;
109
   input        tx_reset;
110
   input        tx_enable;
111
   output [7:0] tx_data;
112
   output       tx_data_valid;
113
   input        tx_ack;
114
   output       tx_underrun;
115
   input        tx_collision;
116
   input        tx_retransmit;
117
 
118
   // Transmit FIFO Local-link Interface  
119
   input        tx_ll_clock;
120
   input        tx_ll_reset;
121
   input  [7:0]  tx_ll_data_in;
122
   input        tx_ll_sof_in_n;
123
   input        tx_ll_eof_in_n;
124
   input        tx_ll_src_rdy_in_n;
125
   output       tx_ll_dst_rdy_out_n;
126
   output [3:0] tx_fifo_status;
127
   output       tx_overflow;
128
 
129
   // Receive FIFO MAC RX Interface   
130
   input        rx_clk;
131
   input        rx_reset;
132
   input        rx_enable;
133
   input [7:0]   rx_data;
134
   input        rx_data_valid;
135
   input        rx_good_frame;
136
   input        rx_bad_frame;
137
   output       rx_overflow;
138
 
139
   // Receive FIFO Local-link Interface
140
   input        rx_ll_clock;
141
   input        rx_ll_reset;
142
   output [7:0] rx_ll_data_out;
143
   output       rx_ll_sof_out_n;
144
   output       rx_ll_eof_out_n;
145
   output       rx_ll_src_rdy_out_n;
146
   input        rx_ll_dst_rdy_in_n;
147
   output [3:0] rx_fifo_status;
148
 
149
 
150
 
151
   assign tx_underrun = 1'b0;
152
 
153
   // Transmitter FIFO
154
   defparam tx_fifo_i.FULL_DUPLEX_ONLY = FULL_DUPLEX_ONLY;
155
   tx_client_fifo_8 tx_fifo_i (
156
        .rd_clk           (tx_clk),
157
        .rd_sreset        (tx_reset),
158
        .rd_enable        (tx_enable),
159
        .tx_data          (tx_data),
160
        .tx_data_valid    (tx_data_valid),
161
        .tx_ack           (tx_ack),
162
        .tx_collision     (tx_collision),
163
        .tx_retransmit    (tx_retransmit),
164
        .overflow         (tx_overflow),
165
        .wr_clk           (tx_ll_clock),
166
        .wr_sreset        (tx_ll_reset),
167
        .wr_data          (tx_ll_data_in),
168
        .wr_sof_n         (tx_ll_sof_in_n),
169
        .wr_eof_n         (tx_ll_eof_in_n),
170
        .wr_src_rdy_n     (tx_ll_src_rdy_in_n),
171
        .wr_dst_rdy_n     (tx_ll_dst_rdy_out_n),
172
        .wr_fifo_status   (tx_fifo_status)
173
        );
174
 
175
 
176
   // Receiver FIFO
177
   rx_client_fifo_8 rx_fifo_i (
178
        .wr_clk          (rx_clk),
179
        .wr_enable       (rx_enable),
180
        .wr_sreset       (rx_reset),
181
        .rx_data         (rx_data),
182
        .rx_data_valid   (rx_data_valid),
183
        .rx_good_frame   (rx_good_frame),
184
        .rx_bad_frame    (rx_bad_frame),
185
        .overflow        (rx_overflow),
186
        .rd_clk          (rx_ll_clock),
187
        .rd_sreset       (rx_ll_reset),
188
        .rd_data_out     (rx_ll_data_out),
189
        .rd_sof_n        (rx_ll_sof_out_n),
190
        .rd_eof_n        (rx_ll_eof_out_n),
191
        .rd_src_rdy_n    (rx_ll_src_rdy_out_n),
192
        .rd_dst_rdy_n    (rx_ll_dst_rdy_in_n),
193
        .rx_fifo_status  (rx_fifo_status)
194
        );
195
 
196
endmodule

powered by: WebSVN 2.1.0

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