Skip to content
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

Feature request: recover_reduce to support single bit coarse gates $and, ... #400

Open
Kmanfi opened this issue Aug 29, 2017 · 2 comments
Open

Comments

@Kmanfi
Copy link

Kmanfi commented Aug 29, 2017

Hello,
coarse gate designs have this same need. Currently I have 60.000 single bit $and and 60.000 single bit $or cells in some design. Majority of those form long reduce chains. It is important to reduce those chains because it might reduce cell count dramatically in some cases. Like in mine. There are some simulation situations where reduced cell count will affect to simulation speed. Chains might be very long so option to limit width of reduce cell will help to get a bit more realistic cell count in coarse level.

@Kmanfi
Copy link
Author

Kmanfi commented Aug 29, 2017

Here is test unit for this feature request. Now it will make three single bit $and. One 4bit wide $reduce_and would be nice.

module and_reduce (a, b, x);
input [3:0] a, b;
output [3:0] x;
    assign x = (a[3] & a[2] & a[1] & a[0]);
endmodule

@povik
Copy link
Member

povik commented Sep 29, 2023

There's the extract_reduce pass for transforming $_AND_, $_OR_, $_XOR_ chains into reduce cells as you describe, but at the moment it doesn't consider single-bit $and cells and similar.

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

No branches or pull requests

2 participants