Crates.io | liberty-db |
lib.rs | liberty-db |
version | 0.7.4 |
source | src |
created_at | 2022-12-12 12:29:10.476702 |
updated_at | 2024-12-03 02:13:46.791014 |
description | A fully defined liberty data structure, efficient parser & formatter |
homepage | |
repository | https://github.com/zao111222333/liberty-db/ |
max_upload_size | |
id | 734930 |
size | 813,332 |
liberty
attributes with typed datastructure, rather than syntax tree (AST) only, in the definition of Liberty Version R-2020.09, September 2020liberty
boolean expression syntax, employ binary decesion diagram (BDD) to identify (hashing)parser & formatter
binary. See benchmark summarydefine define_group
user-defined attributesThis library is implemented in Rust, with document.
[dependencies]
liberty_db = "0.7"
You can run examples with commands:
# example0
cargo run --example 0_parse_fmt
# example1
cargo run --example 1_parse_fmt_file -- dev/tech/cases/ocv.lib
# example2
cargo run --example 2_prune_lib -- dev/tech/cases/ocv.lib
Basic information as follow, see latest benchmark summary.
Project | Lang | Version | Type Support | Boolean Expression | Comment | ||
---|---|---|---|---|---|---|---|
All | Partly | AST only | |||||
liberty-db | rust | latest | ✓ | ✓ | current version | ||
si2dr_liberty | C | 1.0 | ✓ | ✓ | Synopsys's version at 2005, many attributes are not supported | ||
OpenTimer | C++17 | 2 | ✓ | ✓ | STA tool's liberty component | ||
liberty-io | rust | 0.0.4 | ✓ | ||||
libertyparse | rust | 0.3.0 | ✓ | ✓ | |||
liberty2json | rust | 0.1.0 | ✓ |
Project | Lang | Version | Type Support | Boolean Expression | Comment | ||
---|---|---|---|---|---|---|---|
All | Partly | AST only | |||||
liberty-db | rust | latest | ✓ | ✓ | current version | ||
liberty-db | rust | 0.6.3 | ✓ | ✓ | published at 2024-09-07 | ||
liberty-db | rust | 0.5.9 | ✓ | ✓ | published at 2024-08-27 | ||
liberty-db | rust | 0.4.13 | ✓ | ✓ | published at 2024-08-13 | ||
liberty-db | rust | 0.3.1 | ✓ | published at 2023-08-03 |
Run unit-test and regression.
cargo test
cargo test --package dev
Run benchmark, it will takes 5h.
cargo bench --bench dev
Reconstruction:
GroupBuilder
, e.g., use Vec
to store GroupSet
, no comment attributeGroupBuilder
to Group
, providing parent's scope
, e.g.
Pin
name set to build BDDtiming::TimingTableLookUp
Parse:
Vec<NotNan<f64>>
and Value
complex attributes need quotes vector, use fast_float2::parse_partial
make_golden
intrinsic_parasitic
groupleakage_current
groupdynamic_current
groupCI:
Other:
Finished
define
GroupWapper
, ComplexWapper
, SimpleWapper
. At leaset remove it in parser and formatterliberty
\
MutSet
to store GroupMap