Getting into FPGAs

minized20reset20corner20viewSo, I obviously decided that my world wasn’t already filled with enough random stuff. I decided that it would be a good idea to get my head around FPGAs. I’m sure many of you know what FPGAs are but just in case you don’t I’ll give you a quick summary. A Field Programmable Gate Array is user defined hardware. If you decide that you need some logic (e.g. an AND gate) you could use a discrete logic gate – hello 74LS08. You could of course use a microcontroller which might even be cheaper than the logic gate. Weird, but it’s starting to be true.

The other way is to have a big ball of programmable logic that you can configure however you want. Powerful, flexible, fast. Bizarrely, you can even program enough logic to create an processor. Yes, you can create (via software) some hardware that will run software. This is just a taste of how strange the world of FPGAs can get.

I asked a few questions about the easiest way in and got loads of different answers.¬†Anyway, someone was kind enough to send me an Arty S7 FPGA board that he’d finished with. There is a course going on at Element 14 all about programming FPGA SoCs – that’s a chip with a microprocessor and some FPGA in one. So I bought a MiniZed.

I’ve only just started, but already it’s quite a trip. An FPGA is usually programmed in either VHDL or Verilog. They’re both languages that look a bit like a programming language but really aren’t. I’ve heard the learning curve described as “the cliff of insanity” and I’m starting to know how that feels. Anyway, the journey so far is strange but I’m enjoying it. I never did ask if you start at the bottom of the cliff and climb it or if you start at the top and fall off.