Chargement…
Chargement…
Réutilisez un étage carry-save de 18 bits pour absorber une opérande par cycle. Conservez séparément les bits de somme et de retenue afin de ne pas propager la retenue pendant les compressions. Après la quatrième opérande, effectuez une seule addition avec propagation pour produire le résultat.
Mémorisez les quatre entrées sur i_start quand le bloc est libre. Gardez o_busy='1' pendant les quatre compressions, puis produisez o_done pendant un cycle. Le reset synchrone actif à l'état haut efface tout l'état.
Le testbench vérifie des motifs de bits différents, le zéro, la somme maximale et l'impulsion de fin.