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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1846|回复: 5

[求助] 问个设计方案

[复制链接]
发表于 2016-2-25 21:36:02 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lx1019 于 2016-2-25 23:14 编辑

输入ck_in, 有效时是一个 240MHz(+/-120KHz) 的时钟,无效时保持0或1。 本地有 480MHz(+/-240KHz) 的时钟。
要用 480M 的时钟检测 ck_in , 当连续两个480M 周期ck_in都保持不变时,输出为高。
而当ck_in 有效时, 输出为低。
要尽可能早的使输出指示输入是否有效。 比如输入从无效变有效,输出尽可能早变为0。
 楼主| 发表于 2016-2-26 15:59:01 | 显示全部楼层
是不是需要用 480M 时钟 上升、下降沿都采? 然后比较?
但是这样有可能有 亚稳态的问题
发表于 2016-2-26 17:17:04 | 显示全部楼层
我觉得是,拿480M的时钟的上升沿和下降沿同时去采240M的时钟,检查连续4次的结果,如果结果完全相同,则认定240M时钟已经处于保持不变的状态了,否则则是处于变化的状态。

采4个值是因为这两个时钟有上下偏差,考虑到最worst的情况时,480M+240K可能会有3个沿都采到240M-120K的high或者low,因此要检测4个结果。
发表于 2016-3-6 02:01:15 | 显示全部楼层
input    a;  // ck_in
output  b;
always @ ( posedge clk_480M ) begin
     a_reg1 <= a;
     a_reg2 <= a_reg1;
     a_reg3 <= a_reg2;
     b<=(     (a_reg2&&a_reg3)    ||   ( (!a_reg2)&&(!a_reg3))    );
end
发表于 2016-3-7 10:49:09 | 显示全部楼层
怕亚稳态就打两拍,但是clk_in太快可能会误采,所以可以先把clk_in自己分频下,把clk_in降到120M,60M或者更低也行,然后再去做同步检测上下沿
发表于 2016-3-8 10:25:47 | 显示全部楼层
clk_in不知道可不可以转成差分,如果能转成相差180度相位的两个时钟
这样每个时钟都采集,他们应该是同时不变化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

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

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