HDL is connecting wires together, not assigning variable values. This is an important distinction.
The signal name on the left of the '=' is a signal (I/O pin) in the part being used; the name on the right is a signal (I/O pin or internal wire) in the part being designed.
Read the 
Hardware Construction Survival Kit and 
Helpful HDL Philosophy.
[Forum etiquette is not to post complete solutions. Please edit your post to remove the correct solution to And.]
--Mark