From 3c561cbff01b7d3c1e3f095f5e7b453733d810e9 Mon Sep 17 00:00:00 2001 From: hadeshyp Date: Thu, 19 Jul 2012 11:35:53 +0000 Subject: [PATCH] *** empty log message *** --- gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd | 2 +- gbe2_ecp3/trb_net16_gbe_main_control.vhd | 2 +- ...b_net16_gbe_response_constructor_SCTRL.vhd | 26 +++++++++++++++---- gbe2_ecp3/trb_net16_gbe_transmit_control.vhd | 8 +++--- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd b/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd index caa937e..7fb7f20 100644 --- a/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd +++ b/gbe2_ecp3/trb_net16_gbe_frame_receiver.vhd @@ -169,7 +169,7 @@ begin state <= x"3"; if (remove_ctr = x"03") then -- counter starts with a delay that's why only 3 -- destination MAC address filtering here - if (saved_dest_mac = g_MY_MAC) or (saved_dest_mac = x"ffffffffffff") then + if (saved_dest_mac = g_MY_MAC) then --or (saved_dest_mac = x"ffffffffffff") then filter_next_state <= REMOVE_SRC; else filter_next_state <= DECIDE; diff --git a/gbe2_ecp3/trb_net16_gbe_main_control.vhd b/gbe2_ecp3/trb_net16_gbe_main_control.vhd index 3f078c5..b3fda9b 100644 --- a/gbe2_ecp3/trb_net16_gbe_main_control.vhd +++ b/gbe2_ecp3/trb_net16_gbe_main_control.vhd @@ -551,7 +551,7 @@ begin if (PCS_AN_COMPLETE_IN = '0') then link_next_state <= INACTIVE; else - if (wait_ctr = x"3baa_ca00") then + if (wait_ctr = x"0000_ca00") then link_next_state <= GET_ADDRESS; else link_next_state <= WAIT_FOR_BOOT; diff --git a/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd b/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd index 0424887..19b366e 100644 --- a/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd +++ b/gbe2_ecp3/trb_net16_gbe_response_constructor_SCTRL.vhd @@ -138,6 +138,7 @@ signal fifo_rd_q : std_logic; signal too_much_data : std_logic; signal divide_ctr : std_logic_vector(7 downto 0); +signal divide_temp_ctr : std_logic_vector(15 downto 0); begin @@ -261,13 +262,28 @@ end process TOO_MUCH_DATA_PROC; DIVIDE_CTR_PROC : process(CLK) begin - if (RESET = '1') or (dissect_current_state = IDLE) then - divide_ctr <= (others => '0'); - elsif (dissect_current_state = SAVE_RESPONSE) and (tx_data_ctr(10 downto 0) = b"101_0111_1000") then - divide_ctr <= divide_ctr + x"1"; + if rising_edge(CLK) then + if (RESET = '1') or (dissect_current_state = IDLE) then + divide_ctr <= (others => '0'); + elsif (dissect_current_state = SAVE_RESPONSE) and (divide_temp_ctr = b"101_0111_1000") then + divide_ctr <= divide_ctr + x"1"; + end if; end if; end process DIVIDE_CTR_PROC; +DIVIDE_TEMP_CTR_PROC : process(CLK) +begin + if rising_edge(CLK) then + if (RESET = '1') or (dissect_current_state = IDLE) then + divide_temp_ctr <= (others => '0'); + elsif (tx_fifo_wr = '1') and (divide_temp_ctr /= b"101_0111_1000") then + divide_temp_ctr(15 downto 1) <= divide_temp_ctr(15 downto 1) + x"1"; + elsif (tx_fifo_wr = '1') and (divide_temp_ctr = b"101_0111_1000") then + divide_temp_ctr <= x"0002"; + end if; + end if; +end process DIVIDE_TEMP_CTR_PROC; + -- total counter of data transported to frame constructor TX_LOADED_CTR_PROC : process(CLK) begin @@ -320,7 +336,7 @@ begin end if; end process FRAME_SIZE_PROC; -TC_UDP_SIZE_OUT <= tx_data_ctr - divide_ctr(7 downto 1); +TC_UDP_SIZE_OUT <= tx_data_ctr - divide_ctr; TC_FLAGS_OFFSET_OUT(15 downto 14) <= "00"; diff --git a/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd b/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd index 4f1a982..307c9ec 100644 --- a/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd +++ b/gbe2_ecp3/trb_net16_gbe_transmit_control.vhd @@ -238,11 +238,11 @@ begin if (MC_FRAME_TYPE_IN = x"0008") then -- in case of ip FC_IP_SIZE_OUT <= MC_IP_SIZE_IN; - if (MC_UDP_SIZE_IN > g_MAX_FRAME_SIZE) then - FC_UDP_SIZE_OUT <= MC_UDP_SIZE_IN; -- - x"1"; - else + --if (MC_UDP_SIZE_IN > g_MAX_FRAME_SIZE) then + -- FC_UDP_SIZE_OUT <= MC_UDP_SIZE_IN; -- - x"1"; + --else FC_UDP_SIZE_OUT <= MC_UDP_SIZE_IN; - end if; + --end if; else FC_IP_SIZE_OUT <= temp_frame_size; --MC_FRAME_SIZE_IN; FC_UDP_SIZE_OUT <= temp_frame_size; --MC_FRAME_SIZE_IN; -- 2.43.0