按鍵作為一種機械開關(guān),在進行按鍵操作時,機械接觸點的彈性及電壓突變等原因,在機械開關(guān)合閉的時候會出現(xiàn)電壓抖動,因此在實際的應(yīng)用當(dāng)中需要做一定的處理。
一般按鍵按下就是低電壓,這種按鍵去抖動的關(guān)鍵就是獲取穩(wěn)定的低電壓電平狀態(tài),因此,對于對于一個按鍵信號,可以用一個脈沖信號對其進行采樣,如果連續(xù)三次采樣都為低電平的話,就認為是按鍵被按下。其數(shù)字電路原型為下圖

其實,我們在做FPGA設(shè)計之前,就應(yīng)該大概知道自己的coding 在FPGA芯片上面會映射成什么電路,這樣寫的代碼才是可靠的,有了上面的原理圖,那么Verilog代碼就很容易了,如下
input wire Clk ;
input wire key_in ;
output wire key_out ;
reg key_dly1;
reg key_dly2;
reg key_dly3;
always @(posedge Clk)
begin
if(Rst_n == 1'b0) begin
key_dly1 <= 1'b0; key_dly2 <= 1'b0; key_dly3 <= 1'b0; end
else
begin
key_dly1 <= key_in ;
key_dly2 <= key_dly1;
key_dly3 <= key_dly2;
end
end
assign key_out = key_dly1 | key_dly2 | key_dly3;
對于復(fù)雜的電路我們也可以把他分解為每一個觸發(fā)器,然后心里有個大概的硬件原理圖,這樣寫代碼才胸有成竹。
審核編輯:劉清
-
FPGA設(shè)計
+關(guān)注
關(guān)注
9文章
431瀏覽量
28149 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2056瀏覽量
63418 -
FPGA芯片
+關(guān)注
關(guān)注
4文章
250瀏覽量
41018
原文標(biāo)題:按鍵抖動消除 verilog
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
關(guān)于按鍵抖動問題的解決
消除按鍵抖動的兩種方法分享
如何通過軟件編程實現(xiàn)消除鍵盤的抖動
運用外部中斷函數(shù)消除按鍵抖動
按鍵彈跳消除模塊的程序設(shè)計與應(yīng)用
外部中斷的按鍵抖動(按鍵消抖)
STM32F407 按鍵抖動 延時消抖
單片機按鍵去抖動的方法
按鍵抖動消除verilog設(shè)計
評論