Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Cheap FPGA Development Boards (joelw.id.au)
124 points by homarp on Aug 8, 2020 | hide | past | favorite | 61 comments


I can't let a topic like this pass by without mentioning commercial (often obsolete) FPGA-based products that are repurposed as development boards. They usually offer FPGAs with much higher capacity for rock bottom eBay prices.

* Pano Logic G1 board: https://github.com/tomverbeure/panologic

* Pano Logic G2 board: https://github.com/tomverbeure/panologic-g2

* Colorlight 5A-75B: https://github.com/q3k/chubby75

* Cisco HWIC-3G-CDMA: https://github.com/tomverbeure/cisco-hwic-3g-cdma

Playing with these has been a fun hobby of mine and while I have a box full of 'real' development boards, I usually find myself going back to the Cisco board for my personal projects.


Comtech AHA363PCIE0301G might be a future option. They are cheap but I don't think anyone has reverse engineered it yet.


I reverse engineered that one partially as well, and somebody has been able to get to an LED blinky.

However, it has the issue that Intel recently took down Quartus 11.0, which is the last version that supports these FPGAs.


Unfortunately nobody seems to be working on foss toolchain for those either.


If you need 5V compatibility, or large sizes for cheap, search eBay for [altera university]. Since these boards were mandatory for many classes there are pretty easy to find for under $50, and include lots of peripherals, buttons, LEDs, connectors, etc. The cheap ones are old, of course, but still useful.


> If you need 5V compatibility...

The devil in the details is that when 5V-tolerant I/O are naively configured as such, device reliability drops like a rock. You'll likely find this disclosed in the manual fine print. Something to consider when prototyping a design destined for production.


In these boards it's not "5V tolerant". It's actual 5V I/O. EPF10K70. They are obsolete, and so the production part doesn't apply. Solely for hobby stuff.


Fair enough.

What's the software requirement side look like? Intel's website[1; under Legacy Devices] says Quartus II v9.0 was the latest release that could target FLEX 10K devices. Doesn't look like you can download that release anymore, and liable to run into compatibility issues just installing on modern OSs without a VM.

[1] https://fpgasoftware.intel.com/devices/


This only became an issue a few months ago, and it's really annoying if you need older software. Intel/Altera's site used to let you download older releases; it now redirects to a discontinuation notice.


> ...and it's really annoying if you need older software.

Bummer, and a real shame given how seemingly common regressions are in this space. Not my specialization, but anecdotally over a decade or so, I've encountered scenarios on MAX 7000 and Cyclone II (Quartus II v9.0 builds, v10.x breaks), Virtex-7 (Vivado v2018.3 builds, v2019.1 breaks) and Virtex-5 (ISE v14.6 builds, v14.7 breaks).


What do people need 5V for these days?



Driving a stepper directly from FPGA? Why?


Seemed to be more a question of "why 5v at all?", rather than meaning FPGA-specific. ;)


I have a lot of old 8 bit computers, and there's many interesting things you can do with a native 5v FPGA or CPLD there.

I assume interfacing simply with cheap ATMEL and PIC MCUs is another use case.

The university boards can also support 3.3v.


A lot of cheap Atmel micros can run at 3.3v and I think at least some go down to 2.7v.


I need 5v but I don't think any of the few FPGA chips that support 5v are actually usable with the Symbiflow stack.

I do wonder what's the best way to translate to 5v and back. There has to be some fast-switching, go-to part for the purpose.


Unfortunately, there's not a good single solution. Best depends on single vs bi-directional (also, which direction), switching speed, tristate or not, etc.


I do pretty much need to interface a 68000 bus.

D lines and some signals need to be bidirectional. And I might even need to do bus mastering, so most signals would have to be.


This doc might be useful:

http://marc.retronik.fr/motorola/68K/68000/The_68000_and_its...

And, yeah...you have some work ahead. Lots of bi-directional, tristate, open drain, totem pole/push-pull, etc.


Yes, a major pita. Mainly afraid of not groking the bus and driving the bus at the same time as the 68k. The working idea is to use a bunch of some sort of voltage translator chip (finding the right one for this is the pain point), and imposing constraints so that if the CPU is driving the address or data bus as signaled by e.g. /AS or the R/W signal, then the translators won't drive it. With a bunch of 74s or a CPLD in the 5v side.

I didn't have that one PDF, so I saved it for safe-keeping with my other 68k stuff. Thanks.


I recommend the Terasic DE10-Nano. Because of the MiSTer (https://github.com/MiSTer-devel/Main_MiSTer/wiki) project, a cottage industry has formed around addons for this board which makes it a good choice for hobbyists who may want additional peripherals.


It's a great board to run miSTer on, but it got no symbiflow open stack support.


I have always been curious about FPGAs and I think I understand the concept, but what could someone provide some use cases for why you might want one (that aren’t calculating SHA-1 hashes)? As someone who understands microcontroller programming and wiring, what cool things could I do with an FPGA that I would have a hard time doing with other hardware?


Most things you can do with a custom ASIC chip you can do with an FPGA, except with slower clock speeds. High speed signal processing, massive parallel designs, custom anything pretty much. You can (and often do) even have processors inside the FPGA running software. Some real world applications include a lot of video encoding and processing, cellular stuff, electronic warfare and radar applications, self driving cars, and other high bandwidth and high speed custom data processing. Basically if you need a custom chip but don't need 10 million of them, FPGAs are a good choice.


Thanks. So like what do hobbyists use them for? Like why would you buy one to mess around with? And what is electronic warfare?


Some things a hobbyist might use one for:

* Experimental processor design. If you want to make a processor with its own custom instruction set, or modify an existing processor design, you need an FPGA to actually see it in action.

* Synthesizers and audio filters. You can do a lot of low latency signal processing compared to even a beefy microcontroller with an FPGA, so if you want to make your own synth sounds in hardware, an FPGA might make sense.

* Computer vision stuff. If you want to make some gadget that does some kind of image processing that is streaming from a camera, and FPGA would work, especially if you wanted it to be small/portable.

* High bandwidth or low latency SDR applications.


There's not much there for hobbyists past toy ISA design and basic digital logic design exercises unless you really stretch the definition of hobbyist. It's a steep increase in learning curve for power that most people will never use.

Electronic warfare is most commonly the disabling of enemy radio frequency equipment (radar, communications, targeting, etc).


Got it. So it sounds like this post is more for people looking to build products and choosing which FPGA to base them on.


A lot of people believe that the year of the "maker FPGA" is upon us, and that the only thing holding it back is bad vendor tooling, so there's a lot of HN posts about them as of late. The vendor tooling is bad, but more than anything, the use case just isn't there.

Given, this is just my opinion on the matter, so take it with a grain of salt.


Esoteric communication interfaces and situations where you want to address a lot of devices in parallel.

It's kind of a stretch, but take a wall of addressable LED strips like WS2812s as an example. Color data is sent along one wire as precisely-timed pulses, 1.25us per bit.

You can drive a few strips using critical sections written in assembly, or misusing SPI peripherals if your clock speed can easily divide into ~2.4MHz. But you'd be hard-pressed to run dozens of parallel LED strips with a good framerate.

On an FPGA, you can just write an "LED" module and add as many of those modules as you can fit into the chip. You can also decide whether to include a simple CPU in the design, or use another method of processing lighting patterns.

They're flexible, but they are also expensive enough that it's kinda hard to find somewhere that they make sense. A "cheap FPGA" price point of $50-150 is still an order of magnitude pricier than a cheap microcontroller board ($2-10).


Oh interesting. So basically instead of using 20 Arduinos I can make an FPGA into a custom LED driver where I hand it a bitmap and it communicates the image to the LED matrix? That sounds pretty neat.


Thank you for asking this question! Like you, I have some experience with microcontrollers and have lately been kinda curious about getting into FPGAs.

I learned some good perspectives from the replies to your query.


So which company is the most open-source friendly provider of FPGA chips these days?


QuickLogic (EOS S3) do actively contribute to the open stack (to support their own FPGA series) themselves.

https://www.crowdsupply.com/quicklogic/quickfeather

OTOH, while not actively contributing, Lattice (iCE40, ECP5) are aware and do tolerate the open stack.

They reversed some new terms of use recently (stating it was a mistake), when the community realized they had added some clauses against reverse engineering and made a lot of noise about it. It means they are aware of the positive effect the open stack has provided from a marketing standpoint.


AFAIK, none.

Recently Lattice updated their licensing forbidding reverse engineering, but changed their mind once the community complained.

Also, a while back, lattice added support to something that was already implemented on the open source tools, but with a different name -- thus, code that worked on open source don't work on the official tool. (I'm not sure if this was "fixed").

The open source tools have been create by hard work of many hackers. If you want to know more, watch this 35C3 talk [1] where MathiasL describes how they reverse engineered the Artix-7 bitstream.

Last time I checked, Symbflow [2] only supported Lattices FPGAs and Artix-7 (smallest fpga from Xilinx 7-series). Both are quite small FPGAs.

[1] https://www.youtube.com/watch?v=Y1Wwa8csFjk [2] https://symbiflow.github.io/


Probably Lattice, although considering the field that's not saying much. But they at least removed a license term on their software that some of the FOSS toolchain developers complained about.


FPGA tools allow a lot of customization if you need it, what difference will it make if they are fully opensource? FPGA chip design isn't opensource anyway


The vendors tools are notoriously buggy, don't conform to the HDL standard and lacks support to inference of some functional block (cascade DSPs and FIFOs for example).

Some FPGAs features are only available on yearly paid subscription. Also, the license is very restrictive, publishing benchmarking is not allowed, therefore, there is no public information on how to chose a computer to have faster synthesis.

Other than solving those issues, an open source framework enable the researches to search for newer place and route algorithms; enables new HDL languages to target the actual hardware instead of using verilog as intermediate language.


Well you can say the same thing about computers. But if computers were as closed as some FPGA offerings, then we wouldn't have had Linux and its ecosystem of open/free tools, for instance.


Seems out of date. For example, it links to Digilent's retired Zybo board instead of the current version.


When I saw the Parallella (https://parallella.org) listed there I thought that it must be a very old list, but it turns out that it’s still being sold at least by Digikey.

The page is updated though, as can be seen in the edit history with the link at the page footer: https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards?action=d...

As of this writing, the last update was on 2020-07-20.

I’ve sent an e-mail to the author pointing him to this discussion in case other corrections get posted here.



My favorite ebay FPGA board vendor is QMTech.

Cheap, well made,large choice, decent documentation.

[edit]: they also have an aliexpress store.


Putting in a plug for ZTex as well (https://www.ztex.de). Not the cheapest but far from the most expensive, and they publish full schematics. Stefan Z.'s support is first-rate in my experience.


There are cheap Virtex-6 and Kintex-7 boards as well ~$100-$150 on Aliexpress.


The gotchas with those are that:

1) The boards are very bare-bones. Most of the I/Os are tied up in high-speed connectors like PCIe or SFPs, which will be very difficult for a beginner to work with.

2) The Virtex/Kintex parts they're using require a paid (or pirated) Xilinx license, and the sheer size of the parts makes compile times even slower than normal.


1. I/O isn't that bad, 40-100 GPIOs out, pretty much on par with most Artix-7 boards out there, SFP and PCIe is a plus cause Artix chips have no/slow transceivers and simply can't use them, and well everything aside from tutorials aren't beginner thing on FPGAs

2. License is pain though, you can get a proper demo license for Kintex probably

3. Compile times for barebones projects are few times more for a larger FPGAs, but as you add IPs and stuff they take a few minutes on a fastest computer anyway


But if you are not beginner some of these boards are really great. Combination of large and fast Kintex-7 FPGA, SO-DIMM, PCIe and Gigabit Ethernet is really cool. For a price of Zybo Z7-10!!! Compile time and tooling is another issue. Naked ZynQ project with ZynQ alone takes few minutes even on decent machine.


Whenever I look for an FPGA board I keep ending up on https://www.crowdsupply.com/tinyfpga/tinyfpga-ex. The campaign hasn't been updated in over a year though.

Is the project dead, or is there something better out there I should look at?


Check out ulx3s [1], it's a quite an impressive open source dev board with lots of features, based on the same ECP5-series FPGA chip.

[1] https://www.crowdsupply.com/radiona/ulx3s#details-top


Thanks, that one looks great.



It says 512GB SRAM for the EDGE Artix 7 FPGA Development Board. It should say 512KB SRAM.


What I never see mentioned are cheap FPGA dev boards that don't come with any peripherals. I guess those aren't worth the pain of adding the peripherals back on?



I'm curious: Would it be worthwhile porting the entire stack required for http(s) (tcp/ip, ssl, etc) to an fpga? Would it be faster than running it on a CPU?


Disclaimer: not an FPGA expert

I think really any task can benefit from being ported to FGPA, but FPGA clocks tend to be slower than CPU clocks and large logic will force you to lower the clock as components become more spread out on the chip (assuming all the logic elements needed even fit on your board). The caveat is that it's expensive to do things in hardware, and some things are already designed very well -- if you need to design a whole CPU from scratch on an FPGA to run your code it'll obviously be slower, but it will also take way too much time to get it anywhere near real world performance per clock. Since TCP/IP and SSL are mostly pretty specialized, the answer is yes. If you're interested, there's some open-source projects that do part of this https://github.com/fpgasystems/fpga-network-stack)


You can make anything faster on an FPGA given a sufficiently powerful FPGA. Just because something is possible doesn't mean you should do it.


Related HN thread from 4 years ago: https://news.ycombinator.com/item?id=11776190


This is what many load balancer or firewall appliances contain




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: