Counter
Consider what it means to count in binary:
x2 x1 x0 value
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7
The sequence of x0 values looks like a clock with period 1: 0 1 0 1 0 1 0 1
The sequence of x1 values looks like a clock with period 2: 0 0 1 1 0 0 1 1
The sequence of x2 values looks like a clock with period 4: 0 0 0 0 1 1 1 1
However, notice when x1 changes relative to x0:
x1 goes from 0 to 1 (for example, value 1 to 2) when x0 goes from 1 to 0
x1 goes from 1 to 0 (for example, value 3 to 4) when x0 goes from 1 to 0
This means that we need to toggle x1 when x0 is on a negative edge,
but we want to use positive-edge flip-flops.