+ carry-out: o o o o o (5 bits)
+
+ A couple of differences should be noted:
+ - The expanded a/b/o have 2 extra bits added to them. These bits
+ allow the carry-in for the least significant partition to be
+ injected, and the carry out for the most significant partition
+ to be extracted.
+ - The partition bits P and 0 in the first example have been
+ replaced with bits C and I. Bits C and I are set to 1 when
+ there is a partition and a carry-in at that position. This has
+ the effect of creating a carry at that position in the expanded
+ adder, while preventing carries from the previous partition
+ from propogating through to the next. These bits are also used
+ to extract the carry-out information for each partition, as
+ when there is a carry out in a partition, the next most
+ significant partition bit will be set to 1
+
+ Additionally, the carry-out bits must be rearranged before being
+ output to move the most significant carry bit for each partition
+ into the least significant bit for that partition, as well as to
+ ignore the other carry bits in that partition. This is
+ accomplished by the MoveMSBDown module