From 2e2f245c05b966cd1b4cdab83c96ad8803cd595d Mon Sep 17 00:00:00 2001 From: Michael Boehmer Date: Mon, 1 Aug 2022 00:00:30 +0200 Subject: [PATCH] cleanup --- gbe_trb/base/gbe_logic_wrapper.vhd | 126 +-- gbe_trb/base/gbe_wrapper_fifo.vhd | 8 +- gbe_trb/base/trb_net16_gbe_main_control.vhd | 40 +- .../base/trb_net16_gbe_protocol_selector.vhd | 91 +- gbe_trb/base/trb_net_gbe_protocols.vhd | 797 +++++------------- 5 files changed, 322 insertions(+), 740 deletions(-) diff --git a/gbe_trb/base/gbe_logic_wrapper.vhd b/gbe_trb/base/gbe_logic_wrapper.vhd index c6fb032..7fe6d59 100644 --- a/gbe_trb/base/gbe_logic_wrapper.vhd +++ b/gbe_trb/base/gbe_logic_wrapper.vhd @@ -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); diff --git a/gbe_trb/base/gbe_wrapper_fifo.vhd b/gbe_trb/base/gbe_wrapper_fifo.vhd index 680ef18..92eb73e 100644 --- a/gbe_trb/base/gbe_wrapper_fifo.vhd +++ b/gbe_trb/base/gbe_wrapper_fifo.vhd @@ -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; -- diff --git a/gbe_trb/base/trb_net16_gbe_main_control.vhd b/gbe_trb/base/trb_net16_gbe_main_control.vhd index 7176a8f..42db63c 100644 --- a/gbe_trb/base/trb_net16_gbe_main_control.vhd +++ b/gbe_trb/base/trb_net16_gbe_main_control.vhd @@ -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; diff --git a/gbe_trb/base/trb_net16_gbe_protocol_selector.vhd b/gbe_trb/base/trb_net16_gbe_protocol_selector.vhd index 74f1d5a..9fe6b24 100644 --- a/gbe_trb/base/trb_net16_gbe_protocol_selector.vhd +++ b/gbe_trb/base/trb_net16_gbe_protocol_selector.vhd @@ -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; diff --git a/gbe_trb/base/trb_net_gbe_protocols.vhd b/gbe_trb/base/trb_net_gbe_protocols.vhd index 81a9cdf..335b23c 100644 --- a/gbe_trb/base/trb_net_gbe_protocols.vhd +++ b/gbe_trb/base/trb_net_gbe_protocols.vhd @@ -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; -- 2.43.0