liberty-parser 0.3.0

Liberty file format parser (maintained fork of liberty-parse)
Documentation

liberty-parser

A maintained fork of liberty-parse by Erik Ronshagen.

Liberty file format parser for Rust

Example usage

Parse libraries from a Liberty file

use liberty_parser::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.iter_cells().count());
    let area = lib
        .get_cell("AND2")
        .and_then(|c| c.simple_attribute("area"))
        .map_or(-1.0, |v| v.float());
    println!("Cell AND2 has area: {}", area);
}

Limitations

  • Doesn't automatically parse files from include statements

  • Doesn't parse bus syntax in pin names. For example:

        pin (X[0:3]){
        }
    

Credits / Acknowledgements

Originally created by Erik Ronshagen. Now a maintained fork by Marcos Sartori. MIT-licensed; see NOTICE.md for full attribution details.