diff --git a/rtl/eth_mux.py b/rtl/eth_mux.py index 6bd2421f7..d0d5cd22c 100755 --- a/rtl/eth_mux.py +++ b/rtl/eth_mux.py @@ -231,7 +231,7 @@ always @* begin // end of frame detection frame_next = ~current_input_tlast; end - end else if (enable & selected_input_eth_hdr_valid) begin + end else if (enable & ~output_eth_hdr_valid & selected_input_eth_hdr_valid) begin // start of frame, grab select value frame_next = 1; select_next = select; diff --git a/rtl/eth_mux_4.v b/rtl/eth_mux_4.v index 343411381..b7071462b 100644 --- a/rtl/eth_mux_4.v +++ b/rtl/eth_mux_4.v @@ -240,7 +240,7 @@ always @* begin // end of frame detection frame_next = ~current_input_tlast; end - end else if (enable & selected_input_eth_hdr_valid) begin + end else if (enable & ~output_eth_hdr_valid & selected_input_eth_hdr_valid) begin // start of frame, grab select value frame_next = 1; select_next = select; diff --git a/rtl/eth_mux_64.py b/rtl/eth_mux_64.py index 6630ad9df..4a3250d6a 100755 --- a/rtl/eth_mux_64.py +++ b/rtl/eth_mux_64.py @@ -236,7 +236,7 @@ always @* begin // end of frame detection frame_next = ~current_input_tlast; end - end else if (enable & selected_input_eth_hdr_valid) begin + end else if (enable & ~output_eth_hdr_valid & selected_input_eth_hdr_valid) begin // start of frame, grab select value frame_next = 1; select_next = select; diff --git a/rtl/eth_mux_64_4.v b/rtl/eth_mux_64_4.v index f8c904e28..cd80138e3 100644 --- a/rtl/eth_mux_64_4.v +++ b/rtl/eth_mux_64_4.v @@ -251,7 +251,7 @@ always @* begin // end of frame detection frame_next = ~current_input_tlast; end - end else if (enable & selected_input_eth_hdr_valid) begin + end else if (enable & ~output_eth_hdr_valid & selected_input_eth_hdr_valid) begin // start of frame, grab select value frame_next = 1; select_next = select;