[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [ethmac] bug found?



Signal CarrierSenseLost indicates that the carrier sense signal was lost
during transmission. 

The bug you reported was already fixed in version 1.12 (on September
12th)

You're using an old version of the Ethernet.

Best regards,
	Igor



> -----Original Message-----
> From: owner-ethmac@opencores.org [mailto:owner-ethmac@opencores.org]
On
> Behalf Of davidmertens@freegates.be
> Sent: Thursday, December 19, 2002 12:48 PM
> To: ethmac@opencores.org
> Subject: RE: [ethmac] bug found?
> 
> Hello,
> The CarrierSenseLoss is bit 0 in Tx buffer descriptor.
> 
> Carrier Sense is a line coming from the PHY.
> Normally, the crs coming from the PHY is asserted when the PHY is
> transmiting or receiving data in half duplex; in full duplex, it is
only
> asserted when the PHY is receiving data.
> The problem is:
> When the MAC is running in full duplex, the CarrierSenseLoss bit will
be
> asserted when transmitting data, because the PHY will not assert its
> CarrierSense line (and this also causes an interrupt).
> 
> I solved the problem (I think), by using in eth_top.v a new signal:
> 
> assign TxCarrierSense1 = r_FullD | CarrierSense_Tx2;
> 
> and passing that signal to eth_macstatus (  (.CarrierSense
> (TxCarrierSense1) ).
> 
> Now the CarrierSenseLoss will never be asserted when working in full
> duplex.
> 
> ----- Original Message -----
> From: Illan Glasner <IGlasner@m... >
> To: "'ethmac@o... '" <ethmac@o... >
> Date: Wed, 18 Dec 2002 10:57:22 -0800
> Subject: RE: [ethmac] bug found?
> 
> >
> >
> >
> >    Hi,
> >
> >         What does this CarrierSenseLoss used for at all?
> >
> > crs usualy is used to tell if the line is busy or not.
> >
> > assuming the above is used for the trasmite machine than in full
> > duplex you
> > usualy count ipg base on when you deasert the txen.
> >
> > btw I assume you wanted to write that in half duplex the phy asser
> > the crs
> > when trasmiting OR reciving.
> >
> > have a nice day
> >
> >    Illan
> >
> >
> > -----Original Message-----
> > From: davidmertens@f...  [mailto:davidmertens@f... ]
> > Sent: Wednesday, December 18, 2002 11:45 AM
> > To: ethmac@o...
> > Subject: [ethmac] bug found?
> >
> >
> > I think I found a bug.
> > It has something to do with the carrier sense bit in the TxBD when
> > working in full duplex.
> >
> > When using full duplex, the carrier sense line from the PHY will
> > not be
> > asserted when transmitting data, only when it is receiving data (in
> > half
> > duplex it will be asserted when sending AND receiving data).
> > In eth_macstatus.v, the last lines of the code:
> >
> > // CarrierSenseLost
> > always @ (posedge MTxClk or posedge Reset)
> > begin
> >   if(Reset)
> >     CarrierSenseLost <=#Tp 1'b0;
> >   else
> >   if((StatePreamble | (|StateData)) & ~CarrierSense &
> > ~Loopback &
> > ~Collision)
> >     CarrierSenseLost <=#Tp 1'b1;
> >   else
> >   if(TxStartFrm)
> >     CarrierSenseLost <=#Tp 1'b0;
> > end
> >
> >
> > --> shouldn't there be something like :
> > if((StatePreamble | (|StateData)) & ~CarrierSense &
> > ~Loopback &
> > ~Collision) & ~r_FullD )
> >
> > If you don't use ~r_FullD, you always get an Tx error, because the
> > carrier sense of the PHY isn't asserted when transmitting.
> >
> > Greetings,
> > David
> >
> --
> To unsubscribe from ethmac mailing list please visit
> http://www.opencores.org/mailinglists.shtml

--
To unsubscribe from ethmac mailing list please visit http://www.opencores.org/mailinglists.shtml