怎么从.lib中看switch cell 可以承受多大电流? 求解
时间:10-02
整理:3721RD
点击:
拿到一个power switch cell .lib,想看看一个cell可以承载多大电流,打开.lib来看,里面有dc_current的定义,但是感觉这个current 不像是这个管子承载的电流。如果想从.lib得到承载电流,应该怎么看啊?请大家帮忙解答一下, 谢谢!下面是.lib描述:
voltage_unit : "1V" ;
current_unit : "1mA" ;
time_unit : "1ns" ;
leakage_power_unit : 1nW;
lu_table_template (ccsn_dc_template) {
variable_1 : input_voltage;
variable_2 : output_voltage;
}
cell (HDRDID2BWPHVT) {area : 46.0992;cell_footprint : "hdrdid1";switch_cell_type : coarse_grain;pg_pin (TVDD) {direction : input;pg_type : primary_power;voltage_name : COREVDD2;}pg_pin (VSS) {pg_type : primary_ground;voltage_name : COREGND1;}pg_pin (VDD) {direction : output;pg_function : "TVDD";pg_type : internal_power;switch_function : "NSLEEPIN1 + NSLEEPIN2";voltage_name : COREVDD1;}
.....
leakage_power () {
value : 0.759949;
related_pg_pin : TVDD;
}
leakage_power () {
value : 0.764168;
related_pg_pin : VSS;
}
dc_current (ccsn_dc_template) {
related_internal_pg_pin : VDD;
related_pg_pin : TVDD;
related_switch_pin : "INTERNAL1";
index_1 ("-1.08, -0.54, -0.216, -0.108, 0, 0.054, 0.108, 0.162, 0.216, 0.27, 0.324, 0.378, 0.432, 0.486, 0.54, 0.594, 0.648, 0.702, 0.756, 0.81, 0.864, 0.918, 0.972, 1.026, 1.08, 1.188, 1.296, 1.62, 2.16");
index_2 ("-1.08, -0.54, -0.216, -0.108, 0, 0.054, 0.108, 0.162, 0.216, 0.27, 0.324, 0.378, 0.432, 0.486, 0.54, 0.594, 0.648, 0.702, 0.756, 0.81, 0.864, 0.918, 0.972, 1.026, 1.08, 1.188, 1.296, 1.62, 2.16");
values ( \
"20.36, 18.92, 17.62, 16.98, 16.21, 15.78, 15.31, 14.8, 14.25, 13.67, 13.04, 12.38, 11.68, 10.94, 10.16, 9.342, 8.478, 7.573, 6.625, 5.633, 4.597, 3.517, 2.391, 1.219, -2.358e-07, -2.504, -5.062, -13.81, -57.51", \
"11.83, 11.03, 10.47, 10.26, 10.03, 9.91, 9.772, 9.616, 9.431, 9.212, 8.951, 8.646, 8.293, 7.893, 7.443, 6.942, 6.389, 5.784, 5.126, 4.413, 3.645, 2.82, 1.939, 0.999, -5.505e-08, -2.105, -4.31, -12.12, -56.26", \
"7.303, 6.766, 6.411, 6.285, 6.153, 6.084, 6.013, 5.94, 5.863, 5.783, 5.696, 5.598, 5.481, 5.332, 5.14, 4.897, 4.599, 4.243, 3.827, 3.35, 2.81, 2.206, 1.538, 0.8027, -2.058e-08, -1.75, -3.648, -10.67, -55.14", \
"5.932, 5.473, 5.174, 5.069, 4.96, 4.903, 4.846, 4.786, 4.725, 4.662, 4.596, 4.526, 4.448, 4.358, 4.243, 4.09, 3.887, 3.626, 3.305, 2.921, 2.472, 1.957, 1.374, 0.7222, -1.442e-08, -1.606, -3.38, -10.08, -54.68", \
....
"5.934e-05, 6.343e-06, 1.098e-06, 6.004e-07, 3.494e-07, 2.784e-07, 2.299e-07, 1.969e-07, 1.743e-07, 1.583e-07, 1.466e-07, 1.374e-07, 1.297e-07, 1.229e-07, 1.166e-07, 1.107e-07, 1.05e-07, 9.946e-08, 9.409e-08, 8.888e-08, 8.376e-08, 7.867e-08, 7.314e-08, 6.26e-08, 2.915e-09, -1.245e-06, -2.172e-05, -0.0257, -28.68" \
);
接下来描述的是各个pin下的internal power
pin(NSLEEPOUT1) {
direction : output;
power_down_function : "!TVDD + !VDD + VSS";
function : "NSLEEPIN1";
related_ground_pin : VSS;
related_power_pin : TVDD;
max_capacitance : 0.1734;
....
internal_power () {
related_pin : "NSLEEPIN1";
when : "NSLEEPIN2";
related_pg_pin : TVDD;
rise_power (power_template_7x7_0) {
index_1 ("0.012, 0.0384, 0.0904, 0.1952, 0.4056, 0.8256, 1.666");
index_2 ("0.0012, 0.0043, 0.0104, 0.0227, 0.0473, 0.0965, 0.1948");
values ( \
"0.02607, 0.02611, 0.02615, 0.02617, 0.02623, 0.02615, 0.0265", \
"0.02601, 0.02605, 0.02609, 0.02611, 0.0261, 0.02607, 0.02622", \
"0.02594, 0.02598, 0.02602, 0.02611, 0.02613, 0.02605, 0.02622", \
"0.02585, 0.02588, 0.02592, 0.02595, 0.02602, 0.02601, 0.02605", \
"0.02576, 0.02579, 0.02582, 0.02586, 0.02591, 0.02597, 0.02598", \
"0.02574, 0.02576, 0.02578, 0.0258, 0.02584, 0.02589, 0.026", \
"0.02588, 0.02588, 0.02588, 0.0259, 0.02593, 0.02598, 0.02627" \
);
}
........
voltage_unit : "1V" ;
current_unit : "1mA" ;
time_unit : "1ns" ;
leakage_power_unit : 1nW;
lu_table_template (ccsn_dc_template) {
variable_1 : input_voltage;
variable_2 : output_voltage;
}
cell (HDRDID2BWPHVT) {area : 46.0992;cell_footprint : "hdrdid1";switch_cell_type : coarse_grain;pg_pin (TVDD) {direction : input;pg_type : primary_power;voltage_name : COREVDD2;}pg_pin (VSS) {pg_type : primary_ground;voltage_name : COREGND1;}pg_pin (VDD) {direction : output;pg_function : "TVDD";pg_type : internal_power;switch_function : "NSLEEPIN1 + NSLEEPIN2";voltage_name : COREVDD1;}
.....
leakage_power () {
value : 0.759949;
related_pg_pin : TVDD;
}
leakage_power () {
value : 0.764168;
related_pg_pin : VSS;
}
dc_current (ccsn_dc_template) {
related_internal_pg_pin : VDD;
related_pg_pin : TVDD;
related_switch_pin : "INTERNAL1";
index_1 ("-1.08, -0.54, -0.216, -0.108, 0, 0.054, 0.108, 0.162, 0.216, 0.27, 0.324, 0.378, 0.432, 0.486, 0.54, 0.594, 0.648, 0.702, 0.756, 0.81, 0.864, 0.918, 0.972, 1.026, 1.08, 1.188, 1.296, 1.62, 2.16");
index_2 ("-1.08, -0.54, -0.216, -0.108, 0, 0.054, 0.108, 0.162, 0.216, 0.27, 0.324, 0.378, 0.432, 0.486, 0.54, 0.594, 0.648, 0.702, 0.756, 0.81, 0.864, 0.918, 0.972, 1.026, 1.08, 1.188, 1.296, 1.62, 2.16");
values ( \
"20.36, 18.92, 17.62, 16.98, 16.21, 15.78, 15.31, 14.8, 14.25, 13.67, 13.04, 12.38, 11.68, 10.94, 10.16, 9.342, 8.478, 7.573, 6.625, 5.633, 4.597, 3.517, 2.391, 1.219, -2.358e-07, -2.504, -5.062, -13.81, -57.51", \
"11.83, 11.03, 10.47, 10.26, 10.03, 9.91, 9.772, 9.616, 9.431, 9.212, 8.951, 8.646, 8.293, 7.893, 7.443, 6.942, 6.389, 5.784, 5.126, 4.413, 3.645, 2.82, 1.939, 0.999, -5.505e-08, -2.105, -4.31, -12.12, -56.26", \
"7.303, 6.766, 6.411, 6.285, 6.153, 6.084, 6.013, 5.94, 5.863, 5.783, 5.696, 5.598, 5.481, 5.332, 5.14, 4.897, 4.599, 4.243, 3.827, 3.35, 2.81, 2.206, 1.538, 0.8027, -2.058e-08, -1.75, -3.648, -10.67, -55.14", \
"5.932, 5.473, 5.174, 5.069, 4.96, 4.903, 4.846, 4.786, 4.725, 4.662, 4.596, 4.526, 4.448, 4.358, 4.243, 4.09, 3.887, 3.626, 3.305, 2.921, 2.472, 1.957, 1.374, 0.7222, -1.442e-08, -1.606, -3.38, -10.08, -54.68", \
....
"5.934e-05, 6.343e-06, 1.098e-06, 6.004e-07, 3.494e-07, 2.784e-07, 2.299e-07, 1.969e-07, 1.743e-07, 1.583e-07, 1.466e-07, 1.374e-07, 1.297e-07, 1.229e-07, 1.166e-07, 1.107e-07, 1.05e-07, 9.946e-08, 9.409e-08, 8.888e-08, 8.376e-08, 7.867e-08, 7.314e-08, 6.26e-08, 2.915e-09, -1.245e-06, -2.172e-05, -0.0257, -28.68" \
);
接下来描述的是各个pin下的internal power
pin(NSLEEPOUT1) {
direction : output;
power_down_function : "!TVDD + !VDD + VSS";
function : "NSLEEPIN1";
related_ground_pin : VSS;
related_power_pin : TVDD;
max_capacitance : 0.1734;
....
internal_power () {
related_pin : "NSLEEPIN1";
when : "NSLEEPIN2";
related_pg_pin : TVDD;
rise_power (power_template_7x7_0) {
index_1 ("0.012, 0.0384, 0.0904, 0.1952, 0.4056, 0.8256, 1.666");
index_2 ("0.0012, 0.0043, 0.0104, 0.0227, 0.0473, 0.0965, 0.1948");
values ( \
"0.02607, 0.02611, 0.02615, 0.02617, 0.02623, 0.02615, 0.0265", \
"0.02601, 0.02605, 0.02609, 0.02611, 0.0261, 0.02607, 0.02622", \
"0.02594, 0.02598, 0.02602, 0.02611, 0.02613, 0.02605, 0.02622", \
"0.02585, 0.02588, 0.02592, 0.02595, 0.02602, 0.02601, 0.02605", \
"0.02576, 0.02579, 0.02582, 0.02586, 0.02591, 0.02597, 0.02598", \
"0.02574, 0.02576, 0.02578, 0.0258, 0.02584, 0.02589, 0.026", \
"0.02588, 0.02588, 0.02588, 0.0259, 0.02593, 0.02598, 0.02627" \
);
}
........
没人回答, 是不是我问的问题有问题?power switch cell 的承载电流是不是不能从.lib中得到,而是从layout里计算出来的?
switch/iso/level shift 等特殊cell,在pmk cpf 里面有定义power switch cell的电流信息,你看看是不是你需要的承载电流。