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

[ethmac] the rx procedure should not be controled by carriersense,I think



Hi,everybody, i have read some of your source code and cannot 
understand this :

these are copied from top.v

// Synchronized Receive Enable
assign Transmitting = ~r_FullD & WillTransmit_q2;

always @ (posedge mrx_clk_pad_i or posedge r_Rst)
begin
  if(r_Rst)
    RxEnSync <= #Tp 1'b0;
  else
  if(~RxCarrierSense | RxCarrierSense & Transmitting)
    RxEnSync <= #Tp r_RxEn;
end 

// Muxed MII receive data valid
assign MRxDV_Lb = r_LoopBck? mtxen_pad_o : mrxdv_pad_i & RxEnSync;
// Muxed MII Receive Error
assign MRxErr_Lb = r_LoopBck? mtxerr_pad_o : mrxerr_pad_i & RxEnSync;



we can conclude from  the code above:
if Transmitting==0 and RxCarrierSense==1
the MRxDv_Lb and MRxErr_Lb will be disabled.

but I think the carriersense should have nothing to do with the rx 
procedure.
it only make sense in tx procedure and in half duplex mode.

am i right?

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