Verilog语言 消抖电路

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));
endmodule


module 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 neg
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
按键消抖是指在数字电路中,通过一定的逻辑设计手段,解决按键在按下或释放时可能产生的抖动问题。抖动是指在按键按下或释放的瞬间,由于机械接触或其他因素的影响,按键可能会产生不稳定的信号变化,导致系统误触发或无法正确识别按键的状态。 在FPGA的VerilogHDL语言中,可以使用计数器来实现按键消抖。一个常见的方法是使用两个计数器来判断按键持续的时间,并根据持续时间判断按键的状态。例如,在设计中可以设置一个计数器,当检测到按键按下时,计数器开始计数,同时另一个计数器判断计数值是否达到一定阈值。如果计数值达到阈值,表示按键已稳定按下,可以进行相应的处理;如果计数值没有达到阈值,表示按键还在抖动状态,需要继续等待。 当然,也可以使用状态机来实现按键消抖。状态机可以根据按键的状态变化进行状态转移,从而判断按键的稳定状态。例如,可以定义状态机的初始状态为按键待机状态,当检测到按键按下时,状态机切换到按下滤波状态,并等待一段时间。如果在这段时间内没有检测到按键的状态变化,表示按键已稳定按下,可以进行相应的处理;如果在这段时间内检测到按键的状态变化,表示按键还在抖动状态,状态机回到初始态继续等待。 总之,按键消抖是通过逻辑设计手段解决按键抖动问题的一种方法,在FPGA的VerilogHDL语言中可以使用计数器或状态机来实现按键消抖。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值