News for hackers. Stuff that matters.
Re:Why Use an FPGA Instead of a CPU or GPU? by jaxtellerSoA on Tuesday August 14, 2018 @10:39AM (#17758326)
Aren't FPGA's used mostly to test/design a circuit that you would then go on to actually fabricate/build? I could be wrong but I thought FPGA's were stateless (meaning if they powered off/reboot you loose everything and have to set it up from scratch again).
Re:Why Use an FPGA Instead of a CPU or GPU? by LeifCarrotson on Tuesday August 14, 2018 @10:53AM (#17758455)
That is incorrect, or at least inaccurate, on both counts.

FPGAs are often used to test/design not a "circuit" but an ASIC (application-specific-integrated-circuit) that you will then go on to actually build. Or, if your application doesn't have volume to suppprt the ASIC engineering costs but can support the FPGA unit cost, you just leave it as an FPGA. There are millions of devices (industrial machines, research, testing, etc) where this makes sense.

And not all FPGAs loose state when powered down. For those that do, there's typically an easy way to hook up a little Flash chip and bootloader to reload the state automatically on reset. For those that don't have that option (EG, currently working with an ABB robot, Mecco laser, and Rockwell PLC which all contain FPGAs, only the Mecco can boot itself), you store state in battery-backed SRAM and just leave the RAM on at all times.

Re:Why Use an FPGA Instead of a CPU or GPU? by joemi on Tuesday August 14, 2018 @04:06PM (#17761417)
> FPGAs are often used to test/design not a "circuit" but an ASIC (application-specific-integrated-circuit)

To be pedantic, an ASIC (and any IC really) is a circuit, as denoted by the "C" standing for "circuit".

Re:Why Use an FPGA Instead of a CPU or GPU? by corerius on Tuesday August 14, 2018 @11:09AM (#17758613)
Absolutely. In the worlds I work in, FPGA has been standard practice for years and years. As of late, it's becoming more common to place the CPU there for cost reduction.

In addition, you get the opportunity to both update the part and/or to change it's behavior via (for instance) a user setting.

Re:Why Use an FPGA Instead of a CPU or GPU? by luddaite on Tuesday August 14, 2018 @11:50AM (#17759018)
> Aren't FPGA's used mostly to test/design a circuit that you would then go on to actually fabricate/build?

We use FPGAs in cell sorting because we need to make decisions off of high dimensional data with low latency. The cells moving through our system have velocities higher than 1 m/s. They flow past a set of lasers and wind up in a droplet less than a millisecond later so we need to make a decision whether or not to sort a droplet within that time frame. We don't use ASICs because we don't move enough volume to justify the startup cost.

Re:Why Use an FPGA Instead of a CPU or GPU? by vvanders on Tuesday August 14, 2018 @12:07PM (#17759164)
They're also really common for interconnect fabric on reasonably complex systems. Lattice does really well in this space with their low-cost FPGAs/CPLDs.
Re:Why Use an FPGA Instead of a CPU or GPU? by mirashii on Tuesday August 14, 2018 @12:36PM (#17759412)
Are you doing this in a commercial context, or in a university lab or similar? I've seen a few papers come out of universities using this technique but I haven't gotten to look at any commercial gear to see how it works under the hood.
Re:Why Use an FPGA Instead of a CPU or GPU? by luddaite on Tuesday August 14, 2018 @01:36PM (#17760018)
The company I work at manufactures these instruments. There are a bunch of videos on Youtube explaining how these systems work if you search for "flow sorting". I can also answer questions if you have them.
Re:Why Use an FPGA Instead of a CPU or GPU? by stormbrew on Tuesday August 14, 2018 @12:04PM (#17759139)
I have at least 4 FPGAs that will never be made into asics sitting in my office right now and they're not even for highly technical stuff. They're retro video game things (2 everdrives, a video upscaling device called the OSSC, and an HDMI adapter that plugs into the digital out port of the gamecube originally made for component output).

I bought all these things off the shelf. There are definitely some markets that are well served by FPGAs but are still too small for actual fabrication processes.

Re:Why Use an FPGA Instead of a CPU or GPU? by Grazester on Tuesday August 14, 2018 @01:58PM (#17760272)
A fellow retro gamer. I love my OSSC
Re:Why Use an FPGA Instead of a CPU or GPU? by mercurywells on Tuesday August 14, 2018 @10:46AM (#17758403)
Some FPGAs have built in flash that they will automatically load a bitstream from upon boot. If they don't, they typically can load the bitstream from an external flash chip upon powering up, or even via a microcontroller that's interfacing with the flash chip.
Re:Why Use an FPGA Instead of a CPU or GPU? by ashleyn on Tuesday August 14, 2018 @11:30AM (#17758811)
This is exactly how the Mega Everdrive and similar retro flashcarts work. The "OS" loaded from SD card configures an FPGA inside the cartridge.
Re:Why Use an FPGA Instead of a CPU or GPU? by jaxtellerSoA on Tuesday August 14, 2018 @01:46PM (#17760158)
Thanks, didn't know that. Is the boot process slow?
Re:Why Use an FPGA Instead of a CPU or GPU? by zwieback on Tuesday August 14, 2018 @10:45AM (#17758391)
Yes and yes but new uses are emerging, it's like 3D printing: there's a crossover where the extra cost you pay for flexibility becomes too much to compete with hard wired logic despite the high initial cost.
Re:Why Use an FPGA Instead of a CPU or GPU? by monocasa on Tuesday August 14, 2018 @10:58AM (#17758505)
To be fair, it's not new. People have been using FPGAs in that capacity for decades.
Re:Why Use an FPGA Instead of a CPU or GPU? by zwieback on Tuesday August 14, 2018 @11:17AM (#17758681)
Very true, but mostly EEs and embedded SW/FW engineers. I think the SW tools, although still awful, are reaching the point where more SW-focused developers can take advantage of FPGA flexibility.

Which isn't to say every programmer shouldn't be forced to struggle through a Verilog or VHDL project - that'll put some hair on your chest and the fear of god into you. I'll see your async and raise you an "always @(posedge clk)"

Re:Why Use an FPGA Instead of a CPU or GPU? by planteen on Tuesday August 14, 2018 @05:26PM (#17762054)
They are used in production all over the place, along with their smaller cousin, the CPLD. If you see a part on a PCB by Xilinx, Altera, Lattice, or some MicroSemi parts, odds are that it's an FPGA. Many FPGAs lose their configuration on power-off, so you configure the bitstream using a CPU for example. As others have said, there are also flash-based ones.

I personally know of many embedded systems using FPGAs (spacecraft and medical applications), signal processing such as radar, many PCIe cards, etc.

Re:Why Use an FPGA Instead of a CPU or GPU? by TheAdamist on Tuesday August 14, 2018 @01:01PM (#17759664)
They make it into commercial products, for a recent example see nvidia using it in the gsync modules for 4k displays. Although a retail priced $2600 fpga doesn't make for a cheap end product, even when purchased in quantity.

https://www.pcper.com/reviews/Graphics-Cards/ASUS-ROG-Swift-...

Re:Why Use an FPGA Instead of a CPU or GPU? by Twirrim on Tuesday August 14, 2018 @05:15PM (#17761966)
The Bing team at Microsoft use FPGAs in production. I was chatting with one of their developers recently who is focussed on that space for them and he mentioned they find they get similar performance to GPUs, but with significantly less power consumption, while affording them the same levels of flexibility for their particular use case.
Re:Why Use an FPGA Instead of a CPU or GPU? by delroth on Tuesday August 14, 2018 @10:45AM (#17758396)
Many FPGAs can load their bitstream from Flash.
Re:Why Use an FPGA Instead of a CPU or GPU? by jaxtellerSoA on Tuesday August 14, 2018 @01:51PM (#17760198)
Cool, didn't know that. Is the boot time fairly slow compared to booting a normal PC?
Re:Why Use an FPGA Instead of a CPU or GPU? by hobo_mark on Tuesday August 14, 2018 @02:10PM (#17760389)
No, we're talking about microseconds.
Re:Why Use an FPGA Instead of a CPU or GPU? by vardump on Tuesday August 14, 2018 @07:04PM (#17762664)
We're often talking about hundreds of milliseconds.
Re:Why Use an FPGA Instead of a CPU or GPU? by stumpylog on Tuesday August 14, 2018 @10:45AM (#17758392)
No, they retain state. We used an Altera DE1 in school and it retained our burnt in program until erased or reprogrammed
Re:Why Use an FPGA Instead of a CPU or GPU? by zwieback on Tuesday August 14, 2018 @10:49AM (#17758417)
Probably burned into an external EEPROM or flash, the FPGA fabric itself still has to be configured by some external means. It's pretty fast but on-the-fly reprogramming of the FPGA logic is still an issue where you want to very quickly switch the logic on the FPGA.
Re:Why Use an FPGA Instead of a CPU or GPU? by monocasa on Tuesday August 14, 2018 @11:00AM (#17758528)
Most FPGAs I've seen go out of their way to allow you to reconfigure while it's running, you just have to jump through a few extra hoops and get down and dirty with the floor plan.
Re:Why Use an FPGA Instead of a CPU or GPU? by kevin_thibedeau on Tuesday August 14, 2018 @12:00PM (#17759111)
Older Altera CPLDs and Actel/Microsemi antifuse based FPGA families have nonvolatile configuration within the fabric. They enjoy the benefit of near instant start up since there is no programming phase to transfer a bitstream from an external flash part.
Re:Why Use an FPGA Instead of a CPU or GPU? by spilk on Tuesday August 14, 2018 @12:03PM (#17759133)
some have the configuration memory on-die as well to keep part count down. Also good to help protect your bitstream, but this isn't infallible of course.
Re:Why Use an FPGA Instead of a CPU or GPU? by 3chelon on Tuesday August 14, 2018 @10:46AM (#17758399)
No, FPGAs are used in production. There are also plenty of flash-based FPGAs available.