This applet simulates 4x4, 6x6, and 8x8 Wallace Tree multipliers. A Wallace Tree is a combinatorial circuit used to multiply two numbers. Although it requires more hardware than the shift-add multipliers, it produces a product in far less time. Instead of performing additions using standard parallel adders, Wallace Trees use carry save adders and only one parallel adder. A carry save adder can add three values simultaneously, instead of just two. However, it does not output a single result. Instead, it outputs both a sum and a set of carry bits. The partial products of the multiplication serve as the inputs to the carry save adders; the final output of the tree is the product of the multiplier and multiplicand.
See Chapter 8 of Computer Systems Organization and Architecture for additional information on Wallace Trees.