IT评测·应用市场-qidao123.com

标题: 边沿检测电路漏检缘故原由分析 [打印本页]

作者: 勿忘初心做自己    时间: 2025-1-1 05:49
标题: 边沿检测电路漏检缘故原由分析
边沿检测电路漏检缘故原由分析

常用布局如下:
  1. module edge_detect1(
  2. input        clk,
  3. input        signal,
  4. output        pe,                //上升沿
  5. output        ne,                //下降沿
  6. output        de                //双边沿
  7. );
  8. reg reg1;
  9. always@(posedge clk) begin
  10.         reg1        <= signal;
  11. end
  12. assign pe        = (~reg1) & signal;
  13. assign ne        = reg1 & (~signal);
  14. assign de        = pe | ne; // 或 reg1 ^ signal
  15. endmodule
复制代码
对应的电路布局如下

该布局的边沿检测模块,仅使用到1个寄存器,其边沿输出通过信号 signal 与前一时刻的 signal 做逻辑运算得到,正因此,其一旦signal信号发生变动,其边沿信号也会随之改变,其优点是边沿信号相应敏捷,而缺点是边沿信号高电平时间小于一个 clk 周期,因此容易出现漏检。尤其是当信号和时钟边沿很靠近时,会出现高电平的时间非常短,从而出现误判
改进方法1:加入寄存器,2级缓存

  1. module edge_detect3(
  2. input        clk,
  3. input        signal,
  4. output        pe,                //上升沿
  5. output        ne,                //下降沿
  6. output        de                //双边沿
  7. );
  8. reg reg1,reg_2;
  9. always@(posedge clk) begin
  10.         reg1        <= signal;
  11.         reg2        <= reg1;
  12. end
  13. assign pe        = reg1 & (~reg2);
  14. assign ne        = (~reg1) & reg2;
  15. assign de        = reg1 ^ reg2;
  16. endmodule
复制代码
用这种方式的缺点是会造成检测边沿信号延迟一个时钟周期。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4