IC设计中同步复位和异步复位
作者:互联网
目录
前言
本文部分摘自《Verilog编程艺术》。
概述
同步复位和异步复位是集成电路设计中两种不同的信号复位方式。长期以来,关于这两者之间的优劣众说纷纭,而两者又都在各种电路中被大规模使用,无法明确的判断出孰好孰坏。本文对同步复位和异步复位的优缺点进行了分析,并对比了两种复位方式综合出的电路。希望读者们在看完之后能够对这两种不同的复位方式有一个整体的认识,并对使用何种复位方式有自己的理解。
同步复位
同步复位基于这样的前提:只有在时钟有效沿,复位信号才能影响寄存器的状态。
优点
- 可以使用任意的单元库。复位信号通过把它作为组合逻辑的一部分连接到寄存器输入端对寄存器起作用,因此不像异步复位一样必须使用带有异步复位端口的寄存器。
- 可以综合出比较小的寄存器,特别是当复位信号与产生 d-input 的逻辑组合在一起的时候。
- 可以保证电路是 100%同步的,有利于时序分析。通过时钟可以过滤掉复位信号上的小毛刺,但是如果这些毛刺发生时太靠近时钟有效沿,那么寄存器有可能进入亚稳态,这与违反set-up 和 hold 要求而进入的亚稳态没有什么不同。
缺点
- 同步复位可能需要脉冲扩展,以保证复位脉冲足够宽,从而保证在时钟有效沿复位信号存在。
- 同步复位在复位时需要电路在正常工作。如果为了节省功耗使用了门控时钟,在复位有效的时候时钟可能还处在禁止状态,导致电路不能复位。
- 由于同步复位会在寄存器的输入端引入组合逻辑,可能会拖慢电路的速度,在某些对时序要求较为严格的设计中会导致时序违规。同时,在 FPGA 中引入组合逻辑也会导致耗费逻辑资源。
异步复位
优点
- 节省逻辑资源,因为大部分 DFF 都有异步复位端口。
- 可以保证数据路径干净。对于那些在数据路径上时序紧张的设计来说,它们不能再承受同步复位在数据路径上为插入组合逻辑而增加的延迟。
- 不管有没有时钟存在,电路都可以被复位。
缺点
- 如果异步复位的释放发生在时钟有效沿或靠近时钟有效沿处,那么寄存器的输出就可能变成亚稳态,导致 ASIC 丢失复位状态。另外,板上和系统复位上的噪声和毛刺会导致假的复位。
异步复位,同步释放
通过对上面两种复位方式的总结,我们可以了解到:异步复位虽然有着不影响时序,复位稳定的优点,但其释放必须满足 recovery time,也就是复位信号的 set-up time,这样才能保证在复位时系统不会进入亚稳态。
我们通过下图的这种电路来实现复位信号的同步释放。下图中的 masterreset_n 是全局的复位信号,rst_n 是输入的异步复位信号。我们通过两个寄存器同步复位信号,因为复位信号是异步撤销的,在靠近时钟有效沿处复位的撤销可能会引起亚稳态,第二个寄存器的作用就是用来消除这个可能的亚稳态。
同时,对于第二个寄存器来说,在复位撤销时(不管是否满足 recorvery time)它的输入端和输出端一定都是0,因此第二个寄存器没有进入亚稳态的风险。 这样,通过两个寄存器的同步,我们可以有效地避免异步复位信号释放时系统进入亚稳态的风险,是系统设计中复位方式的最好选择。
标签:异步,同步,复位,亚稳态,寄存器,IC,时钟 来源: https://www.cnblogs.com/amxiang/p/16105942.html