]> jspc29.x-matter.uni-frankfurt.de Git - trbnet.git/commitdiff
cleanup
authorMichael Boehmer <mboehmer@ph.tum.de>
Sun, 31 Jul 2022 22:00:30 +0000 (00:00 +0200)
committerMichael Boehmer <mboehmer@ph.tum.de>
Sun, 31 Jul 2022 22:00:30 +0000 (00:00 +0200)
gbe_trb/base/gbe_logic_wrapper.vhd
gbe_trb/base/gbe_wrapper_fifo.vhd
gbe_trb/base/trb_net16_gbe_main_control.vhd
gbe_trb/base/trb_net16_gbe_protocol_selector.vhd
gbe_trb/base/trb_net_gbe_protocols.vhd

index c6fb032e6a2e38160fb781ecf222b8f55707156b..7fe6d59629a081fe42bfdf9ee62d3b738fcc8616 100644 (file)
@@ -85,74 +85,74 @@ entity gbe_logic_wrapper is
 end entity gbe_logic_wrapper;
 
 architecture RTL of gbe_logic_wrapper is
-  signal fr_q              : std_logic_vector(8 downto 0);
-  signal fr_rd_en          : std_logic;
-  signal fr_frame_valid    : std_logic;
-  signal rc_rd_en          : std_logic;
-  signal rc_q              : std_logic_vector(8 downto 0);
-  signal rc_frames_rec_ctr : std_logic_vector(31 downto 0);
-  signal mc_data           : std_logic_vector(8 downto 0);
-  signal mc_wr_en          : std_logic;
-  signal fc_wr_en          : std_logic;
-  signal fc_data           : std_logic_vector(7 downto 0);
-  signal fc_ip_size        : std_logic_vector(15 downto 0);
-  signal fc_udp_size       : std_logic_vector(15 downto 0);
-  signal fc_ident          : std_logic_vector(15 downto 0);
-  signal fc_flags_offset   : std_logic_vector(15 downto 0);
-  signal fc_sod            : std_logic;
-  signal fc_eod            : std_logic;
-  signal fc_h_ready        : std_logic;
-  signal fc_ready          : std_logic;
-  signal rc_frame_ready    : std_logic;
-  signal fr_frame_size     : std_logic_vector(15 downto 0);
-  signal rc_frame_size     : std_logic_vector(15 downto 0);
-  signal mc_frame_size     : std_logic_vector(15 downto 0);
-  signal rc_bytes_rec      : std_logic_vector(31 downto 0);
-  signal rc_debug          : std_logic_vector(63 downto 0);
-  signal mc_transmit_ctrl  : std_logic;
-  signal rc_loading_done   : std_logic;
-  signal fr_get_frame      : std_logic;
-  signal mc_transmit_done  : std_logic;
+  signal fr_q                   : std_logic_vector(8 downto 0);
+  signal fr_rd_en               : std_logic;
+  signal fr_frame_valid         : std_logic;
+  signal rc_rd_en               : std_logic;
+  signal rc_q                   : std_logic_vector(8 downto 0);
+  signal rc_frames_rec_ctr      : std_logic_vector(31 downto 0);
+  signal mc_data                : std_logic_vector(8 downto 0);
+  signal mc_wr_en               : std_logic;
+  signal fc_wr_en               : std_logic;
+  signal fc_data                : std_logic_vector(7 downto 0);
+  signal fc_ip_size             : std_logic_vector(15 downto 0);
+  signal fc_udp_size            : std_logic_vector(15 downto 0);
+  signal fc_ident               : std_logic_vector(15 downto 0);
+  signal fc_flags_offset        : std_logic_vector(15 downto 0);
+  signal fc_sod                 : std_logic;
+  signal fc_eod                 : std_logic;
+  signal fc_h_ready             : std_logic;
+  signal fc_ready               : std_logic;
+  signal rc_frame_ready         : std_logic;
+  signal fr_frame_size          : std_logic_vector(15 downto 0);
+  signal rc_frame_size          : std_logic_vector(15 downto 0);
+  signal mc_frame_size          : std_logic_vector(15 downto 0);
+  signal rc_bytes_rec           : std_logic_vector(31 downto 0);
+  signal rc_debug               : std_logic_vector(63 downto 0);
+  signal mc_transmit_ctrl       : std_logic;
+  signal rc_loading_done        : std_logic;
+  signal fr_get_frame           : std_logic;
+  signal mc_transmit_done       : std_logic;
 
-  signal fr_frame_proto    : std_logic_vector(15 downto 0);
-  signal rc_frame_proto    : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal fr_frame_proto         : std_logic_vector(15 downto 0);
+  signal rc_frame_proto         : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
 
-  signal mc_type           : std_logic_vector(15 downto 0);
-  signal fr_src_mac        : std_logic_vector(47 downto 0);
-  signal fr_dest_mac       : std_logic_vector(47 downto 0);
-  signal fr_src_ip         : std_logic_vector(31 downto 0);
-  signal fr_dest_ip        : std_logic_vector(31 downto 0);
-  signal fr_src_udp        : std_logic_vector(15 downto 0);
-  signal fr_dest_udp       : std_logic_vector(15 downto 0);
-  signal rc_src_mac        : std_logic_vector(47 downto 0);
-  signal rc_dest_mac       : std_logic_vector(47 downto 0);
-  signal rc_src_ip         : std_logic_vector(31 downto 0);
-  signal rc_dest_ip        : std_logic_vector(31 downto 0);
-  signal rc_src_udp        : std_logic_vector(15 downto 0);
-  signal rc_dest_udp       : std_logic_vector(15 downto 0);
+  signal mc_type                : std_logic_vector(15 downto 0);
+  signal fr_src_mac             : std_logic_vector(47 downto 0);
+  signal fr_dest_mac            : std_logic_vector(47 downto 0);
+  signal fr_src_ip              : std_logic_vector(31 downto 0);
+  signal fr_dest_ip             : std_logic_vector(31 downto 0);
+  signal fr_src_udp             : std_logic_vector(15 downto 0);
+  signal fr_dest_udp            : std_logic_vector(15 downto 0);
+  signal rc_src_mac             : std_logic_vector(47 downto 0);
+  signal rc_dest_mac            : std_logic_vector(47 downto 0);
+  signal rc_src_ip              : std_logic_vector(31 downto 0);
+  signal rc_dest_ip             : std_logic_vector(31 downto 0);
+  signal rc_src_udp             : std_logic_vector(15 downto 0);
+  signal rc_dest_udp            : std_logic_vector(15 downto 0);
 
-  signal mc_dest_mac       : std_logic_vector(47 downto 0);
-  signal mc_dest_ip        : std_logic_vector(31 downto 0);
-  signal mc_dest_udp       : std_logic_vector(15 downto 0);
-  signal mc_src_mac        : std_logic_vector(47 downto 0);
-  signal mc_src_ip         : std_logic_vector(31 downto 0);
-  signal mc_src_udp        : std_logic_vector(15 downto 0);
+  signal mc_dest_mac            : std_logic_vector(47 downto 0);
+  signal mc_dest_ip             : std_logic_vector(31 downto 0);
+  signal mc_dest_udp            : std_logic_vector(15 downto 0);
+  signal mc_src_mac             : std_logic_vector(47 downto 0);
+  signal mc_src_ip              : std_logic_vector(31 downto 0);
+  signal mc_src_udp             : std_logic_vector(15 downto 0);
 
-  signal fc_dest_mac       : std_logic_vector(47 downto 0);
-  signal fc_dest_ip        : std_logic_vector(31 downto 0);
-  signal fc_dest_udp       : std_logic_vector(15 downto 0);
-  signal fc_src_mac        : std_logic_vector(47 downto 0);
-  signal fc_src_ip         : std_logic_vector(31 downto 0);
-  signal fc_src_udp        : std_logic_vector(15 downto 0);
-  signal fc_type           : std_logic_vector(15 downto 0);
-  signal fc_ihl_version    : std_logic_vector(7 downto 0);
-  signal fc_tos            : std_logic_vector(7 downto 0);
-  signal fc_ttl            : std_logic_vector(7 downto 0);
-  signal fc_protocol       : std_logic_vector(7 downto 0);
+  signal fc_dest_mac            : std_logic_vector(47 downto 0);
+  signal fc_dest_ip             : std_logic_vector(31 downto 0);
+  signal fc_dest_udp            : std_logic_vector(15 downto 0);
+  signal fc_src_mac             : std_logic_vector(47 downto 0);
+  signal fc_src_ip              : std_logic_vector(31 downto 0);
+  signal fc_src_udp             : std_logic_vector(15 downto 0);
+  signal fc_type                : std_logic_vector(15 downto 0);
+  signal fc_ihl_version         : std_logic_vector(7 downto 0);
+  signal fc_tos                 : std_logic_vector(7 downto 0);
+  signal fc_ttl                 : std_logic_vector(7 downto 0);
+  signal fc_protocol            : std_logic_vector(7 downto 0);
 
-  signal ft_data            : std_logic_vector(8 downto 0);
-  signal ft_tx_empty        : std_logic;
-  signal ft_start_of_packet : std_logic;
+  signal ft_data                : std_logic_vector(8 downto 0);
+  signal ft_tx_empty            : std_logic;
+  signal ft_start_of_packet     : std_logic;
 
   signal fr_ip_proto            : std_logic_vector(7 downto 0);
   signal mc_ip_proto            : std_logic_vector(7 downto 0);
index 680ef185b9be51269c890dc0cd6709796d3ae07d..92eb73e5cd2ddc07354af6acfca11ecced34485a 100644 (file)
@@ -64,10 +64,10 @@ entity gbe_wrapper_fifo is
     FWD_READY_OUT             : out std_logic;
     FWD_FULL_OUT              : out std_logic;
     --
-    OOB_REGISTER_0_OUT      : out std_logic_vector(31 downto 0);
-    OOB_REGISTER_1_OUT      : out std_logic_vector(31 downto 0);
-    OOB_REGISTER_2_OUT      : out std_logic_vector(31 downto 0);
-    OOB_REGISTER_3_OUT      : out std_logic_vector(31 downto 0);
+    OOB_REGISTER_0_OUT        : out std_logic_vector(31 downto 0);
+    OOB_REGISTER_1_OUT        : out std_logic_vector(31 downto 0);
+    OOB_REGISTER_2_OUT        : out std_logic_vector(31 downto 0);
+    OOB_REGISTER_3_OUT        : out std_logic_vector(31 downto 0);
     --                        
     MAKE_RESET_OUT            : out std_logic;
     --                        
index 7176a8fa89d59781565431303a395600c183a216..42db63c65f044a87fdacc2124ed7d40cb5e6b47c 100644 (file)
@@ -148,9 +148,6 @@ architecture trb_net16_gbe_main_control of trb_net16_gbe_main_control is
   signal ps_response_ready   : std_logic;
   signal ps_busy             : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
   signal rc_rd_en            : std_logic;
---  signal first_byte          : std_logic;
---  signal first_byte_q        : std_logic;
---  signal first_byte_qq       : std_logic;
   signal proto_select        : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
   signal loaded_bytes_ctr    : std_Logic_vector(15 downto 0);
 
@@ -337,7 +334,8 @@ begin
     end if;
   end process REDIRECT_MACHINE_PROC;
 
-  REDIRECT_MACHINE : process(redirect_current_state, link_current_state, RC_FRAME_WAITING_IN, ps_busy, RC_FRAME_PROTO_IN, loaded_bytes_ctr, RC_FRAME_SIZE_IN)
+  REDIRECT_MACHINE: process( redirect_current_state, link_current_state, RC_FRAME_WAITING_IN, 
+                             ps_busy, RC_FRAME_PROTO_IN, loaded_bytes_ctr, RC_FRAME_SIZE_IN )
   begin
     redirect_state <= x"0";
 
@@ -412,7 +410,7 @@ begin
   rc_rd_en     <= '1' when redirect_current_state = LOAD or redirect_current_state = DROP else '0';
   RC_RD_EN_OUT <= rc_rd_en;
 
-  LOADING_DONE_PROC : process(CLK)
+  LOADING_DONE_PROC: process( CLK )
   begin
     if rising_edge(CLK) then
       if (RC_DATA_IN(8) = '1' and ps_wr_en_q = '1') then
@@ -423,7 +421,7 @@ begin
     end if;
   end process LOADING_DONE_PROC;
 
-  PS_WR_EN_PROC : process(CLK)
+  PS_WR_EN_PROC: process( CLK )
   begin
     if rising_edge(CLK) then
       ps_wr_en    <= rc_rd_en;
@@ -432,7 +430,7 @@ begin
     end if;
   end process PS_WR_EN_PROC;
 
-  LOADED_BYTES_CTR_PROC : process(CLK)
+  LOADED_BYTES_CTR_PROC: process( CLK )
   begin
     if rising_edge(CLK) then
       if   ( redirect_current_state = IDLE) then
@@ -445,24 +443,10 @@ begin
     end if;
   end process LOADED_BYTES_CTR_PROC;
 
---  FIRST_BYTE_PROC : process(CLK)
---  begin
---    if rising_edge(CLK) then
---      first_byte_q  <= first_byte;
---      first_byte_qq <= first_byte_q;
---
---      if (redirect_current_state = IDLE) then
---        first_byte <= '1';
---      else
---        first_byte <= '0';
---      end if;
---    end if;
---  end process FIRST_BYTE_PROC;
-
   --*********************
   --   DATA FLOW CONTROL
 
-  FLOW_MACHINE_PROC : process(RESET, CLK)
+  FLOW_MACHINE_PROC: process( RESET, CLK )
   begin
     if RESET = '1' then
       flow_current_state <= IDLE;
@@ -471,7 +455,7 @@ begin
     end if;
   end process FLOW_MACHINE_PROC;
 
-  FLOW_MACHINE : process(flow_current_state, TC_TRANSMIT_DONE_IN, ps_response_ready, tc_data)
+  FLOW_MACHINE: process(flow_current_state, TC_TRANSMIT_DONE_IN, ps_response_ready, tc_data)
   begin
     flow_state <= x"0";
 
@@ -509,7 +493,7 @@ begin
     end case;
   end process FLOW_MACHINE;
 
-  process(CLK)
+  process( CLK )
   begin
     if rising_edge(CLK) then
       if (flow_current_state = IDLE and ps_response_ready = '1') then
@@ -529,8 +513,8 @@ begin
   --***********************
   --   LINK STATE CONTROL
 
-  lsm_impl_gen : if DO_SIMULATION = 0 generate
-    LINK_STATE_MACHINE_PROC : process(MC_RESET_LINK_IN, CLK)
+  lsm_impl_gen: if DO_SIMULATION = 0 generate
+    LINK_STATE_MACHINE_PROC: process( MC_RESET_LINK_IN, CLK )
     begin
       if MC_RESET_LINK_IN = '1' then
         link_current_state <= INACTIVE;
@@ -544,8 +528,8 @@ begin
     end process;
   end generate lsm_impl_gen;
 
-  lsm_sim_gen : if DO_SIMULATION = 1 generate
-    LINK_STATE_MACHINE_PROC : process(MC_RESET_LINK_IN, CLK)
+  lsm_sim_gen: if DO_SIMULATION = 1 generate
+    LINK_STATE_MACHINE_PROC: process( MC_RESET_LINK_IN, CLK )
     begin
       if MC_RESET_LINK_IN = '1' then
         link_current_state <= GET_ADDRESS;
index 74f1d5a999bd162def1c7e537d7cbd5475f0ed64..9fe6b2414ae4d9020f3cc2ba1a00e8a8c5b6f524 100644 (file)
@@ -112,31 +112,31 @@ architecture trb_net16_gbe_protocol_selector of trb_net16_gbe_protocol_selector
 
   attribute syn_encoding : string;
 
-  signal rd_en       : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal resp_ready  : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal tc_wr       : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal tc_data     : std_logic_vector(c_MAX_PROTOCOLS * 9 - 1 downto 0);
-  signal tc_size     : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal tc_type     : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal busy        : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal selected    : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal tc_mac      : std_logic_vector(c_MAX_PROTOCOLS * 48 - 1 downto 0);
-  signal tc_ip       : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0);
-  signal tc_udp      : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal tc_src_mac  : std_logic_vector(c_MAX_PROTOCOLS * 48 - 1 downto 0);
-  signal tc_src_ip   : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0);
-  signal tc_src_udp  : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal tc_ip_proto : std_logic_vector(c_MAX_PROTOCOLS * 8 - 1 downto 0);
+  signal rd_en             : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal resp_ready        : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal tc_wr             : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal tc_data           : std_logic_vector(c_MAX_PROTOCOLS * 9 - 1 downto 0);
+  signal tc_size           : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal tc_type           : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal busy              : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal selected          : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal tc_mac            : std_logic_vector(c_MAX_PROTOCOLS * 48 - 1 downto 0);
+  signal tc_ip             : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0);
+  signal tc_udp            : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal tc_src_mac        : std_logic_vector(c_MAX_PROTOCOLS * 48 - 1 downto 0);
+  signal tc_src_ip         : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0);
+  signal tc_src_udp        : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal tc_ip_proto       : std_logic_vector(c_MAX_PROTOCOLS * 8 - 1 downto 0);
 
   -- plus 1 is for the outside
-  signal stat_data     : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0);
-  signal stat_addr     : std_logic_vector(c_MAX_PROTOCOLS * 8 - 1 downto 0);
-  signal stat_rdy      : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal stat_ack      : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
-  signal tc_ip_size    : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal tc_udp_size   : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal tc_size_left  : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
-  signal tc_flags_size : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal stat_data         : std_logic_vector(c_MAX_PROTOCOLS * 32 - 1 downto 0);
+  signal stat_addr         : std_logic_vector(c_MAX_PROTOCOLS * 8 - 1 downto 0);
+  signal stat_rdy          : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal stat_ack          : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
+  signal tc_ip_size        : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal tc_udp_size       : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal tc_size_left      : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
+  signal tc_flags_size     : std_logic_vector(c_MAX_PROTOCOLS * 16 - 1 downto 0);
 
   signal tc_data_not_valid : std_logic_vector(c_MAX_PROTOCOLS - 1 downto 0);
 
@@ -164,15 +164,14 @@ begin
   zeros <= (others => '0');
   MY_IP_OUT <= my_ip;
 
-  arp_gen : if INCLUDE_ARP = '1' generate
+  arp_gen: if INCLUDE_ARP = '1' generate
     -- protocol Nr. 1 ARP
-    ARP : trb_net16_gbe_response_constructor_ARP
+    ARP: trb_net16_gbe_response_constructor_ARP
       generic map(STAT_ADDRESS_BASE => 6
       )
       port map(
         CLK                    => CLK,
         RESET                  => RESET,
-
         -- INTERFACE
         MY_MAC_IN              => MY_MAC_IN,
         MY_IP_IN               => my_ip,
@@ -211,14 +210,14 @@ begin
       );
   end generate arp_gen;
 
-  no_arp_gen : if INCLUDE_ARP = '0' generate
+  no_arp_gen: if INCLUDE_ARP = '0' generate
     resp_ready(0) <= '0';
     busy(0)       <= '0';
   end generate no_arp_gen;
 
-  dhcp_gen : if INCLUDE_DHCP = '1' generate
+  dhcp_gen: if INCLUDE_DHCP = '1' generate
     -- protocol No. 2 DHCP
-    DHCP : trb_net16_gbe_response_constructor_DHCP
+    DHCP: trb_net16_gbe_response_constructor_DHCP
       generic map(
         STAT_ADDRESS_BASE => 0,
         DO_SIMULATION     => DO_SIMULATION
@@ -226,7 +225,6 @@ begin
       port map(
         CLK                    => CLK,
         RESET                  => RESET_FOR_DHCP, --RESET,
-
         -- INTERFACE   
         MY_MAC_IN              => MY_MAC_IN,
         MY_IP_IN               => my_ip,
@@ -261,7 +259,6 @@ begin
         RECEIVED_FRAMES_OUT    => open,
         SENT_FRAMES_OUT        => open,
         -- END OF INTERFACE
-
         MY_IP_OUT              => my_ip,
         DHCP_START_IN          => DHCP_START_IN,
         DHCP_DONE_OUT          => DHCP_DONE_OUT,
@@ -269,25 +266,21 @@ begin
       );
   end generate dhcp_gen;
 
-  no_dhcp_gen : if INCLUDE_DHCP = '0' generate
+  no_dhcp_gen: if INCLUDE_DHCP = '0' generate
     resp_ready(1) <= '0';
     busy(1)       <= '0';
   end generate no_dhcp_gen;
 
-  ping_gen : if INCLUDE_PING = '1' generate
+  ping_gen: if INCLUDE_PING = '1' generate
     --protocol No. 3 Ping
---    Ping : entity work.trb_net16_gbe_response_constructor_KillPing
-    Ping : entity work.trb_net16_gbe_response_constructor_Ping
+    Ping: entity work.trb_net16_gbe_response_constructor_Ping
       generic map(STAT_ADDRESS_BASE => 3
       )
       port map(
         CLK                    => CLK,
         RESET                  => RESET,
-
         ---- INTERFACE
         MY_MAC_IN              => MY_MAC_IN,
---        MY_TRBNET_ADDRESS_IN   => MY_TRBNET_ADDRESS_IN,
---        ISSUE_REBOOT_OUT          => ISSUE_REBOOT_OUT,
         MY_IP_IN               => my_ip,
         PS_DATA_IN             => PS_DATA_IN,
         PS_WR_EN_IN            => PS_WR_EN_IN,
@@ -324,20 +317,19 @@ begin
       );
   end generate ping_gen;
 
-  no_ping_gen : if INCLUDE_PING = '0' generate
+  no_ping_gen: if INCLUDE_PING = '0' generate
     resp_ready(4) <= '0';
     busy(4)       <= '0';
   end generate no_ping_gen;
 
-  sctrl_gen : if INCLUDE_SLOWCTRL = '1' generate
-    SCTRL : trb_net16_gbe_response_constructor_SCTRL
+  sctrl_gen: if INCLUDE_SLOWCTRL = '1' generate
+    SCTRL: trb_net16_gbe_response_constructor_SCTRL
       generic map(STAT_ADDRESS_BASE    => 8,
                 SLOWCTRL_BUFFER_SIZE => SLOWCTRL_BUFFER_SIZE
       )
       port map(
         CLK                           => CLK,
         RESET                         => RESET,
-
         -- INTERFACE   
         MY_MAC_IN                     => MY_MAC_IN,
         MY_IP_IN                      => my_ip,
@@ -391,7 +383,7 @@ begin
       );
   end generate sctrl_gen;
 
-  no_sctrl_gen : if INCLUDE_SLOWCTRL = '0' generate
+  no_sctrl_gen: if INCLUDE_SLOWCTRL = '0' generate
     resp_ready(2)  <= '0';
     busy(2)        <= '0';
     MAKE_RESET_OUT <= '0';
@@ -408,13 +400,12 @@ begin
   busy(3)                  <= '0';
   ---------------------------------------------------------------------------------------
 
-  fwd_gen : if INCLUDE_FWD = '1' generate
+  fwd_gen: if INCLUDE_FWD = '1' generate
 
-    Forward : entity work.trb_net16_gbe_response_constructor_Forward
+    Forward: entity work.trb_net16_gbe_response_constructor_Forward
       port map(
         CLK                    => CLK,
         RESET                  => RESET,
-
         ---- INTERFACE
         MY_MAC_IN              => MY_MAC_IN,
         MY_IP_IN               => my_ip,
@@ -444,7 +435,6 @@ begin
         TC_SRC_UDP_OUT         => tc_src_udp(6 * 16 - 1 downto 5 * 16),
         RECEIVED_FRAMES_OUT    => open,
         SENT_FRAMES_OUT        => open,
-
         FWD_DST_MAC_IN         => FWD_DST_MAC_IN,
         FWD_DST_IP_IN          => FWD_DST_IP_IN,
         FWD_DST_UDP_IN         => FWD_DST_UDP_IN,
@@ -453,8 +443,7 @@ begin
         FWD_SOP_IN             => FWD_SOP_IN,
         FWD_EOP_IN             => FWD_EOP_IN,
         FWD_READY_OUT          => FWD_READY_OUT,
-        FWD_FULL_OUT           => FWD_FULL_OUT,
-  
+        FWD_FULL_OUT           => FWD_FULL_OUT,  
         DEBUG_OUT              => DEBUG_OUT(31 downto 0) --open
       -- END OF INTERFACE
       );
@@ -463,7 +452,7 @@ begin
 
   DEBUG_OUT(63 downto 32) <= (others => '0');
   
-  no_fwd_gen : if INCLUDE_FWD = '0' generate
+  no_fwd_gen: if INCLUDE_FWD = '0' generate
     resp_ready(5) <= '0';
     busy(5) <= '0';
     DEBUG_OUT(31 downto 0) <= (others => '0');
@@ -471,7 +460,7 @@ begin
 
   PS_BUSY_OUT <= busy;
 
-  SELECT_MACHINE_PROC : process(RESET, CLK)
+  SELECT_MACSHINE_PROC : process(RESET, CLK)
   begin
     if RESET = '1' then
       select_current_state <= IDLE;
index 81a9cdfb6e6bdeb1b6ece09bbdde10be75491db8..335b23c1cf04d48ec459ff4bdfaa1ed6bb949ea4 100644 (file)
@@ -33,599 +33,208 @@ package trb_net_gbe_protocols is
 -------------------------------------------------------------------------------------------------------  
 -------------------------------------------------------------------------------------------------------  
 
-       component trb_net16_gbe_response_constructor_ARP is
-               generic(STAT_ADDRESS_BASE : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN            : in  std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_Test is
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_WR_EN_OUT           : out std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       TC_BUSY_IN             : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_Trash is
-               generic(STAT_ADDRESS_BASE : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN            : in  std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_SIZE_LEFT_OUT       : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_IP_SIZE_OUT         : out std_logic_vector(15 downto 0);
-                       TC_UDP_SIZE_OUT        : out std_logic_vector(15 downto 0);
-                       TC_FLAGS_OFFSET_OUT    : out std_logic_vector(15 downto 0);
-                       TC_BUSY_IN             : in  std_logic;
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_DHCP is
-               generic(
-                       STAT_ADDRESS_BASE : integer := 0;
-                       DO_SIMULATION     : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN            : in  std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       MY_IP_OUT              : out std_logic_vector(31 downto 0);
-                       DHCP_START_IN          : in  std_logic;
-                       DHCP_DONE_OUT          : out std_logic;
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_Ping is
-               generic(STAT_ADDRESS_BASE : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN            : in  std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-       
-       component trb_net16_gbe_response_constructor_KillPing is
-               generic(STAT_ADDRESS_BASE : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN            : in  std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-                       
-                       MY_TRBNET_ADDRESS_IN : in std_logic_vector(15 downto 0);
-                       ISSUE_REBOOT_OUT : out std_logic;
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_PseudoPing is
-               generic(STAT_ADDRESS_BASE : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN            : in  std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_Test1 is
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_WR_EN_OUT           : out std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       TC_BUSY_IN             : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_SCTRL is
-               generic(STAT_ADDRESS_BASE    : integer              := 0;
-                           SLOWCTRL_BUFFER_SIZE : integer range 1 to 4 := 1
-               );
-               port(
-                       CLK                           : in  std_logic; -- system clock
-                       RESET                         : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN                     : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN                      : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN                    : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN                   : in  std_logic;
-                       PS_ACTIVATE_IN                : in  std_logic;
-                       PS_RESPONSE_READY_OUT         : out std_logic;
-                       PS_BUSY_OUT                   : out std_logic;
-                       PS_SELECTED_IN                : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN         : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN        : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN          : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN         : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN            : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN           : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN                   : in  std_logic;
-                       TC_DATA_OUT                   : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT             : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT             : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT            : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT                  : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT               : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT                : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT               : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT                : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT                 : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT                : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT                 : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT                 : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT             : out std_logic;
-                       STAT_DATA_ACK_IN              : in  std_logic;
-                       DEBUG_OUT                     : out std_logic_vector(63 downto 0);
-                       -- END OF INTERFACE
-
-                       -- protocol specific ports
-                       GSC_CLK_IN                    : in  std_logic;
-                       GSC_INIT_DATAREADY_OUT        : out std_logic;
-                       GSC_INIT_DATA_OUT             : out std_logic_vector(15 downto 0);
-                       GSC_INIT_PACKET_NUM_OUT       : out std_logic_vector(2 downto 0);
-                       GSC_INIT_READ_IN              : in  std_logic;
-                       GSC_REPLY_DATAREADY_IN        : in  std_logic;
-                       GSC_REPLY_DATA_IN             : in  std_logic_vector(15 downto 0);
-                       GSC_REPLY_PACKET_NUM_IN       : in  std_logic_vector(2 downto 0);
-                       GSC_REPLY_READ_OUT            : out std_logic;
-                       GSC_BUSY_IN                   : in  std_logic;
-                       MAKE_RESET_OUT                : out std_logic;
-                       CFG_ADDITIONAL_HDR_IN         : in  std_logic;
-                       CFG_MAX_REPLY_SIZE_IN         : in  std_logic_vector(31 downto 0);
-                       -- end of protocol specific ports
-
-                       MONITOR_SELECT_REC_OUT        : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_REC_BYTES_OUT  : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_SENT_OUT       : out std_logic_vector(31 downto 0);
-                       DATA_HIST_OUT                 : out hist_array
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_Stat is
-               generic(STAT_ADDRESS_BASE : integer := 0
-               );
-               port(
-                       CLK                    : in  std_logic; -- system clock
-                       RESET                  : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN              : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN               : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN             : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN            : in  std_logic;
-                       PS_ACTIVATE_IN         : in  std_logic;
-                       PS_RESPONSE_READY_OUT  : out std_logic;
-                       PS_BUSY_OUT            : out std_logic;
-                       PS_SELECTED_IN         : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
-                       TC_WR_EN_OUT           : out std_logic;
-                       TC_DATA_OUT            : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
-                       TC_IP_SIZE_OUT         : out std_logic_vector(15 downto 0);
-                       TC_UDP_SIZE_OUT        : out std_logic_vector(15 downto 0);
-                       TC_FLAGS_OFFSET_OUT    : out std_logic_vector(15 downto 0);
-                       TC_BUSY_IN             : in  std_logic;
-                       STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT      : out std_logic;
-                       STAT_DATA_ACK_IN       : in  std_logic;
-                       RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
-                       SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
-                       -- END OF INTERFACE
-
-                       STAT_DATA_IN           : in  std_logic_vector((c_MAX_PROTOCOLS + 1) * 32 - 1 downto 0);
-                       STAT_ADDR_IN           : in  std_logic_vector((c_MAX_PROTOCOLS + 1) * 8 - 1 downto 0);
-                       STAT_DATA_RDY_IN       : in  std_logic_vector((c_MAX_PROTOCOLS + 1) - 1 downto 0);
-                       STAT_DATA_ACK_OUT      : out std_logic_vector((c_MAX_PROTOCOLS + 1) - 1 downto 0);
-
-                       -- debug
-                       DEBUG_OUT              : out std_logic_vector(63 downto 0)
-               );
-       end component;
-
-       component trb_net16_gbe_response_constructor_TrbNetData is
-               generic(
-                       RX_PATH_ENABLE      : integer range 0 to 1 := 1;
-                       DO_SIMULATION       : integer range 0 to 1 := 0;
-                       READOUT_BUFFER_SIZE : integer range 1 to 4 := 1
-               );
-               port(
-                       CLK                           : in  std_logic; -- system clock
-                       RESET                         : in  std_logic;
-
-                       -- INTERFACE    
-                       MY_MAC_IN                     : in  std_logic_vector(47 downto 0);
-                       MY_IP_IN                      : in  std_logic_vector(31 downto 0);
-                       PS_DATA_IN                    : in  std_logic_vector(8 downto 0);
-                       PS_WR_EN_IN                   : in  std_logic;
-                       PS_ACTIVATE_IN                : in  std_logic;
-                       PS_RESPONSE_READY_OUT         : out std_logic;
-                       PS_BUSY_OUT                   : out std_logic;
-                       PS_SELECTED_IN                : in  std_logic;
-                       PS_SRC_MAC_ADDRESS_IN         : in  std_logic_vector(47 downto 0);
-                       PS_DEST_MAC_ADDRESS_IN        : in  std_logic_vector(47 downto 0);
-                       PS_SRC_IP_ADDRESS_IN          : in  std_logic_vector(31 downto 0);
-                       PS_DEST_IP_ADDRESS_IN         : in  std_logic_vector(31 downto 0);
-                       PS_SRC_UDP_PORT_IN            : in  std_logic_vector(15 downto 0);
-                       PS_DEST_UDP_PORT_IN           : in  std_logic_vector(15 downto 0);
-                       TC_RD_EN_IN                   : in  std_logic;
-                       TC_DATA_OUT                   : out std_logic_vector(8 downto 0);
-                       TC_FRAME_SIZE_OUT             : out std_logic_vector(15 downto 0);
-                       TC_FRAME_TYPE_OUT             : out std_logic_vector(15 downto 0);
-                       TC_IP_PROTOCOL_OUT            : out std_logic_vector(7 downto 0);
-                       TC_IDENT_OUT                  : out std_logic_vector(15 downto 0);
-                       TC_DEST_MAC_OUT               : out std_logic_vector(47 downto 0);
-                       TC_DEST_IP_OUT                : out std_logic_vector(31 downto 0);
-                       TC_DEST_UDP_OUT               : out std_logic_vector(15 downto 0);
-                       TC_SRC_MAC_OUT                : out std_logic_vector(47 downto 0);
-                       TC_SRC_IP_OUT                 : out std_logic_vector(31 downto 0);
-                       TC_SRC_UDP_OUT                : out std_logic_vector(15 downto 0);
-                       STAT_DATA_OUT                 : out std_logic_vector(31 downto 0);
-                       STAT_ADDR_OUT                 : out std_logic_vector(7 downto 0);
-                       STAT_DATA_RDY_OUT             : out std_logic;
-                       STAT_DATA_ACK_IN              : in  std_logic;
-                       DEBUG_OUT                     : out std_logic_vector(63 downto 0);
-
-                       -- END OF INTERFACE
-
-                       -- CTS interface
-                       CTS_NUMBER_IN                 : in  std_logic_vector(15 downto 0);
-                       CTS_CODE_IN                   : in  std_logic_vector(7 downto 0);
-                       CTS_INFORMATION_IN            : in  std_logic_vector(7 downto 0);
-                       CTS_READOUT_TYPE_IN           : in  std_logic_vector(3 downto 0);
-                       CTS_START_READOUT_IN          : in  std_logic;
-                       CTS_DATA_OUT                  : out std_logic_vector(31 downto 0);
-                       CTS_DATAREADY_OUT             : out std_logic;
-                       CTS_READOUT_FINISHED_OUT      : out std_logic;
-                       CTS_READ_IN                   : in  std_logic;
-                       CTS_LENGTH_OUT                : out std_logic_vector(15 downto 0);
-                       CTS_ERROR_PATTERN_OUT         : out std_logic_vector(31 downto 0);
-                       -- Data payload interface
-                       FEE_DATA_IN                   : in  std_logic_vector(15 downto 0);
-                       FEE_DATAREADY_IN              : in  std_logic;
-                       FEE_READ_OUT                  : out std_logic;
-                       FEE_STATUS_BITS_IN            : in  std_logic_vector(31 downto 0);
-                       FEE_BUSY_IN                   : in  std_logic;
-                       -- ip configurator
-                       SLV_ADDR_IN                   : in  std_logic_vector(7 downto 0);
-                       SLV_READ_IN                   : in  std_logic;
-                       SLV_WRITE_IN                  : in  std_logic;
-                       SLV_BUSY_OUT                  : out std_logic;
-                       SLV_ACK_OUT                   : out std_logic;
-                       SLV_DATA_IN                   : in  std_logic_vector(31 downto 0);
-                       SLV_DATA_OUT                  : out std_logic_vector(31 downto 0);
-                       CFG_GBE_ENABLE_IN             : in  std_logic;
-                       CFG_IPU_ENABLE_IN             : in  std_logic;
-                       CFG_MULT_ENABLE_IN            : in  std_logic;
-                       CFG_SUBEVENT_ID_IN            : in  std_logic_vector(31 downto 0);
-                       CFG_SUBEVENT_DEC_IN           : in  std_logic_vector(31 downto 0);
-                       CFG_QUEUE_DEC_IN              : in  std_logic_vector(31 downto 0);
-                       CFG_READOUT_CTR_IN            : in  std_logic_vector(23 downto 0);
-                       CFG_READOUT_CTR_VALID_IN      : in  std_logic;
-                       CFG_INSERT_TTYPE_IN           : in  std_logic;
-                       CFG_MAX_SUB_IN                : in  std_logic_vector(15 downto 0);
-                       CFG_MAX_QUEUE_IN              : in  std_logic_vector(15 downto 0);
-                       CFG_MAX_SUBS_IN_QUEUE_IN      : in  std_logic_vector(15 downto 0);
-                       CFG_MAX_SINGLE_SUB_IN         : in  std_logic_vector(15 downto 0);
-                       CFG_AUTO_THROTTLE_IN          : in  std_logic;
-                       CFG_THROTTLE_PAUSE_IN         : in  std_logic_vector(15 downto 0);
-                       MONITOR_SELECT_REC_OUT        : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_REC_BYTES_OUT  : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_SENT_OUT       : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_DROP_IN_OUT    : out std_logic_vector(31 downto 0);
-                       MONITOR_SELECT_DROP_OUT_OUT   : out std_logic_vector(31 downto 0);
-                       DATA_HIST_OUT                 : out hist_array
-               );
-       end component;
+  component trb_net16_gbe_response_constructor_ARP is
+    generic(
+      STAT_ADDRESS_BASE : integer := 0
+    );
+    port(
+      CLK                    : in  std_logic; -- system clock
+      RESET                  : in  std_logic;
+      -- INTERFACE     
+      MY_MAC_IN              : in  std_logic_vector(47 downto 0);
+      MY_IP_IN               : in  std_logic_vector(31 downto 0);
+      PS_DATA_IN             : in  std_logic_vector(8 downto 0);
+      PS_WR_EN_IN            : in  std_logic;
+      PS_ACTIVATE_IN         : in  std_logic;
+      PS_RESPONSE_READY_OUT  : out std_logic;
+      PS_BUSY_OUT            : out std_logic;
+      PS_SELECTED_IN         : in  std_logic;
+      PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
+      PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
+      PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
+      PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
+      PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
+      PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
+      TC_RD_EN_IN            : in  std_logic;
+      TC_DATA_OUT            : out std_logic_vector(8 downto 0);
+      TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
+      TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
+      TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
+      TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
+      TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
+      TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
+      TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
+      TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
+      TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
+      TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
+      STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
+      STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
+      STAT_DATA_RDY_OUT      : out std_logic;
+      STAT_DATA_ACK_IN       : in  std_logic;
+      RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
+      SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
+      -- END OF INTERFACE 
+      DEBUG_OUT              : out std_logic_vector(63 downto 0)
+    );
+  end component;
+
+  component trb_net16_gbe_response_constructor_DHCP is
+    generic(
+      STAT_ADDRESS_BASE : integer := 0;
+      DO_SIMULATION     : integer := 0
+    );
+    port(
+      CLK                    : in  std_logic; -- system clock
+      RESET                  : in  std_logic;
+      -- INTERFACE     
+      MY_MAC_IN              : in  std_logic_vector(47 downto 0);
+      MY_IP_IN               : in  std_logic_vector(31 downto 0);
+      PS_DATA_IN             : in  std_logic_vector(8 downto 0);
+      PS_WR_EN_IN            : in  std_logic;
+      PS_ACTIVATE_IN         : in  std_logic;
+      PS_RESPONSE_READY_OUT  : out std_logic;
+      PS_BUSY_OUT            : out std_logic;
+      PS_SELECTED_IN         : in  std_logic;
+      PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
+      PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
+      PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
+      PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
+      PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
+      PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
+      TC_RD_EN_IN            : in  std_logic;
+      TC_DATA_OUT            : out std_logic_vector(8 downto 0);
+      TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
+      TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
+      TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
+      TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
+      TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
+      TC_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
+      TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
+      TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
+      TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
+      TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
+      STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
+      STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
+      STAT_DATA_RDY_OUT      : out std_logic;
+      STAT_DATA_ACK_IN       : in  std_logic;
+      RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
+      SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
+      -- END OF INTERFACE
+      MY_IP_OUT              : out std_logic_vector(31 downto 0);
+      DHCP_START_IN          : in  std_logic;
+      DHCP_DONE_OUT          : out std_logic;
+      -- debug
+      DEBUG_OUT              : out std_logic_vector(63 downto 0)
+  );
+  end component;
+
+  component trb_net16_gbe_response_constructor_Ping is
+    generic(
+      STAT_ADDRESS_BASE : integer := 0
+    );
+    port(
+      CLK                    : in  std_logic; -- system clock
+      RESET                  : in  std_logic;
+      -- INTERFACE     
+      MY_MAC_IN              : in  std_logic_vector(47 downto 0);
+      MY_IP_IN               : in  std_logic_vector(31 downto 0);
+      PS_DATA_IN             : in  std_logic_vector(8 downto 0);
+      PS_WR_EN_IN            : in  std_logic;
+      PS_ACTIVATE_IN         : in  std_logic;
+      PS_RESPONSE_READY_OUT  : out std_logic;
+      PS_BUSY_OUT            : out std_logic;
+      PS_SELECTED_IN         : in  std_logic;
+      PS_SRC_MAC_ADDRESS_IN  : in  std_logic_vector(47 downto 0);
+      PS_DEST_MAC_ADDRESS_IN : in  std_logic_vector(47 downto 0);
+      PS_SRC_IP_ADDRESS_IN   : in  std_logic_vector(31 downto 0);
+      PS_DEST_IP_ADDRESS_IN  : in  std_logic_vector(31 downto 0);
+      PS_SRC_UDP_PORT_IN     : in  std_logic_vector(15 downto 0);
+      PS_DEST_UDP_PORT_IN    : in  std_logic_vector(15 downto 0);
+      TC_RD_EN_IN            : in  std_logic;
+      TC_DATA_OUT            : out std_logic_vector(8 downto 0);
+      TC_FRAME_SIZE_OUT      : out std_logic_vector(15 downto 0);
+      TC_FRAME_TYPE_OUT      : out std_logic_vector(15 downto 0);
+      TC_IP_PROTOCOL_OUT     : out std_logic_vector(7 downto 0);
+      TC_IDENT_OUT           : out std_logic_vector(15 downto 0);
+      TC_DEST_MAC_OUT        : out std_logic_vector(47 downto 0);
+      T_DEST_IP_OUT         : out std_logic_vector(31 downto 0);
+      TC_DEST_UDP_OUT        : out std_logic_vector(15 downto 0);
+      TC_SRC_MAC_OUT         : out std_logic_vector(47 downto 0);
+      TC_SRC_IP_OUT          : out std_logic_vector(31 downto 0);
+      TC_SRC_UDP_OUT         : out std_logic_vector(15 downto 0);
+      STAT_DATA_OUT          : out std_logic_vector(31 downto 0);
+      STAT_ADDR_OUT          : out std_logic_vector(7 downto 0);
+      STAT_DATA_RDY_OUT      : out std_logic;
+      STAT_DATA_ACK_IN       : in  std_logic;
+      RECEIVED_FRAMES_OUT    : out std_logic_vector(15 downto 0);
+      SENT_FRAMES_OUT        : out std_logic_vector(15 downto 0);
+      -- END OF INTERFACE
+      DEBUG_OUT              : out std_logic_vector(63 downto 0)
+    );
+  end component;
+
+  component trb_net16_gbe_response_constructor_SCTRL is
+    generic(
+      STAT_ADDRESS_BASE    : integer              := 0;
+      SLOWCTRL_BUFFER_SIZE : integer range 1 to 4 := 1
+    );
+    port(
+      CLK                           : in  std_logic; -- system clock
+      RESET                         : in  std_logic;
+      -- INTERFACE     
+      MY_MAC_IN                     : in  std_logic_vector(47 downto 0);
+      MY_IP_IN                      : in  std_logic_vector(31 downto 0);
+      PS_DATA_IN                    : in  std_logic_vector(8 downto 0);
+      PS_WR_EN_IN                   : in  std_logic;
+      PS_ACTIVATE_IN                : in  std_logic;
+      PS_RESPONSE_READY_OUT         : out std_logic;
+      PS_BUSY_OUT                   : out std_logic;
+      PS_SELECTED_IN                : in  std_logic;
+      PS_SRC_MAC_ADDRESS_IN         : in  std_logic_vector(47 downto 0);
+      PS_DEST_MAC_ADDRESS_IN        : in  std_logic_vector(47 downto 0);
+      PS_SRC_IP_ADDRESS_IN          : in  std_logic_vector(31 downto 0);
+      PS_DEST_IP_ADDRESS_IN         : in  std_logic_vector(31 downto 0);
+      PS_SRC_UDP_PORT_IN            : in  std_logic_vector(15 downto 0);
+      PS_DEST_UDP_PORT_IN           : in  std_logic_vector(15 downto 0);
+      TC_RD_EN_IN                   : in  std_logic;
+      TC_DATA_OUT                   : out std_logic_vector(8 downto 0);
+      TC_FRAME_SIZE_OUT             : out std_logic_vector(15 downto 0);
+      TC_FRAME_TYPE_OUT             : out std_logic_vector(15 downto 0);
+      TC_IP_PROTOCOL_OUT            : out std_logic_vector(7 downto 0);
+      TC_IDENT_OUT                  : out std_logic_vector(15 downto 0);
+      TC_DEST_MAC_OUT               : out std_logic_vector(47 downto 0);
+      TC_DEST_IP_OUT                : out std_logic_vector(31 downto 0);
+      TC_DEST_UDP_OUT               : out std_logic_vector(15 downto 0);
+      TC_SRC_MAC_OUT                : out std_logic_vector(47 downto 0);
+      TC_SRC_IP_OUT                 : out std_logic_vector(31 downto 0);
+      TC_SRC_UDP_OUT                : out std_logic_vector(15 downto 0);
+      STAT_DATA_OUT                 : out std_logic_vector(31 downto 0);
+      STAT_ADDR_OUT                 : out std_logic_vector(7 downto 0);
+      STAT_DATA_RDY_OUT             : out std_logic;
+      STAT_DATA_ACK_IN              : in  std_logic;
+      DEBUG_OUT                     : out std_logic_vector(63 downto 0);
+      -- END OF INTERFACE
+      -- protocol specific ports
+      GSC_CLK_IN                    : in  std_logic;
+      GSC_INIT_DATAREADY_OUT        : out std_logic;
+      GSC_INIT_DATA_OUT             : out std_logic_vector(15 downto 0);
+      GSC_INIT_PACKET_NUM_OUT       : out std_logic_vector(2 downto 0);
+      GSC_INIT_READ_IN              : in  std_logic;
+      GSC_REPLY_DATAREADY_IN        : in  std_logic;
+      GSC_REPLY_DATA_IN             : in  std_logic_vector(15 downto 0);
+      GSC_REPLY_PACKET_NUM_IN       : in  std_logic_vector(2 downto 0);
+      GSC_REPLY_READ_OUT            : out std_logic;
+      GSC_BUSY_IN                   : in  std_logic;
+      MAKE_RESET_OUT                : out std_logic;
+      CFG_ADDITIONAL_HDR_IN         : in  std_logic;
+      CFG_MAX_REPLY_SIZE_IN         : in  std_logic_vector(31 downto 0);
+      -- end of protocol specific ports
+      MONITOR_SELECT_REC_OUT        : out std_logic_vector(31 downto 0);
+      MONITOR_SELECT_REC_BYTES_OUT  : out std_logic_vector(31 downto 0);
+      MONITOR_SELECT_SENT_BYTES_OUT : out std_logic_vector(31 downto 0);
+      MONITOR_SELECT_SENT_OUT       : out std_logic_vector(31 downto 0);
+      DATA_HIST_OUT                 : out hist_array
+    );
+  end component;
 
 end package;