diff --git a/ip/intercon/rtl/crossbar_v3.vhd b/ip/intercon/rtl/crossbar_v3.vhd index 785e7fc..7555115 100644 --- a/ip/intercon/rtl/crossbar_v3.vhd +++ b/ip/intercon/rtl/crossbar_v3.vhd @@ -174,7 +174,8 @@ architecture rtl of crossbar is DAT => acc.DAT or (slave_i(master).DAT and granted_data)); end loop; -- acc.ADR := std_logic_vector(unsigned(acc.ADR) - unsigned(address(slave))); -- Address translation - o <= acc; + acc.ADR := acc.ADR and not mask(slave); -- Address masking + o <= acc; end slave_logic; -- Select the slave pins the master will receive