architecture trb_net16_hub_base_arch of trb_net16_hub_base is
-16
+
constant total_point_num : integer := MII_NUMBER*2**(c_MUX_WIDTH-1) + INT_NUMBER + 1;
signal m_DATAREADY_OUT : std_logic_vector (MII_NUMBER*2**(c_MUX_WIDTH)-1 downto 0);
signal m_DATA_OUT : std_logic_vector (MII_NUMBER*2**(c_MUX_WIDTH)*c_DATA_WIDTH-1 downto 0);
gen_int1 : for i in 0 to INT_NUMBER-1 generate
constant j : integer := i + 2**(c_MUX_WIDTH-1)*MII_NUMBER+1;
begin
- buf_to_hub_REPLY_DATAREADY(j) <= INT_REPLY_DATAREADY_IN(i);
- buf_to_hub_REPLY_DATA((j+1)*c_DATA_WIDTH-1 downto j*c_DATA_WIDTH) <= INT_REPLY_DATA_IN((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH);
- buf_to_hub_REPLY_PACKET_NUM((j+1)*c_NUM_WIDTH-1 downto j*c_NUM_WIDTH) <= INT_REPLY_PACKET_NUM_IN((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH);
- INT_REPLY_READ_OUT(i) <= buf_to_hub_REPLY_READ(j);
-
- INT_REPLY_DATAREADY_OUT(i) <= hub_to_buf_REPLY_DATAREADY(j);
- INT_REPLY_DATA_OUT((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH)<= hub_to_buf_REPLY_DATA((j+1)*c_DATA_WIDTH-1 downto j*c_DATA_WIDTH);
- INT_REPLY_PACKET_NUM_OUT((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH) <= hub_to_buf_REPLY_PACKET_NUM((j+1)*c_NUM_WIDTH-1 downto j*c_NUM_WIDTH);
- hub_to_buf_REPLY_READ(j) <= INT_REPLY_READ_IN(i);
- buf_to_hub_INIT_DATAREADY(j) <= INT_INIT_DATAREADY_IN(i);
- buf_to_hub_INIT_DATA((j+1)*c_DATA_WIDTH-1 downto j*c_DATA_WIDTH) <= INT_INIT_DATA_IN((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH);
- buf_to_hub_INIT_PACKET_NUM((j+1)*c_NUM_WIDTH-1 downto j*c_NUM_WIDTH) <= INT_INIT_PACKET_NUM_IN((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH);
- INT_INIT_READ_OUT(i) <= buf_to_hub_INIT_READ(j);
- INT_INIT_DATAREADY_OUT(i) <= hub_to_buf_INIT_DATAREADY(j);
- INT_INIT_DATA_OUT((i+1)*c_DATA_WIDTH-1 downto i*c_DATA_WIDTH) <= hub_to_buf_INIT_DATA((j+1)*c_DATA_WIDTH-1 downto j*c_DATA_WIDTH);
- INT_INIT_PACKET_NUM_OUT((i+1)*c_NUM_WIDTH-1 downto i*c_NUM_WIDTH) <= hub_to_buf_INIT_PACKET_NUM((j+1)*c_NUM_WIDTH-1 downto j*c_NUM_WIDTH);
- hub_to_buf_INIT_READ(j) <= INT_INIT_READ_IN(i);
+ buf_to_hub_REPLY_DATAREADY(j) <= INT_REPLY_DATAREADY_IN(i);
+ buf_to_hub_REPLY_DATA((j+1)*16-1 downto j*16) <= INT_REPLY_DATA_IN((i+1)*16-1 downto i*16);
+ buf_to_hub_REPLY_PACKET_NUM((j+1)*3-1 downto j*3) <= INT_REPLY_PACKET_NUM_IN((i+1)*3-1 downto i*3);
+ INT_REPLY_READ_OUT(i) <= buf_to_hub_REPLY_READ(j);
+
+ INT_REPLY_DATAREADY_OUT(i) <= hub_to_buf_REPLY_DATAREADY(j);
+ INT_REPLY_DATA_OUT((i+1)*16-1 downto i*16) <= hub_to_buf_REPLY_DATA((j+1)*16-1 downto j*16);
+ INT_REPLY_PACKET_NUM_OUT((i+1)*3-1 downto i*3) <= hub_to_buf_REPLY_PACKET_NUM((j+1)*3-1 downto j*3);
+ hub_to_buf_REPLY_READ(j) <= INT_REPLY_READ_IN(i);
+
+ buf_to_hub_INIT_DATAREADY(j) <= INT_INIT_DATAREADY_IN(i);
+ buf_to_hub_INIT_DATA((j+1)*16-1 downto j*16) <= INT_INIT_DATA_IN((i+1)*16-1 downto i*16);
+ buf_to_hub_INIT_PACKET_NUM((j+1)*3-1 downto j*3) <= INT_INIT_PACKET_NUM_IN((i+1)*3-1 downto i*3);
+ INT_INIT_READ_OUT(i) <= buf_to_hub_INIT_READ(j);
+
+ INT_INIT_DATAREADY_OUT(i) <= hub_to_buf_INIT_DATAREADY(j);
+ INT_INIT_DATA_OUT((i+1)*16-1 downto i*16) <= hub_to_buf_INIT_DATA((j+1)*16-1 downto j*16);
+ INT_INIT_PACKET_NUM_OUT((i+1)*3-1 downto i*3) <= hub_to_buf_INIT_PACKET_NUM((j+1)*3-1 downto j*3);
+ hub_to_buf_INIT_READ(j) <= INT_INIT_READ_IN(i);
end generate;
end generate;
INT_INIT_DATAREADY_OUT(INT_NUMBER) <= '0';
h1: if INT_CHANNELS(int) = CHANNEL generate
HUB_INIT_DATAREADY_IN (hublogic_num)
<= buf_to_hub_INIT_DATAREADY(buf_to_hub_num);
- HUB_INIT_DATA_IN ((hublogic_num+1)*c_DATA_WIDTH-1 downto hublogic_num*c_DATA_WIDTH)
- <= buf_to_hub_INIT_DATA((buf_to_hub_num+1)*c_DATA_WIDTH-1 downto buf_to_hub_num*c_DATA_WIDTH);
- HUB_INIT_PACKET_NUM_IN ((hublogic_num+1)*c_NUM_WIDTH-1 downto hublogic_num*c_NUM_WIDTH)
- <= buf_to_hub_INIT_PACKET_NUM((buf_to_hub_num+1)*c_NUM_WIDTH-1 downto buf_to_hub_num*c_NUM_WIDTH);
+ HUB_INIT_DATA_IN ((hublogic_num+1)*16-1 downto hublogic_num*16)
+ <= buf_to_hub_INIT_DATA((buf_to_hub_num+1)*16-1 downto buf_to_hub_num*16);
+ HUB_INIT_PACKET_NUM_IN ((hublogic_num+1)*3-1 downto hublogic_num*3)
+ <= buf_to_hub_INIT_PACKET_NUM((buf_to_hub_num+1)*3-1 downto buf_to_hub_num*3);
buf_to_hub_INIT_READ(buf_to_hub_num)
<= HUB_INIT_READ_OUT(hublogic_num);
hub_to_buf_INIT_DATAREADY(buf_to_hub_num)
<= HUB_INIT_DATAREADY_OUT(hublogic_num);
- hub_to_buf_INIT_DATA((buf_to_hub_num+1)*c_DATA_WIDTH-1 downto buf_to_hub_num*c_DATA_WIDTH)
- <= HUB_INIT_DATA_OUT((hublogic_num+1)*c_DATA_WIDTH-1 downto hublogic_num*c_DATA_WIDTH);
- hub_to_buf_INIT_PACKET_NUM((buf_to_hub_num+1)*c_NUM_WIDTH-1 downto buf_to_hub_num*c_NUM_WIDTH)
- <= HUB_INIT_PACKET_NUM_OUT((hublogic_num+1)*c_NUM_WIDTH-1 downto hublogic_num*c_NUM_WIDTH);
+ hub_to_buf_INIT_DATA((buf_to_hub_num+1)*16-1 downto buf_to_hub_num*16)
+ <= HUB_INIT_DATA_OUT((hublogic_num+1)*16-1 downto hublogic_num*16);
+ hub_to_buf_INIT_PACKET_NUM((buf_to_hub_num+1)*3-1 downto buf_to_hub_num*3)
+ <= HUB_INIT_PACKET_NUM_OUT((hublogic_num+1)*3-1 downto hublogic_num*3);
HUB_INIT_READ_IN (hublogic_num)
<= hub_to_buf_INIT_READ(buf_to_hub_num);
HUB_REPLY_DATAREADY_IN (hublogic_num)
<= buf_to_hub_REPLY_DATAREADY(buf_to_hub_num);
- HUB_REPLY_DATA_IN ((hublogic_num+1)*c_DATA_WIDTH-1 downto hublogic_num*c_DATA_WIDTH)
- <= buf_to_hub_REPLY_DATA((buf_to_hub_num+1)*c_DATA_WIDTH-1 downto buf_to_hub_num*c_DATA_WIDTH);
- HUB_REPLY_PACKET_NUM_IN ((hublogic_num+1)*c_NUM_WIDTH-1 downto hublogic_num*c_NUM_WIDTH)
- <= buf_to_hub_REPLY_PACKET_NUM((buf_to_hub_num+1)*c_NUM_WIDTH-1 downto buf_to_hub_num*c_NUM_WIDTH);
+ HUB_REPLY_DATA_IN ((hublogic_num+1)*16-1 downto hublogic_num*16)
+ <= buf_to_hub_REPLY_DATA((buf_to_hub_num+1)*16-1 downto buf_to_hub_num*16);
+ HUB_REPLY_PACKET_NUM_IN ((hublogic_num+1)*3-1 downto hublogic_num*3)
+ <= buf_to_hub_REPLY_PACKET_NUM((buf_to_hub_num+1)*3-1 downto buf_to_hub_num*3);
buf_to_hub_REPLY_READ(buf_to_hub_num)
<= HUB_REPLY_READ_OUT(hublogic_num);
hub_to_buf_REPLY_DATAREADY(buf_to_hub_num)
<= HUB_REPLY_DATAREADY_OUT(hublogic_num);
- hub_to_buf_REPLY_DATA((buf_to_hub_num+1)*c_DATA_WIDTH-1 downto buf_to_hub_num*c_DATA_WIDTH)
- <= HUB_REPLY_DATA_OUT((hublogic_num+1)*c_DATA_WIDTH-1 downto hublogic_num*c_DATA_WIDTH);
- hub_to_buf_REPLY_PACKET_NUM((buf_to_hub_num+1)*c_NUM_WIDTH-1 downto buf_to_hub_num*c_NUM_WIDTH)
- <= HUB_REPLY_PACKET_NUM_OUT((hublogic_num+1)*c_NUM_WIDTH-1 downto hublogic_num*c_NUM_WIDTH);
+ hub_to_buf_REPLY_DATA((buf_to_hub_num+1)*16-1 downto buf_to_hub_num*16)
+ <= HUB_REPLY_DATA_OUT((hublogic_num+1)*16-1 downto hublogic_num*16);
+ hub_to_buf_REPLY_PACKET_NUM((buf_to_hub_num+1)*3-1 downto buf_to_hub_num*3)
+ <= HUB_REPLY_PACKET_NUM_OUT((hublogic_num+1)*3-1 downto hublogic_num*3);
HUB_REPLY_READ_IN (hublogic_num)
<= hub_to_buf_REPLY_READ(buf_to_hub_num);
end generate;
if rising_edge(CLK) then
HC_STAT_REGS(8*32-1 downto 0) <= buf_HC_STAT_REGS(8*32-1 downto 0);
HC_STAT_REGS(31*32-1 downto 12*32) <= buf_HC_STAT_REGS(31*32-1 downto 12*32);
- HC_STAT_REGS(64*32-1 downto 32*32) <= buf_HC_STAT_REGS(64*32-1 downto 32*32);
+ HC_STAT_REGS(64*32-1 downto 37*32) <= buf_HC_STAT_REGS(64*32-1 downto 37*32);
end if;
end process;
---------------------------------------------------------------------
--debug Status and Control ports
- buf_STAT_DEBUG(5 downto 0) <= HUB_INIT_DATAREADY_IN(16 downto 11);
- buf_STAT_DEBUG(11 downto 6) <= HUB_REPLY_DATAREADY_IN(16 downto 11);
- buf_STAT_DEBUG(17 downto 12) <= HUB_REPLY_READ_OUT(16 downto 11);
- buf_STAT_DEBUG(23 downto 18) <= HUB_INIT_READ_OUT(16 downto 11);
- buf_STAT_DEBUG(30 downto 24) <= HUB_CTRL_final_activepoints(3*32+6 downto 3*32);
+ buf_STAT_DEBUG(4 downto 0) <= HUB_INIT_DATAREADY_IN(15 downto 11);
+ buf_STAT_DEBUG(9 downto 5) <= HUB_INIT_READ_OUT(15 downto 11);
+ buf_STAT_DEBUG(14 downto 10) <= HUB_REPLY_READ_OUT(15 downto 11);
+ buf_STAT_DEBUG(19 downto 15) <= HUB_INIT_DATAREADY_OUT(15 downto 11);
+ buf_STAT_DEBUG(24 downto 20) <= HUB_INIT_READ_IN(15 downto 11);
+ buf_STAT_DEBUG(25) <= '0';
+ buf_STAT_DEBUG(30 downto 26) <= buf_STAT_POINTS_locked(3*32+4 downto 3*32+0);
buf_STAT_DEBUG(31) <= CLK;
-- buf_STAT_DEBUG(18 downto 16) <= IOBUF_IBUF_BUFFER(20+32*6 downto 18+32*6);