Ok, here is what I have. I have created a separate Mux4, which uses a selector to pick one out of four values. And after that, I am calling it 16 times in the Mux4Way16. However, it only displays 1 when the selector is 11... I have uploaded the files. Could someone please help me?
Guys, I thank you very much for your suggestions. Indeed, I have the theory in mind. But here is my problem. I have decided to use a Mux for a and b, and c and d respectively, using the second digit of the selector as the selector.
This gives the following ouput
0 0 a c
0 1 b d
1 0 b c
1 1 b d
After that, I decided to use Mux on the results, using the same selector. Mux(a, c, sel). This will work for only three of them, however. It will work for the first, the third and the last pair. But instead of selecting b in the second one, d will get selected. I cannot work it out... no matter what I use. And, Or, XOR. It is the same. What am I doing wrong? What could be the third HDL line? I am not trying to get the solution for free, since I am working as hard as I can to figure it out.
This is just to inform the others that the problem has been solved. I was confused by the fact that everything starts from the right. So if I have x, y, z in an array called A, then, in order to access z, it's going to be A, not A, as you would use in C++ or any other modern programming languages and architectures. So if anyone has a confusion about this, know that 0 is the rightmost bit. Problem solved and thank you, Cadet.