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

RE: [ethmac] bug found?



OK, thank you.
Maybe it's time I download a new version.
Greetings,
David

----- Original Message ----- 
From: "Igor Mohor" <igorm@o... > 
To: <ethmac@o... > 
Date: Thu, 19 Dec 2002 11:21:57 +0100 
Subject: 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@o...  
> [mailto:owner-ethmac@o... ] 
> On 
> > Behalf Of davidmertens@f...  
> > Sent: Thursday, December 19, 2002 12:48 PM 
> > To: ethmac@o...  
> > 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