1 |
3 |
jdoin |
DEBOUNCER_VHDL
|
2 |
|
|
==============
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
This is a very simple switch debouncer written in VHDL.
|
6 |
|
|
It is a pipelined, fully static design, and handles a group of signals with common debouncing.
|
7 |
|
|
|
8 |
|
|
The switch grouping in a std_logic_vector() has 2 main advantages:
|
9 |
|
|
|
10 |
|
|
-> saves silicon space, by having a common counter;
|
11 |
|
|
-> guarantees that a given switch set will not show asynchronous state changes relative to each other inside the debouncing time window;
|
12 |
|
|
|
13 |
|
|
The debouncer has a very simple interface, and is straightforward to use. No vendor-specific syntax or code is used in this design.
|
14 |
|
|
|
15 |
|
|
|
16 |
|
|
VHDL files for spi master/slave project:
|
17 |
|
|
---------------------------------------
|
18 |
|
|
|
19 |
|
|
grp_debouncer.vhd switch debouncer model
|
20 |
|
|
debounce_atlys_test.vhd testbench for simulator
|
21 |
|
|
debounce_atlys_test.wcfg waveform configuration for iSim testbench
|
22 |
|
|
debounce_atlys_top.vhd top entity for testing in FPGA
|
23 |
|
|
debounce_atlys.ucf Xilinx user constraints file for pin lock for Digilent Atlys board
|
24 |
|
|
debounce_vhdl_bench.xise Xilinx ISE13.1 project
|
25 |
|
|
|
26 |
|
|
|
27 |
|
|
The original development is done in Xilinx ISE 13.1, targeted to a Spartan-6 device.
|
28 |
|
|
|
29 |
|
|
ISIM SIMULATION
|
30 |
|
|
---------------
|
31 |
|
|
|
32 |
|
|
VHDL simulation was done in ISIM, after Place & Route, with default constraints, for the slowest Spartan-6 device.
|
33 |
|
|
|
34 |
|
|
|
35 |
|
|
SILICON VERIFICATION
|
36 |
|
|
--------------------
|
37 |
|
|
|
38 |
|
|
Design verification in silicon was done in a Digilent Atlys board, and the verification project can be found at the \trunk\bench directory, with all the required files to replicate the verification tests, including pinlock constraints for the Digilent Atlys board.
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
If you have any questions or usage issues with this core, please open a thread in OpenCores forum, and I will be pleased to answer.
|
42 |
|
|
|
43 |
|
|
If you find a bug or a design fault in the models, or if you have an issue that you like to be addressed, please open a bug/issue in the OpenCores bugtracker for this project, at
|
44 |
|
|
http://opencores.org/project,debouncer_vhdl,bugtracker.
|
45 |
|
|
|
46 |
|
|
If you use this module, please drop some feedback at jdoin@opencores.org
|
47 |
|
|
|
48 |
|
|
In any case, thank you for testing and using this core.
|
49 |
|
|
|
50 |
|
|
|
51 |
|
|
Jonny Doin
|
52 |
|
|
jdoin@opencores.org
|
53 |
|
|
|