FPGA初学者(4)

本文详细介绍了数字电路中信号的边沿检测,包括上升沿检测、下降沿检测和双沿检测。通过示例电路阐述了如何利用延迟信号来捕捉信号的跳变,并提供了Verilog代码实现。这种技术常用于逻辑设计中,当信号发生变化时触发其他操作。
摘要由CSDN通过智能技术生成

数字电路实用篇

第一章 信号的边沿检测

信号得边沿检测是指在电路中对一个信号的上升沿或者下降沿进行检测,如果发现此时的信号正好处于上升或下降边沿则给出一个信号进行显示,通常分为上升沿检测电路、下降沿检测电路和双沿检测电路。
在实际的项目中进行逻辑设计,检测信号的跳变是十分常见的,当一个信号发生跳变,则给出一个指示,进而触发其他的动作也是常见的设计思路。

上升沿检测

检测信号由 0 变 1 的过程,就是上升沿检测电路,
在这里插入图片描述
上升沿检测电路
a 信号周期的信号,想得到 a 信号的上升沿A信号,可以看出A 信号是一个持续 1 个时钟周期的脉冲信号,那么如果我们把 a 信号寄存一拍,得到 a_delay 信号,我们再用 a 信号和 a_delay 取反再相与,可以得到一个持续 1 个时钟周期的脉冲信号,这个 A信号就是 a 的上升沿指示信号。

下降沿检测

在这里插入图片描述
下降沿检测电路
a 信号周期的信号,想得到 a 信号的下降沿A信号,可以看出A 信号是一个持续 1 个时钟周期的脉冲信号,那么如果我们把 a 信号寄存一拍,得到 a_delay 信号,我们再用 a_delay信号和 a取反再相与,可以得到一个持续 1 个时钟周期的脉冲信号,这个 A信号就是 a 的下降沿指示信号。

双沿检测

在这里插入图片描述
双沿检测电路
a 信号周期的信号,想得到 a 信号的上升沿和下降沿A信号,A信号刚好是 a 和 a_delay信号不同的地方为高电平,也就是 a 和 a_delay 异或的结果就是 A信号,这个信号在 a 的上升沿持续一个时钟周期,然后在 a 的下降沿后又持续一个时钟周期。

程序设计

module edge_test
(
input clk , // 系统时钟
input rst_n, // 复位,高有效
input a ,
output A1 , // 上升沿
output A2 , // 下降沿
output A3 // 双沿
);
reg a_delay ;

always @ (posedge clk or negedge rst_n ) begin
if (rst_n)
a_delay <= 1’b0 ;
else
a_delay <= a ;
end

assign y1 = a & ( ~a_delay ) ;
assign y2 = ~a & a_delay ;
assign y3 = a ^ a_delay ;

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值