Another Introduction to FPGAs

FPGAs can have a steep learning curve, so getting started tutorials are a popular topic. Intel recently published a video titled “Basics of Programmable Logic: FPGA Architecture” and you can see it below. Of course, Intel bought Altera, so the material has a bit of Altera/Intel flavor to it, but the course is generic enough that the concepts will apply to just about any FPGA.

Of course, if you do want to use Quartus, there are quite a few follow-on courses, including the wonderfully named “Become a [sic] FPGA Designer in 4 Hours.” We’d really like to see a sequel titled “Become a Proficient FPGA Designer in 9 Months” but Google didn’t turn that one up.

So what’s different in this video if you want to use another brand of FPGA? Some of the terms for things like logic elements and adaptive logic modules will have different names on different architectures. The particular architecture may be different, too because different FPGAs will have different flip-flop cells and special function blocks. This can also be different even among different FPGA families from the same vendor, especially when the vendor bought out some other company.

The information about why you want to use an FPGA, basic ideas about look up tables, clocking, and routing are going to be solid no matter what FPGA you wind up with. The general workflow description is useful, too, even though this can vary depending on the vendor and tools you choose to use.

On the other hand, Intel FPGAs are perfectly fine so we aren’t suggesting you take the training and absolutely go with something else. There are relatively affordable boards from most of the vendors and you’ll find that for all but the most complex projects the choice boils down to personal preference and, perhaps, price.

If you need a cheap Intel board, the MAX-1000 is about $30 and not a bad starter board. Our favorite starter board, though, might be the Lattice iCEstick which is dirt cheap and has an open source toolchain.



from Hackaday http://ift.tt/2oJjECV
via IFTTT