The example projects attached to this document provide Tri-Mode (10M/100M/1G) Ethernet connectivity on the SFP+ ports of the NI PXIe-6592R High Speed Serial Instrument, and the NI 7932R/7935R Controller for FlexRIO. The example projects support the 1000BASE-X and the SGMII standards on the SFP connectors, with 10M/100M/1000M speeds in case of SGMII. Connecting to an Ethernet network requires a media-specific SFP transceiver module installed in the SFP connector, supporting the 1000BASE-X and/or the SGMII standard on the SFP connector.
2021-07-20: Fixed the data reception errors on Port 1 and Port 3, caused by the improper clocking of the IP cores in the Ethernet CLIP.
2020-08-27: Some false path constraints were missing from the Ethernet CLIP, causing the FPGA compilation to fail timing when compiling with LV2020. The attached example projects were updated to include these constraints.
The example projects use a custom FPGA CLIP. The CLIP implements the Ethernet MAC and the interface between the MAC and the SFP connector using the Xilinx Tri-Mode Ethernet MAC IP and the Xilinx Ethernet 1000BASE-X PCS/PMA or SGMII IP (refer to the CLIP top-level vhdl file comments for the IP versions used, and the configuration options used for these IPs). The projects also contain logic implemented on the FPGA for accessing the installed SFP transceiver modules through the SFP Serial ID interface (described in the SFP MSA Appendix B4). The Serial ID interface can be used to identify the installed transceiver module, and depending on the transceiver module, to configure/monitor ASICs located on the transceiver module, such as the physical layer IC (PHY) translating the data between the SFP connector and the optical or copper cable (the example projects demonstrate the configuration of the Marvell 88E1111 PHY in case it is accessible through the SFP Serial ID interface at the device address 0xAC).
The projects also include a host support library (TriModeEthernet support.lvlib) providing VIs for initializing, configuring and monitoring the status of the ports, accessing the registers of the IPs used in the CLIP, and accessing the SFP Serial ID interface. For more information refer to the context help of the library and the library VIs.
The projects are created from the 1G and 10G Ethernet sample projects shipping with the NI LabVIEW 2016 Instrument Design Libraries for High Speed Serial Instruments 16.1, therefore the project structure is almost the same.
There are three top-level FPGA VIs:
There are five top-level host VIs:
The examples were tested using the following SFP transceiver modules:
|SFP transceiver module||Notes|
|MikroTik S-RJ01||Copper, supports SGMII with auto-negotiation only.|
|Intellinet Gigabit RJ45 Copper SFP Transceiver Module P/N: 523882||Copper, uses the Marvell 88E1111 PHY, 1000BASE-X/SGMII with or without auto-negotiation is supported.|
|FINISAR FCLF8522P2BTL||Copper, uses the Marvell 88E1111 PHY, 1000BASE-X/SGMII with or without auto-negotiation is supported.|
|Extralink EX1GRJ45||Copper, uses the Marvell 88E1111 PHY, 1000BASE-X/SGMII with or without auto-negotiation is supported.|