Detailed Description

Hardware Overview

The figure below illustrates the various hardware components that are located on the top-side of the FPGA Drive FMC Gen4.

FPGA Drive FMC Gen4 labelled top-side

The main components on the top-side of the mezzanine card are:

  • 2x M-key M.2 socket connectors (for the SSDs)
  • High Pin Count FMC Connector
  • 2K EEPROM
  • 2x PCIe Clock oscillators (100MHz)
  • Switching regulator

The figure below illustrates the various hardware components that are located on the bottom-side of the mezzanine card.

FPGA Drive FMC Gen4 labelled bottom-side

The main components on the bottom-side of the mezzanine card are:

  • FMC Power indicator LED
  • Switching regulator power indicator LED
  • SSD activity LEDs
  • Test points for power supplies

M.2 connectors

The NVMe PCIe SSDs connect to the mezzanine card through 2x M-key M.2 connectors ( Amphenol, PCIe M.2 connector, MDT420M02003 ).

The pinout of the M.2 connector is shown in the table below:

Pin #Pin nameConnectionPin #Pin nameConnection
1GNDGND23.3V3V3
3GNDGND43.3V3V3
5PER-N3SSD2FPGA_3_N6N/CNC
7PER-P3SSD2FPGA_3_P8N/CNC
9GNDGND10DAS/DSS#/LED1#DAS/DSS#
11PET-N3FPGA2SSD_3_N123.3V3V3
13PET-P3FPGA2SSD_3_P143.3V3V3
15GNDGND163.3V3V3
17PER-N2SSD2FPGA_2_N183.3V3V3
19PER-P2SSD2FPGA_2_P20N/CNC
21GNDGND22N/CNC
23PET-N2FPGA2SSD_2_N24N/CNC
25PET-P2FPGA2SSD_2_P26N/CNC
27GNDGND28N/CNC
29PER-N1SSD2FPGA_1_N30N/CNC
31PER-P1SSD2FPGA_1_P32N/CNC
33GNDGND34N/CNC
35PET-N1FPGA2SSD_1_N36N/CNC
37PET-P1FPGA2SSD_1_P38DEVSLPGND
39GNDGND40SMB_CLKNC
41PER-N0SSD2FPGA_0_N42SMB_DATANC
43PER-P0SSD2FPGA_0_P44ALERT#NC
45GNDGND46N/CNC
47PET-N0FPGA2SSD_0_N48N/CNC
49PET-P0FPGA2SSD_0_P50PERST#PERST#
51GNDGND52CLKREQ#NC
53REFCLK-NREFCLK_SSD_N54PEWAKE#NC
55REFCLK-PREFCLK_SSD_P56RSVDNC
57GNDGND58RSVDNC
67N/CNC68SUSCLKNC
69PEDETPEDET703.3V3V3
71GNDGND723.3V3V3
73GNDGND743.3V3V3
75GNDGND

EEPROM

The EEPROM ( ST, 2K EEPROM, M24C02-FDW6TP ) stores IPMI FRU data that can be read by the carrier board and contains the following information:

  • Manufacturer name (Opsero Electronic Design Inc.)
  • Product name
  • Product part number
  • Serial number
  • Power supply requirements

The FRU data is read by some carrier boards to determine the correct VADJ voltage to apply to the mezzanine card. All Opsero FMC products have their EEPROMs programmed with valid FRU data to allow these carrier boards to correctly power them.

High Pin Count FMC Connector

The FPGA Drive FMC Gen4 has a high pin count (HPC) FMC (FPGA Mezzanine Card) connector for interfacing with an FPGA or SoC development board. The part number of this connector is Samtec, High pin count FMC connector, Module side, ASP-134488-01 . This HPC FMC connector can be mated with LPC, HPC or FMC+ carrier connectors.

The pinout of this connector conforms to the VITA 57.1 FPGA Mezzanine Card Standard (for more information, see Pin configuration. For more information on the FMC connector and the VITA 57.1 standard, see the Samtec page on VITA 57.1 .

I/O Interfaces

The FMC connector provides power to the FPGA Drive FMC Gen4 and also presents the following I/O signals to the FPGA fabric of the development board:

  • 2x 4-lane PCIe interfaces for the SSDs
  • 2x PERST active-high reset signals (driven by FPGA)
  • 2x PEDET detect signals (driven by mezzanine card)
  • 2x LVDS 100MHz PCIe reference clocks
  • I2C for EEPROM R/W access

The 2x 4-lane PCIe interfaces are routed to independent gigabit transceivers on the FMC connector for maximum throughput. The figure below illustrates the main connections to the FMC connector. Note that the PERST signals pass through FETs for inversion and level translation, however this circuit is left out of the diagram for clarity.

FMC Connector

PCIe interfaces

The 4-lane PCIe interfaces are routed to FMC pins that are dedicated to gigabit transceivers. The connections are shown in the tables below. Note that in this documentation, the label for the first SSD is SSD A (or SSD1) while the second SSD is SSD B (or SSD2).

SSD A (SSD1)

DirectionPCIe laneFMC PinFMC nameNet name
SSD-to-FPGA0C6/C7DP0_M2C_P/NSSDA2FPGA_0_P/N
1A2/A3DP1_M2C_P/NSSDA2FPGA_1_P/N
2A6/A7DP2_M2C_P/NSSDA2FPGA_2_P/N
3A10/A11DP3_M2C_P/NSSDA2FPGA_3_P/N
FPGA-to-SSD0C2/C3DP0_C2M_P/NFPGA2SSDA_0_P/N
1A22/A23DP1_C2M_P/NFPGA2SSDA_1_P/N
2A26/A27DP2_C2M_P/NFPGA2SSDA_2_P/N
3A30/A31DP3_C2M_P/NFPGA2SSDA_3_P/N

SSD B (SSD2)

DirectionPCIe laneFMC PinFMC nameNet name
SSD-to-FPGA0A14/A15DP4_M2C_P/NSSDB2FPGA_0_P/N
1A18/A19DP5_M2C_P/NSSDB2FPGA_1_P/N
2B16/B17DP6_M2C_P/NSSDB2FPGA_2_P/N
3B12/B13DP7_M2C_P/NSSDB2FPGA_3_P/N
FPGA-to-SSD0A34/A35DP4_C2M_P/NFPGA2SSDB_0_P/N
1A38/A39DP5_C2M_P/NFPGA2SSDB_1_P/N
2B36/B37DP6_C2M_P/NFPGA2SSDB_2_P/N
3B32/B33DP7_C2M_P/NFPGA2SSDB_3_P/N

Reference clocks

The mezzanine card has two clock oscillators ( MicroChip, 2x Output PCIe Clock Generator, DSC557-0334FI1 ), one for each SSD. Each clock oscillator generates two synchronous 100MHz clocks; one LVDS and the other HCSL. The LVDS clocks are fed to the FMC connector, while the HCSL clocks are fed directly to the SSDs.

Synchronous toFMC PinFMC nameNet name
SSD AD4/D5GBTCLK0_M2C_P/NREFCLKA_FPGA_P/N
SSD BB20/B21GBTCLK1_M2C_P/NREFCLKB_FPGA_P/N

PERST

The PERST_A and PERST_B signals are active-high reset signals of SSD A and SSD B respectively, and they are driven by the FPGA. The FPGA drives these signals at VADJ voltage levels, while the SSDs require 3.3VDC active-low signals. For this reason, the mezzanine card has two FET based inverter circuits to perform the level translation and the signal inversion. The FPGA design should drive these signals active-high as shown in the table below:

PERST_A/BFunction
0 (LOW)SSD operational
1 (HIGH)SSD in reset

PEDET

The PEDET_A and PEDET_B signals are outputs of the mezzanine card and they can be read by the FPGA if so desired. The purpose of the signal is to indicate whether the connected SSD has a PCIe or SATA interface. The functionality of the output is described in the table below:

PEDET_A/BFunction
0 (LOW)SATA
1 (HIGH)PCIe

This signal is not used in our example designs and is not required if only using NVMe PCIe SSDs.

Power Supplies

All power required by the FPGA Drive FMC Gen4 is supplied by the development board through the FMC connector:

  • +12VDC
  • +3.3VDC
  • +3.3VAUX (for powering EEPROM only)
  • VADJ: +1.8VDC

The mezzanine card powers the first SSD and it’s clock generator using the FMC’s 3.3VDC supply. It has a switching regulator to power the second SSD and it’s clock generator using the FMC’s 12VDC supply.

Power supplies

12VDC Supply

The 12VDC supply is used to power the second SSD (SSD B/SSD2) via a buck switching regulator ( TI, 3-17V 2-3A Buck Converter, TPS62913RPUR ). The switching regulator converts the 12VDC supply to a 3.3VDC supply which powers SSD B (SSD2) and its corresponding 100MHz clock oscillator. The switching regulator can be disabled by driving the DISABLE_SSD2_PWR pin as described in the table below:

DISABLE_SSD2_PWRFunction
0 (LOW)SSD B power enabled
1 (HIGH)SSD B power disabled

The DISABLE_SSD2_PWR is controlled via the LA07_P pin of the FMC connector. The mezzanine card has a pull down resistor to hold this pin to ground, enabling the switching regulator, if it is not driven by the FPGA.

An LED indicates when the switching regulator is enabled (ie. when SSD B has power), and it can be seen in the labelled bottom view of the board above.

3.3VDC Supply

The 3.3VDC supply provides power for the first SSD (SSD A/SSD1) and the corresponding 100MHz clock oscillator.

VADJ Supply

The adjustable voltage supply (VADJ), is the I/O voltage that is supplied by all standard FMC carriers. The FPGA Drive FMC Gen4 can accept any VADJ voltage in the range of 1.2V to 3.3V. The mezzanine card has an onboard FRU EEPROM that specifies acceptance of any VADJ voltage within the range 1.2V to 3.3V (see note below). All carriers with a power management system will read this EEPROM on power-up and apply a voltage in the range specified by the EEPROM. Note that some development boards require the VADJ voltage to be configured by a DIP switch or jumper placement, in which case we suggest that it be set to 1.8V.

Power LED and testpoints

Two red LEDs on the mezzanine card are used to indicate when the required power supplies are active. The location of these LEDs can be seen in the labelled bottom view of the board above. The main LED in the middle of the board indicates when the FMC’s 12VDC, 3.3VDC and VADJ voltages are active. The second LED indicates when the 3.3VDC supply generated by the switching regulator is active (ie. when the second SSD is powered).

To aid hardware debug, test points are accessible on the bottom side of the mezzanine card for each of the power supplies of the FPGA Drive FMC Gen4.