Both lockup latches and lockup
registers are used to make scan chain robust to hold failures. What one uses
for the same depends upon his/her priorities and the situation. However, it
seems lockup latches are more prevalent in designs of today. This might be due
to following reasons:
- Area: As we know, a latch occupies only half the area as a register. So, using lockup latches instead of lockup registers gives us area and power advantage; i.e., less overhead.
- Timing: Lockup elements – timing perspective has given an analysis of how timing critical lockup elements (lockup latches and lockup registers) paths can be. According to it, using a negative lockup latch, you don’t have to meet timing at functional (at-speed) frequency. However, in all other cases, you need to meet timing. This might also be a reason people prefer lockup latches.
Lockup latches, on one hand relax
only one side hold. So, you can afford to have skew only on one side, either on launch or
on capture. Lockup registers, on the other hand, let you have skew on both the
sides. So, lockup latches are preferable where you can afford to have tap on
the clock either from launch flop or on capture flop. On the other hand, lockup
flops can be used by tapping clock from any point as long as you meet setup and
hold timings.
Hope you’ve found this post useful. Let us know what you think in the comments.
very good content
ReplyDeleteThanks a lot :-)
DeleteHow good your content is, beautiful way of explaining
ReplyDeleteThanks a lot :-)
DeleteIf lockup registers are used, is it a problem for LEC? Lockup latch is being added by the synthesis tool (for every domain crossing flop in the scan chain) - so is it possible to tell the tool to add a lockup register instead ?
ReplyDeleteDifferent logic equivalence tools may have different interpretations of LEC check in case of lockup registers. But one thing common could be "unreachable si pin" in LEC check. There could be user-interpreted waivers for lockup registers, but usually you can get away with only lockup latches. You should not be needing a lockup register, where you cannot have a corresponding RTL element (the lockup registers usually are terminal lockups, which can be inserted in RTL as well, thus, making LEC easier)
Delete