前言
本文部分摘自《Verilog编程艺术》。
概述
同步复位和异步复位是集成电路设计中两种不同的信号复位方式。长期以来,关于这两者之间的优劣众说纷纭,而两者又都在各种电路中被大规模使用,无法明确的判断出孰好孰坏。本文对同步复位和异步复位的优缺点进行了分析,并对比了两种复位方式综合出的电路。希望读者们在看完之后能够对这两种不同的复位方式有一个整体的认识,并对使用何种复位方式有自己的理解。
同步复位
同步复位基于这样的前提:只有在时钟有效沿,复位信号才能影响寄存器的状态。
优点
- 可以使用任意的单元库。复位信号通过把它作为组合逻辑的一部分连接到寄存器输入端对寄存器起作用,因此不像异步复位一样必须使用带有异步复位端口的寄存器。
- 可以综合出比较小的寄存器,特别是当复位信号与产生 d-input 的逻辑组合在一起的时候。
- 可以保证电路是 100%同步的,有利于时序分析。通过时钟可以过滤掉复位信号上的小毛刺,但是如果这些毛刺发生时太靠近时钟有效沿,那么寄存器有可能进入亚稳态,这与违反set-up 和 hold 要求而进入的亚稳态没有什么不同。
缺点
- 同步复位可能需要脉冲扩展,以保证复位脉冲足够宽,从而保证在时钟有效沿复位信号存在。
- 同步复位在复位时需要电路在正常工作。如果为了节省功耗使用了门控时钟,在复位有效的时候时钟可能还处在禁止状态,导致电路不能复位。
- 由于同步复位会在寄存器的输入端引入组合逻辑,可能会拖慢电路的速度,在某些对时序要求较为严格的设计中会导致时序违规