diff options
author | Matt Ettus <matt@ettus.com> | 2009-09-04 22:23:27 -0700 |
---|---|---|
committer | Matt Ettus <matt@ettus.com> | 2009-09-04 22:23:27 -0700 |
commit | c21464b1107295575afa958e34f915f7d9985c14 (patch) | |
tree | d129daeeb1af64465858aaca126ec9923742e7fb /simple_gemac/simple_gemac_wrapper.v | |
parent | 71babf966d8cd340eb62122a297c2cc3b1294b82 (diff) | |
download | uhd-c21464b1107295575afa958e34f915f7d9985c14.tar.gz uhd-c21464b1107295575afa958e34f915f7d9985c14.tar.bz2 uhd-c21464b1107295575afa958e34f915f7d9985c14.zip |
Implement Eth flow control using pause frames
Not fully tested, but it seems to work without frame errors, sequence
number errors or ethernet overruns. Still of course will get tx underruns
on a slow machine, and the transmitted signal has some issues though.
Diffstat (limited to 'simple_gemac/simple_gemac_wrapper.v')
-rw-r--r-- | simple_gemac/simple_gemac_wrapper.v | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/simple_gemac/simple_gemac_wrapper.v b/simple_gemac/simple_gemac_wrapper.v index de445476c..7511f3fb9 100644 --- a/simple_gemac/simple_gemac_wrapper.v +++ b/simple_gemac/simple_gemac_wrapper.v @@ -140,7 +140,12 @@ module simple_gemac_wrapper .ll_src_rdy(tx_ll_src_rdy), .ll_dst_rdy(tx_ll_dst_rdy), .tx_data(tx_data), .tx_valid(tx_valid), .tx_error(tx_error), .tx_ack(tx_ack)); - wire [31:0] debug_tx, debug_rx; + flow_ctrl_rx flow_ctrl_rx + (.pause_request_en(pause_request_en), .pause_time(pause_time), .pause_thresh(pause_thresh), + .rx_clk(rx_clk), .rx_reset(rx_reset), .rx_fifo_space(rx_fifo_space), + .tx_clk(tx_clk), .tx_reset(tx_reset), .pause_req(pause_req), .pause_time_req(pause_time_req)); + + wire [31:0] debug_tx, debug_rx; assign debug_tx = { { tx_ll_data }, { tx_ll_sof, tx_ll_eof, tx_ll_src_rdy, tx_ll_dst_rdy, |