Jump to content

Cmod A7 with more I/O


Recommended Posts

Hi @robfinch,

I can put in a request for such a module, though I don't know if it will ever be created (if it does get created, I hope it will have more than one ground pin).

In the interest of general customer feedback (that you or anybody else is welcome to answer), what is it about the Cmod that you like?

Some reasons I can think of:
- Small form factor
- Price
- Lots of general purpose IO pins that aren't tied to a Pmod/etc form factor (rather than having pins be pre-routed to Ethernet or flash or whatever)
- IO pins are male to make connectivity to other systems/peripherals easy
- Not a Zynq

Besides more IO pins (which maybe gets difficult in terms of layout for such a narrow board, but I'm not a hardware engineer so that might be completely wrong) what sort of hardware details would you want to see on the device? (Keeping in mind whatever you value about the Cmod in the first place, if relevant. Or make a wish list, whichever is fine).

Random things I can think of:
- DDR memory
- Impedance matched signal pairs
- External powering option that doesn't require (de)soldering a component
- USB 3.x communication with the host
- Chip with faster I/O?
- Dedicated processor (i.e. a Zynq)

And probably either the most relevant or second most relevant section with regards to Cmods (presuming that price and form factor are the main reasons people choose a Cmod over any other Digilent board), what do you not want to see on a Cmod / don't care if it's not there?

- DDR memory
- More than 2 buttons (one button is a reset)
- More than 4 LEDs (or more than 1 RGB LED)
- Random peripherals like LEDs, buttons, Pmod port, Ethernet, display adapters, etc
- High end chip with fast I/O
- A Zynq board (DDR memory would come with this as is the nature of Digilent made Zynq based boards)


Link to comment
Share on other sites

You have got me thinking about what I am trying to do. I may be trying to put too much functionality into one CMod. I suppose I could use multiple CMods but that’s a pricey solution.

I like the fact that it can be treated like an IC and embedded into another project without having a huge board and cables. The small form factor appeals to me. It can be used as a prototype to the FPGA chip without having to develop a board. I suggested a 64-pin 0.9” wide dip as it still fits in a breadboard. But a 68 pin PLCC form factor would be okay too; might be harder to prototype with though.

The lots of undedicated I/O pins appeals to me.

I have designed a CModA7 into a single board computer where it is used for miscellaneous functions including address decoding for other devices, so lots of address inputs, serial I/O port, VGA port. Address and data bus, plus read/write and circuit select take 26 pins. There are only 44 digital I/O on a CModA7. I would like to be able to support two or more serial ports (with cts, rts) and more VGA output signals, but there just are not enough pins. Seems like I need jut a few more pins. I would like it also to control a clock generator. And SPI port as well. Random bitstream port. So, some more GPIO’s would be good. Even if there were only a handful more pins some sort of I/O muxing could be done.

Things I do not care about for the CMod:

More switches and LEDs and other random peripherals.

DDR memory.


I have been looking at a ZYNQ board as it has some appeal having the processor on board already.


Link to comment
Share on other sites

  • 1 month later...

Hi @JColvin

Just found this thread. You're asking for feedback on what we'd want from a possible future product.

I'm an avid CMOD-A7 user; I had a base-board made to have proper BNC inputs and outputs, and also a proper 10 MHz reference clock input, and even gigabit Ethernet; see below. The CMOD-A7 with this baseboard has been serving me very well for the last few years. I do a lot of lab work that needs control at the scale of nanoseconds to tens of nanoseconds, and the setup below has been near-perfect and surprisingly versatile for that.

See here for some more info: https://github.com/sidneycadot/cmod-a7-ioboard-dev


If you generally think about future product ideas, an FPGA board with copious BNCs, properly designed to handle up to TTL-level signals both at the in- and output side (with 50 Ohm output impedance and the ability to drive into 50 Ohm sinks, i.e., capable of driving 100 mA at 5V) would be extremely useful in many labs all over the world, and there's currently no good off-the-shelf solution for it.

The lab market is not extremely big, and in my experience many people have a bit of fear when it comes to applying FPGA's (because of their perceived complexity, which is quite well founded), but having an established name like NI/Digilent provide a product for that type of application could provide a non-scary entrypoint for many users. If you're ever considering a product like that, please contact me, I have thought a lot about it so I can help formulating requirements.

As for CMOD-like modules: you already mention a better design of the power (allowing either power-via-USB or power-via-pin without any tinkering); this would help. We found a way to do it but it could have been easier, I suppose this was not considered as the schematic was drawn up. Also, ensuring as many of the pins are connected to clock-capable input pins as possible is super useful, at least for the application I use it for. And, as you say: more ground pins.

One thing that I've been missing on the humble little CMOD module is a way to input a fixed setting in hardware (eg serial baud rate); a small 4-element dip-switch on the board already would be very useful. Other than that, 2 buttons for reset etc and a few leds is plenty, much as it has now.

As to the module itself -- a bigger FPGA option would always be nice, especially one with more BRAM memory. A CMOD based on a newer Artix UltraScale+, especially, would make me very happy. Of course, given the target audience, you'd have to make sure that the device is supported by the non-paid edition of the Xilinx toolset.

If you could add a gigabit Ethernet chip on a small form-factor board that would be super sweet. If possible, pick a chip that has a datasheet that's freely available (not under NDA). The gigabit capability is important: I've made many designs that need to offload quite a bit of data, and having 1 gbit is then a major advantage over 100 Mbit.

Having a standard on-board XO is a mus,t but I'd prefer to have a faster one by default, eg. 100 MHz. The 12 MHz on the current CMOD modules needs an extra MMCM stage for many applications to be able to generate fast clocks.

I love the old-school DIP packaging (very practical to be able to do some breadboarding), and the affordable price. Would be nice if you could keep that, although I would understand the price would have to go up, especially if you would add a beefier FPGA and Ethernet.

I personally like that you guys put some static RAM on the current board, although I could do without if the FPGA itself had a bit more BRAM internally. So that could go, as far as I am concerned. I also have no interest in DRAM, since it is relatively cumbersome to use and the use-cases are few, as far as I can see.

Cheers, Sidney


Edited by reddish
Link to comment
Share on other sites

I would certainly agree that simple FPGA boards in a form factor that makes integrating and FPGA into a PCB that incorporates specific IO design requirements for a particular project objective is something that a lot of people might be interested in. I do this on a regular basis. I would also suggest that the potential market for such a board warrants an attempt at producing such a product. Currently there are no such boards available that are appropriately designed.

"an FPGA board with copious BNCs, properly designed to handle up to TTL-level signals both at the in- and output side (with 50 Ohm output impedance and the ability to drive into 50 Ohm sinks, i.e., capable of driving 100 mA at 5V)" with 1 GbE and no external memory might fit one person's idea of lab a grade product but isn't likely to be something that can be made in a generic form for a wide audience. Even creating a small generic FPGA board with IO pins arranged in a way that is suitable for use as a component on a larger PCB design would be problematic.

Having said that, the CMOD is ok as a hobbyist platform but not close to being this kind of board. I've been using the Terasic DE0 Nano for such projects. I use the sdram, which is cheap and appropriate for such a board. I don't care for SRAM as it's a low bandwidth memory that uses too many FPGA pins. Good luck finding Cyclone V or earlier parts in today's fab environment.

I think that there are 2 separate things being discussed in this thread. One is a robust, well designed, reasonably priced programmable board that can be used as a component in a larger design. The other is a full fledged lab grade product, that I would have no idea how to design that is both general purpose and capable for specific usage. There are certainly Ethernet based products using programmable devices with similar intent, but not any one-size-fits-all-needs products.

The ideal programmable board as component product would be MAX10 based as these devices contain enough on board flash to configure the device, as well as enough resources to be general purpose. Unfortunately, Intel can't produce this product in sufficient quantities to fill the distribution channels... you can't even find a reverence to teh family anymore on the websites of distributors like Digi-Key or Mousers. Also, unfortunate is that Xilinx hasn't been interested in cheap commodity programmable devices for some time now so there are no alternatives to MAX10.

When I look into my crystal ball for the future of low end programmable logic I only see clouds. The two big FPGA vendors are now owned by companies who specialize in very complex very costly devices, not commodity products.

Looking at that picture of a board with all of those BNC connectors and a CMOD-A7 on top certainly make me hope that there are a lof of other devices on thed bottom that I can't see... I think that it shows something that is too good to be true.
Link to comment
Share on other sites

Hi @zygot

You are right that I described essentially two different product ideas.

One would be for a lab-grade FPGA-based product; in particular, one that has a sufficiently powerful FPGA to do interesting things (but by no means a top-end device), proper BNC inputs and outputs for everyday use in the lab, a reference clock input, and a gigabit Ethernet connector -- those would be the major requirements. Since I couldn't find something like that I had it made, but I would much rather have bought something off-the-shelf. But even something as simple as proper BNC input and output drivers cannot be bought as a stand-alone product for a reasonable price, strangely. My board has 8 decent inputs and outputs, and often times I use all (or many) of them.

The idea behind the prototype board was also to get to learn the process of producing small-series PCBs; and there was a lingering idea that a proper product could be made out of this. Turns out the idea to move into hardware production is not something to do lightly so we didn't pursue that; but still the prototype boards (I had two made) turn out to be very useful in everyday work. My job mostly revolves around implementing stuff at the interface between hardware and software (currently, in relation to control of quantum systems, where control in the sub-tens-of-nanoseconds domain is often needed), and having a versatile FPGA board around that I can just hook up to whatever SYNC or TRIGGER pin I come across turns out to be surprisingly useful, even if it is built around the humble CMOD-A7 module.

The other remarks were more directly addressed to @JColvin's request on feedback about a possible future product that would be a follow-up product for the CMOD-A7. It is, indeed, good to point out that this is essentially independent of the "FPGA-in-the-lab" pitch I made before that.


When I look into my crystal ball for the future of low end programmable logic I only see clouds. The two big FPGA vendors are now owned by companies who specialize in very complex very costly devices, not commodity products.

Yes, this is indeed a point of worry for me too. The introduction of the Artix UltraScale+ devices would give some hope, but I have yet to find such a device in the wild.

There could be a point in the future where we'd have to turn to the non-major players like Lattice to see their low-end offerings. But I have tried to use their software, and while I am not a fan of Vivado I have to say that the Lattice toolage is two orders of magnitude more clunky. I also have learned to work with (or against) Vivado now for a few years, and I would loathe to go through a similar process once again for a new set of tools.

16 minutes ago, zygot said:

Looking at that picture of a board with all of those BNC connectors and a CMOD-A7 on top certainly make me hope that there are a lof of other devices on thed bottom that I can't see... I think that it shows something that is too good to be true.

It's just a board that hosts a CMOD-A7 to provide Gigabit Ethernet, 8 digital inputs (TTL), 8 digital outputs (TTL), 2 inputs for the XADC, a single reference clock input, and that's essentially all there is to it. It's a bit of a weird solution, but it does scratch my itch.

Link to comment
Share on other sites

Sadly, Digilent seems to have been left off the Artix UltraScale+ educational level development board train. Opal Kelly has the only Artix UltraScale+ boards that I know of... though good luck finding out when one might get shipped to you. Sadly, except for the ZYNQ devices, boards using UltraScale version ( 16 nm ) of the normal Series7 families are hard to come by. This includes Kintex and Virtex. I doubt that there will be much choice or availability to potential customers who don't purchase large quantities of UltraSale+ devices annually. Also, be advised that using UltraScale devices are a lot more complicated, at least for LVDS and DDR IO, and tool support for the HDL design flow for these devices is very limited. Most free UltraScale IP come in the form of encrypted sources to hide the implementation details. Even the documentation is sketchy. One US distributor made one nice Kintex UltraScale board a few years ago but didn't stock a single one outside of Europe. It almost immediately became an "obsolete" product.

My guess is that trying to drive 8 50 ohm loads with 24 mA output drive currents directly from the CMOD-A7 pins is going to present problems that you may observe, or not. This is due to the module design choices that were made, including the PCB stack up. Whether not observing issues is good luck or bad luck is a matter for discussion. I'd definitely recommend using external buffer drivers for that board, s well as an external power supply. You're still limited by what can be done in a very limited area in terms of IO bank power supplies, but you can always allow for external supplies and a switch for power-on sequencing. Not a trivial design problem, but certainly not an impossible one either.

The Cyclone 10 LP development board costs about as much as the CMOD-A735T and has a 1 GbE PHY, external memory if you want it, and a 40-pin GPIO connector for single-ended signals. Intel decided that the free tools will support the Cyclone 10 LP, but the other Cyclone variants will need a special license. In fact those variants aren't even covered by the super expensive tools license covering all of the other families that have never been supported by the free Quartus. Free Quartus has become too bug riddled to use if your design requires using Intel IP, especially DDR. It's so convoluted with proprietary busses and scripts that don't work on a Windows host as to make boards using low cost Intel FPGAs almost useless for designs requiring external memory.

Check out LabJack for USB.Ethernet connected lab tools. Perhaps another approach to achieving your project goals.

My sense is, based on what's been added to the product list recently, is that Digilent is headed away from the FPGA educational/hobbyist level platform and toward low cost instruments so I don't expect a "beefed-up CMOD to be forth-coming. Still,. I do believe that there's a market for such a product. It's would have to be robust, have a very clever power supply design concept and likely not be dirt cheap like the CMODs. Opal Kelly has always made FPGA boards with lots of IO and high density connectors in a small form factor that is suitable for this niche. I don't think that the GHz high density connectors are required for most applications wanting a plug-in logic board as a component. Even the low end Series7 devices have plenty of resources for all but the most exotic control applications for the lab environment.

Certainly, Digilent could make a very good replacement for the CMOD, at perhaps 2X the price of the CMOD. I'd sell them without connectors installed but have holes to accept 2mm connectors. Sell the connectors separately, if at all. Edited by zygot
Link to comment
Share on other sites

Hi @zygot

The CMOD-A7 I/O baseboard provides proper driver ICs both for the input side (they can take 5V TTL, converting it to the 3.3V that the CMOD-A7 wants to see, and are switchable between 10 kOhm and 50 Ohm termination), and on the output side (drivers can source 100 mA and have 50 Ohm source impedance). So that's taken care of.

The Cyclone 10 LP evaluation kit seems nice. However it was 10 years ago that I tried Quartus - back then it was pretty okay but I must say your description doesn't make it sound particularly attractive to dive back in. Right now I know my way somewhat around Vivado and the Xilinx datasheets, it would be quite an investment to try to switch to Altera (or whatever it is called these days) at this stage. Life is too short...

Edited by reddish
Link to comment
Share on other sites

Quartus doesn't even come with ModelSim these days. It's still usable for all HDL designs not using external memory and simple single-ended IO. It's a pain to use but I still have a need for it. You are correct about the cost in time and effort learning a new tool flow, or even finding and working around the bugs in new releases of familiar tools. That's why I usually do my work on older tool versions unless there is a compelling reason not to.

Phones are nice. Especially when they are a convenience that you control. When they become something that controls you the experience quickly changes to something less pleasant. Similar thing for programmable logic tools.
Link to comment
Share on other sites


I might be able to suggest an alternative for the CMOD-A7 that meets your needs.

The Numato Labs Mimas-A7 is currently available at less then 3X the cost of the CMOD-A735T.

I use this board, which is nearly an inexpensive Nexys Video without the FMC connector. It has an Artix 50T, DDR3 if you want to use it, 80 GPIO on 4 1x40 .1" headers, 1 GbE PHY and RJ-45 jack, and connectivity to transceivers via 1 input mDP and 1 output mDP connectors. It's hard to tell from your picture but it looks like it would fit on a PCB the size of your baseboard. It uses the FT2232H for configuration and UART functionality. I changed the FT232H configuration eeprom to implement a high speed USB 2.0 Synchronous 245 FIFO interface instead of the normal UART; so now I have a high speed USB 2.0 interface compatible with the FTDI D2XX driver API. Unfortunately, the board requires a proprietary configuration program for configuration making it unsuitable for use with Vivado Hardware Manager and debug tools. Fortunately, it also has a 6-pin JTAG header compatible with Xiilinx configuration hardware, but not Digilent JTAG cables. I fixed with with a simple adapter to re-route pin locations. So, now I just use one of my Digilent JTAG cables for  configuration and debugging it I need an ILA or VIO. You can order it without the female headers installed, which is something that would be of interest to anyone wanting to attache it to a larger baseboard like the one that you have. The headers could easily have been installed on the bottom of the board at the factory. I modified my board to power the GPIO IO Banks with 2.5V because I needed LVDS signalling. It required replacing 1 resistor to do this.  The GPIO are all laid out as true differential with very well matched _n/_p pair trace lengths. I've used all of the board features using my own HDL sources as well as Xilinx Aurora to test the mDP transceivers. I did 2 lanes of 2.7 GHz data rates connecting the two mDP connector together with a cheap video cable... roughly USB 3.0 data rates. Everything on the board works. If nothing else the Mimas-A7 shows what's possible at its price point for Xilinx based boards.

Maybe someone will create the product you want, but more likely you will have to find alternative paths to completing your specific project needs. There are a lof of products that provide less than what the advertising suggest, either by bad board/PCB design or insufficient support. Perhaps, this post will help you in your search for an FPGA platform suitable for your needs.

As for a generic lab platform with lots of BNC connectors providing the kind of functionality the you need, I don't see it as a volume seller for anyone, but I also don't know enough to have an opinion so I wish you luck. Some things you just have to do yourself.

It's hard to see the end of the current global distribution crisis but I have a long list of things that I want but can't buy with no realistic available dates on the horizon. It's not a good time to be designing new FPGA based products... or even trying to do a production run on current products. The sad thing is that it's all due to short-term profit goals with no thought to a back-up plan if the future doesn't go according to plan. In stead of MBAs maybe we should require CEOs and board members to have degrees in history.


Edited by zygot
Link to comment
Share on other sites

  • 4 months later...

I'm in complete agreement with the OP as far as what I'm looking for in a Cmod-style board:  A minimum-cost "black box" with lots of I/O that allows me to create fairly complex custom functions without having to design and assemble a PCB with a BGA footprint for the FPGA.  Pushbuttons, LEDs, 7-segment or LCD displays, etc. just make the module much bigger than it needs to be.  It's the main reason I choose Cmod over Basys or Arty.  If I really need those doodads, it's easy enough to add them externally or plug in a PMOD.

The other thing I'm looking for is signal integrity.  JColvin hinted that Digilent is aware that only one ground pin at one corner of a 48-pin DIP is a sad joke to anyone who deals with SI issues.  My most recent project using a CMOD-A7 included an external parallel-to-LVDS IC driving an LCD.  Those 28 I/Os changing simultaneously at 72 MHz create a fabulous amount of ground bounce.  Even after adding the two PMOD ground pins, setting all the I/Os to SLOW (because 7-series dropped QUIETIO), inserting series resistors, etc. I'm still fighting it.

Link to comment
Share on other sites

2 hours ago, 1.0 value drone said:

what I'm looking for in a Cmod-style board:  A minimum-cost "black box" with lots of I/O

Terasic makes 2 such boards with 72 single-ended GPIO on convenient 2x20 headers. The De0 Nano and the DE0 CV are two that I've used for the kind of projects that you seem interested in. The Nano is smaller and making a custom PCB to attach to the connectors is easy. Both have SDR SDRAM that doesn't require any vendor IP so you can do you logic design in your favorite HDL.  I've used both as components in project assemblies. The only problem with them is that they use Cyclone instead of Artix FPGA devices. Wouldn't it be nice if someone wanted to make a similar product for Xilinx FPGA users? I know that you and I aren't the only potential buyers for a well made programmable logic board with plenty of IO available that's actually usable.

So if someone designed a DE0 Nano with an Artix A7-50T, instead of a Cyclone IV or V, had one IO bank 2.5V or 1.8V ( allowing an external Vccio supply pin would be nice ) and differential routed signals to one of the headers you'd have something pretty useful. Providing an easy way for the user to provide IO bank supplies would be useful. Making the transceiver quad available would be a nice bonus. There aren't many applications for such a product that require the highest possible performance; but completely disabling functionality altogether isn't nice.

If you do an HDL design flow Quartus isn't bad for the Cyclone devices, though Intel has abandoned ModelSim for an in-house simulator. The boards are a bit more pricey than a CMOD-A7-35T but still come with USB cables and a power supply. Devices built on 40-55 nM technology are probably going to have supply problems for some time, but all customers can do is send Santa their wish list.

Actually the ideal FPGA would be a large MAX10, but those haven't been available to general distribution for over a year.

Mid-performance commodity programmable devices still have plenty of value. Unfortunately, I don't think that either Intel or AMD are particularly interested in this market.

Edited by zygot
Link to comment
Share on other sites

>>Mid-performance commodity programmable devices still have plenty of value. Unfortunately, I don't think that either Intel or AMD are particularly interested in this market.

Ain't that the truth!  In my day job we used Spartan-3A in almost every design for "glue" logic because it offered a huge I/O count with moderate logic at a very low cost.  Now the small 7-series parts barely have enough I/O but the logic utilization is well below 10%.  Although I've never been a fan of Quartus, I made a study of Cyclone 10 LP as a lower-cost alternative, but supply chain and internal IP issues made it impractical.

Thanks for the comments on Terasic.  I think I looked at them briefly a while back but at the time I was unwilling to wrestle with Quartus.  Maybe it's time to look again.

I agree that selectable I/O voltage would be a strong feature.  All those nice diff pairs and they can't do LVDS.  Tsk, tsk.

Link to comment
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
  • Create New...