The swapping algorithm works as follows. The project STA
tool and a set of scripts determine which cells can be swapped
without creating new timing, noise, and slew violations. First,
all cells that have timing margins larger than a set threshold
are swapped to their GBIAS equivalent. The STA tool then
computes the timing graph and swaps back all GBIAS cells that
are on paths with less than a predefined positive slack. Then,
a script evaluates all the receivers connected to the outputs
of the GBIAS cells that went through timing qualification,
and determines if sufficient noise margin exists. The script
calculates the new noise values by increasing the latest noise
snapshot by a percentage that was derived from simulations
and analysis. Once a list of cells that can be safely swapped
is built, a custom program performs the swaps in the actual
layout database. A footprint-compatibility check for identical
pins and metal shapes is built into the program to maintain LVS
and DRC cleanliness.