Choosing Your First FPGA
Choosing your first FPGA development board to learn hardware programming is strangely much like purchasing your first motorcycle.
Size Matters - but not how you think
Purchase the smallest device you can while retaining the minimum of features you want.
For a motorcycle, this is because it's much easier to learn to change gears, brake, turn on a small Honda than on a 1,200cc bike like mine, above. A large FPGA device will also be very hard to manipulate, debug and get it to work properly.
Physical Size
Large bikes will have a twitchy accelerator and throw you on the bushes (in the best case). On large bikes you won’t be able to train U-turns, curves because they are too large. That's why Harley riders have no skills (shots fired!). Large FPGA devices will typically require the respective equipment, like 10/25G switches, active cooling. The new Alveo V80 accelerator card, for example, will peak at 190 Watts which will likely fry your desktop’s power supply in the first run.
Building Speed
Riding a large motorcycle requires lots of time planning, moving it around, parking. I loved my first bike, a Ninja 400 because I could just throw my leg on top of it and be at the closest Starbucks in no time. This slick operation makes all difference in the long run. That also applies to FPGAs.
FPGA devices are basically a plate full of resources (memory, LUTs, DACs, etc) interconnected by a matrix of wires that can be turned on or off to connect these resources in different ways to form unique circuits.
![https://i.stack.imgur.com/FyGff.png https://i.stack.imgur.com/FyGff.png](https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2db36a6-2efb-4011-a588-0f5a76566df0_1060x925.png)
The “compilation” process for FPGAs is therefore largely a complex optimization process to find the most economical way to implement the logic the user requested with the current resources in the board while satisfying local and global requirements like operating frequency. This process is typically extremely slow and in some critical paths it is unparallelizable, which means you can purchase that $20k 96-core USD desktop beast and it will likely not be 10 times faster than your 6-core current machine.
As a rule of thumb, if you are also buying a desktop for this purpose, try to find one with the largest single-thread speed (and frequency) that you can find.
Evidently, the larger the search space the longer it will take for an optimization to take place. And that holds true for FPGAs even if the initial user’s code is exactly the same. As anecdotal example, the last test binary I created took 10 minutes to on a $100 board and over an hour on a professional $3,000 board. I’m not saying this will always happen but it generally holds true.
Using a smaller board (and device) means that you will be less bored, finish your test in a single day and move faster through the tutorial chapters.
Complexity
Larger bikes tend to be much more complex than starter ones. Adjustable forks, programmable ECUs, adjustable traction control, operation modes! On FPGAs, a large device will likely have features you will likely not use for a long time, or perhaps ever. There is a chance you will be overwhelmed with the amount of features and drop the effort in the middle.
Learning on a small device gives you a sense of accomplishment and closure, which will boost your confidence. Once you finish the manufacturer’s tutorial and learn how to program all the possible ports, you will feel that you climbed one step.
Blessed brands
Buying from a known brand like Intel or AMD/Xilinx means that you will be learning with a hardware that has been properly studied with a decent amount of research and development resources thrown at its construction.
Remember, it’s very easy today to build your own board. Some firms can build a new FPGA board for as little as $50k USD. But it’s very easy to make a small mistake that will only show when you are learning. Even most large manufacturer’s boards go through the ES (engineering sample or pre-production) phase because there is always a mistake hiding there.
So my advice is to choose the largest and fattest brands you can afford.
Popularity
Even though you chose a large brand, you might end up picking an unknown model, one close to end-of-life, or one used by pros only. From this angle, points to Harleys - they have the most ubiquitous after-market industry from all the brands. Any motorcycle technician knows Harleys inside out and, unlike some German brands where only the original manufacturer holds parts for them, every semi-pro tinkerer has spare parts for Harley bikes on ebay. And the customization options are endless.
The problem with buying a less known FPGA board is that you might be stuck with a silly problem, having nowhere to ask help on. Good luck asking FPGA questions on StackOverflow - in the rare case you can withstand SO toxicity, that is. On Xilinx, there are the Xilinx forums where consulting firms jockey for answering user questions, which gives them visibility points.
Choose the most popular board you can find, from the most popular brand. This will guarantee that the edge problem you are having was likely suffered by someone else and it’s conveniently documented somewhere in a forum.
Price
If you are dumb enough to purchase an overpriced $40k USD Harley as your first bike, you might also go ahead and fully invest in Bitcoin and also purchase the $10k Alveo V80 accelerator card as your first FPGA.
The problem of price is not as much burning cash on a device that won’t be fully used. Your wife will probably be much more worried about that than you for sure.
The biggest issue is that, unless you’re an inconsequential hooligan who has read the Gen-Z bestseller The Subtle Art of Not Giving a Fuck several times, you will likely be very concerned to handle and operate such card (or bike) due to the risk of crashing or damaging it. Like every BMW owner knows, any visit to the dealer’s service is a minimum $5k trip. Not different with larger FPGAs - send it to the manufacturer for repairs and the bill will not be forgiven. Also, everything that goes with it is expensive. A simple JTAG programmer can cost $400.
With a small board, you will be seamless throwing it on your backpack, leave it on the table when going to the restroom on Starbucks - because it is cheap. And if you happen to ding, crash, fry or brick it, just buy a new one!
Conclusion
In short, buy the smallest, most popular, cheapest device, from the best brand.
If you want me to cut through the BS and cough up a model already, my friend Adam Taylor loves the Arty Z7.
I myself would always buy devices from Xilinx/AMD first but on the cheaper side I like the boards from Digilent (Arty is a Digilent board). They have a big community, they have a strong after sales support and their boards are very popular with makers, making it very easy to fix glitches. But the Arty is sort of short on features so I’d prefer the Zybo Z7, which is a bit more expensive ($299 against $249) but has more interfaces.