
Cheap FPGA Development Boards - peter_d_sherman
https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards
======
Sir_Substance
Unfortunately, cost of the development boards is in no way the problem
blocking wider use and knowledge of FPGAs.

FPGA tooling is stuck in the dark ages. FPGA pipelines are windows-only, the
development environment UIs look like a toddler was given access to VB6, and
the licensing is crazy.

Lattice semiconductor will give a free licence for iceCube2 to a resident of
the USA in less then 24 hours but will deliberate for weeks over giving one to
someone in Australia (so you should just lie and say you live at the white
house, that's what I did after three weeks of no response to my licence
request).

Xilinx's free licence for ISE states that by using the free licence you agree
to let ISE upload all your FPGA code to them and they get to use it for
whatever they want. It actually states directly in the licence that if you
don't like that you should install the software and then airgap the computer
from the internet forever. Cheeky as hell in my opinion. I installed mine on a
virtualbox machine and then removed the virtual network card.

The reality is, FPGA manufacture and tooling is stuck where 3d printing was a
decade ago, but for slightly different reasons. Designing and manufacturing
FPGAs is pretty high investment which is a major barrier to entry for
competitors (the same way patents was for 3d printers). Since FPGAs are
desirable for many high end tech companies, it's more profitable for
Lattice/Xilinx/et al to charge a small number of companies a squillion dollars
for high end development boards and commercial software licences than it is
for them to lower the barriers of entry and sell to a wider audience.

I'd put a lot of support behind an open hardware FPGA design, even if it was
rather shitty in performance, cost and/or features to the current top of the
line FPGAs.

~~~
lnsru
Tools are running on Linux at least last 5 years very well. Xilinx as well as
Altera.

Never heard such ridiculous claim, that ISE with WebTalk enabled sends every
piece of code back to Xilinx. And I was intern at Xilinx! You can always seem
in WebTalk report what is leaving your computer. You also proposed usable
solution for avoiding WebTalk.

The problem is that FPGAs will stay niche product and never became mainstream.
What will you do as a hobbyist with some Ultrascale+ device? What can’t you do
with 50$ SoC that you can do with FPGA in same price range? SDR is cool, for
everything else development cycles are just too long or complex peripherals
are needed. How many hobbyists can properly route 64 bit wide DDR3 interface?

~~~
ur-whale
Both tools are monstrosities. Xilinx should once and for all decide if they
are in the business of selling hardware or selling software.

If the latter they're _terrible_ at it and it's painfully obvious that the
culture of the shop is not software-centric.

[edit] the hobbyist argument doesn't hold water. Software and normal computer
manufacturers made the exact same argument in the 70's (why would anyone ever
need a computer at home?).

If Xilinx opensourced their toolchain - or much better - OpenSourced their
protocols, my bet is their chip sale volume would at least double in a year.
In particular because folks would choose their H/W to avoid vendor lock-in.

My bet is they're so ashamed of the pile of spaghetti code they're peddling to
their customer that they just can't OpenSource it for fear of losing face and
reputation for ever.

~~~
chx
> they're so ashamed of the pile of spaghetti code they're peddling to their
> customer that they just can't OpenSource it for fear of losing face and
> reputation for ever.

LOL no. Everyone knows how this particular sausage is made. It's obvious we
are talking of an organically growing decades old codebase. It won't surprise
anyone.

To be more on topic, ever since I learned of the PicoEVB a few months ago, I
am just giddy of the possibilities, it's amazing we finally got a mobile and
PCIe connected FPGA. I wasn't even looking for one because I haven't thought
it possible. We truly live in the future.

~~~
0xcde4c3db
> It's obvious we are talking of an organically growing decades old codebase.
> It won't surprise anyone.

Indeed, I'd be surprised if the current teams even know how to actually set up
a working build environment, as opposed to something like "Here's a pile of VM
templates, each one from a former subsystem lead who left the company 5-10
years ago, and a how-to document that assumes you're running VMWare
Workstation 4.0 on Windows XP. Talk to Joe if you need licenses for
anything.".

------
ur-whale
Very nice list, thanks to Peter for putting this together.

It's worth noting that for learning/basic experimentation there's lots of even
cheaper chinesium stuff available on ebay:

[https://www.ebay.com/sch/i.html?_from=R40&_nkw=FPGA+board&_s...](https://www.ebay.com/sch/i.html?_from=R40&_nkw=FPGA+board&_sacat=0&_sop=15)

[edit]: For those who want to try, while back I bought a couple of low-end
boards from an ebay vendor called qmtech and very happy with them.

~~~
chx
> thanks to Peter

Odd, the list was put together by Joel...?

~~~
pseudosudoer
Looks like submitted before I was done, and replied to the wrong person....

------
metaphor
The cost of developing on one of these cheap boards is only meaningful if
you're able to leverage a vendor's _free_ but _limited-to-select-
architectures_ development suite. E.g. briefly looking through the list, the
MiniZed with a Zynq XC7Z007S is listed at $89, but according to Xilinx, this
isn't targetable by Vivado WebPACK[1]; a node-locked license will run you an
additional US$3k.

EDIT: Manual browsing missed XC7Z007S in the list, which is indeed targetable
by WebPACK. List of dev boards is lengthy, but the principle takeaway is not
to presume that a cheap dev board is targetable by a vendor's free development
suite.

[1] [https://www.xilinx.com/products/design-
tools/vivado/vivado-w...](https://www.xilinx.com/products/design-
tools/vivado/vivado-webpack.html#architecture)

~~~
rjsw
Your link does list the Zynq XC7Z007S as supported by Vivado WebPACK.

It also shows up as an option when I create a new project in my installed
copy.

~~~
metaphor
Manual browsing on mobile...whoops! You are indeed correct.

However, the principle nevertheless stands and it would behoove anyone
interested in tinkering with one of these boards to verify that the
architecture is indeed targetable by its respective free tool offering.

~~~
slededit
It's only the really expensive ones that require a paid license. You generally
aren't going to be getting a $3000 FPGA just to tinker around.

------
zamadatix
I ordered a snickerdoodle ~3 years ago now. It's been changed and delayed a
lot and I'm still waiting to have mine ship. I'm still excited for it though,
people that have gotten theirs seem to really like them.

A list like this should only include things that are in stock to ship when you
order.

------
novaRom
FPGAs are very good to learn digital logic design, but dev tools are terrible.
They are not open source, binaries may fail to work on any Linux due to
failing binary dependencies, closed file formats, inefficiently long
synthesis, vendor-specific black-boxed libraries, deprecated interfaces.

Just compare it with Beaglebone or Raspberry Pi dev tools. They are much
better for any DIY home-automation or replica projects.

~~~
tails4e
I'm not sure why this meme is constantly repeated - the modern tools are not
terrible. I guess it underscores how difficult it is to shake a bad first
impression - ten+ years ago they were very poor, but today they are very
impressive. In fact the FPGA based design tools are much better than ASIC
based HW design tools.

You are right about underlying architecture and synthesis engines being closed
source, but that does not necessarily make a tool bad. There is a strong drive
to have the tools confirm to industry standard interfaces for sharing of
designs and IP now (IPXact, SDC-constraints, Oopen-CL/Open-CV, etc).

FPGAs are more difficult to use than Rpi / Beaglebone, but that's because HW
design is very different. They can be used to run SW only stacks (e.g. linux),
but that's somewhat missing the point as FPGAs are all about programmable
hardware - creating custom accelerators, doing things you simply cannot do
efficiently in SW. So low-frequency things like home basic automation might
not be a good fit as that can be done in SW only.

~~~
slivym
It's really not a meme that the tools suck. They still suck. They suck a lot
less than they used to but they still suck. The latest version of Vivado still
doesn't properly support basic constructs of systemverilog [1]. That doesn't
fly in the world of software engineers.

The compile times are still in the order of hours, and there's no guarantee
that you won't get to the end of your compile and find out either it didn't
work, or it did something that you couldn't possibly have meant to happen. You
don't know what went wrong because you've got a 27MB log file 97% of which is
'WARNING's.

[1]:[https://www.xilinx.com/support/answers/55135.html](https://www.xilinx.com/support/answers/55135.html)

~~~
tails4e
Perhaps it's the case that EDA sucks full stop. I think in the general case
that's true, but FPGA based EDA tools, by and large, are better than ASIC EDA
tools, and much better than any open-source tool available - and they are
essentially free. If you've every used the ASIC tools design-compiler or
primetime, you'd see what a difference tools like Vivado have brought in terms
of design visualization, ease of use, robustness, all while still being
compatible with the industry standard constraints and file types, etc.

The list of unspported items you showed is interesting but I'd imagine they
rarely affect HW design and are more on the testbench / simulation only subset
(except maybe arrays of interfaces).

For any HW design I've done Vivado has been well able to handle it. In fact,
I've used Vivado to 'sanity check' RTL thats intended for an ASIC flow.

Runtimes are long, but I guarantee if you look at the runtime of any opens
source synthesis tool you'd get an order of magnitude worse, with worse
results. The FPGAs these tools are handling are also huge compared to ten
years ago, so while they have progressed in a direct comparison, it looks like
they have not if you're later devices.

The one bugbear I have is that DRCs are not checked as early as possible, and
only at the end are some things flagged, like and unconstrained IO port.
Things that can be caught earlier should be, in all cases.

------
dfox
One thing that I miss from this list are Lattice's breakout boards. You get
board with all the FPGA/CPLD pins broken out onto 0.1" headers, integrated USB
programmer, 5V input power supply cascade, few LEDs and nothing much else for
price that is comparable to the part itself in one-off quantities.

Edit: I'm not sure that Lattice still sells these minimal development boards.

~~~
naikrovek
They are still sold. Lattice MACHXO2 and MACHXO3A series boards.

------
londons_explore
FPGA's are cool and all, but the window of applications where FPGA's are the
best tool for the job is getting narrower and narrower.

For compute heavy applications, GPU's usually offer more performance per watt
and performance per $, especially if your application requires lots of
add/subtract/multiply/floating point operations.

For large scale designs, low end ASIC's are surprisingly cheap (Starting from
$10k), and by far beat an FPGA on perf per watt, and per $ with enough volume.

"I have a big state machine I need to run" is usually misleading. Usually your
state machine isn't big enough to require an FPGA, and just converting it to a
bunch of switch statements on a microcontroller will do the job just fine.

Microcontrollers usually get close to FPGA's on the "super accurate timing"
front too - there are lots that can bit bang things into the hundreds of Mhz
range with fancy serialization hardware.

~~~
pseudosudoer
What you're missing is the fundamental reason industry uses FPGA's,
flexibility and parallelism. An ASIC will always outpeform an FPGA in some
specialized front, but the development time and cost associated with an ASIC
is signifantly longer and more expensive respectively. An FPGA can be plopped
into your design, and use cases can be added without refabbing the entire PCB.
Good luck doing that with an ASIC...

A microcontroller is more flexible than a FPGA, but it lacks the ability to
parallelize (as many) tasks as an FPGA. Hardware interrupts on a uC are
definitely not free and can impact performance from the overhead associated
with processing the interrupt, where an FPGA can process any interrupt for
"free" without impacting the performance of any parallel module. Real time
apps can be implemented on uC's and DSP's, but may not be able to meet them
depending on the time constraints on your system.

FPGA's and GPU's were never meant to compete. GPU's will destroy an FPGA on
any parallel data processing task, but that data needs to first be populated
onto the GPU. A GPU's bottleneck is (usually) never it's processing speed, but
it's data population (RAM) bandwidth. A GPU will never have direct access to
hardware, where as an FPGA does. The overall speed of a GPU exceeds that of an
FPGA for specialized parallel processing, but the latency of a GPU is larger.

The point is that FPGA's are specialized, and so are other co-
processors/hardware. They should be used only when it makes sense to use them,
and more ad-hoc or flexible solutions are not viable.

------
nottorp
Nice list, but considering the warnings about not having the software to
program the FPGA with, can some good samaritan recommend a few chips where you
can definitely get free or cheap tools, the "synthesiser" and the "simulator"?

Yeah, I have no idea about FPGAs except that I once did a project that was
reading data from one over SPI. I always thought the dev/hobbyist boards were
much more expensive than that list says. But if you can get away with $150...
and if the needed software doesn't cost $15000... I'd like to try :)

~~~
tails4e
The Xilinx SW has a free edition called webpack that works for the lower end
devices (basically it will cover all of these starter boards) and it includes
all the SW you need, including a simulator.

Interestingly I didn't see the Ultra96 board listed -
[http://zedboard.org/product/ultra96](http://zedboard.org/product/ultra96) \-
This is the next-gen Zynq, which has A53's plus a load more features, plus it
part of the 96boards initiative. I had a chance to play with one briefly and
was very impressed. It also can run the PYNQ environment, which combines the
power of the FPGA with Python very seamlessly - so gives the possibility of
custom built HW offload/processing and interfacing directly in python.

~~~
nottorp
Thanks. I see the WebPack download requires registration - does that mean
manual approval after you sign something in blood or just making an account on
their site?

~~~
tails4e
I believe it's just an account and immediate download - I did it so long ago I
can't remember. Either way there's no way you'd be refused access as it's
intended be a free to use version so I can't imagine any approval being
required.

~~~
nottorp
See Sir_Substance's problems with getting approved for something from
LatticeCube because he's in Australia below. Mind, different vendor, but since
I'm in Eastern Europe I had to ask.

------
harry8
Which ones of these have companion textbooks (preferably a nice one)
associated with them?

Ideally I'd love one with gigabit ethernet and a multicore arm that slots into
a pcie slot and doesn't cost the earth but I'm probably dreaming...

~~~
lnsru
I heard, Digilent has a book for their ZynQ boards. I haven’t tried by myself:
[https://store.digilentinc.com/the-zynq-
book/](https://store.digilentinc.com/the-zynq-book/)

~~~
q3k
I have this book. It won't teach you neither digital logic nor hardware
design.

I highly recommend against learning any of these with a complex board like the
Zynq, and instead getting a simple iCE40-based FPGA and starting from blinking
a few LEDs and writing an UART peripheral.

~~~
bri3d
I agree. My first project was a dual port SRAM emulator on iCE40 with UART bus
snoop to enable real time tuning of really old BMW Motronic ECUs. This was a
pretty fun/easy first project and had about the right scope. I started in
icecube and eventually moved over to the OSS toolchain which was nice as well.
If I had started by trying to accelerate some kind of complex algorithm
attached to a microcontroller I doubt I'd have finished.

