The core reports "Channel up" and I seem to receive data, even though I disconnect the signal from the receiver pins (RXN/RXP). This happens in hardware and can also be reproduced in simulation.
How is this possible?
The Virtex-4 MGT requires a calibration circuit to be active when no input signal is present to prevent the MGT from getting damaged. The calibration circuit gets enabled through the "RX_Signal_detect" signal.
Once the calibration circuit is activated, by pulling the "RX_signal_detect" signal Low, it puts the MGT in serial loopback to keep the receiver circuit active.
Data that is sent on TX of that MGT is therefore also received on the RX side.
The data that seems to be received is really the data that is sent on the TX side of the same MGT.