ONEWIRE_WRITE : in std_logic;
--INT: interfaces to connect APIs
--- INT_INIT_DATAREADY_OUT : out std_logic_vector (INT_NUMBER downto 0);
--- INT_INIT_DATA_OUT : out std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0);
--- INT_INIT_PACKET_NUM_OUT : out std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0);
--- INT_INIT_READ_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
--- INT_INIT_DATAREADY_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
--- INT_INIT_DATA_IN : in std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0) := (others => '0');
--- INT_INIT_PACKET_NUM_IN : in std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0) := (others => '0');
--- INT_INIT_READ_OUT : out std_logic_vector (INT_NUMBER downto 0);
--- INT_REPLY_DATAREADY_OUT : out std_logic_vector (INT_NUMBER downto 0);
--- INT_REPLY_DATA_OUT : out std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0);
--- INT_REPLY_PACKET_NUM_OUT : out std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0);
--- INT_REPLY_READ_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
--- INT_REPLY_DATAREADY_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
--- INT_REPLY_DATA_IN : in std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0) := (others => '0');
--- INT_REPLY_PACKET_NUM_IN : in std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0) := (others => '0');
--- INT_REPLY_READ_OUT : out std_logic_vector (INT_NUMBER downto 0);
+ INT_INIT_DATAREADY_OUT : out std_logic_vector (INT_NUMBER downto 0);
+ INT_INIT_DATA_OUT : out std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0);
+ INT_INIT_PACKET_NUM_OUT : out std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0);
+ INT_INIT_READ_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
+ INT_INIT_DATAREADY_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
+ INT_INIT_DATA_IN : in std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0) := (others => '0');
+ INT_INIT_PACKET_NUM_IN : in std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0) := (others => '0');
+ INT_INIT_READ_OUT : out std_logic_vector (INT_NUMBER downto 0);
+ INT_REPLY_DATAREADY_OUT : out std_logic_vector (INT_NUMBER downto 0);
+ INT_REPLY_DATA_OUT : out std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0);
+ INT_REPLY_PACKET_NUM_OUT : out std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0);
+ INT_REPLY_READ_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
+ INT_REPLY_DATAREADY_IN : in std_logic_vector (INT_NUMBER downto 0) := (others => '0');
+ INT_REPLY_DATA_IN : in std_logic_vector (INT_NUMBER*c_DATA_WIDTH downto 0) := (others => '0');
+ INT_REPLY_PACKET_NUM_IN : in std_logic_vector (INT_NUMBER*c_NUM_WIDTH downto 0) := (others => '0');
+ INT_REPLY_READ_OUT : out std_logic_vector (INT_NUMBER downto 0);
COMMON_STAT_REGS : in std_logic_vector (std_COMSTATREG*32-1 downto 0) := (others => '0'); --Status of common STAT regs
COMMON_CTRL_REGS : out std_logic_vector (std_COMCTRLREG*32-1 downto 0); --Status of common STAT regs
HUB_USED_CHANNELS => (0,0,0,1),
INIT_ADDRESS => INIT_ADDRESS,
MII_NUMBER => HUB_CONTROLLER_NUM,
- MII_IS_UPLINK => calc_uplink_number(HUB_CONTROLLER_NUM-1), --(0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),--(0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),-- -- adjust to HUB_CONTROLLER_NUM (here it is for 5)
+ MII_IS_UPLINK => calc_uplink_number(HUB_CONTROLLER_NUM-1,INT_NUMBER), --(0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),--(0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),-- -- adjust to HUB_CONTROLLER_NUM (here it is for 5)
MII_IS_DOWNLINK => calc_downlink_number(HUB_CONTROLLER_NUM-1),--(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),--
- MII_IS_UPLINK_ONLY => calc_uplink_only_number(HUB_CONTROLLER_NUM-1),--(0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),--(0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),--
+ MII_IS_UPLINK_ONLY => calc_uplink_only_number(HUB_CONTROLLER_NUM-1,INT_NUMBER),--(0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),--(0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),--
--USE_ONEWIRE => c_YES,
HARDWARE_VERSION => HARDWARE_VERSION,
INCLUDED_FEATURES => INCLUDED_FEATURES,
CLOCK_FREQUENCY => CLOCK_FREQUENCY,
BROADCAST_SPECIAL_ADDR => BROADCAST_SPECIAL_ADDR,
COMPILE_TIME => COMPILE_TIME,
- USE_VAR_ENDPOINT_ID => c_NO
+ USE_VAR_ENDPOINT_ID => c_NO,
+ INT_NUMBER => INT_NUMBER
)
port map (
CLK => CLK,
ONEWIRE_ADDR => ONEWIRE_ADDR,
ONEWIRE_WRITE => ONEWIRE_WRITE,
+ --INT: interfaces to connect APIs
+ INT_INIT_DATAREADY_OUT => INT_INIT_DATAREADY_OUT,
+ INT_INIT_DATA_OUT => INT_INIT_DATA_OUT,
+ INT_INIT_PACKET_NUM_OUT => INT_INIT_PACKET_NUM_OUT,
+ INT_INIT_READ_IN => INT_INIT_READ_IN,
+ INT_INIT_DATAREADY_IN => INT_INIT_DATAREADY_IN,
+ INT_INIT_DATA_IN => INT_INIT_DATA_IN,
+ INT_INIT_PACKET_NUM_IN => INT_INIT_PACKET_NUM_IN,
+ INT_INIT_READ_OUT => INT_INIT_READ_OUT,
+ INT_REPLY_DATAREADY_OUT => INT_REPLY_DATAREADY_OUT,
+ INT_REPLY_DATA_OUT => INT_REPLY_DATA_OUT,
+ INT_REPLY_PACKET_NUM_OUT => INT_REPLY_PACKET_NUM_OUT,
+ INT_REPLY_READ_IN => INT_REPLY_READ_IN,
+ INT_REPLY_DATAREADY_IN => INT_REPLY_DATAREADY_IN,
+ INT_REPLY_DATA_IN => INT_REPLY_DATA_IN,
+ INT_REPLY_PACKET_NUM_IN => INT_REPLY_PACKET_NUM_IN,
+ INT_REPLY_READ_OUT => INT_REPLY_READ_OUT,
+
COMMON_STAT_REGS => (others => '0'),--open,--common_stat_reg,
COMMON_CTRL_REGS => COMMON_CTRL_REGS,
MY_ADDRESS_OUT => open,--my_address,
MED_STAT_OP : in std_logic_vector (MII_NUMBER*16-1 downto 0);
- HUB_INIT_DATAREADY_IN : in std_logic_vector((MII_NUMBER+1)-1 downto 0);
- HUB_INIT_DATA_IN : in std_logic_vector((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0);
- HUB_INIT_PACKET_NUM_IN : in std_logic_vector((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0);
- HUB_INIT_READ_OUT : out std_logic_vector((MII_NUMBER+1)-1 downto 0);
- HUB_INIT_DATAREADY_OUT : out std_logic_vector((MII_NUMBER+1)-1 downto 0);
- HUB_INIT_DATA_OUT : out std_logic_vector((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0);
- HUB_INIT_PACKET_NUM_OUT : out std_logic_vector((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0);
- HUB_INIT_READ_IN : in std_logic_vector((MII_NUMBER+1)-1 downto 0);
-
- HUB_REPLY_DATAREADY_IN : in std_logic_vector((MII_NUMBER+1)-1 downto 0);
- HUB_REPLY_DATA_IN : in std_logic_vector((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0);
- HUB_REPLY_PACKET_NUM_IN : in std_logic_vector((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0);
- HUB_REPLY_READ_OUT : out std_logic_vector((MII_NUMBER+1)-1 downto 0);
- HUB_REPLY_DATAREADY_OUT : out std_logic_vector((MII_NUMBER+1)-1 downto 0);
- HUB_REPLY_DATA_OUT : out std_logic_vector((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0);
- HUB_REPLY_PACKET_NUM_OUT : out std_logic_vector((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0);
- HUB_REPLY_READ_IN : in std_logic_vector((MII_NUMBER+1)-1 downto 0);
+ HUB_INIT_DATAREADY_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+ HUB_INIT_DATA_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0);
+ HUB_INIT_PACKET_NUM_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0);
+ HUB_INIT_READ_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+ HUB_INIT_DATAREADY_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+ HUB_INIT_DATA_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0);
+ HUB_INIT_PACKET_NUM_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0);
+ HUB_INIT_READ_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+
+ HUB_REPLY_DATAREADY_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+ HUB_REPLY_DATA_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0);
+ HUB_REPLY_PACKET_NUM_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0);
+ HUB_REPLY_READ_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+ HUB_REPLY_DATAREADY_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
+ HUB_REPLY_DATA_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0);
+ HUB_REPLY_PACKET_NUM_OUT : out std_logic_vector((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0);
+ HUB_REPLY_READ_IN : in std_logic_vector((MII_NUMBER+1+INT_NUMBER)-1 downto 0);
CNTRL_API_B2H_REPLY_DATAREADY : out std_logic;
CNTRL_API_B2H_REPLY_DATA : out std_logic_vector(c_DATA_WIDTH-1 downto 0);
HUBLOGIC : trb_net16_hub_logic
generic map (
--media interfaces
- POINT_NUMBER => MII_NUMBER+1,
+ POINT_NUMBER => MII_NUMBER+1+INT_NUMBER,
MII_IS_UPLINK_ONLY => MII_IS_UPLINK_ONLY
)
port map(
CLK => CLK,
RESET => reset_i,
CLK_EN => CLK_EN,
- INIT_DATAREADY_IN => HUB_INIT_DATAREADY_IN((MII_NUMBER+1)-1 downto 0),
- INIT_DATA_IN => HUB_INIT_DATA_IN((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0),
- INIT_PACKET_NUM_IN => HUB_INIT_PACKET_NUM_IN((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0),
- INIT_READ_OUT => HUB_INIT_READ_OUT((MII_NUMBER+1)-1 downto 0),
- INIT_DATAREADY_OUT => HUB_INIT_DATAREADY_OUT((MII_NUMBER+1)-1 downto 0),
- INIT_DATA_OUT => HUB_INIT_DATA_OUT((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0),
- INIT_PACKET_NUM_OUT => HUB_INIT_PACKET_NUM_OUT((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0),
- INIT_READ_IN => HUB_INIT_READ_IN((MII_NUMBER+1)-1 downto 0),
- REPLY_DATAREADY_IN => HUB_REPLY_DATAREADY_IN((MII_NUMBER+1)-1 downto 0),
- REPLY_DATA_IN => HUB_REPLY_DATA_IN((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0),
- REPLY_PACKET_NUM_IN => HUB_REPLY_PACKET_NUM_IN((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0),
- REPLY_READ_OUT => HUB_REPLY_READ_OUT((MII_NUMBER+1)-1 downto 0),
- REPLY_DATAREADY_OUT => HUB_REPLY_DATAREADY_OUT((MII_NUMBER+1)-1 downto 0),
- REPLY_DATA_OUT => HUB_REPLY_DATA_OUT((MII_NUMBER+1)*c_DATA_WIDTH-1 downto 0),
- REPLY_PACKET_NUM_OUT => HUB_REPLY_PACKET_NUM_OUT((MII_NUMBER+1)*c_NUM_WIDTH-1 downto 0),
- REPLY_READ_IN => HUB_REPLY_READ_IN((MII_NUMBER+1)-1 downto 0),
+ INIT_DATAREADY_IN => HUB_INIT_DATAREADY_IN((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ INIT_DATA_IN => HUB_INIT_DATA_IN((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0),
+ INIT_PACKET_NUM_IN => HUB_INIT_PACKET_NUM_IN((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0),
+ INIT_READ_OUT => HUB_INIT_READ_OUT((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ INIT_DATAREADY_OUT => HUB_INIT_DATAREADY_OUT((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ INIT_DATA_OUT => HUB_INIT_DATA_OUT((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0),
+ INIT_PACKET_NUM_OUT => HUB_INIT_PACKET_NUM_OUT((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0),
+ INIT_READ_IN => HUB_INIT_READ_IN((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ REPLY_DATAREADY_IN => HUB_REPLY_DATAREADY_IN((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ REPLY_DATA_IN => HUB_REPLY_DATA_IN((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0),
+ REPLY_PACKET_NUM_IN => HUB_REPLY_PACKET_NUM_IN((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0),
+ REPLY_READ_OUT => HUB_REPLY_READ_OUT((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ REPLY_DATAREADY_OUT => HUB_REPLY_DATAREADY_OUT((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
+ REPLY_DATA_OUT => HUB_REPLY_DATA_OUT((MII_NUMBER+1+INT_NUMBER)*c_DATA_WIDTH-1 downto 0),
+ REPLY_PACKET_NUM_OUT => HUB_REPLY_PACKET_NUM_OUT((MII_NUMBER+1+INT_NUMBER)*c_NUM_WIDTH-1 downto 0),
+ REPLY_READ_IN => HUB_REPLY_READ_IN((MII_NUMBER+1+INT_NUMBER)-1 downto 0),
STAT => buf_HUB_STAT_CHANNEL((c_SLOW_CTRL_CHANNEL+1)*16-1 downto c_SLOW_CTRL_CHANNEL*16),
STAT_locked => HUB_locked(c_SLOW_CTRL_CHANNEL),
STAT_POINTS_locked => buf_STAT_POINTS_locked((c_SLOW_CTRL_CHANNEL+1)*32-1 downto c_SLOW_CTRL_CHANNEL*32),