Did the 'OBUFDS' primitive not give you 2 output pins? Did you read and understand the datasheet?
EG:
OBUFDS #(
.IOSTANDARD("DEFAULT")
) OBUFDS_inst (
.O(oSignal),
.OB(oNSignal),
.I(rSignal)
);
Careful, this will only work with specific sets of paired IO pins.
Now if you messed up and didn't use the premo differential IO pairs, then you will need to switch to this 'Pseudo Differential SSTL' io standard...
OBUFDS #(
.IOSTANDARD("DIFF_SSTL3_I") // or .IOSTANDARD("DIFF_SSTL3_II")
) OBUFDS_inst (
.O(oSignal),
.OB(oNSignal),
.I(rSignal)
);
This change in differential IO standard should allow you to use almost any 2 paired IO pins on the entire FPGA.
Funny enough, Altera's differential IO buffer has the similar features and limitations except they call their any pin differential IO 'emulated differential' instead of 'pseudo differential' as read in Xilinx's 'Spartan-6 FPGA SelectIO Resources User Guide (UG381)', page 26.
The 'pseudo differential' should give you the full 3.3v swing on un-loaded outputs like a normal 3.3v LVTTL output with near 0 delay between the N&P outputs with the possible exception that the rise and fall speed will slightly differ due to differences in sink and source current capabilities of the IO pin. This is where the true-differential outputs are king, except, for those IO standards, you require specific load and termination to get that balanced output, hence, the loss in output voltage swing.