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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3141|回复: 6

如何将一个pulse从一个时钟域传递到另外一个时钟域。

[复制链接]
发表于 2009-3-10 11:18:38 | 显示全部楼层 |阅读模式

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

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

x
如何将一个pulse从一个时钟域传递到另外一个时钟域。
并思考一下,什么情况下,才能将传递这个pulse,对时钟有什么要求,对pulse有什么要求。
发表于 2009-3-10 14:04:09 | 显示全部楼层
内部时钟去抓这个脉冲信号的时候 一般比较外部来的要快 抓2次一般就行

内部时钟比这个脉冲慢 就异步先采集 然后再同步采集
不知道这样对否

input  i_data;
reg data_reg;
reg data_reg2;

always@(posedge i_dataor negedge resert)
if(~reset)
data_reg<=0;
else if(i_data)
data_reg<i_data;
else
data_reg<=data_reg;

always@(posedge clk or negedge resert)
if(~reset)
data_reg2<=0;
else
data_reg2<=data_reg;
发表于 2009-3-12 10:30:57 | 显示全部楼层
XILINX有这样的参考设计.不过是原理图画的, 如果采集的时钟快过PULSE,则直接采集即可.
如果比其要慢,则需要采用异步处理.
发表于 2009-3-12 13:32:53 | 显示全部楼层

                               
登录/注册后可看大图



========================
塑胶回收 废油回收  废旧回收
发表于 2009-3-12 22:40:13 | 显示全部楼层
1. 本地采样时钟频率大于输入时钟则直接采样,但需要用触发器打2拍后再使用
2. 本地采样时钟频率小于输入时钟则需要作异步处理,如用异步FIFO,格雷码转换等等
发表于 2009-3-12 23:55:28 | 显示全部楼层
学习了,真不错。
发表于 2009-3-15 18:08:22 | 显示全部楼层
假设pulse1是clock1 domain的,要传到clock2 domain。
可以先把这个pulse1在clock1 domain变为一个level的信号。再用clock2来采,这样clock2就总能够采到clock1的信号了。
但是前提是clock1的这个pusle不能来得太快,这样也许clock2还没采到第一个pulse的level信号,第二个pulse就来了是不行的。但design中往往不会出现这样的情况,因为如果clock1中pulse信号来得太快,就说明clock1中的信息量大,要用clock2来采本来就是会丢的。所以可以再做一个clock2传回clock1的pulse(标识clock2已经采下了第一个pulse),用于防止clock1中第二个pulse来得太快。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 18:34 , Processed in 0.022123 second(s), 11 queries , Gzip On, Redis On.

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