Want to learn FPGA programming

Me too. :smiley:

Have been reading a lot. Will start with something simple and then will see where it will take me.

Actually, for what it’s worth, that’s backwards. Verilog looks a lot more like C, while VHDL is much more verbose and looks sort of like VB.

It’s funny that more people don’t learn an HDL – programmable logic devices (like FPGAs and CPLDs) complement microprocessors perfectly; each device is extremely good at doing precisely the same thing that the other device is so bad at.

You could implement a 20-block flow chart, complete with asynchronous UART reads and writes for control, in probably an hour or so. Doing that on an FPGA would take a week or more to get working, and you would have written hundreds of lines of HDL.

Likewise, I could implement an SPI-controlled 20-channel PWM module on a CPLD in an hour, writing less than 40 lines of VHDL. Trying to make a microcontroller do the same thing by bit-banging pins would be absolutely atrocious.

And I keep mentioning CPLDs – FPGAs are great and everything, but unless you need to do some hardcore wacky stuff (or use soft core processors), I’d stick with CPLDs. Very easy to work with and design with. CPLDs are basically all 3.3V single-supply, and they come in packages you can reasonably solder.

FPGAs usually require a VIO supply (3.3, 2.8, or 2.5, depending on your peripherals), plus a V_PLL supply (1.5V) and a V_CORE supply (1.2V). You need at least a 4-layer board to power them up properly and fan their signals out. And because FPGAs don’t typically have flash memory, they have to store their configs on EEPROM, which further complicates the design. They have massive packages that are really unruly to work with, and they’re really expensive!

For what it’s worth, I really like the Microsemi Igloo FPGAs and the Altera CPLDs. Both are flash-based, and extremely easy to work with. You can get USB programmers for cheap, and they have a ton of awesome development boards for under $50.

@ jay - Thanks for the info. I’d never heard of CPLDs. The price certainly looks much more reasonable. When I have time, that might be a good place to start. Is programming a CPLD similar to programming an FPGA?