用VHDL編寫簡單的按鍵消抖程序

一般按鍵延時在20ms左右,根據時鐘頻率決定你的計數范圍。程序非常簡單,但經常用到,對于FPGA初學者要好好學習這部分。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity reseter is
port(clk,reset_in:in std_logic;           --按鍵按下時為0
     reset_out:out std_logic:='0');
      end reseter;

architecture behav of reseter is

begin

PROCESS(clk,reset_in) 
  VARIABLE COUNT1 :INTEGER RANGE 0 TO 100000; 
BEGIN 
IF reset_in='0' THEN 
   IF RISING_EDGE(clk) THEN
    IF COUNT1<10000 THEN COUNT1:=COUNT1+1; 
    ELSE COUNT1:=COUNT1; END IF; 
    IF COUNT1<=9999 THEN reset_out<='1'; 
    ELSE reset_out<='0'; END IF; 
  END IF; 
ELSE COUNT1:=0;
     reset_out<='1';
END IF; 
END PROCESS ;
end behav;```
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一個計數器通常是由一組觸發器構成,該組觸發器按照預先給定的順序改變其狀態,如果所有觸發器的狀態改變是在同一時鐘脈沖...
    錦穗閱讀 13,477評論 0 6
  • 姓名:徐嬌 學號:17011210547 轉自 http://mp.weixin.qq.com/s/WNigJh...
    徐Jiao閱讀 2,371評論 0 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,841評論 25 708
  • 南方在經歷了一個夏天的持續高溫后,隨著副高南撤,又進入了陰雨綿綿天。讓我在夏日蟄伏后,也難以出門釋放身心。于是乎,...
    惠在遠方閱讀 890評論 0 1
  • 曾經我們認為 遇到我們喜歡的人 就應該義無反顧的去付出 去愛 去包容和原諒 但往往事與愿違 任何一種縱容換來的不是...
    Indy閱讀 2,389評論 1 2