Struggling Mux, Dmux, and the Multi-way Mux/Dmux gates
First, a disclaimer - I'm not a student, I'm working on my own through the book in an attempt to better understand the inner workings of computers.
So far, I've done alright implementing some of the chips. Not, And, Or, Xor, and their multibit equivalents were okay, but I'm completely stuck on Dmux4way and all the chips after that, and to be frank I'm not even sure I've done Mux and DMux "correctly". I mean, they pass the test suite, so in that sense they are correct, but the Mux implementation is 10 HDL statements long, with 5 And's, 2 Or's, and 3 Not's. It just doesn't feel right. DMux is built from a Not and 2 And's - is it supposed to use Mux?
As for Dmux4way, well, I've drawn out the truth table for it, and I can see what the canonical representation is, so I could build it all laboriously out of And and Not statements, but I gather that's not really the idea. But I can't see how to construct it from smaller Mux or Dmux gates. I've read through the rest of the related posts on the forums and nothing has really helped. At this point, I'm just feeling a bit stupid.
I could really use a sanity check on what I've done so far, and some help with the Dmux4way. Is there a way to do this without putting spoilers on the forum?