Every FPGA and Programmable Logic SoC development board has the ability to plug in add-on boards to expand the functionality of the basic board. When you are deciding on which board to use for your own learning or proof-of-concept, it's important to consider if you will be easily able to add on the additional circuitry that you need for a complete system.
My purpose with this blog is to discuss 6 different expansion standards that I've seen on these various boards and where you can get more information. I'll divide these up into two categories -- low-speed and high-speed.
Low-Speed
The three low-speed expansion standards that I'll discuss are all based on 0.1" style pins and headers. These are still extremely useful for adding any kind of circuit based on I2C, UART, SDIO, or SPI. These are also the least expensive add-on boards to purchase and have the largest portfolio of offerings.
Pmod
Digilent invented the Peripheral Module or Pmod. The original Pmods were 1x4 and 1x6 headers and sockets with small add-on modules, but these expanded to 2x6 and even dual 2x6 type modules. You will find Pmod sockets on many, many boards, including
ZedBoard , MiniZed , MicroZed , and Arty-S7.
The Pmod standard definition is hosted on the Digilent website here:
https://reference.digilentinc.com/pmod/start
You can see one way that sensing capability was added to the MiniZed by adding a TE Sensor in this Path to Programmable training:
Path to Programmable Blog 13 - Xilinx Libraries, the TE Sensor PMOD & Next Steps
Here's a photo of the TE HTU21D Pmod installed on MiniZed.
Click
The Click standard was invented by MikroElektronika. This is a 16-pin standard, aligned in two separate 1x8 strips, with a fixed pinout, as shown in this image of the 96Boards Click Mezzanine.
I wrote about Click Boards back in December 2020 when they had 974 different add-on boards in the portfolio. Now there are an astounding 1044!
Click boards -- The Biggest Add-on Board Collection in the World
Arduino Shield
This next one will be familiar to many of you who may not be familiar with FPGAs, and it may surprise the FPGA-experienced that these are compatible with any Xilinx board. While we don't find the Shield on many boards, it does exist on MiniZed and the MicroZed Carrier Card Kit for Arduino . I personally don't have a lot of experience with Arduino Shields and Xilinx boards, but I have found it to be very useful specifically when we want to connect to ST Micro Sensors, like the X-Nucleo series. The photo below is an example Industrial IoT design that we did at Avnet featuring the ST Micro X-NUCLEO-IKS01A1 and a Maxim MAX31855 Pmod.
High-Speed
I will also discuss three high-speed expansion standards. These all use specialized connectors capable of much higher frequencies.
96Boards Mezzanine
The 96Boards Mezzanine expansion should technically be included in both high- and low-speed categories because it consists of two different connectors. The Low-Speed (LS) expansion is a 40-pin 2mm pitch header. The High-Speed (HS) expansion is a 60-pin, 0.8mm pitch connector. Currently, one board supports the 96Boards Expansion, and that is Ultra96-V2 (also the Ultra96-V1 which is now obsolete). You can read more about this standard in the 96Board Consumer Edition Spec.
The LS Expansion provides the same type of low-speed interconnect as Pmod -- SPI, UART, I2C, GPIO. You can see an example of a LS Mezzanine with the 96Boards Click Mezzanine Starter Kit . The Mezzanine interfaces the LS Expansion to two MikroE Click Sockets.
The HS Expansion was originally intended to deliver high-speed differential MIPI display and camera signals. However, since the Ultra96-V2 uses the versatile PL I/O for this, it could be repurposed for any high-speed interface supported by the PL. I know of two examples making use of the HS Expansion.
Avnet's 96Boards ON Semiconductor Dual Camera Mezzanine uses the default MIPI pin-out defined by 96Boards to provide two image sensors inputs to the Zynq UltraScale+.
Opsero has also developed an industrial networking mezzanine for the HS Expansion
https://opsero.com/product/96b-quad-ethernet-mezzanine/
Syzygy / Zmod
The next high-speed standard is one invented by Opal Kelly called Syzygy. This is the newest of all the standards discussed in this blog. Because of that, the portfolio is small, but the idea definitely has merit and you can expect to see this become more popular quickly. You can read more about Syzygy here:
Digilent has been active in designing Syzygy port onto their boards. They have nicknamed their Syzygy modules as "Zmods" which plays on their previous "Pmod" standard. Check out this blog that Digilent wrote about Zmods.
Introducing Digilent Zmods: Cost-effective high-speed I/O expansion modules for FPGA boards
FMC
The FPGA Mezzanine Connector or FMC was an industry consortium defined by Vita. The original standard was Vita 57, and advancements have now taken it to Vita 57.4. You can find the definition for this standard here:
Every high-end Xilinx board has FMC, including the Xilinx ZCU boards as well as Avnet'sUltraZed-EG PCIe Carrier Card and UltraZed-EV Carrier Card . You will also find this on ZedBoard , FMC Carrier Card For MicroZed Evaluation Kit , and PicoZed FMC Carrier Card v2 .
The FMC delivers high-speed differential signals, transceivers, and a lots of power. To implement it correctly on a development board requires an investment of 20+ A of power to support it. FMC comes in two varieties: Low-Pin Count (LPC) and High-Pin Count (HPC). One example of an LPC FMC card implementation adds dual wired gigabit ethernet to a system:
Integrating a Microchip Gigabit Ethernet PHY into the Xilinx FPGA Ecosystem - Hardware
Here's another one with Quad Cameras.
Multi-Camera FMC Module, 4 x 2Mpixel (FMC module only)
Summary
Hopefully this has given you a good overview of the various ways to expand the native capability of your FPGA/SoC development board.
Which expansion mechanisms are you all using with your projects? Please comment below!