aboutsummaryrefslogtreecommitdiffstats
path: root/eth/rtl/verilog/flow_ctrl_rx.v
diff options
context:
space:
mode:
authormatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>2009-04-02 21:18:41 +0000
committermatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>2009-04-02 21:18:41 +0000
commit312b6d0bbdd0a61156d32cb2e9dcbc3f98389f49 (patch)
tree5d24480afead048cedbce838fc3d756155abd573 /eth/rtl/verilog/flow_ctrl_rx.v
parent89f493c9fda0ffa73f644823d37e54f5c040c323 (diff)
downloaduhd-312b6d0bbdd0a61156d32cb2e9dcbc3f98389f49.tar.gz
uhd-312b6d0bbdd0a61156d32cb2e9dcbc3f98389f49.tar.bz2
uhd-312b6d0bbdd0a61156d32cb2e9dcbc3f98389f49.zip
Fix for fifo overruns on eth rx in full duplex. Now send re-pause long before pause is done. Reenabled RMON for the time being
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10746 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'eth/rtl/verilog/flow_ctrl_rx.v')
-rw-r--r--eth/rtl/verilog/flow_ctrl_rx.v5
1 files changed, 3 insertions, 2 deletions
diff --git a/eth/rtl/verilog/flow_ctrl_rx.v b/eth/rtl/verilog/flow_ctrl_rx.v
index 7ded9e08b..6654c626b 100644
--- a/eth/rtl/verilog/flow_ctrl_rx.v
+++ b/eth/rtl/verilog/flow_ctrl_rx.v
@@ -8,6 +8,7 @@ module flow_ctrl_rx
input [15:0] pause_quanta_set,
input [15:0] fc_hwmark,
input [15:0] fc_lwmark,
+ input [15:0] fc_padtime,
// From MAC_rx_ctrl
input rx_clk,
input [15:0] rx_fifo_space,
@@ -70,13 +71,13 @@ module flow_ctrl_rx
else if (xon_int | xon_int_d1)
xon_gen <=1;
- wire [15:0] pq_reduced = pause_quanta_set - 2;
+ wire [21:0] pq_reduced = {pause_quanta_set,6'd0} - {6'd0,fc_padtime};
always @(posedge tx_clk or posedge rst)
if(rst)
countdown <= 0;
else if(xoff_gen)
- countdown <= {pq_reduced,6'd0};
+ countdown <= pq_reduced;
else if(xon_gen)
countdown <= 0;
else if(countdown != 0)