本帖最后由 hotcool 于 2022-10-24 16:08 编辑
数字系统101
开头我们先来说说一个典型的同步电路。可能有很多其他形式,但一个简单的例子足以说明。图1展示了同步电路的形式和时序。
一个值得提及的问题是:到底为什么要使用同步电路?异步逻辑(组合逻辑)不是更快速吗?这个问题的答案有很多,这里只提重要的几点:
1.同步电路消除了不同路径之间由于速度差异导致的问题。通过一个确定的时间间隔采样来实现的同步电路,使得快路径和慢路径可以以一种相同的形式完成采样;
2.同步电路不太受电压、温度和压力等外部因素的影响,这使得大规模的工业生产称为可能;
3.许多的设计被要求具备良好的移植性--也就是说,要非常容易地适应新的技术或者某种改进的技术(比如,从90nn到65nn)。同步电路的确定性行为使其更容易实现技术移植;
4.同步电路可以简化不同时钟域之间的接口。异步接口通常需要复杂的握手协议来保证数据的完整性;而同步电路自身就已经携带了时序信息,这使得数据可以被方便且正确地互相传递。
同步电路是由组合逻辑和一些时钟元素组成的,比如触发器和寄存器。时钟元素共享同一个时钟,所有的数据传递都发生在时钟的上升沿(或者下降沿,上升沿还是主流)。当上升沿到来时,寄存器把逻辑值从输入D端传递到输出Q端。
在图1中,定义了两个重要的时钟参数:
Setup Time(建立时间)—Tsu:建立时间是指数据输入在时钟上升沿到来之前必须保持稳定的时间。
Hold Time(保持时间)—Th :保持时间是指数据输入在时钟上升沿到来之后必须保持稳定的时间。
如何违反了建立时间和保持时间的要求,就会导致可怕的亚稳态问题。
|