色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

SDRAM控制器設(shè)計(jì)之按鍵的處理

友晶FPGA ? 來源:友晶FPGA ? 2025-03-19 11:47 ? 次閱讀

按鍵邊沿檢測

邊沿檢測經(jīng)常用于按鍵輸入檢測電路中,按鍵按下時(shí)輸入信號 key 變?yōu)榈碗娖剑存I抬起變?yōu)楦唠娖健.?dāng)輸入的信號為理想的高低電平時(shí)(不考慮毛刺和抖動(dòng)),邊沿檢測就發(fā)揮了很重要的作用。

由于輸入的信號為一個(gè)連續(xù)值,我們需要通過時(shí)鐘進(jìn)行采樣。根據(jù)采樣定理,采樣時(shí)鐘的頻率需要至少為被采信號頻率的 2 倍。

設(shè)計(jì)的邊沿檢測電路的功能為:檢測到 1 個(gè)下降沿或上升沿時(shí),對應(yīng)的下降沿輸出信號 edge_pos、edge_neg 分別輸出 1 個(gè)脈沖(即一個(gè)時(shí)鐘周期的高電平)。下面以下降沿進(jìn)行分析。

分析:在邊沿檢測的過程中,通過 1 個(gè)寄存器來寄存上一個(gè)時(shí)鐘沿的輸入值 D ,當(dāng)寄存器輸出 Q 與輸入 D 的值分別為1、0時(shí),證明檢測到下降沿。

92e78796-039a-11f0-9310-92fbcf53809c.png

如上圖所示,在第 2 個(gè)時(shí)鐘周期的低電平期間,D 由高變低,在第 3 個(gè)時(shí)鐘周期的上升沿,Q由高變低。在 D 由高變低的時(shí)刻,Q 為 1 ,D 為 0 ,證明檢測到下降沿。

按鍵邊沿捕獲模塊:

92fbae42-039a-11f0-9310-92fbcf53809c.png

測試驗(yàn)證模塊:

930c92d4-039a-11f0-9310-92fbcf53809c.png

按一次按鍵,對應(yīng)的LED燈就會(huì)亮。LED亮代表檢測到了下降沿。

Signaltap 波形圖:

931cc1b8-039a-11f0-9310-92fbcf53809c.png

按鍵硬件消抖電路

友晶科技很多板子的按鍵(都是按下為低電平)其實(shí)是已經(jīng)有硬件消抖電路的, 這樣的板子的按鍵的值 直接input 進(jìn)來后 直接用就可以。

比如DE2-115 DE1-SOC DE10-Standard 等等。這里都用74HC245芯片來消抖:

93512aa2-039a-11f0-9310-92fbcf53809c.png

9366a328-039a-11f0-9310-92fbcf53809c.png

按鍵Verilog消抖電路

如果沒有硬件上的消抖,我們可以手寫Verilog代碼替代消抖電路。

模板一

模板一的Verilog消抖的原理主要為按鍵按下或松開后延時(shí) 1ms—20ms 采樣(這個(gè)時(shí)間是根據(jù)按鍵的機(jī)械特性自行決定)。

假設(shè)時(shí)鐘是50M,按鍵消抖的思路是檢測到按下時(shí)延時(shí) 50000個(gè)時(shí)鐘周期,再檢測,如果狀態(tài)仍為按下,則確認(rèn)是按下的;如果狀態(tài)為彈起的,則確認(rèn)是干擾,無按鍵按下。

按鍵消抖的Verilog實(shí)現(xiàn)的模板一如下:

module key_debounce        //按鍵消抖模塊
(  input clk,          //系統(tǒng)時(shí)鐘
  input rst_n,        //系統(tǒng)復(fù)位
  input key[0],          //按鍵輸入
  output reg key_value,  //有效的按鍵值
);


  reg [31:0]cnt;//計(jì)數(shù)器
  reg value;//中間寄存器


  always@(posedge clk or negedge rst_n) begin
    if(!rst_n) begin
      cnt <= 0; ? ? ? ? ? ? ? ?//初始狀態(tài)下寄存器清零
 ? ? ? ? ? ?key_value <= 0; ? ? ? ?//有效按鍵值清零 ? ? ? ?
 ? ? ? ? ? ?value <= 0; ? ? ? ? ? ? ? ?//中間寄存器清零 ? ? ? ? ? ?
 ? ? ? ?end ? ?
 ? ? ? ?else begin
 ? ? ? ? ? ?if(cnt == 50000) begin
 ? ? ? ? ? ? ? ?cnt <= 0;//每隔0.001秒檢測一次 將key的值寄存到value寄存器當(dāng)中(如果系統(tǒng)時(shí)鐘是50MHz)
 ? ? ? ? ? ? ? ?value <= key[0];
 ? ? ? ? ? ? ? ? ? ?
 ? ? ? ? ? ? ? ?if(value == 1 && key[0] == 0) //按鍵按下為0,平時(shí)為1
 ? ? ? ? ? ? ? ? ? ?key_value <= 1;


 ? ? ? ? ? ?end ? ? ? ? ? ? ? ? ? ? ? ?
 ? ? ? ? ? ?else begin
 ? ? ? ? ? ? ? ?cnt <= cnt + 1;
 ? ? ? ? ? ? ? ?key_value <= 0;
 ? ? ? ? ? ?end
 ? ? ? ?end ? ?
 ? ?end ? ? ? ? ? ? ? ?
endmodule

模板二

模板二的檢測原理是只有按鍵按下的狀態(tài)持續(xù)50000個(gè)周期(這個(gè)時(shí)間可以自己再定義)以上,才認(rèn)定是按鍵被按下了一次,否則算作是干擾被忽略掉。

模板二實(shí)現(xiàn)的是多個(gè)按鍵的去抖。

按鍵消抖的Verilog實(shí)現(xiàn)的模板二如下:

module debounce (
 clk,
 reset_n,
 data_in,
 data_out
);


 parameter WIDTH = 32;      // set to be the width of the bus being debounced
 parameter POLARITY = "HIGH";  // set to be "HIGH" for active high debounce or "LOW" for active low debounce
 parameter TIMEOUT = 50000;   // number of input clock cycles the input signal needs to be in the active state
 parameter TIMEOUT_WIDTH = 16;  // set to be ceil(log2(TIMEOUT))
 
 input wire clk;
 input wire reset_n;
 
 input wire [WIDTH-1:0] data_in;
 output wire [WIDTH-1:0] data_out;
 
 reg [TIMEOUT_WIDTH-1:0] counter [0:WIDTH-1];
 wire counter_reset [0:WIDTH-1];
 wire counter_enable [0:WIDTH-1];
 
 // need one counter per input to debounce
 genvar i;
 generate for (i = 0; i < WIDTH; i = i+1)
 ?begin: ?debounce_counter_loop
 ? ?always @ (posedge clk or negedge reset_n)
 ? ?begin
 ? ? ?if (reset_n == 0)
 ? ? ?begin
 ? ? ? ?counter[i] <= 0;
 ? ? ?end
 ? ? ?else
 ? ? ?begin
 ? ? ? ?if (counter_reset[i] == 1) ?// resetting the counter needs to win
 ? ? ? ?begin
 ? ? ? ? ?counter[i] <= 0;
 ? ? ? ?end
 ? ? ? ?else if (counter_enable[i] == 1)
 ? ? ? ?begin
 ? ? ? ? ?counter[i] <= counter[i] + 1'b1;
 ? ? ? ?end
 ? ? ?end
 ? ?end
 
 ? ?if (POLARITY == "HIGH")
 ? ?begin
 ? ? ?assign counter_reset[i] = (data_in[i] == 0);
 ? ? ?assign counter_enable[i] = (data_in[i] == 1) & (counter[i] < TIMEOUT);
 ? ? ?assign data_out[i] = (counter[i] == TIMEOUT) ? 1'b1 : 1'b0;
 ? ?end
 ? ?else
 ? ?begin
 ? ? ?assign counter_reset[i] = (data_in[i] == 1);
 ? ? ?assign counter_enable[i] = (data_in[i] == 0) & (counter[i] < TIMEOUT);
 ? ? ?assign data_out[i] = (counter[i] == TIMEOUT) ? 1'b0 : 1'b1; ? ?
 ? ?end
 ? ?
 ?end ?
 ?endgenerate
 ?
endmodule

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

    關(guān)注

    31

    文章

    5394

    瀏覽量

    122025
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1357

    瀏覽量

    110939
  • 邊沿檢測
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    7862
  • 消抖電路
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    8635
  • 按鍵消抖
    +關(guān)注

    關(guān)注

    2

    文章

    28

    瀏覽量

    10535

原文標(biāo)題:09-SDRAM控制器的設(shè)計(jì)——按鍵的處理(邊沿捕獲電路、硬件消抖、Verilog消抖電路)

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

收藏 0人收藏

    評論

    相關(guān)推薦

    SDRAM控制器的設(shè)計(jì)——Sdram_Control.v代碼解析(異步FIFO讀寫模塊、讀寫SDRAM過程)

    前言 SDRAM控制器里面包含5個(gè)主要的模塊,分別是PLL模塊,異步FIFO 寫模塊,異步FIFO讀模塊,SDRAM接口控制模塊,SDRAM
    的頭像 發(fā)表于 03-04 10:49 ?871次閱讀
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)計(jì)——<b class='flag-5'>Sdram</b>_Control.v代碼解析(異步FIFO讀寫模塊、讀寫<b class='flag-5'>SDRAM</b>過程)

    使用Verilog實(shí)現(xiàn)基于FPGA的SDRAM控制器

    摘 要:介紹了SDRAM的特點(diǎn)和工作原理,提出了一種基于FPGA的SDRAM控制器的設(shè)計(jì)方法,使用該方法實(shí)現(xiàn)的控制器可非常方便地對SDRAM
    發(fā)表于 06-20 13:04 ?2284次閱讀

    PDMA在測試SDRAM控制器中的應(yīng)用

    我們設(shè)計(jì)了一個(gè)PDMA(Programmable Direct Mem o ry Access)用于測試SDRAM控制器的性能。在SoC中,SDRAM控制器往往跟多個(gè)IP模塊(圖形
    發(fā)表于 07-02 18:31 ?1787次閱讀
    PDMA在測試<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>中的應(yīng)用

    SDRAM控制器簡易化設(shè)計(jì)

    SDRAM存儲(chǔ)芯片擁有快速讀寫的性能,可以應(yīng)用以回波模擬系統(tǒng)作為數(shù)據(jù)高速緩存SDRAM芯片是由SDRAM控制器
    發(fā)表于 10-24 15:08 ?0次下載
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>簡易化設(shè)計(jì)

    基于EPM1240的SDRAM控制器的設(shè)計(jì)

    通過設(shè)計(jì)基于CPLD 的SDRAM 控制器接口,可以在STM系列、ARM系列、STC系列等單片機(jī)和DSP等微處理器的外部連接SDRAM,增加系統(tǒng)的存儲(chǔ)空間。
    發(fā)表于 02-16 17:06 ?45次下載
    基于EPM1240的<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)計(jì)

    DDR SDRAM控制器參考設(shè)計(jì)VHDL代碼

    Xilinx FPGA工程例子源碼:DDR SDRAM控制器參考設(shè)計(jì)VHDL代碼
    發(fā)表于 06-07 11:44 ?19次下載

    DDR SDRAM控制器verilog代碼

    Xilinx FPGA工程例子源碼:DDR SDRAM控制器verilog代碼
    發(fā)表于 06-07 14:13 ?38次下載

    基于VHDL的SDRAM控制器的實(shí)現(xiàn)

    基于VHDL的SDRAM控制器的實(shí)現(xiàn)
    發(fā)表于 01-22 13:43 ?12次下載

    EPM1240的SDRAM控制器的設(shè)計(jì)

    EPM1240的SDRAM控制器的設(shè)計(jì)
    發(fā)表于 10-31 08:24 ?21次下載
    EPM1240的<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)計(jì)

    SDRAM控制器的設(shè)計(jì)

    邏輯復(fù)雜,接口方式與普通的存儲(chǔ)差異很大。為了解決這個(gè)矛盾,需要設(shè)計(jì)專用的SDRAM控制器,使用戶像使用SRAM -樣方便的使用SDRAM。考慮到
    發(fā)表于 11-28 19:51 ?5次下載
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)計(jì)

    FPGA讀寫SDRAM的實(shí)例和SDRAM的相關(guān)文章及一些SDRAM控制器設(shè)計(jì)論文

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA讀寫SDRAM的實(shí)例和SDRAM的相關(guān)文章及一些SDRAM控制器設(shè)計(jì)論文主要包括了:FPGA讀寫SDRAM
    發(fā)表于 12-25 08:00 ?56次下載
    FPGA讀寫<b class='flag-5'>SDRAM</b>的實(shí)例和<b class='flag-5'>SDRAM</b>的相關(guān)文章及一些<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設(shè)計(jì)論文

    如何使用FPGA設(shè)計(jì)SDRAM控制器

    針對SDRAM 操作繁瑣的問題,在對SDRAM 存儲(chǔ)和全頁突發(fā)式操作進(jìn)行研究的基礎(chǔ)上,提出一種簡易SDRAM 控制器的設(shè)計(jì)方法。該設(shè)計(jì)方法
    發(fā)表于 12-18 16:13 ?6次下載
    如何使用FPGA設(shè)計(jì)<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    DDR SDRAM控制器的設(shè)計(jì)與實(shí)現(xiàn)

    本文首先分析了DDR SDRAM的基本特征,并提出了相應(yīng)的解決方案詳細(xì)介紹了基于J EDEC DDR SDRAM規(guī)范的DDR SDRAM控制器設(shè)計(jì)方案。該
    發(fā)表于 03-28 10:57 ?19次下載

    基于SDRAM控制器軟核的Verilog設(shè)計(jì)

    SDRAM控制邏輯復(fù)雜,使用很不方便。 為了解決這個(gè)矛盾,需要設(shè)計(jì)專用的SDRAM控制器,使系統(tǒng)用戶象使用SRAM一樣方便的使用SDRAM
    的頭像 發(fā)表于 06-30 09:16 ?2815次閱讀
    基于<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>軟核的Verilog設(shè)計(jì)

    PIC32系列參考手冊DDR SDRAM控制器

    電子發(fā)燒友網(wǎng)站提供《PIC32系列參考手冊DDR SDRAM控制器.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:39 ?0次下載
    PIC32系列參考手冊<b class='flag-5'>之</b>DDR <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>
    主站蜘蛛池模板: 18禁止看的免费污网站 | 欧美人与动牲交ZOOZ特 | 麻豆啊传媒app黄版破解免费 | 免费小视频在线观看 | 欧美00后rapper潮水 | 免费看毛片网 | 亚洲中文字幕在线精品 | 91欧洲在线视精品在亚洲 | 国产一卡在线观看完整版 | 亚洲 欧美 中文字幕 在线 | 最近的2019中文字幕国语完整版 | 在线观看视频国产 | 日本xxxx8888 | 内射一区二区精品视频在线观看 | 囯产少妇BBBBBB高潮喷水一 | 最近中文字幕完整版高清 | 国产学生在线播放精品视频 | 亚洲 综合 欧美在线视频 | 亚洲第一综合天堂另类专 | 动漫美女的禁 | 日本三级黄色大片 | 91欧洲在线视精品在亚洲 | 久久超碰国产精品最新 | 99九九99九九九视频精品 | 午夜福利合集1000在线 | 久久视热频这里只精品 | 美女扒开尿口直播 | 色橹| 第四色男人天堂 | 女人被躁到高潮嗷嗷叫小 | 久久久久久久久女黄 | 日本一二三区在线视频 | 芭乐视频网页版在线观看 | 女仆乖H调教跪趴 | 4480YY无码午夜私人影院 | 116美女写真成人午夜视频 | 青青草原直播 | 一色屋精品亚洲香蕉网站 | XXOO麻豆国产在线九九爱 | 亚洲AV无码一区二区三区牛牛 | 国产精品青青草原app大全 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品