Line 39... |
Line 39... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.7 2002/01/23 10:28:16 mohor
|
|
// Link in the header changed.
|
|
//
|
// Revision 1.6 2001/12/05 15:00:16 mohor
|
// Revision 1.6 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.5 2001/12/05 10:22:19 mohor
|
// Revision 1.5 2001/12/05 10:22:19 mohor
|
Line 96... |
Line 99... |
r_IPGT, r_IPGR1, r_IPGR2, r_MinFL, r_MaxFL, r_MaxRet,
|
r_IPGT, r_IPGR1, r_IPGR2, r_MinFL, r_MaxFL, r_MaxRet,
|
r_CollValid, r_TxFlow, r_RxFlow, r_PassAll,
|
r_CollValid, r_TxFlow, r_RxFlow, r_PassAll,
|
r_MiiMRst, r_MiiNoPre, r_ClkDiv, r_WCtrlData, r_RStat, r_ScanStat,
|
r_MiiMRst, r_MiiNoPre, r_ClkDiv, r_WCtrlData, r_RStat, r_ScanStat,
|
r_RGAD, r_FIAD, r_CtrlData, NValid_stat, Busy_stat,
|
r_RGAD, r_FIAD, r_CtrlData, NValid_stat, Busy_stat,
|
LinkFail, r_MAC, WCtrlDataStart, RStatStart,
|
LinkFail, r_MAC, WCtrlDataStart, RStatStart,
|
UpdateMIIRX_DATAReg, Prsd, r_TxBDNum, TX_BD_NUM_Wr, int_o
|
UpdateMIIRX_DATAReg, Prsd, r_TxBDNum, TX_BD_NUM_Wr, int_o,
|
|
r_HASH0, r_HASH1
|
);
|
);
|
|
|
parameter Tp = 1;
|
parameter Tp = 1;
|
|
|
input [31:0] DataIn;
|
input [31:0] DataIn;
|
input [5:0] Address;
|
input [7:0] Address;
|
|
|
input Rw;
|
input Rw;
|
input Cs;
|
input Cs;
|
input Clk;
|
input Clk;
|
input Reset;
|
input Reset;
|
Line 172... |
Line 176... |
output [4:0] r_RGAD;
|
output [4:0] r_RGAD;
|
output [4:0] r_FIAD;
|
output [4:0] r_FIAD;
|
|
|
output [15:0]r_CtrlData;
|
output [15:0]r_CtrlData;
|
|
|
|
output [31:0]r_HASH0;
|
|
output [31:0]r_HASH1;
|
|
|
|
|
input NValid_stat;
|
input NValid_stat;
|
input Busy_stat;
|
input Busy_stat;
|
input LinkFail;
|
input LinkFail;
|
|
|
Line 210... |
Line 217... |
wire MIIRX_DATA_Wr = UpdateMIIRX_DATAReg;
|
wire MIIRX_DATA_Wr = UpdateMIIRX_DATAReg;
|
wire MIISTATUS_Wr = (Address == `ETH_MIISTATUS_ADR ) & Write;
|
wire MIISTATUS_Wr = (Address == `ETH_MIISTATUS_ADR ) & Write;
|
wire MAC_ADDR0_Wr = (Address == `ETH_MAC_ADDR0_ADR ) & Write;
|
wire MAC_ADDR0_Wr = (Address == `ETH_MAC_ADDR0_ADR ) & Write;
|
wire MAC_ADDR1_Wr = (Address == `ETH_MAC_ADDR1_ADR ) & Write;
|
wire MAC_ADDR1_Wr = (Address == `ETH_MAC_ADDR1_ADR ) & Write;
|
assign TX_BD_NUM_Wr = (Address == `ETH_TX_BD_NUM_ADR ) & Write;
|
assign TX_BD_NUM_Wr = (Address == `ETH_TX_BD_NUM_ADR ) & Write;
|
|
wire MAC_HASH0_Wr = (Address == `ETH_HASH0_ADR ) & Write;
|
|
wire MAC_HASH1_Wr = (Address == `ETH_HASH1_ADR ) & Write;
|
|
|
|
|
|
|
wire [31:0] MODEROut;
|
wire [31:0] MODEROut;
|
wire [31:0] INT_SOURCEOut;
|
wire [31:0] INT_SOURCEOut;
|
Line 231... |
Line 240... |
wire [31:0] MIIRX_DATAOut;
|
wire [31:0] MIIRX_DATAOut;
|
wire [31:0] MIISTATUSOut;
|
wire [31:0] MIISTATUSOut;
|
wire [31:0] MAC_ADDR0Out;
|
wire [31:0] MAC_ADDR0Out;
|
wire [31:0] MAC_ADDR1Out;
|
wire [31:0] MAC_ADDR1Out;
|
wire [31:0] TX_BD_NUMOut;
|
wire [31:0] TX_BD_NUMOut;
|
|
wire [31:0] MAC_HASH0Out;
|
|
wire [31:0] MAC_HASH1Out;
|
|
|
|
|
eth_register #(32) MODER (.DataIn(DataIn), .DataOut(MODEROut), .Write(MODER_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_MODER_DEF));
|
eth_register #(32) MODER (.DataIn(DataIn), .DataOut(MODEROut), .Write(MODER_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_MODER_DEF));
|
eth_register #(32) INT_MASK (.DataIn(DataIn), .DataOut(INT_MASKOut), .Write(INT_MASK_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_INT_MASK_DEF));
|
eth_register #(32) INT_MASK (.DataIn(DataIn), .DataOut(INT_MASKOut), .Write(INT_MASK_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_INT_MASK_DEF));
|
eth_register #(32) IPGT (.DataIn(DataIn), .DataOut(IPGTOut), .Write(IPGT_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_IPGT_DEF));
|
eth_register #(32) IPGT (.DataIn(DataIn), .DataOut(IPGTOut), .Write(IPGT_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_IPGT_DEF));
|
eth_register #(32) IPGR1 (.DataIn(DataIn), .DataOut(IPGR1Out), .Write(IPGR1_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_IPGR1_DEF));
|
eth_register #(32) IPGR1 (.DataIn(DataIn), .DataOut(IPGR1Out), .Write(IPGR1_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_IPGR1_DEF));
|
Line 267... |
Line 279... |
eth_register #(32) MAC_ADDR1 (.DataIn(DataIn), .DataOut(MAC_ADDR1Out), .Write(MAC_ADDR1_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_MAC_ADDR1_DEF));
|
eth_register #(32) MAC_ADDR1 (.DataIn(DataIn), .DataOut(MAC_ADDR1Out), .Write(MAC_ADDR1_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_MAC_ADDR1_DEF));
|
|
|
assign TX_BD_NUMOut[31:8] = 24'h0;
|
assign TX_BD_NUMOut[31:8] = 24'h0;
|
eth_register #(8) TX_BD_NUM (.DataIn(DataIn[7:0]), .DataOut(TX_BD_NUMOut[7:0]), .Write(TX_BD_NUM_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_TX_BD_NUM_DEF));
|
eth_register #(8) TX_BD_NUM (.DataIn(DataIn[7:0]), .DataOut(TX_BD_NUMOut[7:0]), .Write(TX_BD_NUM_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_TX_BD_NUM_DEF));
|
|
|
|
eth_register #(32) MAC_HASH0 (.DataIn(DataIn), .DataOut(MAC_HASH0Out), .Write(MAC_HASH0_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_HASH0_DEF));
|
|
eth_register #(32) MAC_HASH1 (.DataIn(DataIn), .DataOut(MAC_HASH1Out), .Write(MAC_HASH1_Wr), .Clk(Clk), .Reset(Reset), .Default(`ETH_HASH1_DEF));
|
|
|
|
|
reg LinkFailRegister;
|
reg LinkFailRegister;
|
wire ResetLinkFailRegister = Address == `ETH_MIISTATUS_ADR & Read;
|
wire ResetLinkFailRegister = Address == `ETH_MIISTATUS_ADR & Read;
|
reg ResetLinkFailRegister_q1;
|
reg ResetLinkFailRegister_q1;
|
reg ResetLinkFailRegister_q2;
|
reg ResetLinkFailRegister_q2;
|
Line 297... |
Line 312... |
|
|
always @ (Address or Read or MODEROut or INT_SOURCEOut or INT_MASKOut or IPGTOut or
|
always @ (Address or Read or MODEROut or INT_SOURCEOut or INT_MASKOut or IPGTOut or
|
IPGR1Out or IPGR2Out or PACKETLENOut or COLLCONFOut or CTRLMODEROut or
|
IPGR1Out or IPGR2Out or PACKETLENOut or COLLCONFOut or CTRLMODEROut or
|
MIIMODEROut or MIICOMMANDOut or MIIADDRESSOut or MIITX_DATAOut or
|
MIIMODEROut or MIICOMMANDOut or MIIADDRESSOut or MIITX_DATAOut or
|
MIIRX_DATAOut or MIISTATUSOut or MAC_ADDR0Out or MAC_ADDR1Out or
|
MIIRX_DATAOut or MIISTATUSOut or MAC_ADDR0Out or MAC_ADDR1Out or
|
TX_BD_NUMOut)
|
TX_BD_NUMOut or MAC_HASH0Out or MAC_HASH1Out)
|
begin
|
begin
|
if(Read) // read
|
if(Read) // read
|
begin
|
begin
|
case(Address)
|
case(Address)
|
`ETH_MODER_ADR : DataOut<=MODEROut;
|
`ETH_MODER_ADR : DataOut<=MODEROut;
|
Line 320... |
Line 335... |
`ETH_MIIRX_DATA_ADR : DataOut<=MIIRX_DATAOut;
|
`ETH_MIIRX_DATA_ADR : DataOut<=MIIRX_DATAOut;
|
`ETH_MIISTATUS_ADR : DataOut<=MIISTATUSOut;
|
`ETH_MIISTATUS_ADR : DataOut<=MIISTATUSOut;
|
`ETH_MAC_ADDR0_ADR : DataOut<=MAC_ADDR0Out;
|
`ETH_MAC_ADDR0_ADR : DataOut<=MAC_ADDR0Out;
|
`ETH_MAC_ADDR1_ADR : DataOut<=MAC_ADDR1Out;
|
`ETH_MAC_ADDR1_ADR : DataOut<=MAC_ADDR1Out;
|
`ETH_TX_BD_NUM_ADR : DataOut<=TX_BD_NUMOut;
|
`ETH_TX_BD_NUM_ADR : DataOut<=TX_BD_NUMOut;
|
|
`ETH_HASH0_ADR : DataOut<=MAC_HASH0Out;
|
|
`ETH_HASH1_ADR : DataOut<=MAC_HASH1Out;
|
default: DataOut<=32'h0;
|
default: DataOut<=32'h0;
|
endcase
|
endcase
|
end
|
end
|
else
|
else
|
DataOut<=32'h0;
|
DataOut<=32'h0;
|
Line 389... |
Line 406... |
assign r_MAC[31:0] = MAC_ADDR0Out[31:0];
|
assign r_MAC[31:0] = MAC_ADDR0Out[31:0];
|
assign r_MAC[47:32] = MAC_ADDR1Out[15:0];
|
assign r_MAC[47:32] = MAC_ADDR1Out[15:0];
|
|
|
assign r_TxBDNum[7:0] = TX_BD_NUMOut[7:0];
|
assign r_TxBDNum[7:0] = TX_BD_NUMOut[7:0];
|
|
|
|
assign r_HASH0 = MAC_HASH0Out;
|
|
assign r_HASH1 = MAC_HASH1Out;
|
|
|
// Interrupt generation
|
// Interrupt generation
|
|
|
always @ (posedge Clk or posedge Reset)
|
always @ (posedge Clk or posedge Reset)
|
begin
|
begin
|