For delay calculation, this timing characteristics part is used which is in the form of lookup tables
Timing characteristics is defined in the multiple lookup tables for each type of delay that are
- Rise delay
- Rise transition
- Fall delay
Following is the example of timing characteristics
- lookup table contain two variables and the full N x N lookup tabel is displayed, where N is positive integer
Example:
pin(Y) {
direction: output;
capacitance: 0.0;
function: "(A B)";
internal_power() {
related_pin: "A";
cell_rise(delay_template_7x7) {
index_1 ("0.04, 0.07, 0.1, 0.2, 0.5, 1.0, 2");
index_2 ("0.006, 0.030, 0.078, 0.174, 0.366, 0.749,1.523");
values ( \
"0.07, 0.09, 0.13, 0.20, 0.35, 0.64, 1.23", \
"0.08, 0.10, 0.13, 0.21, 0.35, 0.65, 1.24", \
"0.09, 0.11, 0.15, 0.22, 0.37, 0.66, 1.25", \
"0.11, 0.13, 0.17, 0.25, 0.39, 0.68, 1.28", \
"0.14, 0.17, 0.20, 0.28, 0.42, 0.72, 1.31", \
"0.18, 0.21, 0.25, 0.33, 0.47, 0.76, 1.35", \
"0.23, 0.26, 0.31, 0.39, 0.54, 0.83, 1.42");
}
( To understand the format of the lookup table, study the template of timing characteristics template in library)
Here,
index_1 represents input net transition and
index_2 represents total output net capacitance
depending on the various values for these indexes, corresponding delay values are looked up from the table
here, table can be any size 3 x 3, 7 x 7 etc depending upon the library vendor.
Now, how it work lets understand with the following example
here,
- 7 x 7 indicates the size of the lookup table to be 7 rows and 7 columns
- index_1 indicates the factor for row indices
- index_2 indicates the factor for column indices
what would the cell_rise time be if the input_net_transition is 0.1 and the total_ouptut net capacitance is 0.030?
answer : from the table, we get the value to be 0.11ps
how 0.11ps we got . how it is calculated
ReplyDelete0.1 is 3rd position in index 1 and 0.03 is 2nd position in index 2 so, in values 3x2 is 0.11ps
DeleteIt should 0.13 right?
Delete