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

Subversion Repositories udp_ip_stack

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

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

Rev 2 Rev 4
Line 13... Line 13...
-- Dependencies: 
-- Dependencies: 
--
--
-- Revision: 
-- Revision: 
-- Revision 0.01 - File Created
-- Revision 0.01 - File Created
-- Revision 0.02 - separated RX and TX clocks
-- Revision 0.02 - separated RX and TX clocks
 
-- Revision 0.03 - Added mac_tx_tfirst
-- Additional Comments: 
-- Additional Comments: 
--
--
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
LIBRARY ieee;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_1164.ALL;
Line 45... Line 46...
                        ip_pkt_count                    : out STD_LOGIC_VECTOR(7 downto 0);                      -- number of IP pkts received for us
                        ip_pkt_count                    : out STD_LOGIC_VECTOR(7 downto 0);                      -- number of IP pkts received for us
                        -- MAC Transmitter
                        -- MAC Transmitter
                        mac_tx_tdata         : out  std_logic_vector(7 downto 0);        -- data byte to tx
                        mac_tx_tdata         : out  std_logic_vector(7 downto 0);        -- data byte to tx
                        mac_tx_tvalid        : out  std_logic;                                                  -- tdata is valid
                        mac_tx_tvalid        : out  std_logic;                                                  -- tdata is valid
                        mac_tx_tready        : in std_logic;                                                    -- mac is ready to accept data
                        mac_tx_tready        : in std_logic;                                                    -- mac is ready to accept data
 
                        mac_tx_tfirst        : out  std_logic;                                                  -- indicates first byte of frame
                        mac_tx_tlast         : out  std_logic;                                                  -- indicates last byte of frame
                        mac_tx_tlast         : out  std_logic;                                                  -- indicates last byte of frame
                        -- MAC Receiver
                        -- MAC Receiver
                        mac_rx_tdata         : in std_logic_vector(7 downto 0);  -- data byte received
                        mac_rx_tdata         : in std_logic_vector(7 downto 0);  -- data byte received
                        mac_rx_tvalid        : in std_logic;                                                    -- indicates tdata is valid
                        mac_rx_tvalid        : in std_logic;                                                    -- indicates tdata is valid
                        mac_rx_tready        : out  std_logic;                                                  -- tells mac that we are ready to take data
                        mac_rx_tready        : out  std_logic;                                                  -- tells mac that we are ready to take data
Line 85... Line 87...
                        -- MAC layer TX signals
                        -- MAC layer TX signals
                        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            
                        mac_data_out_ready      : in std_logic;                                                                 -- indicates system ready to consume data
                        mac_data_out_ready      : in std_logic;                                                                 -- indicates system ready to consume data
                        mac_data_out_valid      : out std_logic;                                                                        -- indicates data out is valid
                        mac_data_out_valid      : out std_logic;                                                                        -- indicates data out is valid
 
                        mac_data_out_first      : out std_logic;                                                                        -- with data out valid indicates the first byte of a frame
                        mac_data_out_last               : out std_logic;                                                                        -- with data out valid indicates the last byte of a frame
                        mac_data_out_last               : out std_logic;                                                                        -- with data out valid indicates the last byte of a frame
                        mac_data_out                    : out std_logic_vector (7 downto 0)                      -- ethernet frame (from dst mac addr through to last byte of frame)      
                        mac_data_out                    : out std_logic_vector (7 downto 0)                      -- ethernet frame (from dst mac addr through to last byte of frame)      
         );
         );
         END COMPONENT;
         END COMPONENT;
 
 
Line 107... Line 110...
                        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 125... Line 129...
 
 
                req_1                           : in  std_logic;
                req_1                           : in  std_logic;
                grant_1                 : out std_logic;
                grant_1                 : out std_logic;
      data_1         : in  std_logic_vector(7 downto 0); -- data byte to tx
      data_1         : in  std_logic_vector(7 downto 0); -- data byte to tx
      valid_1        : in  std_logic;                                                   -- tdata is valid
      valid_1        : in  std_logic;                                                   -- tdata is valid
 
      first_1        : in  std_logic;                                                   -- indicates first byte of frame
      last_1         : in  std_logic;                                                   -- indicates last byte of frame
      last_1         : in  std_logic;                                                   -- indicates last byte of frame
 
 
                req_2                           : in  std_logic;
                req_2                           : in  std_logic;
                grant_2                 : out std_logic;
                grant_2                 : out std_logic;
      data_2         : in  std_logic_vector(7 downto 0); -- data byte to tx
      data_2         : in  std_logic_vector(7 downto 0); -- data byte to tx
      valid_2        : in  std_logic;                                                   -- tdata is valid
      valid_2        : in  std_logic;                                                   -- tdata is valid
 
      first_2        : in  std_logic;                                                   -- indicates first byte of frame
      last_2         : in  std_logic;                                                   -- indicates last byte of frame
      last_2         : in  std_logic;                                                   -- indicates last byte of frame
 
 
      data              : out  std_logic_vector(7 downto 0);     -- data byte to tx
      data              : out  std_logic_vector(7 downto 0);     -- data byte to tx
      valid             : out  std_logic;                                                       -- tdata is valid
      valid             : out  std_logic;                                                       -- tdata is valid
 
      first             : out  std_logic;                                                       -- indicates first byte of frame
      last              : out  std_logic                                                        -- indicates last byte of frame
      last              : out  std_logic                                                        -- indicates last byte of frame
         );
         );
         END COMPONENT;
         END COMPONENT;
 
 
        ---------------------------
        ---------------------------
Line 151... Line 158...
        -- MAC arbitration busses
        -- MAC arbitration busses
        signal ip_mac_req                               : std_logic;
        signal ip_mac_req                               : std_logic;
        signal ip_mac_grant                     : std_logic;
        signal ip_mac_grant                     : std_logic;
        signal ip_mac_data_out          : std_logic_vector (7 downto 0);
        signal ip_mac_data_out          : std_logic_vector (7 downto 0);
        signal ip_mac_valid                     : std_logic;
        signal ip_mac_valid                     : std_logic;
 
        signal ip_mac_first                     : std_logic;
        signal ip_mac_last                      : std_logic;
        signal ip_mac_last                      : std_logic;
        signal arp_mac_req                      : std_logic;
        signal arp_mac_req                      : std_logic;
        signal arp_mac_grant                    : std_logic;
        signal arp_mac_grant                    : std_logic;
        signal arp_mac_data_out         : std_logic_vector (7 downto 0);
        signal arp_mac_data_out         : std_logic_vector (7 downto 0);
        signal arp_mac_valid                    : std_logic;
        signal arp_mac_valid                    : std_logic;
 
        signal arp_mac_first                    : std_logic;
        signal arp_mac_last                     : std_logic;
        signal arp_mac_last                     : std_logic;
        -- MAC RX bus
        -- MAC RX bus
        signal mac_rx_tready_int        : std_logic;
        signal mac_rx_tready_int        : std_logic;
        -- MAC TX bus
        -- MAC TX bus
        signal mac_tx_tdata_int         : std_logic_vector (7 downto 0);
        signal mac_tx_tdata_int         : std_logic_vector (7 downto 0);
        signal mac_tx_tvalid_int        : std_logic;
        signal mac_tx_tvalid_int        : std_logic;
 
        signal mac_tx_tfirst_int        : std_logic;
        signal mac_tx_tlast_int         : std_logic;
        signal mac_tx_tlast_int         : std_logic;
        -- control signals
        -- control signals
        signal mac_tx_granted_int       : std_logic;
        signal mac_tx_granted_int       : std_logic;
 
 
begin
begin
Line 173... Line 183...
        mac_rx_tready_int <= '1';               -- enable the mac receiver
        mac_rx_tready_int <= '1';               -- enable the mac receiver
 
 
        -- set followers
        -- set followers
        mac_tx_tdata <= mac_tx_tdata_int;
        mac_tx_tdata <= mac_tx_tdata_int;
        mac_tx_tvalid <= mac_tx_tvalid_int;
        mac_tx_tvalid <= mac_tx_tvalid_int;
 
        mac_tx_tfirst <= mac_tx_tfirst_int;
        mac_tx_tlast <= mac_tx_tlast_int;
        mac_tx_tlast <= mac_tx_tlast_int;
 
 
        mac_rx_tready <= mac_rx_tready_int;
        mac_rx_tready <= mac_rx_tready_int;
 
 
   ------------------------------------------------------------------------------
   ------------------------------------------------------------------------------
Line 201... Line 212...
          arp_req_rslt                  => arp_req_rslt_int,
          arp_req_rslt                  => arp_req_rslt_int,
          mac_tx_req                    => ip_mac_req,
          mac_tx_req                    => ip_mac_req,
          mac_tx_granted                => ip_mac_grant,
          mac_tx_granted                => ip_mac_grant,
          mac_data_out_ready    => mac_tx_tready,
          mac_data_out_ready    => mac_tx_tready,
          mac_data_out_valid    => ip_mac_valid,
          mac_data_out_valid    => ip_mac_valid,
 
                         mac_data_out_first     => ip_mac_first,
          mac_data_out_last     => ip_mac_last,
          mac_data_out_last     => ip_mac_last,
          mac_data_out                  => ip_mac_data_out,
          mac_data_out                  => ip_mac_data_out,
          mac_data_in                   => mac_rx_tdata,
          mac_data_in                   => mac_rx_tdata,
          mac_data_in_valid     => mac_rx_tvalid,
          mac_data_in_valid     => mac_rx_tvalid,
          mac_data_in_last      => mac_rx_tlast
          mac_data_in_last      => mac_rx_tlast
Line 228... Line 240...
                          mac_tx_req                                    => arp_mac_req,
                          mac_tx_req                                    => arp_mac_req,
                          mac_tx_granted                                => arp_mac_grant,
                          mac_tx_granted                                => arp_mac_grant,
                          data_out_clk                                  => tx_clk,
                          data_out_clk                                  => tx_clk,
                          data_out_ready                                => mac_tx_tready,
                          data_out_ready                                => mac_tx_tready,
                          data_out_valid                                => arp_mac_valid,
                          data_out_valid                                => arp_mac_valid,
 
                          data_out_first                                => arp_mac_first,
                          data_out_last                         => arp_mac_last,
                          data_out_last                         => arp_mac_last,
                          data_out                                              => arp_mac_data_out,
                          data_out                                              => arp_mac_data_out,
                          -- system signals
                          -- system signals
                          our_mac_address                               => our_mac_address,
                          our_mac_address                               => our_mac_address,
                          our_ip_address                                => our_ip_address,
                          our_ip_address                                => our_ip_address,
Line 249... Line 262...
 
 
                                req_1                                                   => ip_mac_req,
                                req_1                                                   => ip_mac_req,
                                grant_1                                         => ip_mac_grant,
                                grant_1                                         => ip_mac_grant,
                                data_1                          => ip_mac_data_out,
                                data_1                          => ip_mac_data_out,
                                valid_1                         => ip_mac_valid,
                                valid_1                         => ip_mac_valid,
 
                                first_1                                         => ip_mac_first,
                                last_1                                          => ip_mac_last,
                                last_1                                          => ip_mac_last,
 
 
                                req_2                                                   => arp_mac_req,
                                req_2                                                   => arp_mac_req,
                                grant_2                                         => arp_mac_grant,
                                grant_2                                         => arp_mac_grant,
                                data_2                          => arp_mac_data_out,
                                data_2                          => arp_mac_data_out,
                                valid_2                         => arp_mac_valid,
                                valid_2                         => arp_mac_valid,
 
                                first_2                                         => arp_mac_first,
                                last_2                                          => arp_mac_last,
                                last_2                                          => arp_mac_last,
 
 
                                data                                    => mac_tx_tdata_int,
                                data                                    => mac_tx_tdata_int,
                                valid                                   => mac_tx_tvalid_int,
                                valid                                   => mac_tx_tvalid_int,
 
                                first                                   => mac_tx_tfirst_int,
                                last                                    => mac_tx_tlast_int
                                last                                    => mac_tx_tlast_int
                          );
                          );
 
 
end structural;
end structural;
 
 

powered by: WebSVN 2.1.0

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