Interpolation and Extrapolation Techniques
When using 1-D and 2-D table values, if the row or column key value does not match a header value, then Virtuoso Space-based Router extrapolates the value if the key lies outside the range of header values or interpolates if the key lies between a pair of header values in the table. You can specify the interpolation and extrapolation technique to use for rows and for columns.
Interpolation Techniques
Interpolation techniques are used when the key value falls between two header values.
-
snap_down: Returns the constraint value for the next lower header value. -
snap_up: Returns the constraint value for the next higher header value. -
linear: Returns a constraint value that is between the values for the next lower and the next higher values, in proportion to where the key is in that range. -
snap_down_inclusive: Returns the constraint value for the next lower header value, including when the key matches the higher header value. -
snap_up_inclusive: Returns the constraint value for the next higher header value, including when the key matches the lower header value.
In Virtuoso ASCII technology file data, the value of the table index is '>=' for most tables which corresponds to snap_down interpolation. For all LEF spacingTables and Virtuoso ASCII technology file 2-D minSpacing tables, the value of the table index is ‘>’ which corresponds to snap_down_inclusive interpolation. Due to this discrepancy, you will see that many of the constraint definition examples in this manual will show slightly different row and column header values for LEF and Virtuoso. The Tcl description will follow one or the other, depending on the row/column interpolation setting.
Extrapolation Techniques
When setting a 1-D or 2-D table value, you can specify the extrapolation technique to use when the key value is lower than the lowest header value and another extrapolation technique for use when the key value is higher than the highest header value.
-
snap_up: If the key is smaller than the lowest header value, then return the constraint value for the lowest header value. -
snap_down: If the key is greater than the highest header value, then return the constraint value for the highest header value. -
linear: Returns a constraint value that is extrapolated from the two points at the end (either lower or upper) to the key value.
Typically, {snap_up snap_down} is used, meaning snap up to the lowest value on the low end and snap down to the highest value on the high end.
Related Topics
Return to top