What will the be DC synthesis output? I don't have access to DC. If a=1 and b=1 will both address locations get updated ? Addr1 and addr2 are logic as well and guaranteed not to be equal.
logic [3:0][31:0] cache;
always_ff .... begin
.....reset...
if (a)
cache[addr1] <= data1;
if (b)
cache[addr2] <= data2;
end
cacheand the target technology you are mapping to. Ifcacheis an array of bits, or can fit into a register file instead of a memory, then no problem.