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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for libertymetric-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4d193a61aab131e67a7e72f025d6b91692755c9a427a9eeaebf3a10f7f1dc91 |
|
MD5 | dc3287f64352ebec04f7526c1f2c5391 |
|
BLAKE2b-256 | 8bfe289818130449971fed72079c4c769db5d1da633e6303099e9f3813defc56 |