所谓边沿检测器,就是检测输入信号的上升沿(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
<
FPGA-边沿检测器
最新推荐文章于 2024-01-03 20:01:09 发布
本文介绍了FPGA中的边沿检测电路,通过提供的仿真代码展示了其工作原理。该电路将用于按键消抖,后续内容将深入探讨其在实际应用中的精彩细节。
摘要由CSDN通过智能技术生成