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

Subversion Repositories udp_ip_stack

[/] [udp_ip_stack/] [trunk/] [rtl/] [vhdl/] [arp.vhd] - Diff between revs 2 and 4

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 4
Line 20... Line 20...
-- Dependencies: 
-- Dependencies: 
--
--
-- Revision: 
-- Revision: 
-- Revision 0.01 - File Created
-- Revision 0.01 - File Created
-- Revision 0.02 - Added req for mac tx and wait for grant
-- Revision 0.02 - Added req for mac tx and wait for grant
 
-- Revision 0.03 - Added data_out_first
 
 
-- Additional Comments: 
-- Additional Comments: 
--
--
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
library IEEE;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_1164.ALL;
Line 45... Line 47...
                        mac_tx_req                      : out std_logic;                                                                        -- indicates that ip wants access to channel (stays up for as long as tx)
                        mac_tx_req                      : out std_logic;                                                                        -- indicates that ip wants access to channel (stays up for as long as tx)
                        mac_tx_granted          : in std_logic;                                                                 -- indicates that access to channel has been granted            
                        mac_tx_granted          : in std_logic;                                                                 -- indicates that access to channel has been granted            
                        data_out_clk            : in std_logic;
                        data_out_clk            : in std_logic;
                        data_out_ready          : in std_logic;                                                                 -- indicates system ready to consume data
                        data_out_ready          : in std_logic;                                                                 -- indicates system ready to consume data
                        data_out_valid          : out std_logic;                                                                        -- indicates data out is valid
                        data_out_valid          : out std_logic;                                                                        -- indicates data out is valid
 
                        data_out_first          : out std_logic;                                                                        -- with data out valid indicates the first byte of a frame
                        data_out_last           : out std_logic;                                                                        -- with data out valid indicates the last byte of a frame
                        data_out_last           : out std_logic;                                                                        -- with data out valid indicates the last byte of a frame
                        data_out                                : out std_logic_vector (7 downto 0);             -- ethernet frame (from dst mac addr through to last byte of frame)
                        data_out                                : out std_logic_vector (7 downto 0);             -- ethernet frame (from dst mac addr through to last byte of frame)
                        -- system signals
                        -- system signals
                        our_mac_address         : in STD_LOGIC_VECTOR (47 downto 0);
                        our_mac_address         : in STD_LOGIC_VECTOR (47 downto 0);
                        our_ip_address  : in STD_LOGIC_VECTOR (31 downto 0);
                        our_ip_address  : in STD_LOGIC_VECTOR (31 downto 0);
Line 553... Line 556...
                set_chn_reqd, clear_reply_req)
                set_chn_reqd, clear_reply_req)
        begin
        begin
                -- set output followers
                -- set output followers
                mac_tx_req <= tx_mac_chn_reqd;
                mac_tx_req <= tx_mac_chn_reqd;
 
 
 
                -- set initial values for combinatorial outputs
 
                data_out_first <= '0';
 
 
                case tx_state is
                case tx_state is
                        when SEND   =>
                        when SEND   =>
                                if data_out_ready = '1' and kill_data_out_valid = '0' then
                                if data_out_ready = '1' and kill_data_out_valid = '0' then
                                        data_out_valid <= '1';
                                        data_out_valid <= '1';
                                else
                                else
Line 602... Line 608...
                        when SEND =>
                        when SEND =>
                                if data_out_ready = '1' then
                                if data_out_ready = '1' then
                                                tx_count_mode <= INCR;
                                                tx_count_mode <= INCR;
                                end if;
                                end if;
                                case tx_count is
                                case tx_count is
                                        when x"00"  => data_out <= x"ff";                                                               -- dst = broadcast
                                        when x"00"  =>
 
                                                data_out_first <= data_out_ready;
 
                                                data_out <= x"ff";                                                              -- dst = broadcast
 
 
                                        when x"01"  => data_out <= x"ff";
                                        when x"01"  => data_out <= x"ff";
                                        when x"02"  => data_out <= x"ff";
                                        when x"02"  => data_out <= x"ff";
                                        when x"03"  => data_out <= x"ff";
                                        when x"03"  => data_out <= x"ff";
                                        when x"04"  => data_out <= x"ff";
                                        when x"04"  => data_out <= x"ff";
                                        when x"05"  => data_out <= x"ff";
                                        when x"05"  => data_out <= x"ff";

powered by: WebSVN 2.1.0

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