在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9881|回复: 37

[求助] 请教,在时钟的上升沿,怎样判断一个脉冲的上升沿???

[复制链接]
发表于 2010-6-19 16:16:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教,在时钟的上升沿,怎样判断一个脉冲的上升沿???
发表于 2010-6-19 17:33:58 | 显示全部楼层
有通用的边沿判断电路,就是用时钟上升沿驱动一个寄存器,把该脉冲作为输入,把该寄存器的输入和输出作为条件,如果输入为0输出为1,则表示出现上升沿。不过这样的上升沿会延迟一个时钟周期的。
发表于 2010-6-19 19:24:11 | 显示全部楼层
always @(posedge clk)
begin
      pluse_buf1<= pluse;
      plues_buf2<=pluse_buf1;
end
assign   pluse_raise = pluse_buf1  & (~pluse_buf2);
 楼主| 发表于 2010-6-20 09:58:27 | 显示全部楼层
请教楼上, pluse_raise = pluse_buf1  & (~pluse_buf2);采用两级d触发器是增加稳定性吗??
发表于 2010-6-20 11:45:49 | 显示全部楼层
消除亚稳态,没错的。就是采用二级触发器。
发表于 2010-6-20 12:13:01 | 显示全部楼层
本帖最后由 wushihai 于 2010-6-20 12:14 编辑

3楼写的好。

clkreg<clk_in;

clkfall<=clkreg && (~clk_in);

可以判断下降沿吧。
发表于 2010-6-20 14:14:29 | 显示全部楼层
如果本来就是同步的话,就不需要这样写了。
always @(posedge clk)
begin
      pluse_buf1<= pluse;
end
assign   pluse_raise = pluse & (~pluse_buf1);
如果想消除亚稳态的话,那应该是如下写法:
always @(posedge clk)
begin
      pluse_buf1<= pluse;
      plues_buf2<=pluse_buf1;
plues_buf3<=pluse_buf2;
end
assign   pluse_raise = pluse_buf2  & (~pluse_buf3);

打两拍后才用,才是标准的消除亚稳态的电路。
发表于 2010-6-20 15:00:37 | 显示全部楼层
高! 7# kk2009
发表于 2010-6-20 21:37:47 | 显示全部楼层
7楼正解,不过还是要考虑快慢时钟的问题,打两拍不是万能的
发表于 2010-6-21 17:07:25 | 显示全部楼层
还是7楼的标准
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-6 22:06 , Processed in 0.027999 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表