0
\$\begingroup\$

I am doing an algorithmic state machine in VHDL. It models a slot machine. It uses debouncing for the start and end input signals. I need to implement it later on a Basys 3 FPGA. The start and end input signals are modeled with the FPGA buttons. The frequency of the CLK signal of the Basys3 FPGA is 100 MHz. Therefore the period of CLK must be 10^-8 seconds= 10*10^-9 seconds = 10 ns.

  • What time length do you recommend for the press debouncing time when pressing the buttons of the Basys3?
  • What time length do you recommend for the release debouncing time when releasing the buttons of the Basys3?
\$\endgroup\$
11
  • \$\begingroup\$ Most types of switches stop bouncing within 10 ms. \$\endgroup\$
    – Dave Tweed
    Commented Jul 5, 2021 at 11:38
  • \$\begingroup\$ what buttons? link? If you make your design edge triggered and consider the max user toggle rate of maybe 10 Hz, the dead time after start could be 50ms but contact bounce time might only be 1 to 5ms and faulty is > 10ms. Then bounce time is irrelevant unless you ignore user dwell or toggle time . \$\endgroup\$
    – D.A.S.
    Commented Jul 5, 2021 at 11:44
  • \$\begingroup\$ How is Start stop computed? press or release to start SPIN \$\endgroup\$
    – D.A.S.
    Commented Jul 5, 2021 at 11:45
  • \$\begingroup\$ There are two buttons. One of them for starting the slot machine and another one to stop it. \$\endgroup\$
    – goahead97
    Commented Jul 5, 2021 at 11:47
  • \$\begingroup\$ Consider 10ms for fastest detection time and 50 ms hold time for longest wait time to ignore glitches from potential EMI \$\endgroup\$
    – D.A.S.
    Commented Jul 5, 2021 at 11:50

1 Answer 1

1
\$\begingroup\$

There are two buttons. One of them for starting the slot machine and another one to stop it.

So, if the start button activates immediately and then bounces for several ms who cares - it's not until the stop button is pressed that you need to take any subsequent action and, that can happen immediately as well. Of course, if some fool is pressing both (and that's a problem) then you need to do some thinking about the situation but, I don't see that de-bouncing will help you in that scenario either.

De-bouncing is only really necessary in applications like telephone keypads where multiple false presses will cause a number to be mis-dialled.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.