Skip to main content

Liberty format parser.

Project description

Liberty Parser

This library provides functions to parse, manipulate and format 'Liberty' files. The liberty format is a common standard to describe certain aspects of standard-cell libraries such as timing, power, cell pin types, etc.

Example

from liberty.parser import parse_liberty

# Read and parse a library.
library = parse_liberty(open(liberty_file).read())



# Format the library.
print(str(library))

# Loop through all cells.
for cell_group in library.get_groups('cell'):
    cell_name = cell_group.args[0]
    print(cell_name)

    # Loop through all pins of the cell.
    for pin_group in cell_group.get_groups('pin'):
        pin_name = pin_group.args[0]
        print(pin_name)

        # Access a pin attribute.
        some_attribute = pin_group['some_attribute']

Library structure.

The liberty library is made of Group objects. The library itself is a Group object. A Group contains other nested Groups, has a name, a list of arguments and attributes.

group_name(args) {
    simple_attribute: 1.23;
    other_group_name(args) {
        other_simple_attribute: 2.34;
        complex_attribute (1.23, 2.34);
    }
}

Reading arrays and timing tables.

Timing tables are stored in the liberty format as attributes which holds a string with comma-separated values.

This string can be converted into a Numpy array with get_array:

some_group.get_array('attribute_name')

More examples

Example scripts can be found under ./examples.

Install for development

Run the following command to install the liberty parser using symlinks. This allows to edit the parser with immediate effect on the installed package.

pip install --upgrade --editable .

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

liberty_parser-0.0.29.tar.gz (18.6 kB view details)

Uploaded Source

File details

Details for the file liberty_parser-0.0.29.tar.gz.

File metadata

  • Download URL: liberty_parser-0.0.29.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for liberty_parser-0.0.29.tar.gz
Algorithm Hash digest
SHA256 fe841322c3ff766a2f7629b30a75f65b669b045c398bc599fe36c2e56cd0d2fb
MD5 e599564c71b2e6020cf09f4e345c8b3c
BLAKE2b-256 8a3c1b5a749a833696d83b12530bb79af3adba7c97d745553af277f40999a7e6

See more details on using hashes here.

Supported by

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