边沿检测电路设计

电子说

1.3w人已加入

描述

上升沿检测电路

01

题目:对于8位向量中的每个位,检测输入信号何时从一个时钟周期的0变为下一个时钟周期的1(类似于上升沿检测)。应在从0到1的跳变发生后的周期内设置输出位。

以下为例子, 为了清楚起见,分别显示了in [1]和pedge [1]。

检测电路

module top_module(
  input clk,
  input [7:0] in,
  output reg [7:0] pedge);

  reg [7:0] d_last;  

  always @(posedge clk) begin
    d_last <= in;      
    pedge <= in & ~d_last;  // A positive edge occurred if input was 0 and is now 1.
  end

endmodule

第九行 d_last <= in ; 是记录信号in上一个cycle的状态;

第十行 pedge <= in & ~d_last; 检测上升沿,简答来说就是检测input由0变1。

双边沿检测电路

02

题目:对于8位向量中的每个位,检测输入信号何时从一个时钟周期更改为下一个时钟周期(检测任何边沿)。应在从0到1的跳变发生后的周期内设置输出位。

检测电路

module top_module (
    input clk,
    input [7:0] in,
    output [7:0] anyedge
);
    reg [7:0] d_old;
    always@(posedge clk)begin
        d_old <= in;
        anyedge <= d_old^in;
    end
endmodule

第八行 d_old <= in ; 是记录信号in上一个cycle的状态;

第九行 anyedge <= d_old^ in ; 即现在的信号in与上一个状态不一样的话,输出1(异或是两个信号不一样置1),这样该电路就可以双边沿检测。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分