URL
https://opencores.org/ocsvn/ethmac/ethmac/trunk
Subversion Repositories ethmac
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 250 to Rev 251
- ↔ Reverse comparison
Rev 250 → Rev 251
/trunk/rtl/verilog/eth_maccontrol.v
41,6 → 41,9
// CVS Revision History |
// |
// $Log: not supported by cvs2svn $ |
// Revision 1.3 2002/01/23 10:28:16 mohor |
// Link in the header changed. |
// |
// Revision 1.2 2001/10/19 08:43:51 mohor |
// eth_timescale.v changed to timescale.v This is done because of the |
// simulation of the few cores in a one joined project. |
131,6 → 134,7
wire [7:0] ControlData; |
wire CtrlMux; |
wire SendingCtrlFrm; // Sending Control Frame (enables padding and CRC) |
wire BlockTxDone; |
|
|
// Signal TxUsedDataOut was detected (a transfer is already in progress) |
187,13 → 191,15
if(TxStartFrmIn) |
MuxedDone <= #Tp 1'b0; |
else |
if(TxDoneIn & ~TxDoneInLatched & TxUsedDataOutDetected) |
if(TxDoneIn & (~TxDoneInLatched) & TxUsedDataOutDetected & (~BlockTxDone)) |
MuxedDone <= #Tp 1'b1; |
end |
|
|
// TxDoneOut |
assign TxDoneOut = CtrlMux? (~TxStartFrmIn & MuxedDone) : |
(~TxStartFrmIn & TxDoneIn); |
//assign TxDoneOut = (~CtrlMux) & (~TxStartFrmIn) & TxDoneIn & (~BlockTxDone); |
|
// TxAbortOut |
assign TxAbortOut = CtrlMux? (~TxStartFrmIn & MuxedAbort) : |
241,7 → 247,7
.TxDoneIn(TxDoneIn), .TxAbortIn(TxAbortIn), .TxStartFrmIn(TxStartFrmIn), .TPauseRq(TPauseRq), |
.TxUsedDataOutDetected(TxUsedDataOutDetected), .TxFlow(TxFlow), .DlyCrcEn(DlyCrcEn), .TxPauseTV(TxPauseTV), |
.MAC(MAC), .TxCtrlStartFrm(TxCtrlStartFrm), .TxCtrlEndFrm(TxCtrlEndFrm), .SendingCtrlFrm(SendingCtrlFrm), |
.CtrlMux(CtrlMux), .ControlData(ControlData), .WillSendControlFrame(WillSendControlFrame) |
.CtrlMux(CtrlMux), .ControlData(ControlData), .WillSendControlFrame(WillSendControlFrame), .BlockTxDone(BlockTxDone) |
); |
|
|
/trunk/rtl/verilog/eth_transmitcontrol.v
41,6 → 41,9
// CVS Revision History |
// |
// $Log: not supported by cvs2svn $ |
// Revision 1.4 2002/01/23 10:28:16 mohor |
// Link in the header changed. |
// |
// Revision 1.3 2001/10/19 08:43:51 mohor |
// eth_timescale.v changed to timescale.v This is done because of the |
// simulation of the few cores in a one joined project. |
77,7 → 80,7
module eth_transmitcontrol (MTxClk, TxReset, TxUsedDataIn, TxUsedDataOut, TxDoneIn, TxAbortIn, |
TxStartFrmIn, TPauseRq, TxUsedDataOutDetected, TxFlow, DlyCrcEn, |
TxPauseTV, MAC, TxCtrlStartFrm, TxCtrlEndFrm, SendingCtrlFrm, CtrlMux, |
ControlData, WillSendControlFrame |
ControlData, WillSendControlFrame, BlockTxDone |
); |
|
parameter Tp = 1; |
103,6 → 106,7
output CtrlMux; |
output [7:0] ControlData; |
output WillSendControlFrame; |
output BlockTxDone; |
|
reg SendingCtrlFrm; |
reg CtrlMux; |
116,6 → 120,7
reg TxCtrlEndFrm; |
reg [7:0] ControlData; |
reg TxUsedDataIn_q; |
reg BlockTxDone; |
|
wire IncrementDlyCrcCnt; |
wire ResetByteCnt; |
146,7 → 151,7
if(TxUsedDataIn_q & CtrlMux) |
TxCtrlStartFrm <= #Tp 1'b0; |
else |
if(WillSendControlFrame & ~TxUsedDataOut & (TxDoneIn | TxAbortIn | TxStartFrmIn | ~TxUsedDataOutDetected)) |
if(WillSendControlFrame & ~TxUsedDataOut & (TxDoneIn | TxAbortIn | TxStartFrmIn | (~TxUsedDataOutDetected))) |
TxCtrlStartFrm <= #Tp 1'b1; |
end |
|
204,6 → 209,22
end |
|
|
|
// Generation of the signal that will block sending the Done signal to the eth_wishbone module |
// While sending the control frame |
always @ (posedge MTxClk or posedge TxReset) |
begin |
if(TxReset) |
BlockTxDone <= #Tp 1'b0; |
else |
if(TxCtrlStartFrm) |
BlockTxDone <= #Tp 1'b1; |
else |
if(TxDoneIn) |
BlockTxDone <= #Tp 1'b0; |
end |
|
|
always @ (posedge MTxClk) |
begin |
ControlEnd_q <= #Tp ControlEnd; |