diff options
author | Josh Blum <josh@joshknows.com> | 2010-11-21 13:24:48 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2010-11-23 19:06:59 -0800 |
commit | 257ba8bb1caebca29e1dddd9e73bfd32abe8d1d1 (patch) | |
tree | cad9f7ee535fa439fde9efa9746ec326f72f170f | |
parent | 15180da94ec11958ad97aaf0e79c29e2081b8b51 (diff) | |
download | uhd-257ba8bb1caebca29e1dddd9e73bfd32abe8d1d1.tar.gz uhd-257ba8bb1caebca29e1dddd9e73bfd32abe8d1d1.tar.bz2 uhd-257ba8bb1caebca29e1dddd9e73bfd32abe8d1d1.zip |
packet_router: added a way to program in the ip and mac addrs, and added inspector check
-rw-r--r-- | usrp2/fifo/packet_router.v | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/usrp2/fifo/packet_router.v b/usrp2/fifo/packet_router.v index dda1519b8..7bc5255be 100644 --- a/usrp2/fifo/packet_router.v +++ b/usrp2/fifo/packet_router.v @@ -74,6 +74,8 @@ module packet_router reg master_mode_flag; reg router_clr; reg [BUF_SIZE-1:0] cpu_inp_line_count; + reg [31:0] my_ip_addr; + reg [47:0] my_mac_addr; always @(posedge control_changed) begin cpu_out_hs_ctrl <= control[0]; @@ -81,6 +83,18 @@ module packet_router master_mode_flag <= control[2]; router_clr <= control[8]; cpu_inp_line_count <= control[BUF_SIZE-1+16:0+16]; + case (control[6:4]) + 3'b001: + my_ip_addr[15:0] <= control[31:16]; + 3'b010: + my_ip_addr[31:16] <= control[31:16]; + 3'b011: + my_mac_addr[15:0] <= control[31:16]; + 3'b100: + my_mac_addr[31:16] <= control[31:16]; + 3'b101: + my_mac_addr[47:32] <= control[31:16]; + endcase end wire cpu_out_hs_stat; @@ -362,8 +376,9 @@ module packet_router && (com_inp_data[31:0] != 32'h0) //VRT hdr non-zero ; - wire com_inp_dregs_is_data_here = com_inp_dregs_is_data & 1'b1; //TODO check for ip match - wire com_inp_dregs_is_data_there = com_inp_dregs_is_data & 1'b0; //TODO check for ip mismatch + wire com_inp_dregs_my_ip_match = (my_ip_addr == com_insp_dregs[8][31:0])? 1'b1 : 1'b0; + wire com_inp_dregs_is_data_here = com_inp_dregs_is_data & com_inp_dregs_my_ip_match; + wire com_inp_dregs_is_data_there = com_inp_dregs_is_data & ~com_inp_dregs_my_ip_match; //Inspector output flags special case: //Inject SOF into flags at first DSP line. |