Forum Discussion
Altera_Forum
Honored Contributor
15 years ago --- Quote Start --- Did you try using a + sign? I don't know how you did a ripple-carry adder but I'm guessing it might have been too low-level for synthesis to understand your intent. Just a guess. --- Quote End --- As an experiment I was constructing the adder at a very low level, out of full-adder units:
module full_adder(
input a, b, cin,
output s, cout);
assign s = a^b^cin;
assign cout = a&b | cin&(a^b);
endmodule
When I join these together with CARRY_SUM buffers, the LEs are configured in arithmetic mode with COUT/CIN chaining. Without the CARRY_SUMs, they aren't. Maybe I'm expecting too much of "automatically"?