Что то я не понял. А зачем тогда обозначать '1' и '0, когда
можно просто
Ram_smx <= CA(15) and (CA(14) xor RMode_r);
А понял, ты имел ввиду Ram_smx <= '1' when (CA(15) = '1' and ( CA(14) xor RMode_r ) = '1') else '0';
По умолчанию сигнал сравнивается с '1'.

