女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

SDRAM控制器設計之按鍵的處理

友晶FPGA ? 來源:友晶FPGA ? 2025-03-19 11:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

按鍵邊沿檢測

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

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

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

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

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

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

按鍵邊沿捕獲模塊:

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

測試驗證模塊:

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

按一次按鍵,對應的LED燈就會亮。LED亮代表檢測到了下降沿。

Signaltap 波形圖:

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

按鍵硬件消抖電路

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

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

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

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

按鍵Verilog消抖電路

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

模板一

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

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

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

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


  reg [31:0]cnt;//計數(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寄存器當中(如果系統(tǒng)時鐘是50MHz)
 ? ? ? ? ? ? ? ?value <= key[0];
 ? ? ? ? ? ? ? ? ? ?
 ? ? ? ? ? ? ? ?if(value == 1 && key[0] == 0) //按鍵按下為0,平時為1
 ? ? ? ? ? ? ? ? ? ?key_value <= 1;


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

模板二

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

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

按鍵消抖的Verilog實現(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5430

    瀏覽量

    123940
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1366

    瀏覽量

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

    關(guān)注

    0

    文章

    6

    瀏覽量

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

    關(guān)注

    0

    文章

    7

    瀏覽量

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

    關(guān)注

    2

    文章

    28

    瀏覽量

    10648

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    FPGASDRAM控制器設計(二)精選資料分享

    FPGASDRAM控制器設計(二):刷新這次要來解決上次留下來的刷新問題,在100us后首先要經(jīng)過兩次刷新才進行模式寄存設置。這顆SDRAM
    發(fā)表于 07-30 07:48

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

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

    PDMA在測試SDRAM控制器中的應用

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

    處理器外接SDRAM控制技術(shù)介紹

    現(xiàn)代的處理器(SoC)或DSP都內(nèi)建有內(nèi)存控制器,它是外部SDRAM、FLASH、EEPROM、SRAM……等內(nèi)存的控制接口。但不同處理器內(nèi)
    發(fā)表于 04-21 11:42 ?1285次閱讀

    SDRAM控制器簡易化設計

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

    基于EPM1240的SDRAM控制器的設計

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

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

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

    EPM1240的SDRAM控制器的設計

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

    SDRAM控制器的設計

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

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

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

    如何使用FPGA設計SDRAM控制器

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

    DDR SDRAM控制器的設計與實現(xiàn)

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

    基于SDRAM控制器軟核的Verilog設計

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

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

    電子發(fā)燒友網(wǎng)站提供《PIC32系列參考手冊DDR SDRAM控制器.pdf》資料免費下載
    發(fā)表于 09-25 11:39 ?0次下載
    PIC32系列參考手冊<b class='flag-5'>之</b>DDR <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>
    主站蜘蛛池模板: 石楼县| 新邵县| 萝北县| 潞西市| 阿拉善左旗| 辽宁省| 威远县| 南木林县| 丰原市| 景泰县| 电白县| 十堰市| 黄石市| 吉林省| 卓资县| 道真| 鹤山市| 舒城县| 合川市| 孟津县| 台湾省| 阜平县| 西乡县| 阳春市| 竹山县| 灵川县| 丁青县| 铜陵市| 上犹县| 习水县| 措勤县| 积石山| 彩票| 邓州市| 三明市| 南陵县| 诸城市| 双流县| 吉水县| 大城县| 临泽县|