EDAboard.com | EDAboard.de | EDAboard.co.uk | WTWH Media

Calculate Delay from .Lib file

Ask a question - edaboard.com

elektroda.net NewsGroups Forum Index - Synthesis - Calculate Delay from .Lib file

Ali Arabi
Guest

Mon Aug 28, 2006 11:46 pm   



Dear Friends
How can we calculate Delay of each cell, in Artisan .LIB file?
we havent any formula to calculate delay from lookup table timing
of
cell.

t typical=t intrinsic + (k load *C load)

In lib file for example in 4 different states we have like this lookup
table , and in PDF file that explain cell we have this table

AND2(XL)
Intrinsic Delay Kload(ns/pF)
A->Y up 0.0841 6.274
A->Y down 0.1006 3.4200
B->Y up 0.0923 6.2745
B->Y down 0.1126 3.4246

timing() {
related_pin : "A";
timing_sense : positive_unate;
cell_rise(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.080607, 0.150106, 0.205288, 0.347674, 0.544107, 0.805701,
1.056285", \
"0.092210, 0.161200, 0.216270, 0.358643, 0.555134, 0.816778,
1.067389", \
"0.112858, 0.182922, 0.237694, 0.379680, 0.576040, 0.837712,
1.088363", \
"0.111214, 0.184757, 0.239252, 0.380505, 0.576823, 0.838233,
1.088781", \
"0.090919, 0.168979, 0.224332, 0.366194, 0.561995, 0.823386,
1.073944", \
"0.056146, 0.138642, 0.195301, 0.338845, 0.535911, 0.797161,
1.047540", \
"0.008458, 0.095244, 0.153515, 0.298830, 0.498188, 0.760983,
1.011433");
}
rise_transition(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.042321, 0.151954, 0.250093, 0.507235, 0.863538, 1.338583,
1.793845", \
"0.042829, 0.152011, 0.250100, 0.507260, 0.863535, 1.338584,
1.793845", \
"0.048219, 0.154139, 0.251460, 0.507370, 0.863538, 1.338584,
1.793840", \
"0.057045, 0.159433, 0.253617, 0.508984, 0.864706, 1.338869,
1.793844", \
"0.065497, 0.168310, 0.260115, 0.512225, 0.865917, 1.340145,
1.794842", \
"0.074833, 0.178598, 0.268261, 0.520047, 0.870877, 1.341815,
1.795897", \
"0.084218, 0.189854, 0.277514, 0.529231, 0.881000, 1.348090,
1.798778");
}
cell_fall(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.087344, 0.134763, 0.166237, 0.241997, 0.344630, 0.481154,
0.611946", \
"0.105535, 0.152875, 0.184365, 0.260149, 0.362789, 0.499316,
0.630109", \
"0.178071, 0.228516, 0.260849, 0.336985, 0.439534, 0.575983,
0.706742", \
"0.268932, 0.324313, 0.358480, 0.436243, 0.539164, 0.675576,
0.806192", \
"0.363057, 0.423664, 0.460117, 0.540220, 0.643491, 0.779892,
0.910664", \
"0.462961, 0.528881, 0.567910, 0.651651, 0.756655, 0.893396,
1.024021", \
"0.569940, 0.640736, 0.682483, 0.770481, 0.878383, 1.016849,
1.147930");
}
fall_transition(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.033109, 0.088035, 0.131503, 0.250086, 0.420233, 0.649117,
0.868716", \
"0.033668, 0.088061, 0.131613, 0.250088, 0.420232, 0.649120,
0.868715", \
"0.041242, 0.093877, 0.135425, 0.251087, 0.420372, 0.649123,
0.868719", \
"0.051760, 0.104890, 0.144704, 0.256058, 0.422661, 0.649901,
0.868827", \
"0.063366, 0.117463, 0.156189, 0.262657, 0.425283, 0.651777,
0.870387", \
"0.074639, 0.131292, 0.170108, 0.273798, 0.431797, 0.654301,
0.871924", \
"0.086110, 0.145777, 0.185386, 0.288006, 0.443365, 0.661865,
0.876196");
}
}

I will be very appreciating if you can help me in this information.

Sincerely yours,
Ali Arabi

mk
Guest

Wed Aug 30, 2006 4:17 am   



On 28 Aug 2006 16:46:18 -0700, "Ali Arabi" <ali.arabi_at_gmail.com>
wrote:

Quote:
Dear Friends
How can we calculate Delay of each cell, in Artisan .LIB file?
we havent any formula to calculate delay from lookup table timing
of cell.

You need to look at the definition of delay_template_7x7. It's
probably a two dimensional table with input indeces of input net
transition & total output capacitance. The indeces are rowxcolumn like
a regular matrix and they define breakpoints in the lookup table. You
find your two indeces between which your values lie (ie two indeces in
input net transition between which your input transition value is etc)
then I think you do linear interpolation to find your own value
although this is not very clear from the liberty documentation.


Guest

Fri Mar 28, 2014 8:16 pm   



在 2006年8月28日星期一UTC-4下午7时46分18秒,Ali Arabi写道:
Quote:
Dear Friends
How can we calculate Delay of each cell, in Artisan .LIB file?
we haven¡¦t any formula to calculate delay from lookup table timing
of
cell.

t typical=t intrinsic + (k load *C load)

In lib file for example in 4 different states we have like this lookup
table , and in PDF file that explain cell we have this table

AND2(XL)
Intrinsic Delay Kload(ns/pF)
A->Y up 0.0841 6.274
A->Y down 0.1006 3.4200
B->Y up 0.0923 6.2745
B->Y down 0.1126 3.4246

timing() {
related_pin : "A";
timing_sense : positive_unate;
cell_rise(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.080607, 0.150106, 0.205288, 0.347674, 0.544107, 0.805701,
1.056285", \
"0.092210, 0.161200, 0.216270, 0.358643, 0.555134, 0.816778,
1.067389", \
"0.112858, 0.182922, 0.237694, 0.379680, 0.576040, 0.837712,
1.088363", \
"0.111214, 0.184757, 0.239252, 0.380505, 0.576823, 0.838233,
1.088781", \
"0.090919, 0.168979, 0.224332, 0.366194, 0.561995, 0.823386,
1.073944", \
"0.056146, 0.138642, 0.195301, 0.338845, 0.535911, 0.797161,
1.047540", \
"0.008458, 0.095244, 0.153515, 0.298830, 0.498188, 0.760983,
1.011433");
}
rise_transition(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.042321, 0.151954, 0.250093, 0.507235, 0.863538, 1.338583,
1.793845", \
"0.042829, 0.152011, 0.250100, 0.507260, 0.863535, 1.338584,
1.793845", \
"0.048219, 0.154139, 0.251460, 0.507370, 0.863538, 1.338584,
1.793840", \
"0.057045, 0.159433, 0.253617, 0.508984, 0.864706, 1.338869,
1.793844", \
"0.065497, 0.168310, 0.260115, 0.512225, 0.865917, 1.340145,
1.794842", \
"0.074833, 0.178598, 0.268261, 0.520047, 0.870877, 1.341815,
1.795897", \
"0.084218, 0.189854, 0.277514, 0.529231, 0.881000, 1.348090,
1.798778");
}
cell_fall(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.087344, 0.134763, 0.166237, 0.241997, 0.344630, 0.481154,
0.611946", \
"0.105535, 0.152875, 0.184365, 0.260149, 0.362789, 0.499316,
0.630109", \
"0.178071, 0.228516, 0.260849, 0.336985, 0.439534, 0.575983,
0.706742", \
"0.268932, 0.324313, 0.358480, 0.436243, 0.539164, 0.675576,
0.806192", \
"0.363057, 0.423664, 0.460117, 0.540220, 0.643491, 0.779892,
0.910664", \
"0.462961, 0.528881, 0.567910, 0.651651, 0.756655, 0.893396,
1.024021", \
"0.569940, 0.640736, 0.682483, 0.770481, 0.878383, 1.016849,
1.147930");
}
fall_transition(delay_template_7x7) {
index_1 ("0.03, 0.1, 0.4, 0.9, 1.5, 2.2, 3");
index_2 ("0.000175, 0.0105, 0.01925, 0.042, 0.0735, 0.1155,
0.15575");
values ( \
"0.033109, 0.088035, 0.131503, 0.250086, 0.420233, 0.649117,
0.868716", \
"0.033668, 0.088061, 0.131613, 0.250088, 0.420232, 0.649120,
0.868715", \
"0.041242, 0.093877, 0.135425, 0.251087, 0.420372, 0.649123,
0.868719", \
"0.051760, 0.104890, 0.144704, 0.256058, 0.422661, 0.649901,
0.868827", \
"0.063366, 0.117463, 0.156189, 0.262657, 0.425283, 0.651777,
0.870387", \
"0.074639, 0.131292, 0.170108, 0.273798, 0.431797, 0.654301,
0.871924", \
"0.086110, 0.145777, 0.185386, 0.288006, 0.443365, 0.661865,
0.876196");
}
}

I will be very appreciating if you can help me in this information.

Sincerely yours,
Ali Arabi


Are you resolved this problem?

elektroda.net NewsGroups Forum Index - Synthesis - Calculate Delay from .Lib file

Ask a question - edaboard.com

Arabic version Bulgarian version Catalan version Czech version Danish version German version Greek version English version Spanish version Finnish version French version Hindi version Croatian version Indonesian version Italian version Hebrew version Japanese version Korean version Lithuanian version Latvian version Dutch version Norwegian version Polish version Portuguese version Romanian version Russian version Slovak version Slovenian version Serbian version Swedish version Tagalog version Ukrainian version Vietnamese version Chinese version Turkish version
EDAboard.com map