the multiplexer has its own memory map so if you do mux.add(foo, addr=0x4), foo would be at address 0x4, relative to the base address of the multiplexer so if you add the mux to, say, a higher level csr.Decoder: dec.add(mux.bus, addr=0x300) -> `foo` would be at address 0x304