--Received Data from connected boards
DATA_ACTIVE : out std_logic_vector(MII_NUMBER-2 downto 0);
- DATA_OUT : out std_logic_vector((MII_NUMBER*(2*c_DATA_WIDTH))-2 downto 0);
+ DATA_OUT : out std_logic_vector(((MII_NUMBER-1)*(2*c_DATA_WIDTH))-1 downto 0);
DATA_READY : out std_logic_vector(MII_NUMBER-2 downto 0);
- DATA_ADDRESS_SENDER : out std_logic_vector((MII_NUMBER*c_DATA_WIDTH)-2 downto 0);
- DATA_SEQNMBR : out std_logic_vector((MII_NUMBER*8)-2 downto 0);
- DATA_LENGTH : out std_logic_vector((MII_NUMBER*c_DATA_WIDTH)-2 downto 0);
+ DATA_ADDRESS_SENDER : out std_logic_vector(((MII_NUMBER-1)*c_DATA_WIDTH)-1 downto 0);
+ DATA_SEQNMBR : out std_logic_vector(((MII_NUMBER-1)*8)-1 downto 0);
+ DATA_LENGTH : out std_logic_vector(((MII_NUMBER-1)*c_DATA_WIDTH)-1 downto 0);
--ONEWIRE
signal loc_ctrl_op : std_logic_vector ((calc_number_config_hub_ports(MII_NUMBER)-1)*16-1 downto 0);
signal buf_DATA_ACTIVE : std_logic_vector(MII_NUMBER-2 downto 0);
- signal buf_DATA_OUT : std_logic_vector((MII_NUMBER*(2*c_DATA_WIDTH))-2 downto 0);
+ signal buf_DATA_OUT : std_logic_vector(((MII_NUMBER-1)*(2*c_DATA_WIDTH))-1 downto 0);
signal buf_DATA_READY : std_logic_vector(MII_NUMBER-2 downto 0);
- signal buf_DATA_ADDRESS_SENDER : std_logic_vector((MII_NUMBER*c_DATA_WIDTH)-2 downto 0);
- signal buf_DATA_SEQNMBR : std_logic_vector((MII_NUMBER*8)-2 downto 0);
- signal buf_DATA_LENGTH : std_logic_vector((MII_NUMBER*c_DATA_WIDTH)-2 downto 0);
+ signal buf_DATA_ADDRESS_SENDER : std_logic_vector(((MII_NUMBER-1)*c_DATA_WIDTH)-1 downto 0);
+ signal buf_DATA_SEQNMBR : std_logic_vector(((MII_NUMBER-1)*8)-1 downto 0);
+ signal buf_DATA_LENGTH : std_logic_vector(((MII_NUMBER-1)*c_DATA_WIDTH)-1 downto 0);
-- Debug
signal datardy_cnt_ret : std_logic_vector (15 downto 0);
gen_data_hubs : for i in 0 to calc_number_data_hubs(MII_NUMBER)-1 generate --MII_NUMBER = Down- and Uplinks
constant links : integer := calc_ports_data_hub(MII_NUMBER,i)+1;
constant downlinks : integer := calc_ports_data_hub(MII_NUMBER,i);
-
- signal data_active_unused : std_logic;
- signal data_out_unused : std_logic_vector(2*c_DATA_WIDTH-1 downto 0);
- signal data_ready_unused : std_logic;
- signal data_address_sender_unused : std_logic_vector(c_DATA_WIDTH-1 downto 0);
- signal data_seqnmbr_unused : std_logic_vector(7 downto 0);
- signal data_length_unused : std_logic_vector(c_DATA_WIDTH-1 downto 0);
begin
THE_HUB_1 : entity work.trb_net16_cri_hub_base
generic map(
MED_CTRL_OP((links-1)*16-1 downto 0) => MED_CTRL_OP((downlinks*16)-1+i*12*16 downto i*12*16),
MED_CTRL_OP((links)*16-1 downto (links-1)*16) => loc_ctrl_op(i*16+15 downto i*16), --output
- DATA_ACTIVE(links-1) => data_active_unused,
DATA_ACTIVE((downlinks-1) downto 0) => buf_DATA_ACTIVE((downlinks-1)+i*12 downto i*12),
- DATA_OUT(links*2*c_DATA_WIDTH-1 downto downlinks*2*c_DATA_WIDTH) => data_out_unused,
DATA_OUT((downlinks*(2*c_DATA_WIDTH)-1) downto 0) => buf_DATA_OUT((downlinks*(2*c_DATA_WIDTH)-1)+i*12*(2*c_DATA_WIDTH) downto i*12*(2*c_DATA_WIDTH)),
- DATA_READY(links-1) => data_ready_unused,
DATA_READY((downlinks-1) downto 0) => buf_DATA_READY((downlinks-1)+i*12 downto i*12),
- DATA_ADDRESS_SENDER(links*c_DATA_WIDTH-1 downto downlinks*c_DATA_WIDTH) => data_address_sender_unused,
DATA_ADDRESS_SENDER((downlinks*c_DATA_WIDTH-1) downto 0) => buf_DATA_ADDRESS_SENDER((downlinks*c_DATA_WIDTH-1)+i*12*c_DATA_WIDTH downto i*12*c_DATA_WIDTH),
- DATA_SEQNMBR(links*8-1 downto downlinks*8) => data_seqnmbr_unused,
DATA_SEQNMBR((downlinks*8-1) downto 0) => buf_DATA_SEQNMBR((downlinks*8-1)+i*12*8 downto i*12*8),
- DATA_LENGTH(links*c_DATA_WIDTH-1 downto downlinks*c_DATA_WIDTH) => data_length_unused,
DATA_LENGTH((downlinks*c_DATA_WIDTH-1) downto 0) => buf_DATA_LENGTH((downlinks*c_DATA_WIDTH-1)+i*12*c_DATA_WIDTH downto i*12*c_DATA_WIDTH),
ONEWIRE_DATA => ONEWIRE_DATA,