用移位寄存器实现边沿检测的技巧

本文记录一下关于用移位寄存器实现边沿检测的技巧。要学会硬件思维式的“模块式”读写代码,那么请多看别人的代码,并用ise或者vivado综合出来看看。
边沿检测
边沿检测,顾名思义,就是检查信号的边沿,当信号的上升沿或者下降沿到来时,获取一个脉冲信号,时序图如下所示:
上图的检测信号同时输出上升沿检测和下降沿检测。那么这个波形怎么来的呢,我们来看看下面几组波形:
可以发现:
原始信号与延迟一拍的信号 d0 的反向信号相与,就是上升沿脉冲;
而原始信号取反,然后与延迟一拍信号d0相与就是下降沿脉冲。
如果担心采样不稳定,可以利用延迟两拍的 d1 信号进行相 与。如果担心不定态,还可以将脉冲信号进行锁存。
多级触发器的代码如下所示:
module dff_n #(parameter n=1)(
2 input clk,
3 input reset,
4 input [n-1:0] d,
5 output [n-1:0] d_rising_edge, //上升沿检测
6 output [n-1:0] d_falling_edge //下降沿检测
7 );
8 reg [n-1:0]d0;
9 reg [n-1:0]d1;
10 reg [n-1:0]q;
11 always@(posedge clk or negedge reset)
12 if(!reset)begin
13 d0 <= 0;
14 d1 <= 0;
15 q <= 0;
16 end else begin
17 d0 <= d;
18 d1 <= d0;
19 q <= d1;
20 end
21
22 assign d_rising_edge = ~d0 & d; //关键
23 assign d_falling_edge= d0 & ~d; //关键
24 endmodule
综合得到的电路如下所示:
这个电路把代码中的q触发器优化掉了。两个输出信号d_rising_edge 、d_falling_edge分别输出上升沿检测信号脉冲和下降沿检测信号脉冲。

华为宣布2024年推出面向商用的5.5G全套网络设备
浅谈CPU处理器的基板和散热
如何最大利用和提高传统雷达分辨率和利用率?
创想焊缝跟踪系统适配埃夫特机器人的自动焊接应用案例
化学金沉积过程的研究综述
用移位寄存器实现边沿检测的技巧
数控机床安装桁架机器人之前要准备的工作
铠侠展望3D XPoint前景,3D NAND技术成熟占据主导
工业4.0下的汽车产业“智造”之路
苏宁AGV机器人幕后的黑科技
TRITTONHALO专业电容麦克风评测 这是你需要的直播神器
台积电5nm工艺产能无法满足苹果M1处理器需求
如何解决电子设备做辐射发射测试时出现一些问题
中移动:iPhone 4S Sim卡兼容性问题已解决
ADI协助客户朝向工业4.0发展 OEM智能转型志在必得
华为鸿蒙OS将适配高通平台,未来高通智能终端告别安卓系统
物联网怎样让农业更精细化
vivo发布旗舰新机NEX,全面屏时代的一次里程碑式新机?
李冰冰都知道区块链,火爆背后的深层原因是什么?
LED驱动电源将何去何从