Line 6... |
Line 6... |
//// http://www.opencores.org/projects/ethmac/ ////
|
//// http://www.opencores.org/projects/ethmac/ ////
|
//// ////
|
//// ////
|
//// Author(s): ////
|
//// Author(s): ////
|
//// - Igor Mohor (igorM@opencores.org) ////
|
//// - Igor Mohor (igorM@opencores.org) ////
|
//// ////
|
//// ////
|
//// All additional information is avaliable in the Readme.txt ////
|
//// All additional information is available in the Readme.txt ////
|
//// file. ////
|
//// file. ////
|
//// ////
|
//// ////
|
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//// ////
|
//// ////
|
//// Copyright (C) 2001 Authors ////
|
//// Copyright (C) 2001, 2002 Authors ////
|
//// ////
|
//// ////
|
//// This source file may be used and distributed without ////
|
//// This source file may be used and distributed without ////
|
//// restriction provided that this copyright statement is not ////
|
//// restriction provided that this copyright statement is not ////
|
//// removed from the file and that any derivative work contains ////
|
//// removed from the file and that any derivative work contains ////
|
//// the original copyright notice and the associated disclaimer. ////
|
//// the original copyright notice and the associated disclaimer. ////
|
Line 39... |
Line 39... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.11 2002/09/04 18:38:03 mohor
|
|
// CarrierSenseLost status is not set when working in loopback mode.
|
|
//
|
// Revision 1.10 2002/07/25 18:17:46 mohor
|
// Revision 1.10 2002/07/25 18:17:46 mohor
|
// InvalidSymbol generation changed.
|
// InvalidSymbol generation changed.
|
//
|
//
|
// Revision 1.9 2002/04/22 13:51:44 mohor
|
// Revision 1.9 2002/04/22 13:51:44 mohor
|
// Short frame and ReceivedLengthOK were not detected correctly.
|
// Short frame and ReceivedLengthOK were not detected correctly.
|
Line 97... |
Line 100... |
RxByteCnt, RxByteCntEq0, RxByteCntGreat2, RxByteCntMaxFrame, ReceivedPauseFrm,
|
RxByteCnt, RxByteCntEq0, RxByteCntGreat2, RxByteCntMaxFrame, ReceivedPauseFrm,
|
InvalidSymbol, MRxD, LatchedCrcError, Collision, CollValid, RxLateCollision,
|
InvalidSymbol, MRxD, LatchedCrcError, Collision, CollValid, RxLateCollision,
|
r_RecSmall, r_MinFL, r_MaxFL, ShortFrame, DribbleNibble, ReceivedPacketTooBig, r_HugEn,
|
r_RecSmall, r_MinFL, r_MaxFL, ShortFrame, DribbleNibble, ReceivedPacketTooBig, r_HugEn,
|
LoadRxStatus, StartTxDone, StartTxAbort, RetryCnt, RetryCntLatched, MTxClk, MaxCollisionOccured,
|
LoadRxStatus, StartTxDone, StartTxAbort, RetryCnt, RetryCntLatched, MTxClk, MaxCollisionOccured,
|
RetryLimit, LateCollision, LateCollLatched, StartDefer, DeferLatched, TxStartFrm,
|
RetryLimit, LateCollision, LateCollLatched, StartDefer, DeferLatched, TxStartFrm,
|
StatePreamble, StateData, CarrierSense, CarrierSenseLost, TxUsedData, LatchedMRxErr, Loopback
|
StatePreamble, StateData, CarrierSense, CarrierSenseLost, TxUsedData, LatchedMRxErr, Loopback,
|
|
r_FullD
|
);
|
);
|
|
|
|
|
|
|
parameter Tp = 1;
|
parameter Tp = 1;
|
Line 141... |
Line 145... |
input StatePreamble;
|
input StatePreamble;
|
input [1:0] StateData;
|
input [1:0] StateData;
|
input CarrierSense;
|
input CarrierSense;
|
input TxUsedData;
|
input TxUsedData;
|
input Loopback;
|
input Loopback;
|
|
input r_FullD;
|
|
|
|
|
output ReceivedLengthOK;
|
output ReceivedLengthOK;
|
output ReceiveEnd;
|
output ReceiveEnd;
|
output ReceivedPacketGood;
|
output ReceivedPacketGood;
|
Line 388... |
Line 393... |
always @ (posedge MTxClk or posedge Reset)
|
always @ (posedge MTxClk or posedge Reset)
|
begin
|
begin
|
if(Reset)
|
if(Reset)
|
CarrierSenseLost <=#Tp 1'b0;
|
CarrierSenseLost <=#Tp 1'b0;
|
else
|
else
|
if((StatePreamble | (|StateData)) & ~CarrierSense & ~Loopback & ~Collision)
|
if((StatePreamble | (|StateData)) & ~CarrierSense & ~Loopback & ~Collision & ~r_FullD)
|
CarrierSenseLost <=#Tp 1'b1;
|
CarrierSenseLost <=#Tp 1'b1;
|
else
|
else
|
if(TxStartFrm)
|
if(TxStartFrm)
|
CarrierSenseLost <=#Tp 1'b0;
|
CarrierSenseLost <=#Tp 1'b0;
|
end
|
end
|