Хм, вы могли бы сделать это проще, если бы трактовали по-другому: два старших бита обведены 0,1,2,3, а младший - ИЛИ старших.
Нечто подобное (псевдокод)
wire V[1:0];
wire Out[2:0];
@(posedge clk) {
V += 1;
Out[2] <= V[1]; Out[1] <= V[0]; Out[0] <= V[1] | V[0];
}