diff --git a/hdl/EB_SPEC_Test/EB_2_wb_converter.vhd b/hdl/EB_SPEC_Test/EB_2_wb_converter.vhd index 5daef13ca903080252cd962f094cedbfd4696e2e..f0110bddf2e682675ae7c64482bdcb3c653a7f05 100644 --- a/hdl/EB_SPEC_Test/EB_2_wb_converter.vhd +++ b/hdl/EB_SPEC_Test/EB_2_wb_converter.vhd @@ -397,13 +397,13 @@ begin else -- RX cycle line lowered before all words were transferred - if ((s_EB_RX_byte_cnt < s_EB_packet_length) AND (s_rx_fifo_empty = '1') AND EB_RX_i.CYC = '0') then + if ((s_state_RX /= ERROR) AND (s_state_RX /= IDLE) AND (s_EB_RX_byte_cnt < s_EB_packet_length) AND (s_rx_fifo_empty = '1') AND EB_RX_i.CYC = '0') then report "EB: Packet was shorter than specified by UDP length field" severity note; --ERROR: -- RX cycle line lowered before all words were transferred s_state_RX <= ERROR; s_state_TX <= IDLE; -- - elsif((s_EB_RX_byte_cnt > s_EB_packet_length) AND ((s_state_RX /= IDLE) AND (s_state_RX /= EB_HDR_REC))) then + elsif((s_EB_RX_byte_cnt > s_EB_packet_length) AND ((s_state_RX /= ERROR) AND (s_state_RX /= IDLE) AND (s_state_RX /= EB_HDR_REC))) then report "EB: Packet was longer than specified by UDP length field" severity note; s_state_RX <= ERROR; s_state_TX <= IDLE; @@ -609,9 +609,10 @@ begin s_EB_TX_HDR <= init_EB_HDR; PROBE_ID <= X"1337BEEF"; - s_EB_TX_CUR_CYCLE <= to_EB_CYC(test); + s_EB_TX_CUR_CYCLE <= INIT_EB_CYC; + s_EB_RX_CUR_CYCLE <= INIT_EB_CYC; s_EB_TX_base_wr_adr<= (others => '0'); - s_EB_RX_CUR_CYCLE <= to_EB_CYC(test); + s_WB_CYC <= '0'; s_EB_RX_ACK <= '0'; @@ -661,7 +662,8 @@ begin case s_state_RX is - when IDLE => s_EB_packet_length <= (others => '0'); + when IDLE => s_EB_RX_CUR_CYCLE <= INIT_EB_CYC; + s_EB_packet_length <= (others => '0'); s_status_clr <= '1'; @@ -797,6 +799,7 @@ begin when ERROR => report "EB: ERROR" severity warning; s_WB_CYC <= '0'; + s_EB_packet_length <= (others => '0'); s_tx_fifo_clr <= '1'; s_rx_fifo_clr <= '1'; end case; diff --git a/hdl/EB_SPEC_Test/EB_HDR_pkg.vhd b/hdl/EB_SPEC_Test/EB_HDR_pkg.vhd index 254f363ea8fbe0f959f0ee0915c17cabb854c382..6cbba4120eb5ae7af2ed063f89b4472fe196b45e 100644 --- a/hdl/EB_SPEC_Test/EB_HDR_pkg.vhd +++ b/hdl/EB_SPEC_Test/EB_HDR_pkg.vhd @@ -192,6 +192,10 @@ return EB_HDR; function TO_EB_CYC(X : std_logic_vector) return EB_CYC; +function INIT_EB_CYC +return EB_CYC; + + function TO_STD_LOGIC_VECTOR(X : EB_CYC) return std_logic_vector; @@ -396,6 +400,25 @@ return EB_CYC is return tmp; end function TO_EB_CYC; +function INIT_EB_CYC +return EB_CYC is + variable tmp : EB_CYC; + begin + tmp.BCA_CFG := '0'; + tmp.RCA_CFG := '0'; + tmp.RD_FIFO := '0'; + tmp.RESERVED1 := '0'; + tmp.DROP_CYC := '1'; + tmp.WCA_CFG := '0'; + tmp.WR_FIFO := '0'; + tmp.RESERVED2 := '0'; + tmp.RESERVED3 := (others => '0'); + tmp.WR_CNT := (others => '0'); + tmp.RD_CNT := (others => '0'); + + return tmp; +end function INIT_EB_CYC; + function TO_STD_LOGIC_VECTOR(X : EB_CYC) return std_logic_vector is variable tmp : std_logic_vector(31 downto 0) := (others => '0');