entity trb_net16_gbe_frame_receiver is
port (
- CLK : in std_logic; -- system clock
- RESET : in std_logic;
- LINK_OK_IN : in std_logic;
- ALLOW_RX_IN : in std_logic;
- RX_MAC_CLK : in std_logic; -- receiver serdes clock
- MY_MAC_IN : in std_logic_vector(47 downto 0);
+ CLK : in std_logic; -- system clock
+ RESET : in std_logic;
+ LINK_OK_IN : in std_logic;
+ ALLOW_RX_IN : in std_logic;
+ RX_MAC_CLK : in std_logic; -- receiver serdes clock
+ MY_MAC_IN : in std_logic_vector(47 downto 0);
- MY_TRBNET_ADDRESS_IN : in std_logic_vector(15 downto 0);
- ISSUE_REBOOT_OUT : out std_logic;
+ MY_TRBNET_ADDRESS_IN : in std_logic_vector(15 downto 0);
+ ISSUE_REBOOT_OUT : out std_logic;
-- input signals from TS_MAC
- MAC_RX_EOF_IN : in std_logic;
- MAC_RX_ER_IN : in std_logic;
- MAC_RXD_IN : in std_logic_vector(7 downto 0);
- MAC_RX_EN_IN : in std_logic;
- MAC_RX_FIFO_ERR_IN : in std_logic;
- MAC_RX_FIFO_FULL_OUT : out std_logic;
- MAC_RX_STAT_EN_IN : in std_logic;
- MAC_RX_STAT_VEC_IN : in std_logic_vector(31 downto 0);
+ MAC_RX_EOF_IN : in std_logic;
+ MAC_RX_ER_IN : in std_logic;
+ MAC_RXD_IN : in std_logic_vector(7 downto 0);
+ MAC_RX_EN_IN : in std_logic;
+ MAC_RX_FIFO_ERR_IN : in std_logic;
+ MAC_RX_FIFO_FULL_OUT : out std_logic;
+ MAC_RX_STAT_EN_IN : in std_logic;
+ MAC_RX_STAT_VEC_IN : in std_logic_vector(31 downto 0);
-- output signal to control logic
- FR_Q_OUT : out std_logic_vector(8 downto 0);
- FR_RD_EN_IN : in std_logic;
- FR_FRAME_VALID_OUT : out std_logic;
- FR_GET_FRAME_IN : in std_logic;
- FR_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0);
- FR_FRAME_PROTO_OUT : out std_logic_vector(15 downto 0);
- FR_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0);
- FR_ALLOWED_TYPES_IN : in std_logic_vector(31 downto 0);
- FR_ALLOWED_IP_IN : in std_logic_vector(31 downto 0);
- FR_ALLOWED_UDP_IN : in std_logic_vector(31 downto 0);
- FR_VLAN_ID_IN : in std_logic_vector(31 downto 0);
-
- FR_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0);
- FR_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0);
- FR_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0);
- FR_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0);
- FR_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0);
- FR_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0);
-
- MONITOR_RX_BYTES_OUT : out std_logic_vector(31 downto 0);
- MONITOR_RX_FRAMES_OUT : out std_logic_vector(31 downto 0);
- MONITOR_DROPPED_OUT : out std_logic_vector(31 downto 0)
+ FR_Q_OUT : out std_logic_vector(8 downto 0);
+ FR_RD_EN_IN : in std_logic;
+ FR_FRAME_VALID_OUT : out std_logic;
+ FR_GET_FRAME_IN : in std_logic;
+ FR_FRAME_SIZE_OUT : out std_logic_vector(15 downto 0);
+ FR_FRAME_PROTO_OUT : out std_logic_vector(15 downto 0);
+ FR_IP_PROTOCOL_OUT : out std_logic_vector(7 downto 0);
+ FR_ALLOWED_TYPES_IN : in std_logic_vector(31 downto 0);
+ FR_ALLOWED_IP_IN : in std_logic_vector(31 downto 0);
+ FR_ALLOWED_UDP_IN : in std_logic_vector(31 downto 0);
+ FR_VLAN_ID_IN : in std_logic_vector(31 downto 0);
+
+ FR_SRC_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0);
+ FR_DEST_MAC_ADDRESS_OUT : out std_logic_vector(47 downto 0);
+ FR_SRC_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0);
+ FR_DEST_IP_ADDRESS_OUT : out std_logic_vector(31 downto 0);
+ FR_SRC_UDP_PORT_OUT : out std_logic_vector(15 downto 0);
+ FR_DEST_UDP_PORT_OUT : out std_logic_vector(15 downto 0);
+
+ MONITOR_RX_BYTES_OUT : out std_logic_vector(31 downto 0);
+ MONITOR_RX_FRAMES_OUT : out std_logic_vector(31 downto 0);
+ MONITOR_DROPPED_OUT : out std_logic_vector(31 downto 0)
);
end trb_net16_gbe_frame_receiver;
LINK_HAS_FWD : std_logic_vector(3 downto 0) := "1111"
);
port(
- CLK_SYS_IN : in std_logic;
- CLK_125_IN : in std_logic;
- RESET : in std_logic;
- GSR_N : in std_logic;
- SD_PRSNT_N_IN : in std_logic;
- SD_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)
- SD_TXDIS_OUT : out std_logic; -- SFP disable
- SD_LED_GREEN_OUT : out std_logic;
- SD_LED_YELLOW_OUT : out std_logic;
- SD_LED_RED_OUT : out std_logic;
- --
- TRIGGER_IN : in std_logic; -- for debug purpose only
- -- 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;
- -- SlowControl
- MY_TRBNET_ADDRESS_IN : in std_logic_vector(15 downto 0);
- ISSUE_REBOOT_OUT : out std_logic;
- MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0);
- 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;
- -- IP configuration
- BUS_IP_RX : in CTRLBUS_RX;
- BUS_IP_TX : out CTRLBUS_TX;
- -- Registers config
- BUS_REG_RX : in CTRLBUS_RX;
- BUS_REG_TX : out CTRLBUS_TX;
- -- Forwarder
- FWD_DST_MAC_IN : in std_logic_vector(47 downto 0) := (others => '0');
- FWD_DST_IP_IN : in std_logic_vector(31 downto 0) := (others => '0');
- FWD_DST_UDP_IN : in std_logic_vector(15 downto 0) := (others => '0');
- FWD_DATA_IN : in std_logic_vector(7 downto 0) := (others => '0');
- FWD_DATA_VALID_IN : in std_logic := '0';
- FWD_SOP_IN : in std_logic := '0';
- FWD_EOP_IN : in std_logic := '0';
- FWD_READY_OUT : out std_logic;
- FWD_FULL_OUT : out std_logic;
- --
- MAKE_RESET_OUT : out std_logic;
- --
- STATUS_OUT : out std_logic_vector(15 downto 0);
- DEBUG_OUT : out std_logic_vector(127 downto 0)
+ CLK_SYS_IN : in std_logic;
+ CLK_125_IN : in std_logic;
+ RESET : in std_logic;
+ GSR_N : in std_logic;
+ SD_PRSNT_N_IN : in std_logic;
+ SD_LOS_IN : in std_logic; -- SFP Loss Of Signal ('0' = OK, '1' = no signal)
+ SD_TXDIS_OUT : out std_logic; -- SFP disable
+ SD_LED_GREEN_OUT : out std_logic;
+ SD_LED_YELLOW_OUT : out std_logic;
+ SD_LED_RED_OUT : out std_logic;
+ --
+ TRIGGER_IN : in std_logic; -- for debug purpose only
+ -- CTS interface
+ CTS_NUMBER_IN : in std_logic_vector(15 downto 0) := (others => '0');
+ CTS_CODE_IN : in std_logic_vector(7 downto 0) := (others => '0');
+ CTS_INFORMATION_IN : in std_logic_vector(7 downto 0) := (others => '0');
+ CTS_READOUT_TYPE_IN : in std_logic_vector(3 downto 0) := (others => '0');
+ CTS_START_READOUT_IN : in std_logic := '0';
+ 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 := '0';
+ 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) := (others => '0');
+ FEE_DATAREADY_IN : in std_logic := '0';
+ FEE_READ_OUT : out std_logic;
+ FEE_STATUS_BITS_IN : in std_logic_vector(31 downto 0) := (others => '0');
+ FEE_BUSY_IN : in std_logic := '0';
+ -- SlowControl
+ MY_TRBNET_ADDRESS_IN : in std_logic_vector(15 downto 0);
+ ISSUE_REBOOT_OUT : out std_logic;
+ MC_UNIQUE_ID_IN : in std_logic_vector(63 downto 0);
+ 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;
+ -- IP configuration
+ BUS_IP_RX : in CTRLBUS_RX;
+ BUS_IP_TX : out CTRLBUS_TX;
+ -- Registers config
+ BUS_REG_RX : in CTRLBUS_RX;
+ BUS_REG_TX : out CTRLBUS_TX;
+ -- Forwarder
+ FWD_DST_MAC_IN : in std_logic_vector(47 downto 0) := (others => '0');
+ FWD_DST_IP_IN : in std_logic_vector(31 downto 0) := (others => '0');
+ FWD_DST_UDP_IN : in std_logic_vector(15 downto 0) := (others => '0');
+ FWD_DATA_IN : in std_logic_vector(7 downto 0) := (others => '0');
+ FWD_DATA_VALID_IN : in std_logic := '0';
+ FWD_SOP_IN : in std_logic := '0';
+ FWD_EOP_IN : in std_logic := '0';
+ FWD_READY_OUT : out std_logic;
+ FWD_FULL_OUT : out std_logic;
+ --
+ MAKE_RESET_OUT : out std_logic;
+ --
+ STATUS_OUT : out std_logic_vector(15 downto 0);
+ DEBUG_OUT : out std_logic_vector(127 downto 0)
);
end entity gbe_wrapper_single;
DEBUG_OUT => debug(63 downto 0) --open
);
+-- -- "Good" debugging pins
+-- debug(7 downto 0) <= mac_rx_data;
+-- debug(15 downto 8) <= mac_tx_data;
+-- debug(16) <= mac_rx_write;
+-- debug(17) <= mac_tx_read;
+-- debug(18) <= mac_rx_eof;
+-- debug(19) <= mac_fifoeof;
+-- -- "Bad" debugging pins
+-- debug(20) <= mac_fifoempty;
+-- debug(21) <= mac_fifoavail;
+-- debug(22) <= mac_tx_discrfrm;
+-- debug(23) <= mac_rx_fifo_err;
+-- debug(24) <= mac_rx_fifofull;
+-- debug(25) <= mac_rx_err;
+-- debug(26) <= mac_tx_done;
+-- debug(27) <= mac_an_ready;
+-- debug(28) <= mac_ready_conf;
+-- debug(29) <= mac_reconf;
+-- debug(30) <= '0';
+-- debug(31) <= '0';
+-- debug(32) <= '0';
+-- debug(33) <= '0';
+
STATUS_OUT(8) <= dhcp_done; -- DHCP has completed
STATUS_OUT(15 downto 9) <= (others => '0');