antonblanchard / vlsiffra

Create fast and efficient standard cell based adders, multipliers and multiply-adders.
Apache License 2.0
107 stars 9 forks source link

Make better use of inverting output adders #7

Open antonblanchard opened 2 years ago

antonblanchard commented 2 years ago

Some adder cells have inverting outputs (eg ASAP7). At the moment we add inverters to all outputs (S/COUT) but we should be able to avoid them in some cases.

One example is to alternate between adding inverters to the AB inputs and S outputs of chains of full adders, which avoids any inverters on the carry chain. This works because inverting all inputs of a full adder also inverts all of its outputs.