Line 41... |
Line 41... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.7 2002/02/26 16:24:01 mohor
|
|
// RetryCntLatched was unused and removed from design
|
|
//
|
// Revision 1.6 2002/02/22 12:56:35 mohor
|
// Revision 1.6 2002/02/22 12:56:35 mohor
|
// Retry is not activated when a Tx Underrun occured
|
// Retry is not activated when a Tx Underrun occured
|
//
|
//
|
// Revision 1.5 2002/02/11 09:18:22 mohor
|
// Revision 1.5 2002/02/11 09:18:22 mohor
|
// Tx status is written back to the BD.
|
// Tx status is written back to the BD.
|
Line 91... |
Line 94... |
module eth_txethmac (MTxClk, Reset, TxStartFrm, TxEndFrm, TxUnderRun, TxData, CarrierSense,
|
module eth_txethmac (MTxClk, Reset, TxStartFrm, TxEndFrm, TxUnderRun, TxData, CarrierSense,
|
Collision, Pad, CrcEn, FullD, HugEn, DlyCrcEn, MinFL, MaxFL, IPGT,
|
Collision, Pad, CrcEn, FullD, HugEn, DlyCrcEn, MinFL, MaxFL, IPGT,
|
IPGR1, IPGR2, CollValid, MaxRet, NoBckof, ExDfrEn,
|
IPGR1, IPGR2, CollValid, MaxRet, NoBckof, ExDfrEn,
|
MTxD, MTxEn, MTxErr, TxDone, TxRetry, TxAbort, TxUsedData, WillTransmit,
|
MTxD, MTxEn, MTxErr, TxDone, TxRetry, TxAbort, TxUsedData, WillTransmit,
|
ResetCollision, RetryCnt, StartTxDone, StartTxAbort, MaxCollisionOccured,
|
ResetCollision, RetryCnt, StartTxDone, StartTxAbort, MaxCollisionOccured,
|
LateCollision, StartDefer, StatePreamble, StateData
|
LateCollision, DeferIndication, StatePreamble, StateData
|
|
|
);
|
);
|
|
|
parameter Tp = 1;
|
parameter Tp = 1;
|
|
|
Line 135... |
Line 138... |
output [3:0] RetryCnt; // Latched Retry Counter for tx status purposes
|
output [3:0] RetryCnt; // Latched Retry Counter for tx status purposes
|
output StartTxDone;
|
output StartTxDone;
|
output StartTxAbort;
|
output StartTxAbort;
|
output MaxCollisionOccured;
|
output MaxCollisionOccured;
|
output LateCollision;
|
output LateCollision;
|
output StartDefer;
|
output DeferIndication;
|
output StatePreamble;
|
output StatePreamble;
|
output [1:0] StateData;
|
output [1:0] StateData;
|
|
|
reg [3:0] MTxD;
|
reg [3:0] MTxD;
|
reg MTxEn;
|
reg MTxEn;
|
Line 162... |
Line 165... |
wire StartIPG;
|
wire StartIPG;
|
wire StartPreamble;
|
wire StartPreamble;
|
wire [1:0] StartData;
|
wire [1:0] StartData;
|
wire StartFCS;
|
wire StartFCS;
|
wire StartJam;
|
wire StartJam;
|
|
wire StartDefer;
|
wire StartBackoff;
|
wire StartBackoff;
|
wire StateDefer;
|
wire StateDefer;
|
wire StateIPG;
|
wire StateIPG;
|
wire StateIdle;
|
wire StateIdle;
|
wire StatePAD;
|
wire StatePAD;
|
Line 195... |
Line 199... |
|
|
assign ResetCollision = ~(StatePreamble | (|StateData) | StatePAD | StateFCS);
|
assign ResetCollision = ~(StatePreamble | (|StateData) | StatePAD | StateFCS);
|
|
|
assign ExcessiveDeferOccured = TxStartFrm & StateDefer & ExcessiveDefer & ~StopExcessiveDeferOccured;
|
assign ExcessiveDeferOccured = TxStartFrm & StateDefer & ExcessiveDefer & ~StopExcessiveDeferOccured;
|
|
|
assign StartTxDone = ~Collision & (StateFCS & NibCntEq7 | StateData[1] & TxEndFrm & ~Pad & ~CrcEn);
|
assign StartTxDone = ~Collision & (StateFCS & NibCntEq7 | StateData[1] & TxEndFrm & (~Pad | Pad & NibbleMinFl) & ~CrcEn);
|
|
|
assign UnderRun = StateData[0] & TxUnderRun & ~Collision;
|
assign UnderRun = StateData[0] & TxUnderRun & ~Collision;
|
|
|
assign TooBig = ~Collision & MaxFrame & (StateData[0] & ~TxUnderRun | StateFCS);
|
assign TooBig = ~Collision & MaxFrame & (StateData[0] & ~TxUnderRun | StateFCS);
|
|
|
Line 448... |
Line 452... |
.NibbleMinFl(NibbleMinFl), .RandomEq0(RandomEq0), .ColWindow(ColWindow), .RetryMax(RetryMax),
|
.NibbleMinFl(NibbleMinFl), .RandomEq0(RandomEq0), .ColWindow(ColWindow), .RetryMax(RetryMax),
|
.NoBckof(NoBckof), .RandomEqByteCnt(RandomEqByteCnt), .StateIdle(StateIdle),
|
.NoBckof(NoBckof), .RandomEqByteCnt(RandomEqByteCnt), .StateIdle(StateIdle),
|
.StateIPG(StateIPG), .StatePreamble(StatePreamble), .StateData(StateData), .StatePAD(StatePAD),
|
.StateIPG(StateIPG), .StatePreamble(StatePreamble), .StateData(StateData), .StatePAD(StatePAD),
|
.StateFCS(StateFCS), .StateJam(StateJam), .StateJam_q(StateJam_q), .StateBackOff(StateBackOff),
|
.StateFCS(StateFCS), .StateJam(StateJam), .StateJam_q(StateJam_q), .StateBackOff(StateBackOff),
|
.StateDefer(StateDefer), .StartFCS(StartFCS), .StartJam(StartJam), .StartBackoff(StartBackoff),
|
.StateDefer(StateDefer), .StartFCS(StartFCS), .StartJam(StartJam), .StartBackoff(StartBackoff),
|
.StartDefer(StartDefer), .StartPreamble(StartPreamble), .StartData(StartData), .StartIPG(StartIPG)
|
.StartDefer(StartDefer), .DeferIndication(DeferIndication), .StartPreamble(StartPreamble), .StartData(StartData), .StartIPG(StartIPG)
|
);
|
);
|
|
|
|
|
wire Enable_Crc;
|
wire Enable_Crc;
|
wire [3:0] Data_Crc;
|
wire [3:0] Data_Crc;
|