I would like to goof around with some CPLD stuff and I see I have a couple options out there. I don't have a particular application in mind; it just seems like there a lot of possibilities, some of which are easier to use than others.
The main manufactures have development boards, some more expensive than others. They also have programmer cables that generally seem... not cheap. Doing some digging, I've come across several options and I'm looking to understand the pros/cons of each.
- Is it fair to say that CPLDs with X Macrocells are more or less the same?
- Although the JTAG interface is standard, for the purposes of programming the part, there is no standard previous JTAG Question. Is this a matter of the vendor software talking to the programmer? Do things become more standard if I use some other utility to dump a binary file?
- Some of the platforms have cheaper alternatives. I'm wondering what the catches are with these in terms of USB/parallel port, Linux/Windows.
- Assuming I get comfortable with a development board, how difficult is the transition to just using one of the base parts directly? My impression is that in the major options, it's just a matter of some header pins and a couple diodes/resistors. Am I far off on this?
- How would I program the devices in my own designs? If I have a development board or starter kit, will I then have to go back and buy an expensive programmer? Why does a dev board sell for cheap but the programmer runs hundreds of dollars? Presumably the dev board comes with the ability to program.
Here are some of the options that stand out for me. I list the prices only to differentiate them from the multi-hundred-dollar options. All of them are in the ballpark for me. I'm looking for the hiden costs in terms of ease of use, software issues and so on.
Xilinx is a popular path. I could do:
- Digilent C-Mod board for $17: http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,798&Prod=CMOD
- and one of their programming cables (parallel for $12 or USB for $48) http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,395&Cat=5
The Digilent cable requires using their software which is currently windows only, so I'd need to go the $48 USB route.
Another Xilinx possibility is
- a Bus Pirate board ($28) http://www.seeedstudio.com/depot/bus-pirate-v3-assembled-p-609.html?cPath=61_68
- and a Coolrunner development board ($15) http://www.seeedstudio.com/depot/xc9572xl-cpld-development-board-p-799.html?cPath=174
Switching companies to Lattice:
- they have a breakout board development kit ($29) http://www.latticesemi.com/products/developmenthardware/breakoutboardevalkits.cfm
I like the idea of using Lattice parts as Mouser.com carries them (I don't see much Xilinx there). I tend to order more from them. Once I get comfortable with their stuff, I'm guessing that I could hack up a programmer cable based on the schematics of this board. It looks really straight forward. Could I use the eval board as a programmer? The do expose the JTAG header?
The Lattice MachXO2 Pico kit ($29) also looks to be a great value, though the part that it's showcasing is more expensive.
Altera also has good offerings.
- A programmer can be had from EBay for ($15)
- A demo board can be had from EBay for ($28)
Alternately, Altera has
- A starter kit for ($50)
Which of these is the better route for a beginner that is easier to get working (drivers and such), has some staying power, and perhaps offers the most flexibility?