FPGA-边沿检测器

本文介绍了FPGA中的边沿检测电路,通过提供的仿真代码展示了其工作原理。该电路将用于按键消抖,后续内容将深入探讨其在实际应用中的精彩细节。
摘要由CSDN通过智能技术生成
    所谓边沿检测器,就是检测输入信号的上升沿(pos_edge)和下降沿(nos_edge),上升沿就是指输入信号由低电平变为高电平,下降沿指的是输入信号由高电平变为低电平。
    本次设计主要是对上升沿(pos_edge)和下降沿进行检测,事先要定义一个位宽位一位的输入信号data;还需要用定义两个位宽位一位的寄存器a和b;还需要定义两个输出信号pos_edge和nos_edge.
    a和b这两个寄存器的作用分别是对输入信号t1时刻的数据和t0时刻的数据进行存储当a&(~b)的值为1时,那么检测到输入信号为由低电平变为高电平,即pos_edge的值为1;当(~a)&b的值为1时,那么检测到输入信号由高电平变为低电平,即nos_edge的值为1.其主要实现代码如下:

module edge_detect(clk,rest,data,pos_edge,no_edge);
input clk;
input rest;
input data;

output pos_edge;
output no_edge;

reg a;
reg b;

always@(posedge clk or negedge rest)
    begin
        if(!rest)
            begin
                a <= 0;
                b <= 0;
            end
        else
            begin
                a <= data;
                b <= a;
            end
    end
assign pos_edge =(a&(~b))?1:0;
assign no_edge  = ((~a)&b)?1:0;    
endmodule
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值