debounce.tdf

来自「verilog编写实用多功能电子表」· TDF 代码 · 共 33 行

TDF
33
字号
%********************************
*                               *
   Mechanical Switch Debouncer   
*                               *
********************************%

SUBDESIGN debounce
(
   clk         : INPUT;
   key_pressed : INPUT;
   pulse       : OUTPUT;
)

VARIABLE
   count_reg[7..0] : DFF;
   at_zero         : NODE;

BEGIN

   % Preset to 255 when key bounces or is not %
   % pressed.  Decrement when key is pressed. %
   count_reg[].clk = clk;
   count_reg[].prn = key_pressed;
   count_reg[].d   = count_reg[].q - (0,!at_zero);

   % Emit single pulse when counter reaches 1. %
   pulse = count_reg[].q == h"01";

   % Don't let counter decrement below zero. %
   at_zero = count_reg[].q == h"00";

END;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?