Line 39... |
Line 39... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.9 2002/01/23 10:28:16 mohor
|
|
// Link in the header changed.
|
|
//
|
// Revision 1.8 2001/12/05 15:00:16 mohor
|
// Revision 1.8 2001/12/05 15:00:16 mohor
|
// RX_BD_NUM changed to TX_BD_NUM (holds number of TX descriptors
|
// RX_BD_NUM changed to TX_BD_NUM (holds number of TX descriptors
|
// instead of the number of RX descriptors).
|
// instead of the number of RX descriptors).
|
//
|
//
|
// Revision 1.7 2001/12/05 10:45:59 mohor
|
// Revision 1.7 2001/12/05 10:45:59 mohor
|
Line 98... |
Line 101... |
// WISHBONE common
|
// WISHBONE common
|
wb_clk_i, wb_rst_i, wb_dat_i, wb_dat_o,
|
wb_clk_i, wb_rst_i, wb_dat_i, wb_dat_o,
|
|
|
// WISHBONE slave
|
// WISHBONE slave
|
wb_adr_i, wb_sel_i, wb_we_i, wb_cyc_i, wb_stb_i, wb_ack_o, wb_err_o,
|
wb_adr_i, wb_sel_i, wb_we_i, wb_cyc_i, wb_stb_i, wb_ack_o, wb_err_o,
|
wb_req_o, wb_ack_i, wb_nd_o, wb_rd_o,
|
wb_ack_i,
|
|
|
|
`ifdef WISHBONE_DMA
|
|
wb_req_o, wb_nd_o, wb_rd_o,
|
|
`else
|
|
// WISHBONE master
|
|
m_wb_adr_o, m_wb_sel_o, m_wb_we_o,
|
|
m_wb_dat_o, m_wb_dat_i, m_wb_cyc_o,
|
|
m_wb_stb_o, m_wb_ack_i, m_wb_err_i,
|
|
`endif
|
|
|
//TX
|
//TX
|
mtx_clk_pad_i, mtxd_pad_o, mtxen_pad_o, mtxerr_pad_o,
|
mtx_clk_pad_i, mtxd_pad_o, mtxen_pad_o, mtxerr_pad_o,
|
|
|
//RX
|
//RX
|
mrx_clk_pad_i, mrxd_pad_i, mrxdv_pad_i, mrxerr_pad_i, mcoll_pad_i, mcrs_pad_i,
|
mrx_clk_pad_i, mrxd_pad_i, mrxdv_pad_i, mrxerr_pad_i, mcoll_pad_i, mcrs_pad_i,
|
|
RxAbort,
|
|
|
// MIIM
|
// MIIM
|
mdc_pad_o, md_pad_i, md_pad_o, md_padoen_o,
|
mdc_pad_o, md_pad_i, md_pad_o, md_padoen_o,
|
|
|
int_o
|
int_o
|
Line 133... |
Line 146... |
input wb_we_i; // WISHBONE write enable input
|
input wb_we_i; // WISHBONE write enable input
|
input wb_cyc_i; // WISHBONE cycle input
|
input wb_cyc_i; // WISHBONE cycle input
|
input wb_stb_i; // WISHBONE strobe input
|
input wb_stb_i; // WISHBONE strobe input
|
output wb_ack_o; // WISHBONE acknowledge output
|
output wb_ack_o; // WISHBONE acknowledge output
|
|
|
|
`ifdef WISHBONE_DMA
|
// DMA
|
// DMA
|
input [1:0] wb_ack_i; // DMA acknowledge input
|
|
output [1:0] wb_req_o; // DMA request output
|
output [1:0] wb_req_o; // DMA request output
|
output [1:0] wb_nd_o; // DMA force new descriptor output
|
output [1:0] wb_nd_o; // DMA force new descriptor output
|
output wb_rd_o; // DMA restart descriptor output
|
output wb_rd_o; // DMA restart descriptor output
|
|
`else
|
|
// WISHBONE master
|
|
output [31:0] m_wb_adr_o;
|
|
output [3:0] m_wb_sel_o;
|
|
output m_wb_we_o;
|
|
input [31:0] m_wb_dat_i;
|
|
output [31:0] m_wb_dat_o;
|
|
output m_wb_cyc_o;
|
|
output m_wb_stb_o;
|
|
input m_wb_ack_i;
|
|
input m_wb_err_i;
|
|
`endif
|
|
|
|
input [1:0] wb_ack_i; // DMA acknowledge input
|
|
|
// Tx
|
// Tx
|
input mtx_clk_pad_i; // Transmit clock (from PHY)
|
input mtx_clk_pad_i; // Transmit clock (from PHY)
|
output [3:0] mtxd_pad_o; // Transmit nibble (to PHY)
|
output [3:0] mtxd_pad_o; // Transmit nibble (to PHY)
|
output mtxen_pad_o; // Transmit enable (to PHY)
|
output mtxen_pad_o; // Transmit enable (to PHY)
|
Line 154... |
Line 181... |
input mrxerr_pad_i; // Receive data error (from PHY)
|
input mrxerr_pad_i; // Receive data error (from PHY)
|
|
|
// Common Tx and Rx
|
// Common Tx and Rx
|
input mcoll_pad_i; // Collision (from PHY)
|
input mcoll_pad_i; // Collision (from PHY)
|
input mcrs_pad_i; // Carrier sense (from PHY)
|
input mcrs_pad_i; // Carrier sense (from PHY)
|
|
input RxAbort; // igor !!! Ta se mora preseliti da bo prisel iz enega izmed modulov. Tu je le zaradi
|
|
// testiranja. Pove, kdaj adresa ni ustrezala in se paketi sklirajo, stevci pa resetirajo.
|
|
|
// MII Management interface
|
// MII Management interface
|
input md_pad_i; // MII data input (from I/O cell)
|
input md_pad_i; // MII data input (from I/O cell)
|
output mdc_pad_o; // MII Management data clock (to PHY)
|
output mdc_pad_o; // MII Management data clock (to PHY)
|
output md_pad_o; // MII data output (to I/O cell)
|
output md_pad_o; // MII data output (to I/O cell)
|
Line 297... |
Line 326... |
|
|
wire [7:0] RxData;
|
wire [7:0] RxData;
|
wire RxValid;
|
wire RxValid;
|
wire RxStartFrm;
|
wire RxStartFrm;
|
wire RxEndFrm;
|
wire RxEndFrm;
|
|
wire RxAbort;
|
|
|
wire WillTransmit; // Will transmit (to RxEthMAC)
|
wire WillTransmit; // Will transmit (to RxEthMAC)
|
wire ResetCollision; // Reset Collision (for synchronizing collision)
|
wire ResetCollision; // Reset Collision (for synchronizing collision)
|
wire [7:0] TxDataOut; // Transmit Packet Data (to TxEthMAC)
|
wire [7:0] TxDataOut; // Transmit Packet Data (to TxEthMAC)
|
wire WillSendControlFrame;
|
wire WillSendControlFrame;
|
Line 493... |
Line 523... |
|
|
|
|
|
|
|
|
// Connecting WishboneDMA module
|
// Connecting WishboneDMA module
|
eth_wishbonedma wbdma
|
`ifdef WISHBONE_DMA
|
|
eth_wishbonedma wishbone
|
|
`else
|
|
eth_wishbone wishbone
|
|
`endif
|
(
|
(
|
.WB_CLK_I(wb_clk_i), .WB_RST_I(wb_rst_i), .WB_DAT_I(wb_dat_i),
|
.WB_CLK_I(wb_clk_i), .WB_DAT_I(wb_dat_i),
|
.WB_DAT_O(DMA_WB_DAT_O),
|
.WB_DAT_O(DMA_WB_DAT_O),
|
|
|
// WISHBONE slave
|
// WISHBONE slave
|
.WB_ADR_I(wb_adr_i[9:2]), .WB_SEL_I(wb_sel_i), .WB_WE_I(wb_we_i),
|
.WB_ADR_I(wb_adr_i[9:2]), .WB_SEL_I(wb_sel_i), .WB_WE_I(wb_we_i),
|
.BDCs(BDCs), .WB_ACK_O(BDAck),
|
.BDCs(BDCs), .WB_ACK_O(BDAck),
|
.WB_REQ_O(wb_req_o), .WB_ACK_I(wb_ack_i), .WB_ND_O(wb_nd_o),
|
|
.WB_RD_O(wb_rd_o),
|
.Reset(wb_rst_i),
|
|
|
|
`ifdef WISHBONE_DMA
|
|
.WB_REQ_O(wb_req_o), .WB_ND_O(wb_nd_o), .WB_RD_O(wb_rd_o),
|
|
.WB_ACK_I(wb_ack_i),
|
|
`else
|
|
// WISHBONE master
|
|
.m_wb_adr_o(m_wb_adr_o), .m_wb_sel_o(m_wb_sel_o), .m_wb_we_o(m_wb_we_o),
|
|
.m_wb_dat_i(m_wb_dat_i), .m_wb_dat_o(m_wb_dat_o), .m_wb_cyc_o(m_wb_cyc_o),
|
|
.m_wb_stb_o(m_wb_stb_o), .m_wb_ack_i(m_wb_ack_i), .m_wb_err_i(m_wb_err_i),
|
|
`endif
|
|
|
|
|
|
|
//TX
|
//TX
|
.MTxClk(mtx_clk_pad_i), .TxStartFrm(TxStartFrm), .TxEndFrm(TxEndFrm),
|
.MTxClk(mtx_clk_pad_i), .TxStartFrm(TxStartFrm), .TxEndFrm(TxEndFrm),
|
.TxUsedData(TxUsedData), .TxData(TxData), .StatusIzTxEthMACModula(16'h0),
|
.TxUsedData(TxUsedData), .TxData(TxData), .StatusIzTxEthMACModula(16'h0),
|
.TxRetry(TxRetry), .TxAbort(TxAbort), .TxUnderRun(TxUnderRun),
|
.TxRetry(TxRetry), .TxAbort(TxAbort), .TxUnderRun(TxUnderRun),
|
Line 522... |
Line 568... |
.MRxClk(mrx_clk_pad_i), .RxData(RxData), .RxValid(RxValid),
|
.MRxClk(mrx_clk_pad_i), .RxData(RxData), .RxValid(RxValid),
|
.RxStartFrm(RxStartFrm), .RxEndFrm(RxEndFrm),
|
.RxStartFrm(RxStartFrm), .RxEndFrm(RxEndFrm),
|
.Busy_IRQ(Busy_IRQ), .RxF_IRQ(RxF_IRQ), .RxB_IRQ(RxB_IRQ),
|
.Busy_IRQ(Busy_IRQ), .RxF_IRQ(RxF_IRQ), .RxB_IRQ(RxB_IRQ),
|
.TxE_IRQ(TxE_IRQ), .TxB_IRQ(TxB_IRQ)
|
.TxE_IRQ(TxE_IRQ), .TxB_IRQ(TxB_IRQ)
|
|
|
|
`ifdef WISHBONE_DMA
|
|
`else
|
|
,
|
|
.RxAbort(RxAbort)
|
|
`endif
|
|
|
);
|
);
|
|
|
|
|
|
|
// Connecting MacStatus module
|
// Connecting MacStatus module
|