日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

FPGA入門基礎(chǔ)之按鍵實(shí)驗(yàn)

ALINX ? 來源:ALINX ? 2026-05-15 09:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本篇按鍵實(shí)驗(yàn),選自ALINX 黑金云課堂 FPGA 免費(fèi)直播課。該課程由 ALINX 資深工程師團(tuán)隊(duì)傾力打造,從 0 到 1 系統(tǒng)化教學(xué),幫助每位工程師跨過 FPGA 開發(fā)門檻。

ALINX:關(guān)注 ALINX,進(jìn)入視頻號(hào)即可查看完整黑金云課堂 FPGA 視頻教程。配合筆記學(xué)習(xí)效果更佳。

按鍵抖動(dòng)現(xiàn)象分析

機(jī)械按鍵的物理結(jié)構(gòu)

機(jī)械按鍵由彈性觸點(diǎn)、彈簧機(jī)構(gòu)和導(dǎo)電材料組成。當(dāng)按下或釋放按鍵時(shí),彈簧的彈性勢(shì)能使觸點(diǎn)產(chǎn)生振動(dòng),導(dǎo)致觸點(diǎn)不能立即穩(wěn)定接觸或斷開。

電平跳變的表現(xiàn)形式

抖動(dòng)表現(xiàn)為短時(shí)間內(nèi)電平的多次跳變。FPGA的高速時(shí)鐘(通常50MHz)會(huì)將這些跳變識(shí)別為多次獨(dú)立的按鍵操作,導(dǎo)致系統(tǒng)行為異常。

抖動(dòng)帶來的問題

計(jì)數(shù)器誤觸發(fā):?jiǎn)未伟存I導(dǎo)致計(jì)數(shù)器多次增加

狀態(tài)機(jī)異常:狀態(tài)跳轉(zhuǎn)不符合預(yù)期

多次識(shí)別:一次操作被識(shí)別為多次

f84578b6-4b45-11f1-90a1-92fbcf53809c.png

f89feb98-4b45-11f1-90a1-92fbcf53809c.png

工程結(jié)論:抖動(dòng)是機(jī)械按鍵的固有特性,無法避免,必須通過硬件或軟件方法進(jìn)行消抖處理。

消抖原理

消抖核心思想

等待信號(hào)穩(wěn)定

連續(xù)穩(wěn)定計(jì)數(shù)

輸出有效信號(hào)

消抖不是性能優(yōu)化手段,而是確保系統(tǒng)正確運(yùn)行的必需措施。任何使用機(jī)械按鍵的 FPGA 設(shè)計(jì)都必須包含消抖模塊,否則系統(tǒng)無法穩(wěn)定工作。

消抖工作流程

f8f8650c-4b45-11f1-90a1-92fbcf53809c.png

穩(wěn)定計(jì)數(shù)器的工作原理

信號(hào)相同:計(jì)數(shù)器遞增

當(dāng)key_in == key_last時(shí),說明信號(hào)保持穩(wěn)定,計(jì)數(shù)器 stable_cnt 加1。

信號(hào)不同:計(jì)數(shù)器清零

當(dāng)key_in != key_last時(shí),說明信號(hào)發(fā)生變化,計(jì)數(shù)器 清零,重新開始計(jì)數(shù)。

達(dá)到閾值:輸出更新

當(dāng)stable_cnt == CNT_MAX時(shí),認(rèn)為信號(hào)已穩(wěn)定,更新輸出 key_out。

f95047cc-4b45-11f1-90a1-92fbcf53809c.png

(計(jì)數(shù)器工作時(shí)序圖)

Verilog 核心代碼

按鍵消抖代碼

modulekey_debounce (
inputwire    clk,   // 系統(tǒng)時(shí)鐘,50MHz
inputwire    rst_n,  // 復(fù)位信號(hào),低有效
inputwire    key_in,  // 原始按鍵輸入
outputreg    key_out  // 消抖后按鍵輸出
);
// 參數(shù)定義:穩(wěn)定計(jì)數(shù)器最大值// 50MHz時(shí)鐘,20ms消抖時(shí)間 = 1_000_000個(gè)時(shí)鐘周期
parameter CNT_MAX = 20'd1_000_000;
// 內(nèi)部信號(hào)定義reg [19:0] stable_cnt;  // 穩(wěn)定計(jì)數(shù)器,最大1_000_000
reg     key_last;   // 上一次按鍵狀態(tài)//==================================================
// 消抖核心邏輯//==================================================
always @(posedge clk or negedge rst_n) beginif (!rst_n) begin
    stable_cnt <= 20'd0;
? ? ? ? key_last ? <= 1'b1; ? // 按鍵默認(rèn)高電平(上拉)
? ? ? ? key_out ? ?<= 1'b1;
? ? endelsebegin// 保存當(dāng)前按鍵狀態(tài)
? ? ? ? key_last <= key_in;
? ? ? ??
? ? ? ? // 穩(wěn)定計(jì)數(shù)器邏輯if (key_in == key_last)
? ? ? ? ? ? stable_cnt <= stable_cnt + 1'b1;
? ? ? ? else
? ? ? ? ? ? stable_cnt <= 20'd0;
? ? ? ??
? ? ? ? // 輸出更新邏輯if (stable_cnt == CNT_MAX)
? ? ? ? ? ? key_out <= key_in;
? ? endendendmodule

代碼詳細(xì)解析歡迎關(guān)注 ALINX 視頻號(hào),黑金云課堂課程直播回放

按鍵仿真波形分析

f9a7a364-4b45-11f1-90a1-92fbcf53809c.png

(消抖前后波形對(duì)比)

key_in 分析

多次跳變: 在 T0-T1 期間,信號(hào)在高低電平之間快速跳變約50次

抖動(dòng)時(shí)長(zhǎng): 典型抖動(dòng)持續(xù)時(shí)間約 10ms

key_out 分析

只變化一次: 在 T2 時(shí)刻,信號(hào)穩(wěn)定后才更新輸出

完全消抖: 消除了所有抖動(dòng)帶來的虛假觸發(fā)

驗(yàn)證結(jié)論

消抖正確: 成功消除抖動(dòng)

響應(yīng)及時(shí): 穩(wěn)定后立即輸出

單次觸發(fā): 每次按鍵只觸發(fā)一次

實(shí)驗(yàn)擴(kuò)展建議

調(diào)整CNT_MAX值

嘗試不同的穩(wěn)定閾值(5ms、10ms、20ms、50ms),觀察消抖效果和響應(yīng)速度的平衡

添加邊沿檢測(cè)

在消抖模塊后添加邊沿檢測(cè)邏輯,實(shí)現(xiàn)單次觸發(fā)功能,避免長(zhǎng)按時(shí)的連續(xù)觸發(fā)

實(shí)際項(xiàng)目應(yīng)用

將消抖模塊應(yīng)用于按鍵控制 LED、按鍵計(jì)數(shù)器、按鍵狀態(tài)機(jī)等實(shí)際項(xiàng)目中

更多細(xì)節(jié)歡迎關(guān)注我們黑金云課堂全年免費(fèi)直播課,黑金云課堂五月直播日歷我們將在每周二、三、四,同步推進(jìn)Verilog開發(fā)、Vitis開發(fā)、Linux開發(fā)三大系列,帶你從零開始,穩(wěn)扎穩(wěn)打掌握 FPGA 開發(fā)全流程!

系列 內(nèi)容定位
Verilog開發(fā) 硬件描述語言基礎(chǔ)、邏輯設(shè)計(jì)、仿真調(diào)試
Vitis開發(fā) Zynq軟硬件協(xié)同、外設(shè)驅(qū)動(dòng)、網(wǎng)絡(luò)協(xié)議棧
Linux開發(fā) 嵌入式Linux系統(tǒng)移植、驅(qū)動(dòng)編寫、應(yīng)用開發(fā)

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

    關(guān)注

    1664

    文章

    22542

    瀏覽量

    640337
  • 抖動(dòng)
    +關(guān)注

    關(guān)注

    1

    文章

    73

    瀏覽量

    19434
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    230

    瀏覽量

    58553

原文標(biāo)題:【黑金云課堂】FPGA技術(shù)教程FPGA基礎(chǔ):按鍵實(shí)驗(yàn)

文章出處:【微信號(hào):ALINX,微信公眾號(hào):ALINX】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【ZYNQ Ultrascale+ MPSOC FPGA教程】第九章Vivado下按鍵實(shí)驗(yàn)

    按鍵FPGA設(shè)計(jì)當(dāng)中最常用也是最簡(jiǎn)單的外設(shè),本章通過按鍵檢測(cè)實(shí)驗(yàn),檢測(cè)開發(fā)板的按鍵功能是否正常,并了解硬件描述語言和
    的頭像 發(fā)表于 01-22 09:46 ?3175次閱讀
    【ZYNQ Ultrascale+ MPSOC <b class='flag-5'>FPGA</b>教程】第九章Vivado下<b class='flag-5'>按鍵</b><b class='flag-5'>實(shí)驗(yàn)</b>

    【紫光同創(chuàng)國產(chǎn)FPGA教程】【第三章】按鍵檢測(cè)實(shí)驗(yàn)

    通過按鍵檢測(cè)實(shí)驗(yàn),檢測(cè)開發(fā)板的按鍵功能是否正常,了解硬件描述語言和FPGA的具體關(guān)系,學(xué)習(xí)PDS View RTL Schematic的使用。
    的頭像 發(fā)表于 02-02 13:22 ?5288次閱讀
    【紫光同創(chuàng)國產(chǎn)<b class='flag-5'>FPGA</b>教程】【第三章】<b class='flag-5'>按鍵</b>檢測(cè)<b class='flag-5'>實(shí)驗(yàn)</b>

    新手入門40個(gè)單片機(jī)實(shí)驗(yàn)

    新手入門40個(gè)單片機(jī)實(shí)驗(yàn)
    發(fā)表于 08-07 20:35

    FPGA 入門系列實(shí)驗(yàn)教程

    的方法還是停留在入門階段。 針對(duì)現(xiàn)狀,作者從初學(xué)者的角度出發(fā),結(jié)合作者學(xué)習(xí) FPGA 的經(jīng)驗(yàn)和親身體會(huì),遵循“寧可啰嗦一點(diǎn),也不放過細(xì)節(jié)”的原則編寫了詳盡的實(shí)驗(yàn)教程作為艾米電子工作室開發(fā)套件的配套
    發(fā)表于 12-30 14:57

    Xilinx FPGA無痛入門,海量教程免費(fèi)下載

    Xilinx FPGA SF-SP6入門指南 -- 3-8譯碼器實(shí)驗(yàn)Lesson23 特權(quán)Xilinx FPGA SF-SP6入門指南 --
    發(fā)表于 07-22 11:49

    寫給小白們的FPGA入門設(shè)計(jì)實(shí)驗(yàn)

    `寫給小白們的FPGA入門設(shè)計(jì)實(shí)驗(yàn)`
    發(fā)表于 03-18 16:21

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-myosct

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-myosctest
    發(fā)表于 10-27 18:20 ?6次下載

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-clkdiv

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-clkdivverilog
    發(fā)表于 10-27 18:20 ?5次下載

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-models

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-modelsim_test
    發(fā)表于 10-27 18:20 ?5次下載

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-mux16

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-mux16
    發(fā)表于 10-27 18:20 ?7次下載

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-verilogled7

    《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-verilogled7
    發(fā)表于 10-27 18:20 ?19次下載

    FPGA教程之FPGA入門閃爍燈實(shí)驗(yàn)的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA教程之FPGA入門閃爍燈實(shí)驗(yàn)的詳細(xì)資料說明。
    發(fā)表于 03-29 17:17 ?25次下載
    <b class='flag-5'>FPGA</b>教程之<b class='flag-5'>FPGA</b><b class='flag-5'>入門</b>閃爍燈<b class='flag-5'>實(shí)驗(yàn)</b>的詳細(xì)資料說明

    FPGA入門系列實(shí)驗(yàn)教程之如何進(jìn)行按鍵消抖控制LED亮滅

    實(shí)現(xiàn)按鍵控制 LED 亮滅。通過這個(gè)實(shí)驗(yàn),掌握采用 Verilog HDL 語言編程實(shí)現(xiàn)按鍵控制 LED 亮滅及按鍵消抖方法
    發(fā)表于 06-11 16:50 ?14次下載
    <b class='flag-5'>FPGA</b><b class='flag-5'>入門</b>系列<b class='flag-5'>實(shí)驗(yàn)</b>教程之如何進(jìn)行<b class='flag-5'>按鍵</b>消抖控制LED亮滅

    【ZYNQ Ultrascale+ MPSOC FPGA教程】第九章Vivado下按鍵實(shí)驗(yàn)

    按鍵FPGA設(shè)計(jì)當(dāng)中最常用也是最簡(jiǎn)單的外設(shè),本章通過按鍵檢測(cè)實(shí)驗(yàn),檢測(cè)開發(fā)板的按鍵功能是否正常,并了解硬件描述語言和
    發(fā)表于 01-25 08:27 ?5次下載
    【ZYNQ Ultrascale+ MPSOC <b class='flag-5'>FPGA</b>教程】第九章Vivado下<b class='flag-5'>按鍵</b><b class='flag-5'>實(shí)驗(yàn)</b>

    【正點(diǎn)原子FPGA連載】第九章按鍵控制LED燈實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)FPGA開發(fā)指南_V2.1

    【正點(diǎn)原子FPGA連載】第九章按鍵控制LED燈實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)FPGA開發(fā)指南_V2.1
    發(fā)表于 12-04 13:06 ?14次下載
    【正點(diǎn)原子<b class='flag-5'>FPGA</b>連載】第九章<b class='flag-5'>按鍵</b>控制LED燈<b class='flag-5'>實(shí)驗(yàn)</b> -摘自【正點(diǎn)原子】新起點(diǎn)<b class='flag-5'>之</b><b class='flag-5'>FPGA</b>開發(fā)指南_V2.1
    固原市| 改则县| 清河县| 怀远县| 丘北县| 石河子市| 罗定市| 麻栗坡县| 万山特区| 上饶市| 新巴尔虎右旗| 嘉鱼县| 临城县| 岳阳市| 库尔勒市| 淳化县| 东阿县| 六安市| 大石桥市| 涞源县| 黑龙江省| 惠东县| 泽州县| 澜沧| 通江县| 蓝田县| 武汉市| 临高县| 沅江市| 怀化市| 白水县| 长宁县| 新乡县| 拉孜县| 会同县| 普兰店市| 大姚县| 凉城县| 上思县| 肃宁县| 青岛市|