Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] About the difference between CPLD and FPGA... some experience?

Status
Not open for further replies.

LatticeSemiconductor

Member level 2
Joined
Aug 31, 2013
Messages
45
Helped
0
Reputation
0
Reaction score
0
Trophy points
6
Activity points
589
No, I don't want to know how to distinguish a CPLD from a FPGA - I CAN read...

However, i consider to buy the Lattice MachXO2 breakout board, which is a CPLD
I've worked with FPGA so far and this would be my 1st FPGA/CPLD for private use
Thing is, there are no restrictions of what i want to do or try with it, plus i am a
beginner, so it is unclear what kind of projects i am going to do.

Biggest interest for now is design workflow, coding techniques, programming skill - of FPGAs, however.
Keeping that in mind, would you think i would regret to choose a CPLD as my very first? Topics like "On a CPLD, you quickly run out of FF's" and "Can I replaced CPLD with FPGA?" sounds very interesting - i want to see that on my own. Plus, FPGAs might have more flexible/dedicated hardware units, but that MXO2 has some pretty nice features as well.


Another thing, while i understand the difficulty to define a device as a FPGA or a CPLD, the MXO2 is sold as a CPLD, and described as "ultra-low density FPGA" and "MachXO2 FPGA", even in the manual. In fact, there is only one occurrence of the term "PLD" in the user guide. So, from the manufacturers point of view, does that mean it doesn't matter how you look at it, or, that it is like a FPGA but sold at the price of a CPLD?

Again, i'm looking for:
- things i might want to consider (and i most likely will, due to lack of experience)
- hints, tips, experiences, problems, basically everything and anything, but definitions ;)
 

In usual terminology, FPGA are belonging to the family of programmable logic devices (PLD). The term CPLD (complex PLD) is reserved to medium complex PLD, FPGA have in fact higher complexity.

Anyhow, devices like Lattice MachXO2, Altera MAX V or similar products from other vendors are small FPGA with built-in configuration flash. MachXO2 has many features that can be found with full-size FPGA, e.g. PLLs or block RAM. In so far it's a good choice, I think.
 
For experimenting/learning, go for a "normal" FPGA board. You get much more logic per dollar, and you can do larger projects.
A CPLD is selected if you know what you want to do, and after you have verified that the project will fit in the device.
Why restrict yourself when you are learning/experimenting?
 
From my experience and off the top of my head, here are a few general differences.

1. CPLDs have fewer logic cells and the core logic structures are different architecturally. For example, wider AND functions for faster decoding functions.
2. CPLDs will have the fastest pin-to-pin speed.
3. CPLDs have internal configuration memory. No external means of configuring at startup is required.
4. CPLDs can still be obtain which are compatible with 5V supplies and logic levels. The latest FPGAs heavily trend to 3.3Vs and much lower.
5. CPLDs are great for implementing bunches of miscellaneous "glue" logic, high speed (address) decoding, higher voltage I/O functions, driving LEDs, etc.
6. FPGAs are much more sophisticated and used where more logic/computing/memory power is needed and the latest, super fast, serial I/O standards.
7. CPLDs eat the old, dedicated logic function ICs. FPGAs eat ASICs

If you can only get one learning board, get a large FPGA with lots of internal memory blocks.
 
Started out with learning programmable logic on cpld, wish I had started out with fpga. The pastures over there really do have greener flip-flops.
 
Almost as important as the hardware, pick your logic design flow and language. If you can stand the steep learning curve, go for VHDL or Verilog. It is OK to start with what you know such as schematic entry with pre-built logic functions but don't get stuck there for too long. If starting from scratch, try bypassing schematic entry and lower level languages. Others may have strong feelings about this issue!
 

Quite some answers here, huh? Thanks a lot. Comparing the technical notes from some CPLD and FPGA, both are, in fact, a good choice. Less flexibility was my biggest concern for CPLD's, and choosing them on specific projects that make use of their advantages against FPGAs makes sense to me. Seems like I'll go for a FPGA instead. As for programming, it is VHDL no doubt about it.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top