0.引言
大四保研到实验室正好碰到师兄师姐们找工作,听到的一些面试常问的内容就是“跨时钟域”、”异步处理“、”异步FIFO“等。然而我看的一些经典的书籍都是这样说的”异步电路很难设计,最好全部使用同步技术进行设计,所有寄存器器使用一个全局时钟驱动“。可在实际项目中,我又发现现代芯片设计中很难只使用一个时钟,时钟分频逻辑、时钟选择多路器,除了多时钟,有时还必须在两个不同的时钟间传递数据。也就是异步电路处理问题(两个没有特定关系的时钟传递数据被认为是异步的)。”异步电路很复杂“会有很多设计的不确定性。
1.亚稳态
时序逻辑中大量使用D触发器,D触发器的一般结构是:两个串联的反相器加两个传输门构成锁存器,两个锁存器串联构成D触发器。D触发器是一种双稳态电路,两个稳定状态”1“、”0“。两个反向器构成的反馈回路可能会产生亚稳态。
图 1-1 两个反向器反馈回路输出特性
如图1-1所示,当电压处于两个曲线的交叉点时,在没有任意外部干扰的情况下,电路将保持此状态不变,也就是进入了亚稳态。实际电路不可能完全没有外部干扰,在外部干扰下,电路可能会重新趋于一个稳定状态。(ps:从特性曲线看,如果上升和下降斜率越大,电路能越快从亚稳态电路中恢复过来。)
图 1-2 双稳态图示