I need to learn and practice VHDL, so I wouldlike to buy a small FPGA dev board. I've found a board based on a MAX10 circuit with the exact form factor I need, but I've read this chip is a CPLD, not a FPGA.

I'm not sure to properly understand what CPLD are. Can I practice VHDL with efficiency on this kind of board, or should I invest more in a Cyclone chip, whose are "real" FPGAs ?

  • 1
    \$\begingroup\$ Yes you can...,. \$\endgroup\$ – Eugene Sh. Oct 20 '17 at 15:46
  • 1
    \$\begingroup\$ In any case the MAX10 series are FPGAs. \$\endgroup\$ – Tom Carpenter Oct 20 '17 at 15:50
  • \$\begingroup\$ MAX10 is indeed an FPGA that is targeting to replace large scale CPLD because it is non-volatile by self initializing with the program stored in it's built-in flash. (except a few model of MAX10 that doesn't have flash built-in). \$\endgroup\$ – user3528438 Oct 20 '17 at 16:06

To directly answer the question, there is nothing in what a CPLD is to prevent you using VHDL to build circuits for one.

CPLDs in essence are basically the same as an FPGA with the exception that they are non-volatile. That is their logic configuration will remain even after powering it off. By contrast FPGAs are volatile (typically SRAM based) and so forget their configuration when turned off leading to the need for extra hardware to configure them at power on.

CPLDs are great then for applications which require instant-on - no configuration time at all. However the down side to being non-volatile is they are generally smaller in terms of gates and so have less functionality. This is because non-volatile memories are typically larger space wise than SRAM.

Another down side to CPLDs is, as with all non-volatile memories, the number of erase/program cycles is limited. Many CPLDs can be reconfigured only a few thousand times at most (and many have lower endurance). FPGAs on the other hand being SRAM based can be reprogrammed pretty much indefinitely.

That brings me on to answering the question as to whether CPLDs are good for learning and development. Yes they can be quite cheap, which is good, however the endurance can also cause you problems. As a general development kit you may find yourself easily passing the endurance life of the CPLD from frequent reprogramming.

However as a final point, the comparison is somewhat a moot point. MAX 10 series of devices are actually SRAM based FPGAs. The MAX family (e.g. II and V) were indeed CPLD type devices, however the 10 series deviates from this trend.

To keep the ability for near instant on, the MAX 10 devices do have internal flash memory to store configuration bit streams allowing for rapid reconfiguration without an external configuration device. This flash will have an endurance lifespan, but you don't need to use it. Like its bigger cousins, being FPGA based you can simply program the SRAM of the MAX 10 directly via JTAG without the need for using the Flash.

  • \$\begingroup\$ Perfect answer, thank you. As you said, I did a confusion since Max II and Max V were CPLD. \$\endgroup\$ – MadMass Oct 20 '17 at 16:26
  • \$\begingroup\$ Historically there were significant differences. CPLD's had a simpler structure than FPGAs, giving more consistent timing, for example. Nowadays a lot of devices are sold as CPLDs but have the structure that used to be called an FPGA. \$\endgroup\$ – The Photon Oct 20 '17 at 17:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.