两级同步电路
http://www.cnblogs.com/IClearner/p/6485389.html
这个博主讲解的还是很有意思的呢,
配合这个,简短的讲解:
http://dengkanwen.com/238.html
CDC的问题来源:
不同CLK domian间要完成信息交互(控制和数据),一般来讲,只是将讲个寄存器接上就可以了,但是这样会导致亚稳态。
亚稳态
在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。这段之间成为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系。
由于输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出0~1之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)。 逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理。
那么究竟如何避免(或者减小)亚稳态的危