马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
什么是CDC 数字电路是以时钟为核心的电路。 在一个时钟下各部分的行为是可以预测的。 在多个时钟下,如何让各部分的行为能够可预测。 解决这个问题就靠CDC(Clock Domain Crossing)。
怎么CDC 在不同时钟之间可预测的传递信息就叫CDC。 可预测的要求是: 信息何时可预测, 信息本身不畸变,可预测。 为什么不经CDC处理的跨时钟域会有不可预测性呢? 时钟的不协作使得信息何时传递不可预测。可能出现超过半个周期到,以及不到半个周期到的问题。
另外由于电路的限制,两个时钟沿如果挨得太近,会出现信息畸变的问题。
两个问题,何时不可预测和信息畸变。解决起来是从第二个问题开始的。因为第一个问题单纯看问题不大,只在有多种信息的时候才会是问题。一个在当前周期内到达,一个在下一个周期内到达。
这个图有点多了,其实问题就是这么个样子,后面的解决方案写的文章非常多,就不再补图了。 信息畸变怎么解决要基于这个畸变到底是什么。 畸变实际就是一种短时间内的震荡。为此解决的办法就很明显了,就是多给一些时间。所以这就是2-DFF, 3-DFF,N-DFF方法了。 N越大,那么给的周期越多,N-1乘上周期就是额外的稳定时间了。所以频率越高,为了给足稳定时间,N需要更大。 那么第一个问题怎么解决? 1.减少信息个数(种类)。这样就能避免这个问题。 所以要看看是否真的有必要传这么多信息,精简优化。 2.如果确实传多个。那么是不是可以把时间跨度拉长。 这样就算单个信息何时不确定,但是各个信息之间的先后是确定的。 这就是格雷码,本来一个周期内变化两个信息,现在是两个周期内各变化一个信息。 因为也只是拉长到了两个周期,所以为了确保没有问题,是需要满足一定限制的。
结尾 信息的何时,有无畸变,这是CDC的本质性问题,还有快慢同步,宽度同步(脉冲形式),这些解决的是信息的有无问题了,也逃不了可预测这个范畴。 前者需要握手,后者用的是先信号扩展,再脉冲化的思路,就是将把信号拉长的思路再用了一遍。 spiritj@163.com
|