Crate liberty_parse

Source
Expand description

This crate reads Liberty format files, commonly used by EDA tools to describe library cells (including standard cells, hard IP, etc.).

§Example

use liberty_parse::parse_lib;

let lib_str = r#"
library(sample) {
    cell(AND2) {
        area: 1;
    }
}
"#;

for lib in parse_lib(lib_str).unwrap() {
    println!("Library '{}' has {} cells", lib.name, lib.cells.len());
    let area = lib
        .cells
        .get("AND2")
        .and_then(|c| c.simple_attributes.get("area"))
        .map_or(-1.0, |v| v.float());
    println!("Cell AND2 has area: {}", area);
}

Re-exports§

Modules§

  • Defines the types and parser for the Abstract Syntax Tree (AST) representation of a Liberty file.
  • Defines a slightly enhanced data structure than the base AST

Structs§

Functions§