OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [rtl/] [src_peripheral/] [ethmac/] [ethtop.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
 
2
 
3
 
4
`include "ethmac_defines.v"
5
`include "timescale.v"
6
 
7
 
8
module ethtop
9
(
10
  // WISHBONE common
11
  wb_clk_i, wb_rst_i, wb_dat_i, wb_dat_o,
12
 
13
  // WISHBONE slave
14
  wb_adr_i, wb_sel_i, wb_we_i, wb_cyc_i, wb_stb_i, wb_ack_o, wb_err_o,
15
 
16
  // WISHBONE master
17
  m_wb_adr_o, m_wb_sel_o, m_wb_we_o,
18
  m_wb_dat_o, m_wb_dat_i, m_wb_cyc_o,
19
  m_wb_stb_o, m_wb_ack_i, m_wb_err_i,
20
 
21
`ifdef ETH_WISHBONE_B3
22
  m_wb_cti_o, m_wb_bte_o,
23
`endif
24
 
25
  //TX
26
  mtx_clk_pad_i, mtxd_pad_o, mtxen_pad_o, mtxerr_pad_o,
27
 
28
  //RX
29
  mrx_clk_pad_i, mrxd_pad_i, mrxdv_pad_i, mrxerr_pad_i, mcoll_pad_i, mcrs_pad_i,
30
 
31
  // MIIM
32
  mdc_pad_o, md_pad_i, md_pad_o, md_padoe_o,
33
 
34
  int_o
35
 
36
  // Bist
37
`ifdef ETH_BIST
38
  ,
39
  // debug chain signals
40
  mbist_si_i,       // bist scan serial in
41
  mbist_so_o,       // bist scan serial out
42
  mbist_ctrl_i        // bist chain shift control
43
`endif
44
 
45
);
46
 
47
 
48
parameter TX_FIFO_DATA_WIDTH = `ETH_TX_FIFO_DATA_WIDTH;
49
parameter TX_FIFO_DEPTH      = `ETH_TX_FIFO_DEPTH;
50
parameter TX_FIFO_CNT_WIDTH  = `ETH_TX_FIFO_CNT_WIDTH;
51
parameter RX_FIFO_DATA_WIDTH = `ETH_RX_FIFO_DATA_WIDTH;
52
parameter RX_FIFO_DEPTH      = `ETH_RX_FIFO_DEPTH;
53
parameter RX_FIFO_CNT_WIDTH  = `ETH_RX_FIFO_CNT_WIDTH;
54
 
55
 
56
// WISHBONE common
57
input           wb_clk_i;     // WISHBONE clock
58
input           wb_rst_i;     // WISHBONE reset
59
input   [31:0]  wb_dat_i;     // WISHBONE data input
60
output  [31:0]  wb_dat_o;     // WISHBONE data output
61
output          wb_err_o;     // WISHBONE error output
62
 
63
// WISHBONE slave
64
input   [9:0]  wb_adr_i;     // WISHBONE address input
65
input    [3:0]  wb_sel_i;     // WISHBONE byte select input
66
input           wb_we_i;      // WISHBONE write enable input
67
input           wb_cyc_i;     // WISHBONE cycle input
68
input           wb_stb_i;     // WISHBONE strobe input
69
output          wb_ack_o;     // WISHBONE acknowledge output
70
 
71
// WISHBONE master
72
output  [31:0]  m_wb_adr_o;
73
output   [3:0]  m_wb_sel_o;
74
output          m_wb_we_o;
75
input   [31:0]  m_wb_dat_i;
76
output  [31:0]  m_wb_dat_o;
77
output          m_wb_cyc_o;
78
output          m_wb_stb_o;
79
input           m_wb_ack_i;
80
input           m_wb_err_i;
81
 
82
wire    [29:0]  m_wb_adr_tmp;
83
 
84
`ifdef ETH_WISHBONE_B3
85
output   [2:0]  m_wb_cti_o;   // Cycle Type Identifier
86
output   [1:0]  m_wb_bte_o;   // Burst Type Extension
87
`endif
88
 
89
// Tx
90
input           mtx_clk_pad_i; // Transmit clock (from PHY)
91
output   [3:0]  mtxd_pad_o;    // Transmit nibble (to PHY)
92
output          mtxen_pad_o;   // Transmit enable (to PHY)
93
output          mtxerr_pad_o;  // Transmit error (to PHY)
94
 
95
// Rx
96
input           mrx_clk_pad_i; // Receive clock (from PHY)
97
input    [3:0]  mrxd_pad_i;    // Receive nibble (from PHY)
98
input           mrxdv_pad_i;   // Receive data valid (from PHY)
99
input           mrxerr_pad_i;  // Receive data error (from PHY)
100
 
101
// Common Tx and Rx
102
input           mcoll_pad_i;   // Collision (from PHY)
103
input           mcrs_pad_i;    // Carrier sense (from PHY)
104
 
105
// MII Management interface
106
input           md_pad_i;      // MII data input (from I/O cell)
107
output          mdc_pad_o;     // MII Management data clock (to PHY)
108
output          md_pad_o;      // MII data output (to I/O cell)
109
output          md_padoe_o;    // MII data output enable (to I/O cell)
110
 
111
output          int_o;         // Interrupt output
112
 
113
// Bist
114
`ifdef ETH_BIST
115
input   mbist_si_i;       // bist scan serial in
116
output  mbist_so_o;       // bist scan serial out
117
input [`ETH_MBIST_CTRL_WIDTH - 1:0] mbist_ctrl_i;       // bist chain shift control
118
`endif
119
 
120
wire [31:0] m_wb_adr_o_in_byte;
121
 
122
eth_top top
123
(
124
        // WISHBONE common
125
        .wb_clk_i(wb_clk_i),
126
        .wb_rst_i(wb_rst_i),
127
        .wb_dat_i(wb_dat_i),
128
        .wb_dat_o(wb_dat_o),
129
 
130
        // WISHBONE slave
131
        .wb_adr_i(wb_adr_i),
132
        .wb_sel_i(wb_sel_i),
133
        .wb_we_i(wb_we_i),
134
        .wb_cyc_i(wb_cyc_i),
135
        .wb_stb_i(wb_stb_i),
136
        .wb_ack_o(wb_ack_o),
137
        .wb_err_o(wb_err_o),
138
 
139
 
140
        // WISHBONE master
141
        .m_wb_adr_o(m_wb_adr_o_in_byte),
142
        .m_wb_sel_o(m_wb_sel_o),
143
        .m_wb_we_o(m_wb_we_o),
144
        .m_wb_dat_o(m_wb_dat_o),
145
        .m_wb_dat_i(m_wb_dat_i),
146
        .m_wb_cyc_o(m_wb_cyc_o),
147
        .m_wb_stb_o(m_wb_stb_o),
148
        .m_wb_ack_i(m_wb_ack_i),
149
        .m_wb_err_i(m_wb_err_i),
150
 
151
`ifdef ETH_WISHBONE_B3
152
        .m_wb_cti_o(m_wb_cti_o),
153
        .m_wb_bte_o(m_wb_bte_o),
154
`endif
155
 
156
  //TX
157
        .mtx_clk_pad_i(mtx_clk_pad_i),
158
        .mtxd_pad_o(mtxd_pad_o),
159
        .mtxen_pad_o(mtxen_pad_o),
160
        .mtxerr_pad_o(mtxerr_pad_o),
161
 
162
  //RX
163
        .mrx_clk_pad_i(mrx_clk_pad_i),
164
        .mrxd_pad_i(mrxd_pad_i),
165
        .mrxdv_pad_i(mrxdv_pad_i),
166
        .mrxerr_pad_i(mrxerr_pad_i),
167
        .mcoll_pad_i(mcoll_pad_i),
168
        .mcrs_pad_i(mcrs_pad_i),
169
 
170
  // MIIM
171
        .mdc_pad_o(mdc_pad_o),
172
        .md_pad_i(md_pad_i),
173
        .md_pad_o(md_pad_o),
174
        .md_padoe_o(md_padoe_o),
175
        .int_o(int_o)
176
 
177
  // Bist
178
`ifdef ETH_BIST
179
  ,
180
  // debug chain signals
181
        .mbist_si_i(mbist_si_i),       // bist scan serial in
182
        .mbist_so_o(mbist_so_o),       // bist scan serial out
183
        .mbist_ctrl_i(mbist_ctrl_i)        // bist chain shift control
184
`endif
185
 
186
);
187
 
188
assign m_wb_adr_o= {2'b00,m_wb_adr_o_in_byte[31:2]};
189
 
190
endmodule

powered by: WebSVN 2.1.0

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