use work.trb_net_gbe_components.all;
use work.trb_net_gbe_protocols.all;
-use work.trb_net_gbe_components.all;
entity gbe_wrapper is
generic(
BUS_REG_TX : out CTRLBUS_TX;
-- Forwarder
-FWD_DST_MAC_IN : in std_logic_vector(48 * NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_DST_IP_IN : in std_logic_vector(32 * NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_DST_UDP_IN : in std_logic_vector(16 * NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_DATA_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS * 8 - 1 downto 0);
-FWD_DATA_VALID_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_SOP_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_EOP_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_READY_OUT : out std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
-FWD_FULL_OUT : out std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
+ FWD_DST_MAC_IN : in std_logic_vector(48 * NUMBER_OF_GBE_LINKS - 1 downto 0) := (others => '0');
+ FWD_DST_IP_IN : in std_logic_vector(32 * NUMBER_OF_GBE_LINKS - 1 downto 0) := (others => '0');
+ FWD_DST_UDP_IN : in std_logic_vector(16 * NUMBER_OF_GBE_LINKS - 1 downto 0) := (others => '0');
+ FWD_DATA_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS * 8 - 1 downto 0) := (others => '0');
+ FWD_DATA_VALID_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0) := (others => '0');
+ FWD_SOP_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0) := (others => '0');
+ FWD_EOP_IN : in std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0) := (others => '0');
+ FWD_READY_OUT : out std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
+ FWD_FULL_OUT : out std_logic_vector(NUMBER_OF_GBE_LINKS - 1 downto 0);
MAKE_RESET_OUT : out std_logic;
DEBUG_OUT : out std_logic_vector(127 downto 0)
INCLUDE_DHCP => LINK_HAS_DHCP(3),
INCLUDE_ARP => LINK_HAS_ARP(3),
INCLUDE_PING => LINK_HAS_PING(3),
- INCLUDE_FWD => LINK_HAS_FWD(3),
+ INCLUDE_FWD => LINK_HAS_FWD(3),
FRAME_BUFFER_SIZE => 1,
READOUT_BUFFER_SIZE => 4,
SLOWCTRL_BUFFER_SIZE => 2,
CFG_AUTO_THROTTLE_IN => cfg_autothrottle,
CFG_THROTTLE_PAUSE_IN => cfg_throttle_pause,
-FWD_DST_MAC_IN => FWD_DST_MAC_IN(4 * 48 - 1 downto 3 * 48),
-FWD_DST_IP_IN => FWD_DST_IP_IN(4 * 32 - 1 downto 3 * 32),
-FWD_DST_UDP_IN => FWD_DST_UDP_IN(4 * 16 - 1 downto 3 * 16),
-FWD_DATA_IN => FWD_DATA_IN(4 * 8 - 1 downto 3 * 8),
-FWD_DATA_VALID_IN => FWD_DATA_VALID_IN(3),
-FWD_SOP_IN => FWD_SOP_IN(3),
-FWD_EOP_IN => FWD_EOP_IN(3),
-FWD_READY_OUT => FWD_READY_OUT(3),
-FWD_FULL_OUT => FWD_FULL_OUT(3),
+ FWD_DST_MAC_IN => FWD_DST_MAC_IN(4 * 48 - 1 downto 3 * 48),
+ FWD_DST_IP_IN => FWD_DST_IP_IN(4 * 32 - 1 downto 3 * 32),
+ FWD_DST_UDP_IN => FWD_DST_UDP_IN(4 * 16 - 1 downto 3 * 16),
+ FWD_DATA_IN => FWD_DATA_IN(4 * 8 - 1 downto 3 * 8),
+ FWD_DATA_VALID_IN => FWD_DATA_VALID_IN(3),
+ FWD_SOP_IN => FWD_SOP_IN(3),
+ FWD_EOP_IN => FWD_EOP_IN(3),
+ FWD_READY_OUT => FWD_READY_OUT(3),
+ FWD_FULL_OUT => FWD_FULL_OUT(3),
MONITOR_RX_FRAMES_OUT => monitor_rx_frames(4 * 32 - 1 downto 3 * 32),
MONITOR_RX_BYTES_OUT => monitor_rx_bytes(4 * 32 - 1 downto 3 * 32),
busip3.data <= (others => '0');
busip3.ack <= '0';
busip3.nack <= '0';
+ monitor_rx_frames(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ monitor_rx_bytes(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ monitor_tx_frames(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ monitor_tx_bytes(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ monitor_tx_packets(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ monitor_dropped(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ monitor_gen_dbg <= (others => '0');
+ make_reset3 <= '0';
+ FWD_READY_OUT(3) <= '0';
+ FWD_FULL_OUT(3) <= '1';
+ mlt_cts_data(4 * 32 - 1 downto 3 * 32) <= (others => '0');
+ mlt_cts_dataready(3) <= '0';
+ mlt_cts_readout_finished(3) <= '0';
+ mlt_cts_length(4 * 16 - 1 downto 3 * 16) <= (others => '0');
+ mlt_cts_error_pattern(4 * 32 - 1 downto 3 * 32) <= (others => '0');
end generate NO_LINK3_GEN;
-- sfp7
busip2.data <= (others => '0');
busip2.ack <= '0';
busip2.nack <= '0';
+
+ monitor_rx_frames(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ monitor_rx_bytes(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ monitor_tx_frames(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ monitor_tx_bytes(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ monitor_tx_packets(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ monitor_dropped(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ monitor_gen_dbg <= (others => '0');
+ make_reset2 <= '0';
+ FWD_READY_OUT(2) <= '0';
+ FWD_FULL_OUT(2) <= '1';
+ mlt_cts_data(3 * 32 - 1 downto 2 * 32) <= (others => '0');
+ mlt_cts_dataready(2) <= '0';
+ mlt_cts_readout_finished(2) <= '0';
+ mlt_cts_length(3 * 16 - 1 downto 2 * 16) <= (others => '0');
+ mlt_cts_error_pattern(3 * 32 - 1 downto 2 * 32) <= (others => '0');
end generate NO_LINK2_GEN;
-- sfp6
busip1.data <= (others => '0');
busip1.ack <= '0';
busip1.nack <= '0';
+
+ monitor_rx_frames(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ monitor_rx_bytes(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ monitor_tx_frames(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ monitor_tx_bytes(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ monitor_tx_packets(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ monitor_dropped(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ monitor_gen_dbg <= (others => '0');
+ make_reset1 <= '0';
+ FWD_READY_OUT(1) <= '0';
+ FWD_FULL_OUT(1) <= '1';
+ mlt_cts_data(2 * 32 - 1 downto 1 * 32) <= (others => '0');
+ mlt_cts_dataready(1) <= '0';
+ mlt_cts_readout_finished(1) <= '0';
+ mlt_cts_length(2 * 16 - 1 downto 1 * 16) <= (others => '0');
+ mlt_cts_error_pattern(2 * 32 - 1 downto 1 * 32) <= (others => '0');
end generate NO_LINK1_GEN;
-- sfp5
busip0.data <= (others => '0');
busip0.ack <= '0';
busip0.nack <= '0';
+ monitor_rx_frames(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ monitor_rx_bytes(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ monitor_tx_frames(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ monitor_tx_bytes(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ monitor_tx_packets(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ monitor_dropped(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ monitor_gen_dbg <= (others => '0');
+ make_reset0 <= '0';
+ FWD_READY_OUT(0) <= '0';
+ FWD_FULL_OUT(0) <= '1';
+ mlt_cts_data(1 * 32 - 1 downto 0 * 32) <= (others => '0');
+ mlt_cts_dataready(0) <= '0';
+ mlt_cts_readout_finished(0) <= '0';
+ mlt_cts_length(1 * 16 - 1 downto 0 * 16) <= (others => '0');
+ mlt_cts_error_pattern(1 * 32 - 1 downto 0 * 32) <= (others => '0');
end generate NO_LINK0_GEN;
BUS_IP_TX.ack <= busip0.ack or busip1.ack or busip2.ack or busip3.ack when rising_edge(CLK_SYS_IN);
DUMMY_EVENT_SIZE_OUT => dummy_event,
DUMMY_TRIGGERED_MODE_OUT => dummy_mode,
- DATA_HIST_IN => dbg_hist,
- SCTRL_HIST_IN => dbg_hist2
+ DATA_HIST_IN => (others => (others => '0')), --dbg_hist,
+ SCTRL_HIST_IN => (others => (others => '0')) --dbg_hist2
);
end generate;