Chargement…
Chargement…
Conservez deux vecteurs 18 bits, save et carry. Pour chaque opérande étendue à 18 bits: save_next = save xor carry xor operand, puis carry_next = ((save and carry) or (save and operand) or (carry and operand)) sll 1. Après la quatrième compression, calculez save_next + carry_next.
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.