library IEEE;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-library UNISIM;
-use UNISIM.VCOMPONENTS.all;
+
library ieee;
library work;
use ieee.std_logic_1164.all;
end hub_tb;
architecture hub_tb of hub_tb is
-
+
signal LVDS_CLK_200P_i : std_logic;
signal LVDS_CLK_200N_i : std_logic;
signal SERDES_200N_i : std_logic;
OPT_DATA_OUT : out std_logic_vector(16*HOW_MANY_CHANNELS-1 downto 0);
OPT_DATA_VALID_IN : in std_logic_vector(HOW_MANY_CHANNELS-1 downto 0);
OPT_DATA_VALID_OUT : out std_logic_vector(HOW_MANY_CHANNELS-1 downto 0)
-
+
);
end component;
SFP_INP_P => SFP_INP_P_i,
SFP_OUT_N => SFP_OUT_N_i,
SFP_OUT_P => SFP_OUT_P_i
- FS_PE_11 =>
- OPT_DATA_IN =>
- OPT_DATA_OUT =>
- OPT_DATA_VALID_IN =>
- OPT_DATA_VALID_OUT =>
-
+ FS_PE_11 =>
+ OPT_DATA_IN =>
+ OPT_DATA_OUT =>
+ OPT_DATA_VALID_IN =>
+ OPT_DATA_VALID_OUT =>
+
clock_gclk : process
begin
SERDES_200P_i <= '0';
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.NUMERIC_STD.all;
--use work.support.all;
-library UNISIM;
-use UNISIM.VCOMPONENTS.all;
-library UNISIM;
-use UNISIM.VComponents.all;
entity trb_hub_interface is
port (
INTERNAL_DATA_IN : in std_logic_vector(7 downto 0);
INTERNAL_DATA_OUT : out std_logic_vector(7 downto 0);
INTERNAL_ADDRESS : in std_logic_vector(15 downto 0);
- INTERNAL_MODE : in std_logic;
+ INTERNAL_MODE : in std_logic;
VALID_DATA_SENT : out std_logic;
HUB_REGISTER_00 : in std_logic_vector(7 downto 0);
HUB_REGISTER_01 : in std_logic_vector(7 downto 0);
when x"0004" => saved_data_out <= HUB_REGISTER_04;
when x"0005" => saved_data_out <= HUB_REGISTER_05;
when x"0006" => saved_data_out <= HUB_REGISTER_06;
- when x"0007" => saved_data_out <= HUB_REGISTER_07;
+ when x"0007" => saved_data_out <= HUB_REGISTER_07;
when x"0008" => saved_data_out <= HUB_REGISTER_08;
when x"0009" => saved_data_out <= HUB_REGISTER_09;
when x"000a" => saved_data_out <= hub_register_0a_i;
when x"0013" => saved_data_out <= HUB_REGISTER_13;
when x"0014" => saved_data_out <= HUB_REGISTER_14;
when x"0015" => saved_data_out <= HUB_REGISTER_15;
- when x"0016" => saved_data_out <= HUB_REGISTER_16;
-
+ when x"0016" => saved_data_out <= HUB_REGISTER_16;
+
when others => saved_data_out <= x"ff";
end case;
elsif saved_mod = '0' then
when x"000c" => hub_register_0c_i <= saved_data_in;
when x"000d" => hub_register_0d_i <= saved_data_in;
when x"000e" => hub_register_0e_i <= saved_data_in;
- when x"000f" => hub_register_0f_i <= saved_data_in;
+ when x"000f" => hub_register_0f_i <= saved_data_in;
when others => null;
end case;
end if;
INTERNAL_DATA_OUT <= saved_data_out;
data_ready <= '1';
VALID_CLOCKED : process (CLK, RESET)
- begin
- if rising_edge(CLK) then
- if RESET = '1' then
+ begin
+ if rising_edge(CLK) then
+ if RESET = '1' then
VALID_current <= IDLE;
- else
+ else
VALID_current <= VALID_next;
end if;
end if;
end process VALID_CLOCKED;
SEND_VALID_FSM: process (VALID_current,data_ready,strobe_pulse)
- begin
+ begin
case (VALID_current) is
when IDLE =>
VALID_DATA_SENT <= '0';
when VALID_5 =>
VALID_DATA_SENT <= '1';
VALID_next <= IDLE;
- end case;
+ end case;
end process SEND_VALID_FSM;
-
+
end trb_hub_interface;