modelsim软件下

机械开关在接通或断开的瞬间,由于机械的弹性振频,触点会出
现抖动现象,通常他点振频的延续时间大约为10~20 ms,在实际
应用中,常采用硬什或软什力法消除开关科动对系统造成的不良
彩响。图8.3.2所示电路是解决机械开关抖动的一种硬件实现方案,
其工作原理是:电路采用5mS (200FE)的时钟信号CP按收米自
开关的输入数据A,如果连续3次数据A为零,可以认为数据是稳
定的,且可以接收。如果增加D他发器的个数可以延长去抖动的
吋间,使得数据B更加稳定可靠。

源代码:

module top1 (Btn_In,CLR_,CLK,Q);input Btn_In,CLR_,CLK;output Q; wire Out,Out1,Out2;  reg CP;Debounce u0 (.Btn_In(Btn_In),.CLR_(CLR_),.CLK(CLK),.Out2(Out2),.Out1(Out1),.Out(Out));_RSFF u1 (.Q(Q),.R(Out1),.S(Out2),.CP(Out));
endmodulemodule Debounce (Out,Out1,Out2,Btn_In,CLK,CLR_);input Btn_In;input CLK,CLR_;output Out,Out1,Out2;reg Delay0;reg Delay1;reg Delay2;reg Q;always @ (posedge CLK or negedge CLR_)beginif (~CLR_) beginDelay0 <= 1'b0;Delay1 <= 1'b0;Delay2 <= 1'b0;endelse beginDelay0 <= Btn_In;Delay1 <= Delay0;Delay2 <= Delay1;end
end
assign Out1 = Delay0&Delay1&Delay2;
assign Out2 =~(Delay0&Delay1&Delay2);
assign Out = CLK;
endmodulemodule _RSFF(Q,R,S,CP);output Q;input R,S,CP;reg Btn_In,CLR_,CLK;reg Q;always @ (posedge CP)case ({R,S})2'b00:Q <= Q;2'b01:Q <= 1'b1;2'b10:Q <= 1'b0;default;endcase
endmodule

测试代码:


`timescale 1ms/1ms
module test_top1();reg Btn_In,CLR_,CLK;wire Q;top1 i1 (.Btn_In(Btn_In),.CLR_(CLR_),.CLK(CLK),.Q(Q));initialbeginCLR_=1'b0;CLR_=#10 1'b1;#600 $stop;endalwaysbeginCLK=1'b0;CLK=#5 1'b1;#5;endalwaysbeginBtn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#2 Btn_In=1'b1;#500 Btn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#2 Btn_In=1'b1;#2 Btn_In=1'b0;#600 $stop;end
endmodule

仿真结果:

Verilog语言 消抖电路相关推荐

  1. 双稳态电路的两个稳定状态是什么_利用SR锁存器实现SPDT开关消抖电路

    SR锁存器常常被用来实现SPDT开关消抖,但在纳秒时域中它是如何实现的呢?Max Maxfield编辑一直试图找出应该在消抖软件中使用多长的等待状态才能可靠地消除一般的开关抖动(甚至最严重的抖动).本 ...

  2. Debouncing circuit(消抖电路)

    有限状态机实现的软件消抖电路 Figure 5.8 Original and debounced waveforms. debouncing scheme 2 // Debouncing circui ...

  3. 按键的硬件消抖电路原理

    为什么要进行按键消抖 按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开.闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开.因而在闭合及断开的瞬间 ...

  4. 基于verilog按键消抖设计

    关于键盘的基础知识,我就以下面的一点资料带过,因为这个实在是再基础不过的东西了.然后我引两篇我自己的博文,都是关于按键消抖的,代码也正是同目录下project里的.这两篇博文都是ednchina的博客 ...

  5. Verilog中按键消抖检测的实现

    Verilog按键消抖是FPGA学习时的一个入门教程,为避免眼高手低,还是再次分析与记录一下.此处着重介绍按键消抖的基本原理,对按键消抖与检测的关键技术进行分析,并进行功能仿真. 一.按键消抖基本原理 ...

  6. 我的 FPGA 学习历程(11)—— 实验:按键消抖

    按键是一个输入设备,在理论上可以归为开关一类,理想的按键波形如下: 然而由于按键的机械特性,断开和闭合动作是不可能在一瞬间完成的,实际的波形如下: 抖动期间电平处于临界值,由于晶振的频率相当的高,数字 ...

  7. [FPGA入门笔记](十):按键消抖实验

    简介 今天购买了AXLINX AX7020的开发板,从今天开始每一个例程都要做文档记录,为自己加油. 本实验,基于ALINX AX7020开发板,芯片为xc7z020clg400-2.开发板输入时钟为 ...

  8. 单片机入门资料,按键消抖方式,按键怎么消抖

     1.什么是按键消我们先来看一下按键按下去的波形图 1.按键消抖原理 我们可以看到当按键按下的那一时刻和松开的时候有类似于锯齿的形状那就是按键抖动,这个抖动不是我们人为能控制得了的,所以我们只能对进行 ...

  9. chapter8——消抖技术

    目录 1.简介 2.开关行为 3.开关种类 4.消抖 5.消抖指南 1.简介 在电子设备内两个金属触点随着触点的断开闭合便产生了多个信号,这就是抖动."消抖"是用以确保在每一次断开 ...

最新文章

  1. 谈一谈我对AI项目落地的看法
  2. Uber将动态调价机制引入其外卖服务UberEats
  3. 设置 HTTP HEADER 字段来提高 Web 安全性
  4. SQL效率低下原因主要有
  5. 对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决
  6. MVC4.0网站发布和部署到IIS7.0上的方法
  7. error_reporting()函数
  8. 用SSAS将多个FLV和MP3合成一个FLV文件
  9. 4月27日--28日课堂内容
  10. goroutine 相关知识8
  11. mysql常量,变量,循环语句,存储过程,触发器,分隔符
  12. hql与sql的区别(转)
  13. mysql 数据转换dataset_【转】dataset和实体类 之间的转换
  14. 关于Shell 脚本的export语句
  15. XMPP即时通讯协议使用(十)——好友关系状态
  16. 两个ROS系统进行通信(通过路由器,可上网)
  17. 【visio】visio绘制流程图教程
  18. java 用户拒绝对代码授予权限_java – @Secured函数获取授权用户的拒绝访问权限...
  19. 力学知识点提要(上)
  20. 商场三十六计——第22计 “关门捉贼”

热门文章

  1. NASM与link、golink和alink具体例子使用对比
  2. STM32H7驱动W25QXX
  3. 服务器型号变更说明,服务器规格变更类
  4. [教程]如何在PowerPoint演示文稿中嵌入交互式图表
  5. [补充内容]关于使用matlab进行方程组求解的线性代数相关知识补充——矩阵
  6. 网站ICP备案全流程
  7. 社交电商与传统电商的优势对比
  8. 蛋白酶yscE底物、61043-33-2、Z-AAL-pNA
  9. 数据库如何把正数变成负数
  10. GIRAFFEDET: A HEAVY-NECK PARADIGM FOROBJECT DETECTION(中文翻译)