Keywords: slew derate from library, slew rate (aka transition time, slope), LibertyTM Format, STA (Static Timing Analysis)
Category: VLSI characterization
Typically liberty library for process nodes below 40nm has a keyword called slew_derate_from_library. This keyword changes the way designers/EDA-tools read signal transition times (aka slew rate or slope) from library for both input and output pins of the cell. This keyword has bearing on other slew measurement thresholds, which makes whole picture a bit complex to comprehend. In this article, we'll try to explain slew dertate from characterization and timing analysis point of view.
Slew is measured between two thresholds - lower and upper. These threshold could be different for rising and falling transitions. Hence there are total of 4 different thresholds with following keywords
These four thresholds are shown in the picture below
Need for slew derate
Signal slew rates for process nodes 180nm or above were linear between 10 and 90 percent of their rail voltages. This linearity drove the choice of slew thresholds between 10 percent and 90 percent. This linearity was reduced to a band of 20 percent and 80 percent for nodes between 180nm and 65nm. It was further reduced to 30 percent and 70 percent.
Latest transition band 30-70 percent is only 40 (70-30) percent of rail voltage, hence misrepresents slew rate between rail voltage. Need to translate this new band to a reasonable (more than 50 percent) percentage of rail voltage gave birth to slew derate.
If we need to represent transition band of 30-70 percent to 10-90 percent, we'll be multiplying slew rates (aka transition times) measured between 30-70 percent by a factor of 2 to represent it as 10-90 percent. Slew rate is derived from these two bands. This is shown as a simple division below
slew_derate_from_library = (70-30)/(10-90) = 0.5;
Slew derate for characterization
Input and output slew rates in liberty are stored after applying (i.e. dividing) slew_derate_from_library factor. Characterization software like guna applies signals with specified slew rate at inputs and measures slew at output. While reading slew rates from liberty, factor slew_derate_from_library is applied in a reverse fashion (by multiplying) in order to obtain slew rates between thresholds as specified in the liberty header (see Thresholds section above).
Input slew rates are multiplied by slew_derate_from_library factor to obtain slew rates between thresholds in the liberty header. Resulting input slew rate is extended to rail voltage, thereafter. Final input slew rate is applied in the form on piecewise linear voltage source at input. Assuming, rest of the inputs are tied to their appropriate signal voltage to cause output transition, characterization software measures output slew rate between thresholds as specified in the liberty header. This output slew rate is divided before being stored in new liberty file.
Slew derate for Timing Analysis
Timing analysis also reads slew rates from liberty file. Computing slew rate is further complicated by the fact that analysis software may read multiple liberty files with different thresholds and slew_derate_from_library factor. On the top of that, it may have it's own native slew thresholds (example - 20% to 80%). (Note that other types of derating like data/clock path derating is not covered in this article).
Timing analysis divides designs into timing stages. One Timing stage consists of driver model, net model and a receiver model. Driver model is derived from delay-slew/current/voltage values. Factor slew_derate_from_library is used is determining library slew between library threshold. Library thresholds are translated into timing analysis's native threshold using following equation
slew valuelibrary-threshold = slew_derate_from_library * slew valuelibrary ;
Once, we have slew value between library threshold, it is easy to translate them into timing analysis' native threshold as follows:
slewnative threshold = (native threshold / library threshold) * slewlibrary threshold
Slew derating is best understood by keeping in mind the following formula -slew valuelibrary-threshold = slew_derate_from_library * slew valuelibrary ;
VLSI characterization timing model
VLSI characterization timing model