Skip to main content

Liberty Metric Utility

Project description

Liberty Metric Extraction

installation

pip install libertymetric

import package

from libertymetric.classLiberty import liberty as lutil

load & convert CCS to JSON

lnode = lutil.read_lib('ccs.lib') lutil.dump_json(lnode,out='ccs.json') lnode.keys()

load liberty from JSON

lnode = lutil.load_json('ccs.json') lnode.keys()

list cells in the liberary

[v for v in lnode['cell']]

grab cell node by cell-name, e.g., 'ND2D1LVT'

cnode = lnode['cell']['ND2D1LVT']

encapsulate all timing/power tables by timing-arc into a dataframe

lutT = lutil.get_cell_timing(cnode,todf=True) lutP = lutil.get_cell_power(cnode,todf=True) lutT.index # enumerate all lookup tables encapsulated by timing-arc lutP.index # enumerate all lookup tables encapsulated by timing-arc

lookup table interpolation, e.g., timing-arc ('A1,ZN,', 'combinational', 'cell_rise')

lut = lutT.loc[('A1,ZN,', 'combinational', 'cell_rise')] y,x,v = map(np.array,lut.values) # unpack values as numpy array

timing interpolation based on the specified transition & load

lutil.table_lookup(lut,trans=0.0207,load=0.0010072,dflag=True)

LS regression & prediction

lutil.lut2lsCoeff(lut.to_dict(),trans=0.03,load=0.0017,dflag=True)

visualization

lutT = lutT.T.to_dict() # convert dataframe to JSON lutil.plot_lut(lutT,keys=('A1,ZN,', 'combinational', 'cell_rise'))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libertymetric-0.1.4.tar.gz (11.8 kB view hashes)

Uploaded Source

Built Distribution

libertymetric-0.1.4-py3-none-any.whl (13.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page