边沿检测电路漏检原因分析

边沿检测电路漏检原因分析

常用结构如下:

c 复制代码
module edge_detect1(
input	clk,
input	signal,
output	pe,		//上升沿
output	ne,		//下降沿
output	de		//双边沿
);

reg reg1;

always@(posedge clk) begin
	reg1	<= signal;
end

assign pe	= (~reg1) & signal;
assign ne	= reg1 & (~signal);
assign de	= pe | ne; // 或 reg1 ^ signal

endmodule

对应的电路结构如下

该结构的边沿检测模块,仅使用到1个寄存器,其边沿输出通过信号 signal 与前一时刻的 signal 做逻辑运算得到,正因此,其一旦signal信号发生变动,其边沿信号也会随之改变,其优点是边沿信号响应迅速,而缺点是边沿信号高电平时间小于一个 clk 周期,因此容易出现漏检。尤其是当信号和时钟边沿很接近时,会出现高电平的时间非常短,从而出现误判

改进方法1:加入寄存器,2级缓存

c 复制代码
module edge_detect3(
input	clk,
input	signal,
output	pe,		//上升沿
output	ne,		//下降沿
output	de		//双边沿
);

reg reg1,reg_2;

always@(posedge clk) begin
	reg1	<= signal;
	reg2	<= reg1;
end

assign pe	= reg1 & (~reg2);
assign ne	= (~reg1) & reg2;
assign de	= reg1 ^ reg2;

endmodule

用这种方式的缺点是会造成检测边沿信号延迟一个时钟周期。

相关推荐
nuoxin1142 小时前
SSD201-富利威
arm开发·驱动开发·fpga开发·ffmpeg·射频工程
哄娃睡觉2 小时前
FPGA、ARM、MCU、DSP的区别
fpga开发
nature_forest1 天前
vivado2018.2固化程序方法之.bin文件固化法
windows·fpga开发
m0_46644103詹湛1 天前
FPGA时序优化与高速接口实战手册
笔记·学习·fpga开发·硬件架构·verilog
upper20201 天前
从零开始做Verilog实验--01--4位计数器
fpga开发
upper20201 天前
从零开始动手做Verilog实验--02--模为60的BCD加法器
fpga开发
nbwenren1 天前
基于AD9250数据接收的FPGA纯Verilog实现JESD204B协议及三套工程源码支持
fpga开发
upper20201 天前
从零开始动手做Verilog实验--03--自动售卖机
fpga开发
salipopl2 天前
FPGA中AXI-FIFO主机接口的自定义实现与versal读写工程分析
网络·fpga开发
觉感2 天前
25、Verilog RTL 级低功耗设计(下)
fpga开发·verilog教程