介绍一些数字电路中的基本概念。
同步逻辑和异步逻辑
同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系。
同步逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路状态才能改变,改变后的状态将一直保持到下一个时钟脉冲的到来,此时,无论外部输入有无变化,状态表中的每个状态都是稳定的。
异步逻辑电路的特点:电路中除了可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件。电路中没有统一的时钟。电路状态的改变由外部输入的变化直接引起。
同步复位和异步复位
同步复位在时钟沿变化时,完成复位动作。
异步复位不管时钟,只要复位信号满足条件就完成复位动作。异步复位对复位信号要求较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。
阻塞与非阻塞赋值
阻塞(=)与非阻塞(<=)语句最主要的区别在其后的引用它的语句的电路结构上。
阻塞,其综合出的组合逻辑的输出,被送到其后引用它的语句的组合逻辑输入端。即后面的语句引用新值。
非阻塞,其综合出的触发器的输出,被送到其后引用它的语句的组合逻辑输入端。即后面的语句引用旧值。
时序设计的本质
时序设计的本质是满足每一个触发器的建立保持时间。
建立保持时间
建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。
保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。
为什么触发器要满足建立保持时间
因为触发器内部数据的形成是需要一定时间的。如果不满足,触发器将进入亚稳态。进入亚稳态后触发器的输出不稳定,在0和1之间跳变。这时就需要经过一个恢复时间,其输出才能稳定。但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑去,导致亚稳态的传播。
什么是亚稳态
亚稳态是指触发器无法再某个规定的时间内达到一个确定的状态。
为什么两级触发器可以防止亚稳态传播
使用两级触发器来使异步电路同步化的电路叫做“一位同步器”。它只能用来对一位异步信号进行同步。
两级触发器可防止亚稳态传播的原理:假设第一级触发器输入不满足其建立保持时间,它在第一个脉冲到来之后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果满足了,那么第二级触发器将不会出现亚稳态。
同步器有效的条件:
第一级触发器进入亚稳态后的恢复时间+第二级触发器的建立时间<=时钟周期
更确切的说,输入脉冲宽度必须大于同步时钟周期与第一级触发器所需的保持时间之和。更为保险的脉冲宽度是两倍同步时钟周期。所以,这样的同步电路对于从比较慢的时钟域异步信号进入较快时钟域比较有效。反之则没有作用。
时钟抖动
时钟抖动是指芯片的某一个给定点上时钟周期发生暂时性变化,也就是说时钟周期可能加长和缩短,他是一个平均值为0的平均变量。