wire MAC_tx_addr_rd ;\r
wire[7:0] MAC_tx_addr_data ;\r
\r
+\r
+ reg xon_gen_d1, xoff_gen_d1;\r
+ always @(posedge Clk) xon_gen_d1 <= xon_gen;\r
+ always @(posedge Clk) xoff_gen_d1 <= xoff_gen;\r
+ \r
//****************************************************************************** \r
//instantiation \r
//****************************************************************************** \r
//flow control (//flow control ), \r
.pause_apply (pause_apply ), \r
.pause_quanta_sub (pause_quanta_sub ), \r
-.xoff_gen (xoff_gen ), \r
+.xoff_gen (xoff_gen_d1 ), \r
.xoff_gen_complete (xoff_gen_complete ), \r
-.xon_gen (xon_gen ), \r
+.xon_gen (xon_gen_d1 ), \r
.xon_gen_complete (xon_gen_complete ), \r
//MAC_tx_FF (//MAC_tx_FF ), \r
.Fifo_data (Fifo_data ), \r
pause_quanta_sub <=0;\r
\r
// FIXME The below probably won't work if the pause request comes when we are in the wrong state\r
- wire clear_xonxoff = (Current_state==StateSendPauseFrame) & (IPLengthCounter==17);\r
+ reg clear_xonxoff;\r
+ always @(posedge Clk or posedge Reset)\r
+ if(Reset)\r
+ clear_xonxoff <= 0;\r
+ else if((Current_state==StateSendPauseFrame) & (IPLengthCounter==17))\r
+ clear_xonxoff <= 1;\r
+ else if(~xon_gen & ~xoff_gen)\r
+ clear_xonxoff <= 0;\r
+ \r
always @ (posedge Clk or posedge Reset)\r
if (Reset) \r
xoff_gen_complete <=0;\r