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

RE: [ethmac] bug found?




> -----Original Message-----
> From: owner-ethmac@opencores.org [mailto:owner-ethmac@opencores.org]
On
> Behalf Of Illan Glasner
> Sent: Thursday, December 19, 2002 11:04 PM
> To: 'ethmac@opencores.org'
> Subject: RE: [ethmac] bug found?
> 
> 
> Hi,
> 
>    I undertsand what you try to say but I don't understand why you
look
> for
> this and pass this information as status (if I got it right) ?
> 
> I belive you didn;t implement partition and if so once you count the
ipg
> and
> start trasmiting wether it was base on txen or crs (fdx/hdx) why would
you
> check the crs value ?
> 
> do you try to see that the phy work properly
> 

Yes.


> have a nice day
> 

You, too.
	Igor


>    Illan
> 
> 
> 
> -----Original Message-----
> From: Igor Mohor [mailto:igorm@opencores.org]
> Sent: Thursday, December 19, 2002 2:22 AM
> To: ethmac@opencores.org
> 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@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
> --
> 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