From 6315030c94e7716bbf39a3da13d75ed27599f676 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 1 Apr 2009 00:41:59 +0000 Subject: checkpoint git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10725 221aa14e-8319-0410-a670-987f0aec2ac5 --- simple_gemac/address_filter.v | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 simple_gemac/address_filter.v diff --git a/simple_gemac/address_filter.v b/simple_gemac/address_filter.v new file mode 100644 index 000000000..2d2f4df51 --- /dev/null +++ b/simple_gemac/address_filter.v @@ -0,0 +1,34 @@ + + +module address_filter + (input clk, + input reset, + input go, + input [7:0] data, + input [47:0] address, + output match, + output done); + + reg [2:0] af_state; + + always @(posedge clk) + if(reset) + af_state <= 0; + else + if(go) + af_state <= (data == address[47:40]) ? 1 : 7; + else + case(af_state) + 1 : af_state <= (data == address[39:32]) ? 2 : 7; + 2 : af_state <= (data == address[31:24]) ? 3 : 7; + 3 : af_state <= (data == address[23:16]) ? 4 : 7; + 4 : af_state <= (data == address[15:8]) ? 5 : 7; + 5 : af_state <= (data == address[7:0]) ? 6 : 7; + endcase // case (af_state) + + assign match = (af_state==6); + assign done = (af_state==6)|(af_state==7); + +endmodule // address_filter + + -- cgit v1.2.3