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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: rockzone

[求助] 上升沿的捕获电路(代码)

[复制链接]
发表于 2010-10-18 23:02:50 | 显示全部楼层
回复 20# rockzone


            一般情况下内部时钟要比外部输入的信号频率高,你可以用三个移位寄存器对输入信号串行移位,或者两个,最低位的不用,用来消除亚稳态,用高位,判断若高两位都为1时输出为1,都为0时输出为0,其他保持,这样不仅消除亚稳态,消除了外部高频噪声,还同时使得输出信号与内部时钟同步!
 楼主| 发表于 2010-10-19 11:16:06 | 显示全部楼层


虽然能看懂方法,但不知道原理是怎样的,尤其最后一句“还同时使得输出信号与内部时钟同步”没看懂。

谢谢wangxuede220
发表于 2010-10-19 15:24:43 | 显示全部楼层
回复 22# rockzone

给你写个简单的程序,就能理解了
    always @(posedge clk)
{
     shift_in<={shift_in[1:0],data_from_out};
       if(shift_in[2:1]==2'b11)
         data_in<=1;
       else if(shift_in[2:1]==2'b00)
         data_in<=0;
}
这样以后,用data_in代替data_from_out输入到你的模块里面就行了,现在这个信号就与clk(内部时钟)同步了!
 楼主| 发表于 2010-10-19 15:41:58 | 显示全部楼层
回复 23# wangxuede220


    谢谢wanxuede220的回复,您的回复让我受益匪浅

我还有个疑问,如果我的输入数据是datain[15:0]这样的,16位,那数据的每一位都要进入您写的那段程序模块中吗?
发表于 2010-10-19 15:46:47 | 显示全部楼层
如果这是从外部输入到你的芯片内部的话,最好同步一下,要不然会出问题的。如果是两个模块连接,并且两个模块的时钟一致的话,就不用了。
 楼主| 发表于 2010-10-19 15:52:43 | 显示全部楼层
懂了,谢谢
发表于 2010-10-24 22:26:18 | 显示全部楼层
thanksgiving!!!!!!!!!!
发表于 2010-10-26 11:22:29 | 显示全部楼层
还是用第一种方法吧,使用第二种的话,出现问题的话你会很崩溃的.......
发表于 2010-11-2 12:55:19 | 显示全部楼层
回复 24# rockzone


    总线的同步是不一样的做法,关于这方面的资料很多,找来看看就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-24 20:04 , Processed in 0.023194 second(s), 8 queries , Gzip On, Redis On.

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