FPGA边沿检测Verilog代码(上升沿,下降沿,双边沿)

实现思路:用两个一位寄存器直接异或可以实现

代码实现:


module edge_detect(
input clk,
input rst_n,
input data_in,
output raising_edge_detect, //上升沿标志位
output falling_edge_detect, //下降沿标志位
output double_edge_detect //双边沿标志位
); //reg define
reg data_in_d1; //寄存器d1
reg data_in_d2; //寄存器d2 assign raising_edge_detect = data_in_d1 & (~data_in_d2); //上升沿,标志位置1
assign falling_edge_detect = ~data_in_d1 & data_in_d2; //下降沿,标志位置1
assign double_edge_detect = data_in_d1 ^ data_in_d2; //双边沿,标志位置1 always @ (posedge clk or negedge rst_n)begin
if(!rst_n)begin
data_in_d1 <= 'b0;
data_in_d2 <= 'b0;
end
else begin
data_in_d1 <= data_in; //这里需注意data_in 采集数据的电平状态,延时了2个时钟
data_in_d2 <= data_in_d1; 周期才到寄存器data_in_d2
end
end endmodule ​

下降沿检测原理示意图(延时了2个时钟周期):

​​

最新文章

  1. Cvim的安装与使用
  2. Python标准库13 循环器 (itertools)
  3. Search Ads 已经在美国区上线 - iOS 移动开发周报(46)
  4. iis错误记录
  5. Git是目前世界上最先进的分布式版本控制系统
  6. Python流程控制语句(Control Flow)
  7. 动态加载Ribbon功能区
  8. 九度OJ题目1208:10进制 VS 2进制 (JAVA)
  9. CSS的position/float/display
  10. 46.Linux-分析rc红外遥控平台驱动框架,修改内核的NEC解码函数BUG(1)
  11. go web framework gin middleware 设计原理
  12. Flex布局新写法兼容写法详解
  13. JustOj 2038: 叶神的字符串
  14. error while obtaining ui hierarchy xml file...用 uiautomatorviewer 获取安卓手机软件页面时报错
  15. cxRichEdit1获取EXCEL的区域图片
  16. 强烈鄙视那些:自己完全不用android手机,却在做android开发的人
  17. Python2与python3中字符串的区别
  18. win10怎么更改切换输入法按键 切换输入法与Win7一样(Ctrl + 空格)
  19. Objective-C语法之NSDictionary和NSMutableDictionary
  20. QPS的计算

热门文章

  1. why rpc
  2. 62)PHP,提示跳转
  3. Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法
  4. mongodb use where and custom function to query mongodb存储过程
  5. 转载-MAC Mysql中文乱码解决方法
  6. SpringMVC中Interceptor和Filter区别
  7. sql执行过程
  8. let和const区别
  9. Dubbo、MQ等
  10. Python3爬虫:(一)爬取拉勾网公司列表