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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 跨时钟域具体问题求教

[复制链接]
发表于 2019-9-15 10:56:33 | 显示全部楼层 |阅读模式

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

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

x
 技术面试中被问到一个跨时钟域的具体问题,答不出来,之前只是看了些握手、fifo这样的知识点,没有考虑实际问题。


问题是:有一个APB接口的计数器IP,CPU可以通过写数据,控制计数器技术到5或者10等等任意数,但是写数据和计数器接受数据的时钟是异步的,并且希望在计数器最大值切换的时候,当前计数结束才可以切换,比如最大值为10,计数到6的时候来了一个新值5,必须计数到10之后,才能替换成5,应该怎么实现这个功能,根据APB的接口具体说一下信号都是怎么给的?




我描述的有哪里不清楚的可以说一下。


如果能画一下图那更好哈


谢谢大家了。
发表于 2019-9-15 13:26:51 来自手机 | 显示全部楼层
想当个缓冲写入,通常跨时钟处理都是单bit的控制信号是打两拍,多bit的数据信号用fifo+gray码,你这个采用后者吧,只不过fifo的we由cnt=10控制
 楼主| 发表于 2019-9-15 16:45:00 | 显示全部楼层


zzj0329 发表于 2019-9-15 13:26
想当个缓冲写入,通常跨时钟处理都是单bit的控制信号是打两拍,多bit的数据信号用fifo+gray码,你这个采用 ...


只同步一个数,没必要用fifo
发表于 2019-9-21 22:43:50 | 显示全部楼层
这个用握手就好。
1. 当cpu重新配置一个数值时,在apb clock domain监测到配置有变化,latch注,拉起一个pulse,并同步到counter的clock domain。
2. counter clock domain看到这个脉冲,拉起一个hold电平,当后续counter计数到上一次配置的threshold,看到hold信号拉起来,直接latch apb clock domain的那个寄存器,就行。
发表于 2019-9-22 06:29:03 | 显示全部楼层
我觉得4楼的设计是对的,其实本质上还是一样的,把数据从一个clock domain传到另一个domain,只是换了一个题目形式。
发表于 2019-9-24 09:55:53 | 显示全部楼层
4楼通用做法, 2楼 误人子弟。
 楼主| 发表于 2019-9-24 19:29:32 | 显示全部楼层


SimonZhamg 发表于 2019-9-21 22:43
这个用握手就好。
1. 当cpu重新配置一个数值时,在apb clock domain监测到配置有变化,latch注,拉起一个pu ...


谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-25 15:28 , Processed in 0.017675 second(s), 6 queries , Gzip On, Redis On.

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