Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

whta contains the files .lib

Status
Not open for further replies.

mazouzi

Junior Member level 3
Junior Member level 3
Joined
Feb 20, 2014
Messages
29
Helped
1
Reputation
2
Reaction score
1
Trophy points
3
Visit site
Activity points
159
hi

does any one knows what contains the files .lib , and if you have a doc which explain these . can you please post it here

thnks
 

A LIB file contains details of the cells in the library with their logic functions, timing information, power characteristics, etc. in a format that tools can refer to evaluate performances. A LIB file can be classified into two sections namely the header section and the cell section. The header section defines attributes that are common and used by all cells in the library like the operating conditions, wireload model, etc. The cell section has conditions and recorded characteristics for each cell in the library, including the pin names, power, possible input-output combinations and their values, etc. .
It is to be noted that design engineers may employ cells from one or more libraries in a design. The respective LIB files of those libraries are then to be referred. For a given cell library, several LIB files may be available for various PVT (Process Voltage Temperature) conditions.
 

    V

    Points: 2
    Helpful Answer Positive Rating
HTML:
http://www.opensourceliberty.org/

explaining the newest format of liberty (CCS which replace the NLDM for deeper micron technologies)
 

thnks rca and graphene
cane you please explaine me this
internal_power(){
related_pg_pin : vdd;
related_pin : "CP";
when : "!E*TE";
fall_power(power_table_27){
values("5.786822e-03, 6.073322e-03",\
"5.551622e-03, 5.914422e-03",\
"5.477922e-03, 5.866422e-03",\


what they mean by table 27 and where i can find this table !!
 

to my knowledge i think u cant simply say what this is.. this could be any result for any of the PVT conditions, etc... please read your tool manual.. use ctrl f and u can probably narrow down.... for the fact that lib files goes to 1000s of line i think u yrself need to narrow this down for minute details..
 

which tool are you talking about graphene . i don't have can you post it here pleaase im new in backend :/
 

if you are not generating or working with a lib file, you need not even worry about whats there in the .lib file... if u are working with that, then you should probably use tools for ex. like Cadence Liberate, ELC, etc... so, are you generating, working with a lib file or r u just getting infos?
 

if you look at "power_table_27", normaly in the header, you will find some info about the axis of your data matrix of 2 by 7.
Code:
related_pg_pin : vdd;
related_pin : "CP";
when : "!E*TE";
fall_power(power_table_27){
values("5.786822e-03, 6.073322e-03",\
"5.551622e-03, 5.914422e-03",\
"5.477922e-03, 5.866422e-03",\

This table give the internal power when CP change TE=1 and IE=0, and function of the axis, you tool know the power consumme for this condition by the cell.

Same idea for the timing.

Personnaly, I found a good philosophy to understand where come from the value reported by the synthesis/PnR/STA tools.
 

graphene i m working in static and dynamic power annalysis

I want to understand how we have got this table of power !!

and where i can find power_table_27 rca !!
 

i think u need to check somethign claled activity profiling... thats a very subtle yet powerful way to do power analysis.. .
.
let me be straight to the point.. i think u r wasting your time with lib files for static and dynamic power analysis... i feel unless you design a libray yourself pl dont even bother to understand this....
.
you will end up wasting your time and eventually end up wrong...
 

graphene i m working in static and dynamic power annalysis
I want to understand how we have got this table of power !!
and where i can find power_table_27 rca !!

well normal if you look inside the file you should find at the top something like this:

Code:
  power_lut_template(power_template_7x7) {
    variable_1 : input_transition_time ;
    variable_2 : total_output_net_capacitance ;
    index_1("0.0070965, 0.045852, 0.18189, 0.44168, 0.84642, 1.4143, 2.1616");
    index_2("1e-06, 0.00941694, 0.0235424, 0.0470847, 0.0941694, 0.235424, 0.470847");
  }
this defined the two axis, and the range of these ones, which is used with:

Code:
      internal_power() {
        related_pin : "A" ;
        when : "(B * !(CI))" ;
        fall_power(power_template_7x7) {
          index_1("0.0070965, 0.045852, 0.18189, 0.44168, 0.84642, 1.4143, 2.1616");
          index_2("0, 0.00941156, 0.0235289, 0.0470578, 0.0941156, 0.235289, 0.470578");
          values( \
                 "0.0146768, 0.0148659, 0.015098, 0.0152821, 0.0154205, 0.015523, 0.0155607", \
                 "0.0146712, 0.014855, 0.0150864, 0.0152765, 0.0154177, 0.0155122, 0.0155489", \
                 "0.0145942, 0.0147634, 0.0149767, 0.0151474, 0.0152826, 0.0153727, 0.0154136", \
                 "0.0143725, 0.0145588, 0.0148401, 0.015037, 0.0151665, 0.0157547, 0.0157996", \
                 "0.0143294, 0.0144868, 0.0146355, 0.0147795, 0.0149322, 0.0153166, 0.0158676", \
                 "0.0143482, 0.0144409, 0.0145839, 0.0147435, 0.0149044, 0.015143, 0.0153494", \
                 "0.0144801, 0.0145109, 0.0146661, 0.0148395, 0.0150029, 0.0150774, 0.0156523" \
                 );
        }

- - - Updated - - -

i think u need to check somethign claled activity profiling... thats a very subtle yet powerful way to do power analysis.. .
.
let me be straight to the point.. i think u r wasting your time with lib files for static and dynamic power analysis... i feel unless you design a libray yourself pl dont even bother to understand this....
.
you will end up wasting your time and eventually end up wrong...

For me, an engineer has curiosity, and that could help to check the liberty is aligned with the timing diagram (more interesting for memories...).
But he need a minimum of intelligent to look inside the liberty if the pattern is used!
 

@rca : I agree, I think lib files can be looked out of curiosity but if a goal is set to find something else.. i think the wrong path is chosen here...

@mazouzi: neways, pls ask us more if u r intending to study a lib file.
 

thnks rca and graphene

but what is it activity profiling and where i cand find it and how can i use it !!!!! :/
 

Hi,

In addition to this, since your question was what does a .lib contain -> There is another very important aspect of .lib which is timing. The .lib contains information about the cell delays that any cell would give with respect to some X input transition and Y capacitance seen on pin. The lookup table is very similiar to what rca has posted here.
Again if you are curious you could read a little bit about NLDM and CCS libraries.
It also tells about the max_capacitance on any pin and this becomes significant as max_cap is a signoff check. Also, helps in max_trans and other checks.
You also have things like pct_rise and pct_fall which tell you how your waverforms would be. i.e the duty cycle of your waveforms.
 
Generating .libs are complex procedures. You have to get the GDSII of the cells/macros then run spice simulations on them. There are some norms which have to be followed during the spice generation which depends on the technology node etc.. This has to be done for all possible input slews, load that you can imagine your cells being subjected to. Then using some basic scripting tool like perl or python you have to add them to a file such that the delay value points exactly to the same slew and cap conditions.
This can have manual errors or some misunderstanding in logic of scripts hence we depend on library vendors and experts in characterization of library for the .libs.
There are many tools like libertyNCX from synopsys which incorporate all these functions and produce acceptable characterized libraries.
 
well normal if you look inside the file you should find at the top something like this:

Code:
  power_lut_template(power_template_7x7) {
    variable_1 : input_transition_time ;
    variable_2 : total_output_net_capacitance ;
    index_1("0.0070965, 0.045852, 0.18189, 0.44168, 0.84642, 1.4143, 2.1616");
    index_2("1e-06, 0.00941694, 0.0235424, 0.0470847, 0.0941694, 0.235424, 0.470847");
  }
this defined the two axis, and the range of these ones, which is used with:

Code:
      internal_power() {
        related_pin : "A" ;
        when : "(B * !(CI))" ;
        fall_power(power_template_7x7) {
          index_1("0.0070965, 0.045852, 0.18189, 0.44168, 0.84642, 1.4143, 2.1616");
          index_2("0, 0.00941156, 0.0235289, 0.0470578, 0.0941156, 0.235289, 0.470578");
          values( \
                 "0.0146768, 0.0148659, 0.015098, 0.0152821, 0.0154205, 0.015523, 0.0155607", \
                 "0.0146712, 0.014855, 0.0150864, 0.0152765, 0.0154177, 0.0155122, 0.0155489", \
                 "0.0145942, 0.0147634, 0.0149767, 0.0151474, 0.0152826, 0.0153727, 0.0154136", \
                 "0.0143725, 0.0145588, 0.0148401, 0.015037, 0.0151665, 0.0157547, 0.0157996", \
                 "0.0143294, 0.0144868, 0.0146355, 0.0147795, 0.0149322, 0.0153166, 0.0158676", \
                 "0.0143482, 0.0144409, 0.0145839, 0.0147435, 0.0149044, 0.015143, 0.0153494", \
                 "0.0144801, 0.0145109, 0.0146661, 0.0148395, 0.0150029, 0.0150774, 0.0156523" \
                 );
        }

- - - Updated - - -



For me, an engineer has curiosity, and that could help to check the liberty is aligned with the timing diagram (more interesting for memories...).
But he need a minimum of intelligent to look inside the liberty if the pattern is used!

RESPECT Sir :)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top