OpenCores
URL https://opencores.org/ocsvn/udp_ip_stack/udp_ip_stack/trunk

Subversion Repositories udp_ip_stack

[/] [udp_ip_stack/] [tags/] [v2.4/] [rtl/] [vhdl/] [arp_RX.vhd] - Diff between revs 31 and 32

Show entire file | Details | Blame | View Log

Rev 31 Rev 32
Line 211... Line 211...
              rx_count_mode <= RST;
              rx_count_mode <= RST;
              set_rx_state  <= '1';
              set_rx_state  <= '1';
            --else
            --else
            end if;
            end if;
                                        -- check for end of frame. Also, detect and discard if not our frame
                                        -- check for end of frame. Also, detect and discard if not our frame
            if not_our_arp(data_in, rx_count, our_ip_address) = '1' then
              if rx_count = 41 then     -- TB 2013-01-14 15:09:45 was 42
 
                next_rx_state <= PROCESS_ARP;
 
                set_rx_state  <= '1';
 
              elsif not_our_arp(data_in, rx_count, our_ip_address) = '1' then
              dataval       <= data_in;
              dataval       <= data_in;
              set_err_data  <= '1';
              set_err_data  <= '1';
              next_rx_state <= WAIT_END;
              next_rx_state <= WAIT_END;
              set_rx_state  <= '1';
              set_rx_state  <= '1';
 
              elsif rx_count = 21 then
            else
                                        -- capture ARP operation
              case (to_integer(rx_count)) is
                case data_in is
                when 41 =>
 
                  next_rx_state <= PROCESS_ARP;
 
                  set_rx_state  <= '1';
 
                when 21 =>       -- capture ARP operation
 
                  case (data_in) is
 
                    when x"01" =>
                    when x"01" =>
                      arp_oper_set_val <= REQUEST;
                      arp_oper_set_val <= REQUEST;
                      set_arp_oper     <= '1';
                      set_arp_oper     <= '1';
                    when x"02" =>
                    when x"02" =>
                      arp_oper_set_val <= REPLY;
                      arp_oper_set_val <= REPLY;
                      set_arp_oper     <= '1';
                      set_arp_oper     <= '1';
                    when others =>        -- ignore other values
                    when others =>        -- ignore other values
                  end case;
                  end case;
                                        -- capture source mac addr
                                        -- capture source mac addr
                when 22 =>
              elsif rx_count = 22 then
                  set_mac5 <= '1';
                  set_mac5 <= '1';
                  dataval  <= data_in;
                  dataval  <= data_in;
                when 23 =>
              elsif rx_count = 23 then
                  set_mac4 <= '1';
                  set_mac4 <= '1';
                  dataval  <= data_in;
                  dataval  <= data_in;
                when 24 =>
              elsif rx_count = 24 then
                  set_mac3 <= '1';
                  set_mac3 <= '1';
                  dataval  <= data_in;
                  dataval  <= data_in;
                when 25 =>
              elsif rx_count = 25 then
                  set_mac2 <= '1';
                  set_mac2 <= '1';
                  dataval  <= data_in;
                  dataval  <= data_in;
                when 26 =>
              elsif rx_count = 26 then
                  set_mac1 <= '1';
                  set_mac1 <= '1';
                  dataval  <= data_in;
                  dataval  <= data_in;
                when 27 =>
              elsif rx_count = 27 then
                  set_mac0 <= '1';
                  set_mac0 <= '1';
                  dataval  <= data_in;
                  dataval  <= data_in;
                when 28 =>              -- capture source ip addr
                                        -- capture source ip addr
 
              elsif rx_count = 28 then
                  set_ip3 <= '1';
                  set_ip3 <= '1';
                  dataval <= data_in;
                  dataval <= data_in;
                when 29 =>
              elsif rx_count = 29 then
                  set_ip2 <= '1';
                  set_ip2 <= '1';
                  dataval <= data_in;
                  dataval <= data_in;
                when 30 =>
              elsif rx_count = 30 then
                  set_ip1 <= '1';
                  set_ip1 <= '1';
                  dataval <= data_in;
                  dataval <= data_in;
                when 31 =>
              elsif rx_count = 31 then
                  set_ip0 <= '1';
                  set_ip0 <= '1';
                  dataval <= data_in;
                  dataval <= data_in;
                when others =>  -- do nothing
 
              end case;
 
            end if;
            end if;
--            end if;
--            end if;
        end case;
        end case;
 
 
      when PROCESS_ARP =>
      when PROCESS_ARP =>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.