| Sqrl said: I like the design but what program is that? It doesn't look like MultiSim and I wasn't aware that there were other programs out there =P The only reason I ask is because I know with multisim you can "block" a lot of the redundant parts and make the design cleaner.
If you're just doing this for practice you should do one with some "look-ahead" adders. |
There's a ton of programs available. This one is called LogicWorks, and I got it at the campus bookstore for $40 (it was required for my course). It's a little bit clunky, but it does the job well.
I did a 4-bit adder with carry look-ahead and used that to make my 4-bit multiplier:
I went ahead and made an 8-bit adder out of two of the look-ahead ones. Also realized I could use incrementers for part of my multiplier design, so I rolled one of those. I should have learned the look-ahead principle on incrementers first, where it's easier to understand how it works. It took a while for me to convince myself that the propogate signals could be generated independently from one another.
The multiplier design could have benefited from grouping the signals, but I was tired. :)
I had myself pretty well confused for a while as to where I did and did not need to handle carries in this design. I'm not convinced that I need both of the two incrementers at the top, because I don't know if it's possible for both carry-ins to be set at the same time (if not, I could just OR them and get by with only one incrementer).
Just need to wire up an adder-subtractor now and make an ALU. :) What's driving me nuts isn't figuring out the logic or stringing it together; it's making the darn MUXes! I had to make an 8-bit-wide 4-to-1 MUX for my shift register, and naming all those pins... argh...







