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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: zpc987

[求助] 检测信号(非clk)上跳沿的问题,高手帮帮小弟吧!

[复制链接]
发表于 2010-11-13 13:34:05 | 显示全部楼层
这主要是modelsim功能仿真的问题,你的做法是没有问题的,你用QuartusII自带的那个直接仿真,肯定没问题,哈
发表于 2010-11-15 10:36:11 | 显示全部楼层
Hsync也是同一个时钟域的吗?是不是Hsync对clk而言是个异步信号?
发表于 2010-11-15 10:39:53 | 显示全部楼层
如果不是同一个时钟域,那么当Hsync的变化非常接近clk的上升沿的时候,你在波形上就会看到2个信号一起变化了。这种情况下,把波形发大也许可以看到延迟。
最好把你Hsync的driver那一部分的code也贴出来
发表于 2010-11-16 16:13:10 | 显示全部楼层
恩,看看!
发表于 2010-11-16 19:39:40 | 显示全部楼层
同意12#, 17#, 23#, 你的Hsync不是clk驱动的,也就是说是异步的,或者是一个input pin,就会有这种问题,可以多加一级ff来解决~~~
发表于 2010-11-17 15:29:48 | 显示全部楼层
这个检测应该做2个delay才行吧
http://www.cnblogs.com/ifys/archive/2010/11/02/edge.html
这有个vhdl的。
发表于 2010-11-17 20:23:52 | 显示全部楼层
学习了,谢谢
发表于 2011-7-5 08:45:26 | 显示全部楼层
囧……这个……你代码有问题,
Hsync_reg1<=Hsync;这条语句虽然说时非阻塞赋值,但是在一个alway中就完成赋值了,所以当执行assign H_cout_s =Hsync&(~Hsync_reg1)的时候,Hsync_reg1和Hsync是相同的值,这也就是为什么你在仿真中会发现这两个信号是一样的原因了。
用两个寄存器才是王道……

always @ (posedge clk or negedge rst)begin
  if (rst) begin
     Hsync_reg1<=0;
end
  else begin
      Hsync_reg1<=Hsync;
      Hsync_reg2<=Hsync_reg1;
  end
end
assign H_cout_s =Hsync_reg1&(~Hsync_reg2);

Hsync_reg1存的是此刻Hsync的值,Hsync_reg2存的是上一刻Hsync的值,如果H_cout_s=1说明是上跳沿。
发表于 2011-7-21 01:08:02 | 显示全部楼层
回复 29# lvlv2011


    不要误导别人。如果是同步信号,一个寄存器就够了。
发表于 2011-7-21 08:34:21 | 显示全部楼层
最好还是把波形放大看,对着clk的上升沿看一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 12:40 , Processed in 0.020556 second(s), 7 queries , Gzip On, Redis On.

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