Mar 10, 2008

registered output

      最近项目碰到的一个问题,设计时没用寄存器输出,导致接口部分由于时序问题出错。就此问题谈点自己的看法。
      一般来说,我们只是在芯片的接口处考虑寄存器输出,因为内部逻辑都能在EDA工具的控制较好地保证timing,但接口处由于对方的逻辑未知,无法保证timing,在某些case可能会出现timing出错的问题。
      当项目较大时,综合不能完全top-down,此时在IP的顶层最好也用寄存器输出,以简化IP间接口timing的check。
      IP内部的话,不一定非得寄存器输出不可。很多初学者为了简单起见,只要是输出都加上寄存器,这样会浪费面积,而且有时电路的效率也会降低(delay1T)。
      总的来说,是否需要寄存器输出虽是个小问题,但对于高效稳定的设计,任何小问题都不得放过。