Solution (source code)

= Solution

Encode $(q_1q_0)$ by $A=00$, $B=01$, $C=11$, $I=10$, with reset to $A$. Two positive-edge-triggered <D flip-flops> store the state. Minimizing the <Boolean functions> from the complete table gives
$$
\boxed{D_0=x_0+q_0x_1,\qquad D_1=\bar x_0q_0(x_1+q_1),\qquad INC=q_1\bar q_0.}
$$
Equivalently, the minimal <sum of products> form of $D_1$ is $\bar x_0q_0x_1+\bar x_0q_0q_1$. The displayed factorization saves duplicated logic. The equations use only <AND gates>, <OR gates> and <NOT gates>; connect $D_j$ to the corresponding flip-flop data input and use one common clock.

For example, $C$ with input $00$ gives $(D_1D_0)=10$, entering the pulse state. In $I$, either $x_0=1$ gives $01$ or $x_0=0$ gives $00$, independently of $x_1$; the pulse cannot persist. The four states are distinguishable by their current output or future response to inputs $00$ and $10,00$, so two state bits are also necessary.