1000BASE-X is intended to go to a SFP. It was intended for point to point electical links on PCB, as well as an interface to 1000BASE-LX and 1000BASE-SX.
SGMII is a serialization of the GMII signals, and was intended to connect a MAC to a PHY.
They ended up having similar features, and many devices ended up supporting both. For example, the Xilinx core supports both. Many ethernet PHYs support both.
For 1000BASE-T SFP+ modules, it looks like there is a similar feature with some modules supporting one or both standards.
Both protocols should work between optical SFP+ modules that are controlled by the FPGA. However, you should make sure that any high/low BW pins on the SFP+ are set correctly, and that the SFP+'s don't require a specific protocol.
Otherwise you should favor the protocol that will work with other devices. This is probably 1000BASE-X.
If you are having issues with 1000BASE-X, make sure all reset/clocking is done. Note that some config values are loaded on edges of the res
来自88E1512 datasheet:
综合上述信息得出:SGMII本身设计是用于MAC和PHY之间连接的协议。和1000BASE-X有很多共同特性,包括编码方式等,但是自协商这部分应该不一样。
都可以用在在光纤中传输,但是要想保证兼容性,和别的设备能够对接的话,使用光纤最好还是用1000BASE-X的模式。