-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Description
Summary
Kepler-formal issues an error Direction not found for bus <name> when parsing a Liberty file where a bus group does not have a bus-level direction attribute, even though all child pin entries have valid direction attributes.
I think this is valid Liberty syntax — many foundry-provided pad cell libraries (e.g., GPIO cells) define direction only on individual pins within a bus, not on the bus group itself.
Error Message
[critical] [KeplerFormal.cpp:382] Netlist loading failed: Direction not found for bus DRV
Reproduce
OK case (bus-level direction present)
bus (DRV) {
bus_type : bus_DRV_1_0;
direction : input; /* ← present at bus level — OK */
pin (DRV[1]) { direction : input; capacitance : 5.0; }
pin (DRV[0]) { direction : input; capacitance : 5.0; }
}
Error case (direction only on pins)
bus (DRV) {
bus_type : bus_DRV_1_0;
/* ← no direction at bus level */
pin (DRV[1]) { direction : input; capacitance : 5.0; }
pin (DRV[0]) { direction : input; capacitance : 5.0; }
}
Standalone test case
A self-contained test case is available:
How to run: ./run.sh
This runs two tests:
bus_direction_ok/— bus with bus-level direction (OK)bus_direction_bug/— bus with pin-level direction only (ERROR)
kepler-formal version: commit a18e4d9
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels