回复 7# Alicezw
This section illustrates the lookup of the table models through an example. If the input transition time and the output capacitance correspond to a table entry, the table lookup is trivial since the timing value corresponds directly to the value in the table. The example below corresponds to a general case where the lookup does not correspond to any of the entries available in the table. In such cases, two-dimensional interpolation is utilized to provide the resulting timing value. The two nearest table indices in each dimension are chosen for the table interpolation. Consider the table lookup for fall transition (example table specified above) for the input transition time of 0.15ns and an output capacitance of 1.16pF. The corresponding section of the fall transition table relevant for two-dimensional interpolation is reproduced below. fall_transition(delay_template_3x3) { index_1 ("0.1, 0.3 . . ."); index_2 (". . . 0.35, 1.43"); values ( \ ". . . 0.1937, 0.7280", \ ". . . 0.2327, 0.7676" . . . In the formulation below, the two index_1 values are denoted as x1 and x2; the two index_2 values are denoted as y1 and y2 and the corresponding table values are denoted as T11, T12, T21 and T22 respectively. If the table lookup is required for (x0, y0), the lookup value T00 is obtained by interpolation and is given by: T00 = x20 * y20 * T11 + x20 * y01 * T12 + x01 * y20 * T21 + x01 * y01 * T22 where x01 = (x0 - x1) / (x2 - x1) x20 = (x2 - x0) / (x2 - x1) y01 = (y0 - y1) / (y2 - y1) y20 = (y2 - y0) / (y2 - y1) Substituting 0.15 for index_1 and 1.16 for index_2 results in the fall_transition value of: T00 = 0.75 * 0.25 * 0.1937 + 0.75 * 0.75 * 0.7280 + 0.25 * 0.25 * 0.2327 + 0.25 * 0.75 * 0.7676 = 0.6043 Note that the equations above are valid for interpolation as well as extrapolation - that is when the indices (x0, y0) lie outside the characterized range of indices. As an example, for the table lookup with 0.05 for index_1 and 1.7 for index_2, the fall transition value is obtained as: T00 = 1.25 * (-0.25) * 0.1937 + 1.25 * 1.25 * 0.7280 + (-0.25) * (-0.25) * 0.2327 + (-0.25) * 1.25 * 0.7676 = 0.8516 |