I have the mode pins tied to ground using external pull-down resistors. Why do the pins have a (non-zero) voltage?
Spartan-3 devices have an internal pull-up on the mode pins to make slave serial the default mode if the pins are left unconnected. These internal pull-ups are stronger than previous families (see (Xilinx Answer 19024) to calculate the effective resistance).
The strength of the internal pull-up and pull-down resistors is defined by the parameters Irpu and Irpd in the Spartan-3 Data Sheet, found at:
To ensure that the mode pin senses a low (or logic '0'), the voltage must be below the maximum value for the Vil (where VIL is the input voltage that indicates a Low logic level).
The mode pins are LVCMOS25. From the Spartan-3 Data Sheet, Vil max for the LVCMOS25 standard is 0.7V.
Therefore, the external resistor (Rext) must be Rext < (0.7 V/ Irpu) where Irpu is the current through the pull-up resistor.
For example, if Irpu is 1.41 mA, then Rext must be less than 496 ohm (for example, 470 ohm).