Skip to content

Conversation

uenoku
Copy link
Member

@uenoku uenoku commented Jul 4, 2025

This commit introduces C API bindings for AIG LongestPathAnalysis and LongestPathCollection, enabling longest path analysis of AIG circuits from C and other languages.

The API uses JSON serialization for path data exchange, providing a stable interface while the underlying data structures evolve. Paths are automatically sorted by delay in descending order for efficient critical path analysis.

This commit introduces C API bindings for AIG LongestPathAnalysis, enabling
timing analysis of And-Inverter Graph circuits from C and other languages.

Key additions:
- AIGLongestPathAnalysis and AIGLongestPathCollection opaque handle types
- aigLongestPathAnalysisCreate/Destroy for analysis lifecycle management
- aigLongestPathAnalysisGetAllPaths for retrieving timing path collections
- aigLongestPathCollectionGetSize/GetPath for accessing individual paths
- LongestPathCollection C++ class for efficient path storage and sorting
- Comprehensive C API test suite with multiple test scenarios

The API uses JSON serialization for path data exchange, providing a stable
interface while the underlying data structures evolve. Paths are automatically
sorted by delay in descending order for efficient critical path analysis.
@uenoku uenoku force-pushed the dev/hidetou/capi-longest-path branch from da51253 to 5f4cdac Compare July 4, 2025 01:45
Copy link
Member

@maerhart maerhart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@uenoku uenoku force-pushed the dev/hidetou/capi-longest-path branch from 44890f7 to 9a5997c Compare July 5, 2025 02:11
@uenoku uenoku merged commit 4bb54cd into main Jul 5, 2025
7 checks passed
@uenoku uenoku deleted the dev/hidetou/capi-longest-path branch July 5, 2025 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants