完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
设计一个模块:当输入信号端(位宽1位)出现上升沿跳变时,执行相应操作?请问该如何实现检测该上升沿检测? 疑问1:可以使用posedge+端口名称来实现上升沿检测吗?我看了好多程序中posedge后面都跟的是时钟? |
|
相关推荐
1 个讨论
|
|
答:
如果你是有clk的同步时序电路,那么不允许使用posedge + 端口名称的方式来生成边沿检测 电路。 所谓边沿检测就是对前一个clock状态和目前clock状态的比较,如果是由0变为1,能够检测 到上升沿,则称为上升沿检测电路(posedge edge detection circuit),若是由1变为0,能够 检测到下降沿,则被称为下降沿检测电路(negedge edge dttection circuit),能够同时检测 上升沿与下降沿的电路称为双沿检测电路(double edge detection)。 照这个原理,下面的代码是一个上升沿检测电路,巧妙运用了非阻塞赋值自动产生寄存器的 特性。下降沿检测电路只需把 pedge <= in & ~d_last; 改为 pedge <= ~in & d_last; 即可。双沿检测电路只需把 pedge <= in & ~d_last; 改为 pedge <= in ^ d_last; (异或)即可。 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; //in的数据变化后有上升沿时,pedge变1 end endmodule |
|
|
|
|
|
偏置电路与宽带偏置电路(Bias-Tee)-----电感器比较与选择
1786 浏览 0 评论
5645 浏览 0 评论
3236 浏览 2 评论
6233 浏览 2 评论
4120 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:35 , Processed in 0.689754 second(s), Total 66, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号