Gazza wrote
Ok sorry for being stupid about something that should be so simple
No, not stupid! (Trust me, I'm the dumbest person on the forum and I can prove it.)
As Mark says above, be sure you have implemented Not16 before And16.
Notice how Not16 has one 16-bit input, and one 16-bit output.
And16 has two 16-bit inputs, a and b. Where do you connect a0 - a15 to? And where do you connect b0 - b15 to?
Gazza wrote
but if a 16bit input (i.e. 1010101010101010) is sent down a bus that has 32 wires which inputs of the 32 that the AND gate has receive these signals and what happens to the other inputs.
In a nutshell, this really would not happen as you describe. But to answer your question, "which inputs of the 32 that the AND gate has receive these signals?" the answer is, well, we don't know, as you haven't specified which wires are carrying significant information; and to answer "what happens to the other inputs?" you can probably assume that they would be 0. But again, things just aren't used this way.
Let me give you one more illustration. A basic And gate receives two inputs. If both inputs are 1, then the output is 1, correct? A 16-bit And also receives two inputs, and each of these inputs are buses consisting of "16 wires" each. Bus
a consists of 16 wires, and bus
b consists of 16 wires. For each pair of corresponding wires between the a and b buses, the And16 will perform a logical AND operation, and the resulting output will be sent on the corresponding wire within the 16-bit
output bus.
For example, if wires a0 and b0 are 1, then out0 will be 1. If wires a10 and b10 are 1, then out10 will be 1.
Take the time to draw this on paper, after you have completed Not16.