The core is tested and is being used in FPGA hardware in several projects.
This core is being used in the SPI_MASTER_SLAVE verification test circuit: http://opencores.org/project,spi_master_slave
To get the latest version: http://opencores.org/download,debouncer_vhdl
If you have issues you like to be addressed, place a request in the bugtracker: http://opencores.org/project,debouncer_vhdl,bugtracker
If you find this core useful, please let me know: jdoin@opencores.org
If you find the LGPL license to be unfit for your purposes, please let me know and we can study changing the license to another open-source hardware license.
This block is a general-purpose multiple input de-bouncing circuit.
It handles multiple inputs, like mechanical switch inputs, and outputs a de-bounced, stable registered version of the inputs.
A 'new_data' one-cycle strobe is also available, to sync downstream logic.
W
/----------------/----------------\
| |
| |
| ______ ______ | _____
| W | | W |fdr | W | W |cmp \
\----/---| +1 |---/----| |--/--+----/----| \
| | | | | \
------ | | \ |
| | | = |-----\
|> R | / | |
---+-- | / |
| CNT_VAL---| / |
| |____/ |
| |
\------------\ |
| |
N ____ | |
/-------/---)) \ ____ | |
| ))XOR |-----) \ | |
| /------))___/ )OR |-----/ |
| | /---)___/ |
| | | |
| | \----------\ |
| | N | |
| \--------/-----------\ +----------------------+---------\
| | | |
\---\ | | |
______ | ______ | | ______ |
| fd | | | fd | | | |fde | |
[data_i]----/-----| |---/---+---/----| |---/---+----)---| |---/---+---/-----------)------------------------[data_o]
N | | N N | | N | | | | N | N |
| | | | | \---|CE | | |
| | | | | | | | |
[clk_i]----> |> | |> | | |> | | | ____ ______
------ ------ | ------ | N ____ \---| \ | fd |
| \---/---)) \ |AND |-----| |----[strb_o]
| ))XOR |-----|___/ | |
\-------------------------/---))___/ | |
N | |
|> |
------