• 0

FMC Connector as a general I/O port


Question

I have an I/0 limited application and looking through the Digilent catalog I find several boards with FMC/HPC connectors and am wondering if the pins can be used as general I/O ports. For example, the Genesys-2 board.

If so, can you recommend a mezzanine card to communicate signals to and from the FMC connector?

Cheers,

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0
15 hours ago, rzsmi said:

wondering if the pins can be used as general I/O ports.

Absolutely yes.

The Xilinx HW-FMC-105-DEBUG board presents most of the IO to 0.1" headers for easy access though none are preserved as differential. Cypress Semiconductor has an FMC adapter for its FX3 USB 3.0 development board. If you look around there are more from other vendors. The Nexys Video LPC FMC is compatible with the Genesys2 HPC FMC connector. The LPC just has fewer pins.

It's difficult but not impossible to make your own FMC mezzanine card.

Since you mention the Genesys2, you won't find more FPGA capability for the price. But what the Genesys2 offers is HDMI, mDP, a more robust DDR memory and more FMC options. The Digilent FMC implementations have been well done and I've used a number of FMC mezzanine boards from other vendors with success. Be aware that FMC isn't exactly "plug and Play" in that you have to carefully map the IO to FPGA pins to ascertain compatibility of a mezzanine card to a board. I've run into a few that don't work. Both the Nexys Video and Genesys2 let you explore transceiver development using either the mDP or FMC connector. 

If you need lots of IO and don't need the usual Digilent interfaces like video and a moderate speed USB 2.0 interface I'd suggest looking at Opal Kelly. Their boards aren't quite as 'open' as Digilent's, due to a proprietary USB 3.0 interface, but are well supported and very usable at a somewhat higher price point. One thing that the Opal Kelly route does provide is a way to create a Linux or Windows Application executable that configures the FPGA and takes care of the PC interface in one step.

Lastly, Numato Labs has the Mimas A7 that has HDMI and mDP and a lot of GPIO on .1" headers.

When someone mentions that they need  lot of IO in generic terms this raises more questions, like "What kind of IO do you want?"

The Nexys Video and Genesys2 allow for user selectable Vccio on FMC IO banks on a project basis. This opens up a wide range of IOSTANDARD possibilities like LVDS not available when Vccio is 3.3V.  FPGA boards with SYZYGY compatibility is a good option for anyone needing flexibility in what kind of IOSTANDARD they might want to use for future projects. The SYZYGY standard port connector is not exceptionally hard to work with if you need to make your own custom POD. Unfortunately Digilent doesn't sell a SYZYGY board with transceiver PORTs. I don't know of a ZYNQ based SYZYGY board that I'd recommend based on experience but there are options for Artix based SYZYGY boards.

[edit] If you are looking for a cheap general purpose FPGA board with 3.3V single-ended GPIO that's easy to connect to my personal go-to board is the Terasic DE0 Nano. It is Cyclone IV based so need Quartus. What it has is a very usable SDRAM that's easy to use and two 40-pin .1" headers for connecting to custom PCB interfaces or flying wires for a quick mock-up. The Digilent CMOD boards are an alternative but less useful due to certain unfortunate and unnecessary design decisions.

I've mentioned a lot of vendors and boards that I have experience with but I can't tell you or anyone else which is best for your needs. You likely have a particular project i mind but would like to reuse a purchase for as yet unknown projects. Unfortunately, for the novice this is somewhat of a minefield. It's easy to make a selection with unrealistic expectations.

Edited by zygot
Link to post
Share on other sites
  • 0

I can't thank-you enough for this very informative answer, I really appreciate your taking the time to answer my question.

"What kind of IO do you want?"

The type of IO we are using is simply an array of SPI and UART connections. I think we are up to 14 independent SPI connections and 1 UART connection. Due to the nature of the design we need to keep the connection independent and would like to avoid the overhead of a mux. We started out building this prototype using a Zybo Z7, but are now at a point where there a simply not enough connections. We have jumpered a couple of buttons, the fan on/foff line, and absconded free the Pcam lines. Enough is enough....

Again, many thanks for the info.

Cheers,

Link to post
Share on other sites
  • 0
11 minutes ago, rzsmi said:

The type of IO we are using is simply an array of SPI and UART connections

It's likely that you only need 3.3V Vccio though this depends on what you are connecting to. It's not unusual to run out of GPIO on Digilent boards as they tend to have support limited to the 12-pin PMOD ecosystem. I've used more than one FPGA board to implement a project on many occasions.

One possible solution for you is this project: https://forum.digilentinc.com/topic/20479-inter-board-data-transfer-project/

You could use the differential PMODs to connect to an FPGA board with more IO. Unfortunately, trying to shoehorn functionality into a platform with limited resources adds complexity to the project development effort.

Link to post
Share on other sites
  • 0
3 hours ago, rzsmi said:

I think it will be easier just to transfer to a Genesys-2 board

My personal preference is to only use ZYNQ where is it essential... and that is infrequently. But just be aware that the Genesys2 is not ZYNQ based like your starting point. One additional note: The Kintex 325-T is not supported for free by the tools so you need a license. Fortunately, Digilent supplies a voucher for a limited device license. The license lasts forever on the node-locked development platform where it's installed and allows for 1 year's worth of Vivado tool version changes so plan ahead. The good news is that the part has been around for a while and I've used ISE and the earliest versions of Vivado for development.

Be aware that some Xilinx IP for things like video that were free when the board came out might not be available for free in newer tool versions.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now