timing borrow:
高速设计的一个风格是——在Latches中借用时间timing borrowing,在边沿触发的触发器中偷走时间timing stealing。
timing borrow和timing steal都允许一个阶段将多余的时间从快速逻辑传递到相邻的慢速逻辑。
timing borrow是允许逻辑自动使用上一个周期的slack time,无需任何额外的电路或时钟调整。
latch的transparent性质允许latch用于高性能设计,因为它们在实现高速设计时比边沿触发的电路具有更大的灵活性。
timing stealing:
当一些组合逻辑块需要额外的时间进行计算,但不能使用前一个周期的剩余时间,就会发生timing stealing。
timing stealing通过调整时钟到达时间来实现的。
在上图中,当Path1逻辑需要额外时间时,可以使用timing stealing,调整捕获Flip Flop(FF2)的时钟相位,这样FF2的数据到达时间就不会违反setup timing。
需要知道的代价是,FF2的数据触发时间也会延迟,所以要求Path2是快速逻辑。
假设Path1、Path2、Path3和Path4延迟分别为12ns、1ns、8ns和1ns。