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的模式。