Live data from Hacker News

Cheap FPGA Development Boards: What to look for

joelw.id.au

11–20 of 56 posts

Re: Cheap FPGA Development Boards: What to look for

#12
post #10
post #8

My problem with FPGA is two fold - I have no idea what to use them for and I have no idea how to use them. Yet with all these mentions here I fear that I may become unemployable as a software developer if I don't keep up.

I worked w/ FPGAs exclusively for 5 years and still don't have many ideas for using them. (In other words, small ARM computers running Linux are more exciting. And low-power boards like the JeeNode etc) Actually an interesting arch for me would be small FPGAs together w/ an ARM system, where the FPGA would handle the fast interrupts, buffering things, and communicate w/ the processor when its ready.

Theres Zynq which combines an ARM core with an FPGA.

The Parallella board contains one I believe (http://www.parallella.org/)

Re: Cheap FPGA Development Boards: What to look for

#13
post #10
post #8

My problem with FPGA is two fold - I have no idea what to use them for and I have no idea how to use them. Yet with all these mentions here I fear that I may become unemployable as a software developer if I don't keep up.

I worked w/ FPGAs exclusively for 5 years and still don't have many ideas for using them. (In other words, small ARM computers running Linux are more exciting. And low-power boards like the JeeNode etc) Actually an interesting arch for me would be small FPGAs together w/ an ARM system, where the FPGA would handle the fast interrupts, buffering things, and communicate w/ the processor when its ready.

Depending what you're doing, you might still have a better time pairing a high level ARM processor running Linux to a low-level ARM MCU running bare metal or FreeRTOS.

What kinds of things can you really do better/faster/cheaper on an FPGA vs, say, STM32 F4 series?

Re: Cheap FPGA Development Boards: What to look for

#15
Its a good article in general with one very minor error. It explains you want on board LEDs and switches because its too easy to screw up soldering your own. The core reason why you want LEDs and switches on a FPGA board, why you'd buy included or solder your own, is too often during debugging this will be your UI.

So you are in a quandary about which of several PLL designs to implement. Its not 1990 anymore, you've probably got space on the chip to put them all in, and select which operates in real time using the switches. Then you wire up your spectrum analyzer or scope or whatever exotic test gear you require, fire it up, and instantly flip between implementations while its running. You figured it out in theory, now in practice which one actually has the fastest lock up, or the lowest noise performance, or the least noise spurs at critical freqs? Just flip the switches and find out.

And on the LED side, there's a lot of testing patterns that boil down to "and when the state machine hits this state, aside from entering state 8, it also fires the LED on a little timer" Again hook up all your real world hardware and see what happens.

True, you could implement a VGA display and PS/2 keyboard without much hardware work, but then you have to drive them probably with an embedded processor, a little picoblaze or whatever running the UI... and all that screwing around to basically re-implement LEDs and switches, just slower and harder to do.

There are in circuit analysis tools, some of them pretty cool, and some of them are actually reliable, but fundamentally you're always going to find some LEDs and switches, its just too easy and convenient.

There is also the "hello world" test proving your hardware and dev system aren't screwed up, everyone has their personal favorite, what I always use is a simple 3-input switch / 2 output LED full adder.

I've also been known to do things like output the version number of my project on the LEDs. Hey, they're just sitting there and everyone who's actually done labwork has had the amusing experience of thinking they're testing version 12 but finding out they uploaded version 11 or whatever.

Finally when the analog / hardware side isn't ready, if theres no timeouts and its a strict state machine, I've been known to flip switches as inputs, many millions of times slower than the real hardware works. Hand toggling switches to talk to an I2C slave or SPI is a little tedious, but sometimes the best option. Once you get past layer 2/3 type problems there's higher level protocol tools, some are even cheap like the "bus pirate" or you can send $375K to Agilent for slightly more advanced test equipment.

Re: Cheap FPGA Development Boards: What to look for

#16
post #3

I wish I knew what this person was using them for :-) Has anyone made a similar comparative study of my biggest gripe with FPGAs: the quality of the (more or less mandatory) development software? In my experience, it's pretty horrendously terrible :(

Yeah, tools from hardware vendors are notoriously awful. Embedded debuggers (JTAG) are almost always terrible, too.

Re: Cheap FPGA Development Boards: What to look for

#17
post #10

Earlier quoted context omitted.

I worked w/ FPGAs exclusively for 5 years and still don't have many ideas for using them. (In other words, small ARM computers running Linux are more exciting. And low-power boards like the JeeNode etc) Actually an interesting arch for me would be small FPGAs together w/ an ARM system, where the FPGA would handle the fast interrupts, buffering things, and communicate w/ the processor when its ready.

Depending what you're doing, you might still have a better time pairing a high level ARM processor running Linux to a low-level ARM MCU running bare metal or FreeRTOS. What kinds of things can you really do better/faster/cheaper on an FPGA vs, say, STM32 F4 series?

"STM32 F4 series"

You know how you start a microcontroller project with a "dream shopping list" of timers, I/O devices, memory, whatever features, then all the mfgrs have a giant table you scroll thru and then you trade off, "well, I need at least 3 SPI and 128K of ram, but they don't sell 128K ram with 3 SPI I need to buy a 192K to get my 3 hardware SPI, of course I could do two in hardware and bit-bang in software the 3rd...". Or even worse "I need at least three hardware PWM timers although they only need to be 24 bit, but the entire F4 series has exactly two 32 bit timers, oh knoes what am I going to do?" Even worse as the project changes over time.

With a FPGA you skip all that garbage and just synthesize in what you need. Oh I need 3 PWM timers, well, include three of them, no big deal. Wanna HDMI, if you can wire it in, you're good.

Ideally you'd put the "boring" parts of your software in the FPGA I/O device. If you're building a thermostat, why write the state machine in assembly or C, just use some mag comps and timers. Put the UI in the softcore processor.

If you're doin' it right, your UI soft processor need run no faster than a human, say 100 KHz clock speed. How fast can a human being hit a hardware debounced up arrow and read the LCD? If you're doing it wrong, you've got a softcore processor running multiply-add in software at 80 MHz and wishing for higher CPU performance.

There was an era of a couple decades which ends with FPGAs where its cheaper to throw in software than hardware, even throw in multiple microcontrollers. Why put in hardware schmidt trigger gates and resistors/caps to hardware debounce a switch if you can write 10 lines of code to do it in software? The hardware of the future will be a FPGA with exactly what you need and a very smart/advanced peripheral library. Why write 10 lines of buggy code to soft debounce a switch when you can just include some FPGA library code to get a perfect debounce with no race conditions or interrupt collision problems in the software, its just perfect.

Re: Cheap FPGA Development Boards: What to look for

#18
post #3

I wish I knew what this person was using them for :-) Has anyone made a similar comparative study of my biggest gripe with FPGAs: the quality of the (more or less mandatory) development software? In my experience, it's pretty horrendously terrible :(

A few years back I was working on a PhD project that involved software defined radio for tracking wildlife in real time, which was an ideal FPGA project. With a limited budget I was keen to find the cheapest boards out there, and decided to start maintaining the list.

Sadly I don't have much time to use them from day to day any more, but still help people out when they email.

The comparison of development environments is a great idea which I'll definitely work on! They have a baffling range of paid editions with different featured and it's difficult to know what they all mean and why you'd want them. Thanks for the idea :)

Re: Cheap FPGA Development Boards: What to look for

#19
post #10

Earlier quoted context omitted.

I worked w/ FPGAs exclusively for 5 years and still don't have many ideas for using them. (In other words, small ARM computers running Linux are more exciting. And low-power boards like the JeeNode etc) Actually an interesting arch for me would be small FPGAs together w/ an ARM system, where the FPGA would handle the fast interrupts, buffering things, and communicate w/ the processor when its ready.

Depending what you're doing, you might still have a better time pairing a high level ARM processor running Linux to a low-level ARM MCU running bare metal or FreeRTOS. What kinds of things can you really do better/faster/cheaper on an FPGA vs, say, STM32 F4 series?

[deleted]

Re: Cheap FPGA Development Boards: What to look for

#20
post #15

Its a good article in general with one very minor error. It explains you want on board LEDs and switches because its too easy to screw up soldering your own. The core reason why you want LEDs and switches on a FPGA board, why you'd buy included or solder your own, is too often during debugging this will be your UI. So you are in a quandary about which of several PLL designs to implement. Its not 1990 anymore, you've…

Excellent point about the LEDs and switches - and that's exactly what I use then for! You can never have too many LEDs when you want to track the progress of a ponderous and misbehaving state machine. I'll update the article with a clarification in the morning!
Post reply on HN