Debouncing alternative

The debouncing FSM described in the previous page is not the only way to implement debouncing. You can also do it as seen below.

The raw button and debounced button along with states with respect to time is shown below. Note that "DC" means "don't care."

The major difference between this FSM and the one in the previous page is that in this one, we wait for a length of time after the first change in input and does not check the input again. If the input is still what the FSM expects after the waiting period is over, it moves to a new state.