How does one go about thinking about designing digital logic chips in an abstract way?
I'm currently working through "The Elements of Computing Systems" I'm in the first chapter, and I've implemented the following gates, starting from Nand.
Not
And
Or
Xor
Mux
DMux
16bit Not
16bit And
16bit Or
16bit Mux
8 way Or
I'm now stuck trying to implement a 16 bit four way Mux.
I've tried converting the truth table into canonical notation, but I end up with a gigantic mess. Using canonical representation worked well for "smaller" chips, but is now immensely complicated. How can I think about putting together a "complicated" chip in a way that doesn't involve just mashing together random chips?
Edit:
I'm not really confused about the 16 bit part of the four way Mux. I planned on just using a bunch of four way Muxes in an array. The 4 way mux is the part I'm stuck on.