I just completed the 4 Way, 16 Bit Mux gate using 3 gates. However, the way I thought it should work did not work, so I switched a couple of things it worked. But I cannot figure out why. I was wondering if there was somebody to whom I could message / email my code and have them look it over and possibly explain it to me.
Never mind I figured it out. I thought the selector bits were ordered differently in the array.
Wires on buses are numbered like bits in registers -- 0 through N-1 starting from the right. This way bit i in the register and wire i on the bus are the 2i weighted bit in the binary value in the register.
Can you elaborate a little bit please. I'm sorry, but that was slightly over my head. Though maybe once I work through a few more chapters I will understand it better. I understood everything until that last bit.
In chapter 2 you will learn how numbers are represented by computers in base-2 (also called binary).
For example, when the number 1234 is stored in a 16-bit register, the individual bits in a the register are
0000 0100 1101 0010
The bits are numbered starting with 0 on the right. The left-most 1 bit in this particular number is bit 10, and it contributes 210 = 1024 to the number's value.
Buses are always treated as if they were carrying numbers, so their wires are numbered the same was a bits. This is why when sel=100 (binary), the individual wires are sel=1, sel=0 and sel=0.