Line 39... |
Line 39... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.6 2002/03/20 15:14:11 mohor
|
|
// When in promiscous mode some frames were not received correctly. Fixed.
|
|
//
|
// Revision 1.5 2002/03/02 21:06:32 mohor
|
// Revision 1.5 2002/03/02 21:06:32 mohor
|
// Log info was missing.
|
// Log info was missing.
|
//
|
//
|
//
|
//
|
// Revision 1.1 2002/02/08 12:51:54 ditt
|
// Revision 1.1 2002/02/08 12:51:54 ditt
|
Line 101... |
Line 104... |
wire [31:0] IntHash;
|
wire [31:0] IntHash;
|
reg [7:0] ByteHash;
|
reg [7:0] ByteHash;
|
reg MulticastOK;
|
reg MulticastOK;
|
reg UnicastOK;
|
reg UnicastOK;
|
reg RxAbort;
|
reg RxAbort;
|
reg CrcHashGood_d; // delay HashGood by one cycle
|
|
|
|
assign RxAddressInvalid = ~(UnicastOK | BroadcastOK | MulticastOK | r_Pro);
|
assign RxAddressInvalid = ~(UnicastOK | BroadcastOK | MulticastOK | r_Pro);
|
|
|
assign BroadcastOK = Broadcast & ~r_Bro;
|
assign BroadcastOK = Broadcast & ~r_Bro;
|
|
|
Line 116... |
Line 118... |
|
|
always @ (posedge MRxClk or posedge Reset)
|
always @ (posedge MRxClk or posedge Reset)
|
begin
|
begin
|
if(Reset)
|
if(Reset)
|
RxAbort <= #Tp 1'b0;
|
RxAbort <= #Tp 1'b0;
|
else if(CrcHashGood_d & RxAddressInvalid & RxCheckEn)
|
else if(RxAddressInvalid & ByteCntEq7 & RxCheckEn)
|
RxAbort <= #Tp 1'b1;
|
RxAbort <= #Tp 1'b1;
|
else
|
else
|
RxAbort <= #Tp 1'b0;
|
RxAbort <= #Tp 1'b0;
|
end
|
end
|
|
|
// Hash Address Check, Multicast
|
// Hash Address Check, Multicast
|
|
|
|
|
// delay CrcHashGood by 1 cycle
|
|
always @ (posedge MRxClk or posedge Reset)
|
|
begin
|
|
if(Reset)
|
|
CrcHashGood_d <= #Tp 1'b0;
|
|
else
|
|
CrcHashGood_d <= #Tp CrcHashGood;
|
|
end
|
|
|
|
always @ (posedge MRxClk or posedge Reset)
|
always @ (posedge MRxClk or posedge Reset)
|
begin
|
begin
|
if(Reset)
|
if(Reset)
|
MulticastOK <= #Tp 1'b0;
|
MulticastOK <= #Tp 1'b0;
|
else if(RxEndFrm | RxAbort)
|
else if(RxEndFrm | RxAbort)
|