Skip to content

Carry-save-adder circuit generation#5409

Open
maartenboersma wants to merge 2 commits into
chipsalliance:mainfrom
Aurora7913:carrysave
Open

Carry-save-adder circuit generation#5409
maartenboersma wants to merge 2 commits into
chipsalliance:mainfrom
Aurora7913:carrysave

Conversation

@maartenboersma

Copy link
Copy Markdown
Contributor

Summary

For efficient many-term addition, a tree starting with a carry-save adder is typically a good implementation choice.

Although modern logic synthesizers may automatically select an adder tree implementation, in our experience is it helpful to start synthesis with a netlist that already has the desired structure. It helps not only for the result quality, but also for the result stability.

This pull request introduces a Csa (Carry Save Adder) function to reduce an arbitrary number of UInt input terms to two UInt output terms. The sum of the two output terms is equal to the sum of the input terms.

Release Notes

Addition of a Carry Save Adder function to reduce many input terms to two.

@seldridge seldridge added the Feature New feature, will be included in release notes label Jun 10, 2026
@adkian-sifive

Copy link
Copy Markdown
Member

Please add tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature New feature, will be included in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants