MC_DHCP_DONE_OUT => dhcp_done,
MY_IP_OUT => MY_IP_OUT,
MC_MY_MAC_IN => MY_MAC_IN,
- MY_TRBNET_ADDRESS_IN => MY_TRBNET_ADDRESS_IN,
- ISSUE_REBOOT_OUT => open, --ISSUE_REBOOT_OUT,
+ MY_TRBNET_ADDRESS_IN => MY_TRBNET_ADDRESS_IN,
+ ISSUE_REBOOT_OUT => open, --ISSUE_REBOOT_OUT,
-- signals to/from receive controller
RC_FRAME_WAITING_IN => rc_frame_ready,
end generate rx_enable_gen;
rx_disable_gen : if (RX_PATH_ENABLE = 0) generate
- rc_q <= (others => '0');
- rc_frame_ready <= '0';
- rc_frame_size <= (others => '0');
- rc_frame_proto <= (others => '0');
-
- rc_src_mac <= (others => '0');
- rc_dest_mac <= (others => '0');
- rc_src_ip <= (others => '0');
- rc_dest_ip <= (others => '0');
- rc_src_udp <= (others => '0');
- rc_dest_udp <= (others => '0');
+ rc_q <= (others => '0');
+ rc_frame_ready <= '0';
+ rc_frame_size <= (others => '0');
+ rc_frame_proto <= (others => '0');
+
+ rc_src_mac <= (others => '0');
+ rc_dest_mac <= (others => '0');
+ rc_src_ip <= (others => '0');
+ rc_dest_ip <= (others => '0');
+ rc_src_udp <= (others => '0');
+ rc_dest_udp <= (others => '0');
rc_frames_rec_ctr <= (others => '0');
rc_bytes_rec <= (others => '0');
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;
+ STATUS_OUT : out std_logic_vector(7 downto 0);
-- Debug
DEBUG_OUT : out std_logic_vector(63 downto 0)
);
D_OUT(1) => rx_serdes_rst_q
);
- -- LED signals
- -- Link Status
- SD_LED_GREEN_OUT <= '1' when (link_tx_ready = '1') and (link_rx_ready = '1') and (an_complete = '1')
- else '0';
- -- Activity - must be stretched for human eyes
- SD_LED_YELLOW_OUT <= '1' when (pcs_tx_en = '1') or (pcs_rx_en = '1')
- else '0';
- -- Error, maybe?
- SD_LED_RED_OUT <= '0';
+ -- Status signals
+ STATUS_OUT(0) <= link_tx_ready; -- SerDes TX channel operational
+ STATUS_OUT(1) <= link_rx_ready; -- SerDes Rx channel operational
+ STATUS_OUT(2) <= an_complete; -- GbE Autonegotiation completed
+ STATUS_OUT(3) <= pcs_tx_en; -- SerDes TX activity
+ STATUS_OUT(4) <= pcs_rx_en; -- SerDes RX activity
+ STATUS_OUT(5) <= '0';
+ STATUS_OUT(6) <= '0';
+ STATUS_OUT(7) <= '0';
-- -- "Good" debugging pins
-- debug(7 downto 0) <= sd_tx_data;
generic(
DO_SIMULATION : integer range 0 to 1 := 0;
INCLUDE_DEBUG : integer range 0 to 1 := 0;
- USE_INTERNAL_TRBNET_DUMMY : integer range 0 to 1 := 0;
- USE_EXTERNAL_TRBNET_DUMMY : integer range 0 to 1 := 0;
- RX_PATH_ENABLE : integer range 0 to 1 := 1;
- FIXED_SIZE_MODE : integer range 0 to 1 := 1;
- INCREMENTAL_MODE : integer range 0 to 1 := 0;
- FIXED_SIZE : integer range 0 to 65535 := 10;
- FIXED_DELAY_MODE : integer range 0 to 1 := 1;
- UP_DOWN_MODE : integer range 0 to 1 := 0;
- UP_DOWN_LIMIT : integer range 0 to 16777215 := 0;
- FIXED_DELAY : integer range 0 to 16777215 := 16777215;
- NUMBER_OF_GBE_LINKS : integer range 1 to 4 := 4;
+ USE_INTERNAL_TRBNET_DUMMY : integer range 0 to 1 := 0; -- only for debugging
+ USE_EXTERNAL_TRBNET_DUMMY : integer range 0 to 1 := 0; -- only for debugging
+ RX_PATH_ENABLE : integer range 0 to 1 := 1; --
+ FIXED_SIZE_MODE : integer range 0 to 1 := 1; -- only for debugging
+ INCREMENTAL_MODE : integer range 0 to 1 := 0; -- only for debugging
+ FIXED_SIZE : integer range 0 to 65535 := 10; -- only for debugging
+ FIXED_DELAY_MODE : integer range 0 to 1 := 1; -- only for debugging
+ UP_DOWN_MODE : integer range 0 to 1 := 0; -- only for debugging
+ UP_DOWN_LIMIT : integer range 0 to 16777215 := 0; -- only for debugging
+ FIXED_DELAY : integer range 0 to 16777215 := 16777215; -- only for debugging
+ NUMBER_OF_GBE_LINKS : integer range 1 to 4 := 4; --
LINKS_ACTIVE : std_logic_vector(3 downto 0) := "1111";
LINK_HAS_PING : std_logic_vector(3 downto 0) := "1111";
LINK_HAS_ARP : std_logic_vector(3 downto 0) := "1111";
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_READOUT_TYPE_IN : in std_logic_vector(3 down: in std_logic_vector(7 downto 0) := (others => '0');
+ to 0);
CTS_START_READOUT_IN : in std_logic;
CTS_DATA_OUT : out std_logic_vector(31 downto 0);
CTS_DATAREADY_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_5G;
signal mac_rx_eof : std_logic;
signal mac_rx_err : std_logic;
--- signal clk_125_from_pcs : std_logic;
--- signal clk_125_rx_from_pcs : std_logic;
+-- signal clk_125_from_pcs : std_logic; -- not needed
+-- signal clk_125_rx_from_pcs : std_logic; -- not needed
signal cfg_gbe_enable : std_logic;
signal cfg_ipu_enable : std_logic;
assert not (LINK_HAS_SLOWCTRL(3 downto 1) /= b"000") report "Error: only interface 0 supported" severity error;
assert not (LINK_HAS_FWD(3 downto 1) /= b"000") report "Error: only interface 0 supported" severity error;
+ -- debug(127 downto 64) are local
+ -- debug(63 downto 0) are media interface
DEBUG_OUT <= debug;
mac_0 <= MC_UNIQUE_ID_IN(15 downto 8) & MC_UNIQUE_ID_IN(23 downto 16) & MC_UNIQUE_ID_IN(31 downto 24) & x"0" & MC_UNIQUE_ID_IN(35 downto 32) & x"7ada";
RESET => RESET,
GSR_N => GSR_N,
CLK_SYS_IN => CLK_SYS_IN,
- CLK_125_OUT => open, --clk_125_from_pcs,
+ CLK_125_OUT => open, --clk_125_from_pcs, -- not needed
CLK_125_IN => CLK_125_IN,
- CLK_125_RX_OUT => open, --clk_125_rx_from_pcs,
+ CLK_125_RX_OUT => open, --clk_125_rx_from_pcs, -- not needed
MAC_READY_CONF_OUT => mac_ready_conf,
MAC_RECONF_IN => mac_reconf,
MAC_AN_READY_OUT => mac_an_ready,
SD_PRSNT_N_IN => SD_PRSNT_N_IN,
SD_LOS_IN => SD_LOS_IN,
SD_TXDIS_OUT => SD_TXDIS_OUT,
- SD_LED_GREEN_OUT => SD_LED_GREEN_OUT,
- SD_LED_YELLOW_OUT => SD_LED_YELLOW_OUT,
- SD_LED_RED_OUT => SD_LED_RED_OUT,
+ STATUS_OUT => STATUS_OUT(7 downto 0),
DEBUG_OUT => debug(63 downto 0) --open
);
+ STATUS_OUT(15 downto 8) <= (others => '0');
+
gbe_inst : entity work.gbe_logic_wrapper
generic map(DO_SIMULATION => DO_SIMULATION,
INCLUDE_DEBUG => INCLUDE_DEBUG,