来自微信公众号:数字芯片设计
时钟知识全解析:
目录
·同步电路与异步电路;
·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter)、延时(latency)、转换(transition)时间;
·内部时钟;
·多路复用时钟;
·门控时钟;
·行波时钟;
·双沿时钟;
·Design Compiler中的时钟约束。
·补充:时钟分配策略
1、同步电路与异步电路
首先来谈谈同步电路与异步电路。那么首先就要知道什么是同步电路、什么是异步电路?对于同步时序电路,不同的文章有不同的说法,大致有下面的定义方法:
①对于比较严格的定义:一个电路是同步电路,需要满足一下条件:
·每一个电路元件是寄存器或者是组合电路;
·至少有一个电路元件是是寄存器;
·所有寄存器都接收同一个时钟电路;
·若有环路,则环路至少包含一个寄存器。
在上面的严格定义下,可以得到下面的电路不是同步电路:
图1
图1是组合逻辑,不符合定义;
图2
图2是组合逻辑和锁存器,不符合定义;
下面的形式肯定是同步电路:
图3
图3:寄存器的时钟都是CLK
下面的电路严格上说不算是同步电路:
图4
图4因为右边的时钟经过两个反相器的延时,时钟信号不同了。
②对于不算很严格的同步电路定义有:
·所有时钟的时钟来自同一个时钟源:比如下面的(分频)电路
CLKA、CLKC、CLKD、CLKE都是由300M这个时钟源分频而来,因此这个系统属于同步电路系统。
·当不是来自同一个时钟源时,只要CLOCK的周期有倍数关系并且相互之间的相位关系是固定的就可以算是同步电路,比如, 电路中用了10ns, 5ns, 2.5ns 三个时钟,这三个时钟不是由同一个时钟源分频来的,但是这三个时钟的周期有倍数关系并且相位关系固定:10ns是5ns的2倍,是2.5ns的两倍,之间是整数倍关系;相位关系是固定的,因此也算是同步电路。
CLOCK之间没有倍数关系或者相互之间的相位关系不是固定的,比如电路中用5ns, 3ns 两个CLOCK,这两个时钟不是来自同一个时钟源,两者之间没有周期关系,因此是异步电路。
关于是不是同步时钟的问题,