By: Dhaval S. Shukla: Fmax Margin/Value Improvement For Memory Block During ECO Stage
By: Dhaval S. Shukla: Fmax Margin/Value Improvement For Memory Block During ECO Stage
Abstract
The intent of this article is to explain how to fix Fmax margin/value during ECO stage using
buffer/inverter-pair removal and push-pull techniques. Fmax for memory block shall be the Tcc
limited. But due to over fixing the hold violation for few instances path, they become memory-
limited, or SMS limited. In this article we will be discussing how to fix this in the ECO stage.
I. Introduction
The Engineering Change Order i.e., ECOs will be done for the following purposes:
• Change in functionality (Functional Eco)
• To fix timing violations (Timing Eco)
• To fix violations due to SI (SI Eco or Noise Eco).
Functional ECOs will fix any bugs detected during GLS or to modify the functionality of the
design. Timing & SI ECOs will happen during the timing closure iterations in physical design
phase.
Functional ECO
Functional ECO implements the changes in P&R tool by identifying the changes to the netlist
with respect to the existing netlist. These changes may include
▪ Removal/Addition of cells and their connectivity.
▪ Changes in nets’ connectivity (may be in clock, signal paths).
While performing Functional ECO make sure timing & LEC passes after ECO
implementation.
Timing and Noise ECO
The Timing ECOs can include
▪ Fixing setup, hold, recovery, or removal, or max capacitance, or max transition, or
Pulse-width, or Pulse Period violations.
▪ The Noise ECOs include fixing glitch propagation, which may cause functional
failure of a chip.
While performing Timing ECO make sure timing & LEC passes after ECO implementation.
Memory instances become memory-limited/sms-limited when the hold is over-fixed during timing
closure by adding more buffers/inverter-pair in the data path. This degrades Fmax. i.e., setup. All
memory instances in the block must be Tcc limited.
First, we shall check the Tcq value and Tcc value, then decide whether buffers/inverter pairs are
available in the data path to be removed to improve the Fmax.
We need to check the violated endpoint for the same instance group for which Fmax got violated.
If buffer(s)/inverter-pair(s) is/are not present in the data path to fix Fmax, then we can try the push-
pull method (i.e., skewing) in the clock path.
B] Push-pull method
While applying the push-pull method, we need to check whether the hold margin is available for the
nth path, and (n+1)th path. Plus we also need to check the setup margin for (n-1)th path as well. If
the margin is available at the previous, current, and next path then we can insert a buffer in the clock
path to improve Fmax.
• Start point of the nth path will be the End point of the previous path i.e. (n-1)th path
• End point of the nth path will be the Start point of the next path i.e. (n+1)th path
Note:
• Tcq is Tclk -> q timing arc of memory instance (i.e memory delay).
• Tcc is TC clock cycle.
• SMS is a Star Memory System which includes redundancy, scan, and BIST.
• TC means Testchip.
We could improve the Fmax value by 2% for two instances in one block for a particular corner
where Fmax got violated but for other three instances in two blocks were having small Tcc-Tcq gap
for a particular corner, which could not be fixed during further ECO stages, since it must be
addressed during the syn-sta stage.
Dhaval Shukla is working as an ASIC Physical Design Engineer at eInfochips (An Arrow Company).
He has more than 5.5 years of experience in ASIC Physical Design. He has experience in the bock
level implementation at lower technology node (3nm, 4nm, 22nm and 40nm) for ASIC chip,
where his accountabilities include the Block level PnR, ECO Implementation and Complete Sign-
off Closure and for the same. He has handled multiple complex blocks in terms of memories,
power blocks and instance count in the design. His project exposure also includes the flow
implementation like merge, Fill and PV (i.e., Antenna, DRC and LVS).