#MCell 4.20 #GAME Rules table #RULE 1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,0,3,3,3,3,3,3,3,3,3, #RULE 0,3,1,1,3,3,3,3,3,3 #BOARD 400x200 #WRAP 0 #CCOLORS 4 #PALETTE BmpColors #D Design by Nyles Heise (nylesheise@yahoo.com). Previous multipliers #D by Nick Gardner and Karl Scherer. #D #D This is 32-bit by 32-bit binary muliplier producing a 64 bit product. #D Two versions are given. The compact version is crammed into the #D minimum area I could get to (you may be able to do better). The #D expanded version has the component separated and labeled, to give a #D better view of what's going on. #D #D A is the multiplicand, 252 cells. B is the multiplier, 124 cells. #D C is the product, 256 cells in the expanded version. FA is a single #D full adder. Gate is used to gate the bits of A into FA when the #D corresponding bit of B was on. Also turns off the B bit after it #D has been used. Clock tells Gate when to look at B. It's a fill-empty #D ring counter, 128 cells and a period of 252 cycles. #D The first partial result appears in the expanded verion in C after #D 205 cycles, next in another 256, and so on. Final product in a total #D of 8141 cycles. 8116 is the compact verion, some bits always in the FA. #D #D The design uses 4-tick logic elements. 6-tick takes 50% more space for #D the loops and 50% more overall time. All the normal logic elements #D are available in 4-tick (OR, XOR, AND, INVERT, R-S LATCH, T LATCH). #D The 4-tick INVERTER is shown bottom left. Note it takes less area than #D 6-tick. #D #L .C6.3C.3C.C3.3C.3C.3C.3C.3C9.CC6.3C.3C..C3.C..3C..CC..CC..3C$C.C.3C.C #L 3.C3.CC..C5.C.C3.C5.C9.C.C.3C.C3.C3.C.C.C.C3.C4.C3.C.C.C$3C5.CC..CC.. #L 3C.CC4.C.3C.CC4.C9.CC6.CC..CC..3C.C.C..CC3.C3.C..3C$C.C.3C.C3.C5.C.C5. #L C3.C.C5.C9.C.C.3C.C3.C3.C.C.C.C3.C..C3.C5.C$C.C5.3C.C5.C.3C3.C.CC..3C #L 3.C9.CC6.3C.C3.C.C..C..3C..3C.3C3.C3$.C6.CC..3C.3C.3C.3C.3C.3C.3C.3C. #L 3C.3C.3C.3C.3C.3C.3C$C.C.3C.C.C.C3.C3.C3.C3.C3.C3.C3.C3.C3.C5.C.C3.C3. #L C3.C$C7.C.C.CC..CC..CC..CC..CC..CC..CC..CC..CC..CC4.C.CC..CC..CC..CC$C #L .C.3C.C.C.C3.C3.C3.C3.C3.C3.C3.C3.C3.C5.C.C3.C3.C3.C$.C6.CC..C3.C3.C3. #L C3.C3.C3.C3.C3.C3.C5.C.C3.C3.C3.C4$91.23C$90.C23.C$90.C..21C$90.C.C$ #L 90.C..31C$3C.C3.C.CC3.C..C3.C.CC..3C.CC56.C33.C$C4.C.C..C.C.C.C.CC..C. #L C.C.C3.C.C55.C..31C$CC4.C3.CC..3C.C.C.C.C.C.CC..C.C55.C.C$C4.C.C..C3.C #L .C.C..CC.C.C.C3.C.C55.C..BACCBACCBA6CBACCBACCBACCBAC$3C.C3.C.C3.C.C.C #L 3.C.CC..3C.CC56.C33.C$90.C..5CABCCABCCAB10CAB4C$90.C.C$90.C..4CBACCBA #L CCBA6CBA6CBAC$90.C33.C$91.3CABCCABCCAB10CABCCABCCAB$93.C$93.C5.C3.C5. #L 3C..C$93.C4.C.C.C.C6.C..C$63.3C..C8.CC3.C..3C.3C.C4.3C.C.C.CC..CC..C$ #L 63.C3.C.C6.C4.C.C..C..C3.C4.C.C.C.C6.C..C$63.CC..3C6.C.CC.3C..C..CC..C #L 4.C.C..C5.3C.3C$26.C3.C5.C3.3C20.C3.C.C6.C.C..C.C..C..C3.C$25.C.C.C.C #L 4.C5.C20.C3.C.C7.CC..C.C..C..3C.C$25.C3.C.C.CC.3C..CC50.C$25.C.C.C.C4. #L C.C3.C23.C.B.C.11C.9C$26.C3.C5.3C.3C15.10C.ACC11.C$57.C8.B.C.C11.3C14. #L CC..3C..C6.C$12.31C13.C5.CC..A4.C11.C15.C.C3.C..C5.C.C$11.C43.C5.C..5C #L AB12.C15.CC3.CC..C..CC.C.C$12.31C11.C7.C4.C15.C15.C.C3.C..C5.C.C$43. #L 11C6.C.C.4CBA13.C15.CC..3C.3C5.C$12.31C16.C.3C3.C..C12.C4.3C.C$11.C47. #L C..C3.B.C.C12.C.C.C3.CCAB.CABCCAB6CABCCABCCABCCABCC$12.31C16.C7.A.CCB #L 12.3C3.C.C..C29.A$43.C15.C3.C.C.C..C.A10.C.C..B.A4.B..18CBA6CB$12.31C #L 17.C.A6C.C.C11.C..C.ABB.C.A.C$11.C47.CCB.C.C.C..C.C10.3C..C..BACC3.11C #L ABCCAB10C$12.31C17.C3.C3.CC..B11.A5.C..C.C29.A$43.C15.B.C3.C5.A11.B.CC #L BAC5.C..CCBA6CBA14CB$12.31C17.A4.6C12.C11.C.C$11.C54.C16.C11.C.C$12. #L 54C17.A12.C$83.B$83.C$83.C5.C..C4.C3.C..C..C$83.A4.C.C.C3.C.C.C.C.C.C$ #L 83.B4.C3.C3.C.C.C3.CC$83.C.A..C.C.C3.C.C.C.C.C.C$82.3C.B..C..3C..C3.C #L ..C..C$81.C.C.C$81.C$78.CC.C3.7C$77.A..C3.C7.C$76.B..3C..A3.4C$75.A.C #L ..C3.B..C$75.C..C.A.B..C..3C$75.C..C..BBCC6.C$76.CC.CC.B..6C7$9.3C.C. #L CC3.CC.3C3.CC3.C..CC..3C.C..C..C5.CC..CC3.C..CC..C.C..C..3C6.CC3.C..3C #L 4.C..C.C..C..C3.3C..CC$9.C3.C.C.C.C4.C4.C.C.C.C.C.C..C..C.C.C.C5.C.C.C #L .C.C.C.C.C.C.C.C.C..C9.C.C.C.C5.C.C.C.C.C.C.C3.C3.C$9.CC..C.CC3.CC..C #L 4.CC..3C.CC3.C..C.3C.C5.CC..CC..C.C.C.C.C.C.C4.C8.C..C.C.CC4.C4.C..C3. #L C3.CC3.CC$9.C3.C.C.C3.C..C4.C3.C.C.C.C..C..C.C.C.C5.C3.C.C.C.C.C.C.C.C #L .C.C..C7.C3.C.C3.C3.C.C..C..C.C.C3.C5.C$9.C3.C.C.C.CC3.C4.C3.C.C.C.C.. #L C..C.C.C.3C3.C3.C.C..C..CC3.C3.C3.C7.3C..C..CC5.C3.C3.C..3C.3C.CC4$9. #L 3C.C.C.3C.C3.C3.3C.C.C.3C.CC..C.C42.CC..3C.C6.C..C.C..C..C3.3C..CC$10. #L C..C.C.C3.CC..C3.C3.C.C.C3.C.C.C.C44.C.C3.C5.C.C.C.C.C.C.C3.C3.C$10.C #L ..3C.CC..C.C.C3.CC..C.C.CC..CC3.C44.C..CC..3C3.C4.C..C3.C3.CC3.CC$10.C #L ..C.C.C3.C..CC3.C3.C.C.C3.C.C..C43.C5.C.C.C3.C.C..C..C.C.C3.C5.C$10.C #L ..C.C.3C.C3.C3.3C..C..3C.C.C..C43.3C.CC..3C4.C3.C3.C..3C.3C.CC4$9.3C.C #L .C3.C..C..C5.CC..CC3.C..CC..C.C..C..3C33.C..C.C3.C4.C..C.C..C..C3.3C.. #L CC$9.C3.C.CC..C.C.C.C5.C.C.C.C.C.C.C.C.C.C.C.C..C33.C.C.C.CC..C3.C.C.C #L .C.C.C.C3.C3.C$9.CC..C.C.C.C.3C.C5.CC..CC..C.C.C.C.C.C.C4.C34.C..C.3C. #L C3.C4.C..C3.C3.CC3.CC$9.C3.C.C..CC.C.C.C5.C3.C.C.C.C.C.C.C.C.C.C..C33. #L C.C.C..C..C3.C.C..C..C.C.C3.C5.C$9.C3.C.C3.C.C.C.3C3.C3.C.C..C..CC3.C #L 3.C3.C34.C..C..C..C4.C3.C3.C..3C.3C.CC