assign addr[1:0] = {a1,a0};

// Read decodes
assign ctr0_rd     = !cs & !rd & (addr == 0);
assign ctr1_rd     = !cs & !rd & (addr == 1);
assign ctr2_rd     = !cs & !rd & (addr == 2);

// Write decodes
assign ctr0_wr     = !cs & !wr & (addr == 0);
assign ctr0_wr     = !cs & !wr & (addr == 1);
assign ctr0_wr     = !cs & !wr & (addr == 2);
assign creg_select = !cs & !wr & (addr == 3);