aboutsummaryrefslogtreecommitdiffstats
path: root/usrp2/simple_gemac/simple_gemac_rx.v
diff options
context:
space:
mode:
authorMatt Ettus <matt@ettus.com>2010-11-22 22:04:36 -0800
committerJosh Blum <josh@joshknows.com>2010-11-23 19:06:59 -0800
commita9390f66b72453adefa642919e5a56056bc28655 (patch)
treea791c02eadf4338573117894ddc8447ce3382dd9 /usrp2/simple_gemac/simple_gemac_rx.v
parent05f7a0d5c5070203172683020ecde79c0f15fe28 (diff)
downloaduhd-a9390f66b72453adefa642919e5a56056bc28655.tar.gz
uhd-a9390f66b72453adefa642919e5a56056bc28655.tar.bz2
uhd-a9390f66b72453adefa642919e5a56056bc28655.zip
allow any unicast packet through.
Diffstat (limited to 'usrp2/simple_gemac/simple_gemac_rx.v')
-rw-r--r--usrp2/simple_gemac/simple_gemac_rx.v10
1 files changed, 6 insertions, 4 deletions
diff --git a/usrp2/simple_gemac/simple_gemac_rx.v b/usrp2/simple_gemac/simple_gemac_rx.v
index b02bb0758..32f517bb3 100644
--- a/usrp2/simple_gemac/simple_gemac_rx.v
+++ b/usrp2/simple_gemac/simple_gemac_rx.v
@@ -56,10 +56,10 @@ module simple_gemac_rx
else
rx_ack <= (rx_state == RX_GOODFRAME);
- wire is_ucast, is_bcast, is_mcast, is_pause;
- wire keep_packet = (pass_ucast & is_ucast) | (pass_mcast & is_mcast) |
- (pass_bcast & is_bcast) | (pass_pause & is_pause) | pass_all;
-
+ wire is_ucast, is_bcast, is_mcast, is_pause, is_any_ucast;
+ wire keep_packet = (pass_all & is_any_ucast) | (pass_ucast & is_ucast) | (pass_mcast & is_mcast) |
+ (pass_bcast & is_bcast) | (pass_pause & is_pause);
+
assign rx_data = rxd_del;
assign rx_error = (rx_state == RX_ERROR);
@@ -79,6 +79,8 @@ module simple_gemac_rx
.address(48'hFFFF_FFFF_FFFF), .match(is_bcast), .done());
address_filter af_pause (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1),
.address(48'h0180_c200_0001), .match(is_pause), .done());
+ address_filter_promisc af_promisc (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1),
+ .match(is_any_ucast), .done());
always @(posedge rx_clk)
go_filt <= (rx_state==RX_PREAMBLE) & (rxd_d1 == 8'hD5);