eth+ipv4prot: Fix protocol arbitration

Fixes #13.
This commit is contained in:
Markus Koch 2023-01-15 10:43:00 +01:00
parent 2190f146a0
commit 3d530f6625
2 changed files with 8 additions and 2 deletions

View File

@ -141,7 +141,10 @@ begin
end if;
when TXD =>
state <= IDLE when (not mac_in.tx_mac_data_en or not mac_out.tx_active);
if (not mac_in.tx_mac_data_en or not mac_out.tx_active) then
state <= IDLE;
sel <= SEL_ETH_I; -- To avoid arbitration errors, always select the highest priority one by default
end if;
end case;
end if;
end process arb;

View File

@ -105,7 +105,10 @@ begin
end loop;
when TXD =>
state <= IDLE when (not ipv4_in.tx_en);
if not ipv4_in.tx_en then
state <= IDLE;
tx_sel <= ipv4_protocol_in'left; -- To avoid arbitration errors, always select the highest priority one by default
end if;
end case;
end if;
end process arb;