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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
楼主: 刘兴国

[求助] CDC跨时钟域同步,多bit同步的骚操作?

[复制链接]
 楼主| 发表于 昨天 10:41 | 显示全部楼层


   
蕾兹曼 发表于 2025-8-27 11:27
我说的总线是指cpu跟外设通信的总线,在SOC内部……就是CPU给外设写数据的总线,其实就是在sram接口做个 ...


我们是只带IIC功能的混合信号芯片,内部只有IIC接口。没有SOC也没有总线。
回复 支持 反对

使用道具 举报

发表于 昨天 13:30 | 显示全部楼层


   
刘兴国 发表于 2025-8-28 10:41
我们是只带IIC功能的混合信号芯片,内部只有IIC接口。没有SOC也没有总线。
...


现在是I2C通信时钟比芯片时钟快是吧?还没有总线系统,那你要不就考虑一下双口sram?1KByte够不?总不能你这个是持续通信,数据还不会读出吧?怕冲突的话就写一个异步FIFO逻辑控制写入读出?要是直接打拍,你芯片时钟比通信时钟慢得多,怕是芯片时钟还没同步完接收到的数据,后面的数据就跟上来了,一样会丢
没接触过I2C,要是缓冲区满了能不能发个NACK信号,主机接收到了就重发
回复 支持 反对

使用道具 举报

发表于 昨天 15:17 | 显示全部楼层


   
刘兴国 发表于 2025-8-26 16:26
这大概也是握手同步吧?如果在syncing为高期间src来了新的数据并且为最后一笔,最终数据是否会丢失? ...


最终数据肯定不会丢失. 同步过的数据记录下来, 没有同步的数据也记录下来, 如果两个不相等, 就启动同步.
回复 支持 反对

使用道具 举报

发表于 昨天 16:00 | 显示全部楼层


   
刘兴国 发表于 2025-8-26 13:15
抱歉,是快时钟域到慢时钟域。快时钟频率最快5Mhz(IIC时钟), 慢时钟100Khz。设计资源的话当然越少越好 ...


根据项目情况。将一个Nbyte的寄存器组包装成异步FIFO的逻辑来做接收吧。从描述推测,就算I2C存在连续写的情况,应该也不会写太多。写读速率大概在5~6  : 1(5M/9 : 100K),所以只能用SCL将数据先暂存在寄存器组里,然后慢时钟再慢慢处理了
回复 支持 反对

使用道具 举报

发表于 昨天 17:32 | 显示全部楼层
本帖最后由 ilmkduse 于 2025-8-28 17:33 编辑

拿IIC做配置吧?我猜的。
如果是这么考虑的话,首先一个I2C支持到5M不代表系统会跑5M。单纯算频率差的话理论上低于2.7M的I2C可以做到仅深度2的缓存不丢数据。
常用快也就是1M,5M应该是给留余量。

一定要跑到5M的话,需要不丢数据则要么用足够大的异步FIFO,你得估数据上限,这深度不好给。
或者输出考虑用更大位宽,比如慢时钟域一次处理两次甚至三四次快时钟域事务。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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


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

GMT+8, 2025-8-29 18:07 , Processed in 0.021064 second(s), 3 queries , Gzip On, Redis On.

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