0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

按鍵抖動消除verilog設(shè)計(jì)

FPGA之家 ? 來源:FPGA之家 ? 2023-04-27 09:55 ? 次閱讀

按鍵作為一種機(jī)械開關(guān),在進(jìn)行按鍵操作時,機(jī)械接觸點(diǎn)的彈性及電壓突變等原因,在機(jī)械開關(guān)合閉的時候會出現(xiàn)電壓抖動,因此在實(shí)際的應(yīng)用當(dāng)中需要做一定的處理。

一般按鍵按下就是低電壓,這種按鍵去抖動的關(guān)鍵就是獲取穩(wěn)定的低電壓電平狀態(tài),因此,對于對于一個按鍵信號,可以用一個脈沖信號對其進(jìn)行采樣,如果連續(xù)三次采樣都為低電平的話,就認(rèn)為是按鍵被按下。其數(shù)字電路原型為下圖

acc2c9de-e455-11ed-ab56-dac502259ad0.png

其實(shí),我們在做FPGA設(shè)計(jì)之前,就應(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ā)器,然后心里有個大概的硬件原理圖,這樣寫代碼才胸有成竹。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26465
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1995

    瀏覽量

    61012
  • FPGA芯片
    +關(guān)注

    關(guān)注

    3

    文章

    246

    瀏覽量

    39746

原文標(biāo)題:按鍵抖動消除 verilog

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    verilog寫cpld的程序如何消除按鍵抖動

    verilog寫cpld的程序如何消除按鍵抖動?
    發(fā)表于 04-02 09:22

    關(guān)于按鍵抖動問題的解決

    電路圖如下,,左側(cè)按鈕按下后給74LS192提供脈沖信號,但實(shí)物焊接時卻存在按下一次按鈕,192多次計(jì)數(shù)。是因?yàn)檫x用的按鈕存在按鍵抖動,按下一次按鈕會提供多個脈沖信號,讓192多次計(jì)數(shù)嗎?如果是,有什么辦法能消除這種
    發(fā)表于 06-25 02:31

    消除按鍵抖動的兩種方法分享

      按鍵也是機(jī)械裝置,在按下或放開的一瞬間會產(chǎn)生抖動,如下圖:    消除方法有兩種:  軟件除抖和硬件除抖,其中硬件除抖是應(yīng)用了電容對高頻信號短路的原理。  軟件除抖是檢測出鍵閉合后執(zhí)行一個延時
    發(fā)表于 09-02 17:52

    如何通過軟件編程實(shí)現(xiàn)消除鍵盤的抖動

    如何通過軟件編程實(shí)現(xiàn)消除鍵盤的抖動?記文本答:由于按鍵是機(jī)械開關(guān)結(jié)構(gòu),所以當(dāng)用手按下其中-一個鍵時,往往會出現(xiàn)所按鍵在閉合位置和斷開位置之間發(fā)生跳幾下后才會穩(wěn)定到閉合狀態(tài)的情況。在釋放
    發(fā)表于 07-22 08:24

    單片機(jī)如何消除按鍵抖動?

    單片機(jī)如何消除按鍵抖動
    發(fā)表于 10-21 09:29

    如何消除按鍵抖動的影響

    ,從而引起誤處理。因此,為了確保單片機(jī)對一次按鍵動作只作—次響應(yīng),就必須考慮如何消除按鍵抖動的影響。按鍵讀取識
    發(fā)表于 01-17 07:46

    運(yùn)用外部中斷函數(shù)消除按鍵抖動

    目的實(shí)現(xiàn):按鍵數(shù)碼管數(shù)字加減,運(yùn)用外部中斷函數(shù),消除按鍵抖動***仿真c代碼#includecode unsigned char SEG[]={0XC0
    發(fā)表于 03-02 06:31

    按鍵消抖的原理和基于verilog的消抖設(shè)計(jì)

    按鍵開關(guān)是各種電子設(shè)備不可或缺的人機(jī)接口。在實(shí)際應(yīng)用中,很大一部分的按鍵是機(jī)械按鍵。在機(jī)械按鍵的觸點(diǎn)閉合和斷開時,都會產(chǎn)生抖動,為了保證系統(tǒng)
    發(fā)表于 02-11 01:14 ?2.3w次閱讀
    <b class='flag-5'>按鍵</b>消抖的原理和基于<b class='flag-5'>verilog</b>的消抖設(shè)計(jì)

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

    按鍵開關(guān)是電子設(shè)備人機(jī)交互的主要器件之一。按鍵大多是機(jī)械式開關(guān)結(jié)構(gòu),由于機(jī)械式開關(guān)的核心部件為彈性金屬簧片,因而在開關(guān)切換的瞬間會在接觸點(diǎn)出現(xiàn)來回彈跳的現(xiàn)象。對于靈敏度比較高的電路,這種彈跳現(xiàn)象引起的信號抖動會造成誤動作而影響到
    的頭像 發(fā)表于 01-07 08:45 ?2697次閱讀
    <b class='flag-5'>按鍵</b>彈跳<b class='flag-5'>消除</b>模塊的程序設(shè)計(jì)與應(yīng)用

    外部中斷的按鍵抖動按鍵消抖)

    當(dāng)我們寫完一個外部中斷程序測試時,例如按鍵計(jì)數(shù)和按鍵點(diǎn)亮led燈,我們可能會遇到一次按鍵按下松開卻觸發(fā)了多次外部中斷,這是因?yàn)?b class='flag-5'>按鍵抖動的存在
    發(fā)表于 11-22 15:36 ?27次下載
    外部中斷的<b class='flag-5'>按鍵</b><b class='flag-5'>抖動</b>(<b class='flag-5'>按鍵</b>消抖)

    STM32F407 按鍵抖動 延時消抖

    ,從而引起誤處理。因此,為了確保單片機(jī)對一次按鍵動作只作—次響應(yīng),就必須考慮如何消除按鍵抖動的影響。按鍵讀取識
    發(fā)表于 01-18 10:30 ?4次下載
    STM32F407 <b class='flag-5'>按鍵</b><b class='flag-5'>抖動</b> 延時消抖

    開關(guān)抖動消除設(shè)計(jì)

    當(dāng)按下和釋放微動按鍵時,會由短時間的抖動現(xiàn)象才會到達(dá)想要的狀態(tài)。
    的頭像 發(fā)表于 12-26 16:25 ?2521次閱讀

    單片機(jī)按鍵抖動的方法

    在使用按鍵時,我們想按一次按鍵,但在實(shí)際中卻經(jīng)常發(fā)現(xiàn)我們要的”一次“,實(shí)際上去并不是”一次“而可能是多次。為什么呢?這是因?yàn)?,我們使用的機(jī)械按鍵,在我們按下時,并非只是接觸一次,因?yàn)榇嬖跈C(jī)械
    的頭像 發(fā)表于 11-02 15:16 ?4809次閱讀
    單片機(jī)<b class='flag-5'>按鍵</b>去<b class='flag-5'>抖動</b>的方法

    rs觸發(fā)器消除按鍵抖動的原因

    按鍵抖動是指由于按鍵接點(diǎn)的不完美接觸而導(dǎo)致的按鍵信號在短時間內(nèi)多次跳變的現(xiàn)象。在電子設(shè)備的設(shè)計(jì)與制造中,消除
    的頭像 發(fā)表于 11-17 15:53 ?1899次閱讀

    FPGA如何消除時鐘抖動

    在FPGA(現(xiàn)場可編程門陣列)設(shè)計(jì)中,消除時鐘抖動是一個關(guān)鍵任務(wù),因?yàn)闀r鐘抖動會直接影響系統(tǒng)的時序性能、穩(wěn)定性和可靠性。以下將詳細(xì)闡述FPGA中消除時鐘
    的頭像 發(fā)表于 08-19 17:58 ?906次閱讀