From: Michael Boehmer Date: Wed, 8 Jun 2022 13:14:54 +0000 (+0200) Subject: GbE bug on SCTRL fixed, causing the last word of last packet to get lost sometimes X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=1321592adcee72fa02bfa95374ba3b982dc3172b;p=trbnet.git GbE bug on SCTRL fixed, causing the last word of last packet to get lost sometimes --- diff --git a/gbe_trb/protocols/trb_net16_gbe_response_constructor_SCTRL.vhd b/gbe_trb/protocols/trb_net16_gbe_response_constructor_SCTRL.vhd index 667d141..467ceaf 100644 --- a/gbe_trb/protocols/trb_net16_gbe_response_constructor_SCTRL.vhd +++ b/gbe_trb/protocols/trb_net16_gbe_response_constructor_SCTRL.vhd @@ -554,7 +554,8 @@ begin when LOAD_TO_HUB => state <= x"4"; - if (rx_fifo_q(17) = '1') then +-- if (rx_fifo_q(17) = '1') then + if ((rx_fifo_q(17) = '1') and (GSC_INIT_READ_IN = '1')) then if (reset_detected = '1') then dissect_next_state <= CLEANUP; else diff --git a/trb_net16_hub_base.vhd b/trb_net16_hub_base.vhd index 7596002..fe095ad 100644 --- a/trb_net16_hub_base.vhd +++ b/trb_net16_hub_base.vhd @@ -1781,19 +1781,29 @@ HUB_MED_CONNECTED(31 downto MII_NUMBER) <= (others => '1'); -- buf_STAT_DEBUG( 3 downto 0 ) <= STAT_TIMEOUT(3*32+3 downto 3*32); -- buf_STAT_DEBUG( 7 downto 4 ) <= HUB_CTRL_final_activepoints(3*32+3 downto 3*32); - - buf_STAT_DEBUG(0) <= m_DATAREADY_OUT(6); - buf_STAT_DEBUG(1) <= m_READ_IN(6); - buf_STAT_DEBUG(2) <= m_PACKET_NUM_OUT(18); - buf_STAT_DEBUG(3) <= m_PACKET_NUM_OUT(19); - buf_STAT_DEBUG(4) <= m_PACKET_NUM_OUT(20); - buf_STAT_DEBUG(5) <= m_DATA_OUT(96); - buf_STAT_DEBUG(6) <= m_DATA_OUT(97); - buf_STAT_DEBUG(7) <= m_DATA_OUT(98); - buf_STAT_DEBUG(8) <= m_DATA_OUT(99); - buf_STAT_DEBUG(9) <= MPLEX_STAT(25); + buf_STAT_DEBUG(0) <= hub_to_buf_INIT_DATAREADY(3); + buf_STAT_DEBUG(1) <= hub_to_buf_INIT_READ(3); + buf_STAT_DEBUG(2) <= hub_to_buf_INIT_PACKET_NUM(9); + buf_STAT_DEBUG(3) <= hub_to_buf_INIT_PACKET_NUM(10); + buf_STAT_DEBUG(4) <= hub_to_buf_INIT_PACKET_NUM(11); + buf_STAT_DEBUG(5) <= hub_to_buf_INIT_DATA(48); + buf_STAT_DEBUG(6) <= hub_to_buf_INIT_DATA(49); + buf_STAT_DEBUG(7) <= hub_to_buf_INIT_DATA(50); + buf_STAT_DEBUG(8) <= hub_to_buf_INIT_DATA(51); buf_STAT_DEBUG(31 downto 10) <= (others => '0'); +-- buf_STAT_DEBUG(0) <= m_DATAREADY_OUT(6); +-- buf_STAT_DEBUG(1) <= m_READ_IN(6); +-- buf_STAT_DEBUG(2) <= m_PACKET_NUM_OUT(18); +-- buf_STAT_DEBUG(3) <= m_PACKET_NUM_OUT(19); +-- buf_STAT_DEBUG(4) <= m_PACKET_NUM_OUT(20); +-- buf_STAT_DEBUG(5) <= m_DATA_OUT(96); +-- buf_STAT_DEBUG(6) <= m_DATA_OUT(97); +-- buf_STAT_DEBUG(7) <= m_DATA_OUT(98); +-- buf_STAT_DEBUG(8) <= m_DATA_OUT(99); +-- buf_STAT_DEBUG(9) <= MPLEX_STAT(25); +-- buf_STAT_DEBUG(31 downto 10) <= (others => '0'); + IOBUF_STAT_INIT_OBUF_DEBUG <= iobuf_stat_init_obuf_debug_i; IOBUF_STAT_REPLY_OBUF_DEBUG <= iobuf_stat_reply_obuf_debug_i; IOBUF_CTRL_GEN <= (others => '0');