Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What are people doing with FPGAs? I'd be really interested in understanding or seeing some cool projects!


Driving a lot of LEDs: https://mobile.twitter.com/GregDavill/status/119251563062629...

Processing video (especially if you have weird requirements like 14 bit greyscale input): https://gregdavill.com/blog/2018/9/9/boson-camera-project-pa...

Experimenting with non-mainstream CPUs: https://www.thanassis.space/myowncpu.html

https://github.com/cliffordwolf/picorv32


Originally FPGA evolved from programmable logic devices. An EPROM is probably the most widely used example of a PLD. Partially because of this there are a lot of projects in SDRAM designs out there.

Usually if you need extremely fast i/o in the nanosecond order of magnitude then FPGA designs are a common design choice. An example of this are GPON network switches.

As mentioned in another comment video processing or any signal processing where the algorithms benefit from high parallelization is also an application where an FPGA would be a good fit.

The caveat though is that often FPGA/ASIC development is expensive and slow so a recent trend is to have a System-On-Chip with an FPGA area and multicore Microcontrollers. The idea with this is a hybrid design so that you can have an RTOS dealing with functionality where speed is not as critical. And have a custom design on an FPGA that is responsible for whatever bespoke application you need and have some memory interface between the two.


> An EPROM is probably the most widely used example of a PLD.

Upvote for this. When I used to think about PROM, I think it as a medium of data storage, or sometimes think it's a lookup table. But it's actually simplest form of programmable logic device - a device that can transform x-bit of arbitrary input signals to y-bit of arbitrary output signals, so you can build any digital system that uses combinational logic in PROM (and RAM for sequential logic), including a CPU. And since it's a PROM, you can reprogram it to implement another different logic device, simply by burning a new truth table.

After I realized this, the existence of reprogrammable hardware like FPGAs no longer sounds like magic to me anymore. From this, you can also see that computers with finite RAM and ROM is not a Turing machine, but a Finite State Machine.


I can't speak to what I'm actually doing with FPGAs but lately I've been enthralled by systolic arrays [1] to achieve massive parallelization of certain algorithms. It can be a trick to rearrange cache, computation and communication to be local, but if your amortization game is strong, O(n) becomes O(1) and it's extremely satisfying work.

[1] https://en.m.wikipedia.org/wiki/Systolic_array


Preserving old CPU architectures and building fun retro arcade machines of them:

http://www.racketboy.com/retro/mister-fpga-the-future-of-ret...


Somewhat unexpectedly, many FPGA's industrial applications involve implementing a simple CPU (a "programmable state machine", PSM) and then having the domain logic coded in its machine language (using a cross-assembler).


My previous project was an UWB indoor tracking system for VR. FPGAs did all the signal transmission, reception, and digital signal processing: https://www.youtube.com/watch?v=mYyFUQbWC1E

My current project is AR glasses. An FPGA is decoding a displayport signal and driving the display.


I try to use FPGAs for pretty much all my hobby projects, even if using an RPi or any other microcontroller would make more sense.

Because writing RTL is much more fun.

And if I happen to need a little CPU for some generic control operations, I just add a soft core to my design.


Few applications I have worked on lately involving FPGAs: - RF and microwave, direct digital synthesis. - Data acquisition and analysis (fast, very fast) - Time of Flight imaging/video - Timing critical process control


We build 3D scanners for dentists https://www.youtube.com/watch?v=C5jKnxEyrbU


Analogue Nt's consoles all rely on FGPAs to emulate the original systems on a hardware level.

https://www.analogue.co/nt-mini/

https://www.analogue.co/pocket/


Building a multiband GNSS receiver on-orbit, in order to observe the weather.

https://www.ecmwf.int/sites/default/files/gpsro_lecture_2015... is an overview.


it's also used in high frequency trading (market data processing, order passing, light strategies)


That's probably only one of many applications. Just search for DFE (data flow engine). Maxeler is one of the manufacturers.



Building an improved Amiga accelerator and a new standalone byte-compatible Motorola 68K Amiga

http://www.apollo-core.com/


Motor control for a pretty high number of motors.

There's rumors that a couple of the big cloud vendors use them on network cards for SDN.

Integration with non standard peripherals like ku band radios on a satellite.


>There's rumors that a couple of the big cloud vendors use them on network cards for SDN.

No rumours needed, the papers are out there in the open.


For network cards specifically it seem surprising that it wouldn't be more economical for the big three to roll out custom silicon instead of FPGA.


IIRC, the configurable logic took the place of the CAMs in the routing table mainly. There's cool niches where FPGAs make sense due to their on the fly reconfigurability even more than a purpose designed asic would.


Do they really alter the images "on the fly" when traffic is flowing? Or do they have some situation where it's OK to stop traffic on their network interface for a short while?


Yeah, they do. They might drop a few packets during a partial reconfiguration if a stream is still in progress, but that's bound to happen anyway on routing changes.


I said rumors due to saying "a couple". I know that azure is pretty public about it, but I didn't think AWS and Google were.


FPGA's are an essential part of high speed trading these days.




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

Search: