-
Notifications
You must be signed in to change notification settings - Fork 404
[Datapath] Implement timing-driven compression algorithm #8920
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… and non-timing driven lowerings.
…ectly updated smallVectors
…size of the compressor tree
…sor implementation
uenoku
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks really awesome! I'll take a closer look tomorrow but high-level:
- Can we remove wallace reduction code path? My understanding is Dadda's algorithm is better even when the input arrival time is uniform, in that case it would be great if we can remove it.
- Probably passing delay via function call back would be cleaner.
|
Now with changes recommended including removal of wallace reduction code and using a function call back for delay calculations |
uenoku
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly style comments, LGTM!
Building on recent updates to incorporate longest path analysis for higher-level dialects (e.g. comb), this PR incorporates the arrival time information into the design of the compressor tree which improves the logic depth of a datpath.compress lowering to AIG. The CompressorTree class was moved into datapath.ops to avoid additional clutter in the comb ops files.
Future PRs will further build upon these algorithms to produce even more efficient compressors.