diff options
author | michael-west <michael.west@ettus.com> | 2014-03-25 15:59:03 -0700 |
---|---|---|
committer | michael-west <michael.west@ettus.com> | 2014-03-25 15:59:03 -0700 |
commit | 04292f9b109479b639add31f83fd240a6387f488 (patch) | |
tree | 4b8723a4ae63626029704f901ee0083bb23bc1e9 /fpga/usrp3/lib/xge_interface/xge_handshake.v | |
parent | 09915aa57bc88099cbcbbe925946ae65bc0ad8f0 (diff) | |
parent | ff8a1252f3a51369abe0a165d963b781089ec66c (diff) | |
download | uhd-04292f9b109479b639add31f83fd240a6387f488.tar.gz uhd-04292f9b109479b639add31f83fd240a6387f488.tar.bz2 uhd-04292f9b109479b639add31f83fd240a6387f488.zip |
Merge branch 'master' into mwest/b200_docs
Diffstat (limited to 'fpga/usrp3/lib/xge_interface/xge_handshake.v')
-rw-r--r-- | fpga/usrp3/lib/xge_interface/xge_handshake.v | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/xge_interface/xge_handshake.v b/fpga/usrp3/lib/xge_interface/xge_handshake.v new file mode 100644 index 000000000..251099f57 --- /dev/null +++ b/fpga/usrp3/lib/xge_interface/xge_handshake.v @@ -0,0 +1,60 @@ +// +// Copyright 2013 Ettus Research LLC +// + +// +// +// Provide required handshake to Opencores XGE MAC to initiate Rx of one available packet +// +// + + +module xge_handshake + ( + input clk, + input reset, + output reg pkt_rx_ren, + input pkt_rx_avail, + input pkt_rx_eop + ); + + localparam IDLE=0; + localparam RX=1; + + reg state; + + + always @(posedge clk) + if (reset) begin + pkt_rx_ren <= 0; + state <= IDLE; + end else begin + case (state) + // + // Wait for pkt_rx_avail to be asserted, then assert pkt_rx_ren next cycle + // + IDLE: begin + if (pkt_rx_avail) begin + pkt_rx_ren <= 1; + state <= RX; + end else begin + pkt_rx_ren <= 0; + state <= IDLE; + end + end + // + // Keep pkt_rx_ren asserted until EOF received. + // + RX: begin + if (pkt_rx_eop) begin + pkt_rx_ren <= 0; + state <= IDLE; + end else begin + pkt_rx_ren <= 1; + state <= RX; + end + end + + endcase // case(state) + end // else: !if(reset) +endmodule // xge_handshake |