按鍵作為一種機(jī)械開關(guān),在進(jìn)行按鍵操作時(shí),機(jī)械接觸點(diǎn)的彈性及電壓突變等原因,在機(jī)械開關(guān)合閉的時(shí)候會(huì)出現(xiàn)電壓抖動(dòng),因此在實(shí)際的應(yīng)用當(dāng)中需要做一定的處理。
一般按鍵按下就是低電壓,這種按鍵去抖動(dòng)的關(guān)鍵就是獲取穩(wěn)定的低電壓電平狀態(tài),因此,對(duì)于對(duì)于一個(gè)按鍵信號(hào),可以用一個(gè)脈沖信號(hào)對(duì)其進(jìn)行采樣,如果連續(xù)三次采樣都為低電平的話,就認(rèn)為是按鍵被按下。其數(shù)字電路原型為下圖
其實(shí),我們?cè)谧?a href="http://m.xsypw.cn/soft/data/30-91/" target="_blank">FPGA設(shè)計(jì)之前,就應(yīng)該大概知道自己的coding 在FPGA芯片上面會(huì)映射成什么電路,這樣寫的代碼才是可靠的,有了上面的原理圖,那么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;
對(duì)于復(fù)雜的電路我們也可以把他分解為每一個(gè)觸發(fā)器,然后心里有個(gè)大概的硬件原理圖,這樣寫代碼才胸有成竹。
審核編輯:劉清
-
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
27040 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2029瀏覽量
61764 -
FPGA芯片
+關(guān)注
關(guān)注
3文章
246瀏覽量
40136
原文標(biāo)題:按鍵抖動(dòng)消除 verilog
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
關(guān)于按鍵抖動(dòng)問題的解決
消除按鍵抖動(dòng)的兩種方法分享
如何通過軟件編程實(shí)現(xiàn)消除鍵盤的抖動(dòng)
如何消除按鍵抖動(dòng)的影響
運(yùn)用外部中斷函數(shù)消除按鍵抖動(dòng)
按鍵消抖的原理和基于verilog的消抖設(shè)計(jì)

按鍵彈跳消除模塊的程序設(shè)計(jì)與應(yīng)用

外部中斷的按鍵抖動(dòng)(按鍵消抖)

STM32F407 按鍵抖動(dòng) 延時(shí)消抖

開關(guān)抖動(dòng)及消除設(shè)計(jì)
單片機(jī)按鍵去抖動(dòng)的方法

評(píng)論