前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDC不考虑时钟关系可以吗?

CDC不考虑时钟关系可以吗?

作者头像
数字IC小站
发布2022-08-26 18:42:32
4980
发布2022-08-26 18:42:32
举报
文章被收录于专栏:数字IC小站数字IC小站

#心得

CDC不考虑时钟关系的做法

读书的时候,书上关于CDC的这块内容,总是分快到慢或者慢到快等情况讨论。然而,在实际设计中,这个时钟关系可能不是很明确的,因为存在DVFS,AVS等机制的影响,或者在设计初期,对于时钟关系本身就是不明确。那么这种情况下,CDC部分怎么实现呢?

01

信号宽度较宽的单bit信号

很简单,直接打两到三拍即可。

02

单周期的单bit信号(脉冲信号)

首先我们把需要同步的单比特信号在源时钟域扩展为电平信号,然后将扩展后的高电平信号经过目的时钟域打两拍进行同步,再使用同步后的电平信号产生一个脉冲信号。

如下图所示:

这个方式的短板在于必须保证pulse之间的间隔性,不能够太密集。要保证目的端能踩到电平边沿。

如果像下面这个图,就是过于密集。

对于过于密集的pulse信号,则需要使用其他方式,比如使用握手或者异步FIFO等。而握手在本质上也是限制了发送pulse的频率,只是能够确保数据不发生丢失。

03

多bit的数据传输

数据传输可以使用握手或者FIFO作为中间载体。这个使用很广泛,前面的文章中也讲述过。

Clifford论文系列--多异步时钟设计的综合及脚本技术(1)

跨时钟域电路设计1--单比特信号传输

但是使用FIFO,在很多设计上是消耗过大的,因此也存在另外一些方式,比如MCP,这个本质上也是一种握手机制+pulse转level的形式,这个具体细节可以查看文章跨时钟域的方法--多周期路径跨时钟域的方法--MCP方式个人理解

这个方式的好处仍然在于不需要考虑时钟之间的快慢关系,但是存在的问题在于不能接受数据快速变化,换句话说,两次有效数据之间的间隔必须保证在至少6个cycle以上(基于打两拍的前提下)。

本质原因是状态机只要收到反馈信号以后才能把下一次的有效数据发送出去。

如果数据过于密集,还是得采用FIFO等。

以上只是设计常用方式,理解有限,有错误烦请通知更正。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字IC小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档