异步复位同步释放原则

  • 复位信号有一个非常重要的原则,叫作异步复位同步释放原则。异步复位指一个寄存器的复位信号随时可以复位,不必考虑该寄存器的时钟信号正处在哪个相位上。同步释放是指一个寄存器的复位信号从复位态回到释放态的时机,必须与该寄存器的时钟信号保持同步关系。概括地讲,就是对复位信号什么时候复位没有要求,而对什么时候释放有严格要求。
  • 为什么复位时不需要复位信号与时钟保持同步呢?因为保持同步是为了避免亚稳态,而处于复位状态的寄存器,即使短暂地出现了亚稳态,也会马上进入复位状态。如果数字电路共享同一个复位信号,则亚稳态传播也不需要考虑,因为它们会几乎同时地进入复位状态。
  • 为什么释放时需要对复位信号作时钟同步处理呢?因为释放后如果出现亚稳态,此时寄存器的复位已经释放,则无法再把寄存器纠正到一个确定的状态。eg.未经同步释放处理的芯片,它在上电复位时状态正确,但复位信号释放后其状态就不一定了,同一颗芯片每次复位释放后状态都不一致。原因就是其内部的寄存器处于亚稳态,而亚稳态会逐渐稳定,至于稳定在哪种状态并不能确定。
  • 在时序方面,复位过程主要关注复位信号维持低电平的脉宽,而解复位过程则需要关注时钟与解复位信号之间的关系。该关系由两个参数来定义,一个是Recovery检查;另一个是Removal检查。这两个时序参数分别规定解复位信号传播延迟的上限和下限。eg. 时钟第一拍发起解复位,它经过线路传输和组合逻辑到达目标寄存器的复位端,即时序路径的终点,经过的时间为t。t不能太短,离第一拍时钟触发沿太近会导致解复位后输出亚稳态,因此,第一拍时钟对t有一个最小时间要求,即Removal时间。但t也不能太大,如果它跑到了第二拍时钟范围内,就出干扰到第二拍的信号输出,因此,第二拍时钟对t有一个最大时间要求,即Recovery时间,t不能超过Recovery的左边界,否则它离第二拍时钟触发沿就太近了。值得注意的是,在一些工艺下,对于Recovery时间的要求经常是负值,这意味着t可以超过第二拍时钟沿,而输出信号仍然是正常的,在这种情况下,对复位信号Recovery要求比对普通信号的Setup要求宽松一些。
  • 可以讲Recovery检查等同于Setup检查,将Removal检查等同于Hold检查,它们都不是信号本身的特性,而是寄存器的特性,是根据寄存器的制造工艺来定的。

你可能感兴趣的:(fpga开发)