Live data from Hacker News

Xilinx FPGA Board for Arduino

seeedstudio.com

31–40 of 48 posts

Re: Xilinx FPGA Board for Arduino

#31
post #17

Earlier quoted context omitted.

You are ignoring price point. Small FPGA board from Digilent costs as much as Raspberry Pi 4 4 GB. Development on Raspberry Pi is much more convenient, it is powerful and it already has decent CSI-2, 4K HDMI, Ethernet. Comparable FPGA board goes for hundreds $/€. Because decent CSI-2 with high frame rate and resolution as well as 4K HDMI need decent FPGA with transceivers. Add long hardware development cycles and thi…

I'm just getting started on electronics for an audio project, but the Arduino setup of compiling code on my regular computer and uploading it over USB to firmware seems pretty nice? Since I'm never going to connect it to the Internet or even a monitor, why does Ethernet or HDMI matter? Let alone 4K HDMI. It seems like that's more about having a cheap desktop computer than doing electronics? But I already have a deskt…

You don't need to do your development on the Raspberry Pi, and I wouldn't recommend doing so. It's pretty easy to develop code on your desktop and push it to your Pi via SSH/SCP/etc. You might also be able to set up a connection to push via USB but that might end up being more complicated anyway.

For many projects, people choose something higher-end than an Arduino because their project requires more compute or memory than the 8-bit microcontroller in the Arduino can provide. Common issues:

- You need to do math with larger numbers (anything > 16 bits is really slow on the Arduino), or need to do lots of math.

- Your working data exceeds the ~2 kB of RAM.

- Your project's binary exceeds the ~32 kB of flash.

With that being said, the Raspberry Pi isn't necessarily the best candidate for every project that exceeds these constraints. The Pi is basically the cheapest possible board that includes a graphics card that can handle HD video, Ethernet, and WiFi. It also has a lot of RAM compared to other single-board computers. It is weaker for "real-time" applications like signal processing - if you need to do that sort of thing you might want to look into buying a BeagleBone Black, which has two "programmable real-time units" (PRUs), which are basically small auxiliary microcontrollers that can be used to handle the real-time work.

There are other cheaper/lower power parts in between the Arduino and the Raspberry Pi/Beaglebone level of complexity, but many of them require complicated tooling and libraries that might be difficult to use if you're not already pretty familiar with embedded development.

Re: Xilinx FPGA Board for Arduino

#32
post #30

I've been hearing about FPGAs for the last few years or so, what would be the benefit to using one over something like a Raspberry Pi? What's the killer application?

FPGAs have high-end and low-end uses:

- Low-end: I'm designing a board, and I have one place where I need a little bit of digital logic, but putting a sufficiently capable microcontroller would be too expensive (in money or power budget), and there's no easily available cheap ASIC that does what I need. I put a small low-end FPGA in, and write a little bit of HDL to implement the logic I need.

- High end: I have a very specific computation that I want to perform with very low latency or high throughput, and I've determined that I can design digital logic that will perform better than a general purpose processor (often via massive parallelism that wouldn't work well on a GPU for some reason and/or extremely deep pipelining beyond what a CPU would do). Because performance is so important to me, I'm willing to pay a massive up-front development cost for the digital logic that lives on the FPGA and the software that integrates with it. However, my expected volume is still low enough that getting an ASIC made would be too expensive for my budget. Examples here include packet filtering, bioinformatics, various forms of signal processing, etc. I'll choose a high-end FPGA that meets the specific needs of my application.

- Extremely high end: Same as the above, but I expect to continue to make improvements and incremental changes to the digital logic after it's been deployed. Alternatively, I'm selling my board to customers who will employ their own hardware engineers to add their own digital logic to my high-level design. I'll probably choose a very high-end FPGA that exceeds my current needs to allow space for future changes.

None of the above are likely to apply to hobbyists, so most hobbyists who are developing for FPGAs are likely doing so just because they find it very interesting. The development process is much slower than it is if you're writing code for an ARM chip, and the tools are much more cumbersome, but the process of designing digital logic systems and then having a way to actually implement them can be interesting.

Re: Xilinx FPGA Board for Arduino

#33
post #30

I've been hearing about FPGAs for the last few years or so, what would be the benefit to using one over something like a Raspberry Pi? What's the killer application?

FPGAs have high-end and low-end uses: - Low-end: I'm designing a board, and I have one place where I need a little bit of digital logic, but putting a sufficiently capable microcontroller would be too expensive (in money or power budget), and there's no easily available cheap ASIC that does what I need. I put a small low-end FPGA in, and write a little bit of HDL to implement the logic I need. - High end: I have a ve…

Thank you for your explanation. I guess your last point is why I thought I was missing something:

> None of the above are likely to apply to hobbyists, so most

> hobbyists who are developing for FPGAs are likely doing so

> just because they find it very interesting.

I see posts on HackerDay about FPGAs and think: "What am I missing?". I build robots as part of a hobby and was wondering where on earth they fit into that pipeline. Most of the things I build are either already solved within a single chip, or are easily solved with the addition of a small micro. Developing something using a HDL would be too extreme, even for me.

One thing that I think might be of interest in the future is when the cell count is such that we can process large neural networks, although I suspect they might always lag behind GPUs and/or TPUs.

Re: Xilinx FPGA Board for Arduino

#34
post #20
post #11

Earlier quoted context omitted.

Right now, the homebrew electronics industry is buzzing like linux and open source was in 1996. PCB design and manufacturing has been opened up to millions by cost reductions and open source software in the past few years. FPGA development is following suit as well. One of the big drawbacks of using an Arduino is that it is so limited in the number of modern devices it can access (USB 3, SATA, HDMI In or Out, etc). T…

The Arduino is limited in regards to capabilities because it's a heavy ecosystem (usually) running on a wildly anemic device; you're out of your mind if you're expecting HDMI enc/dec, USB host controller, etc. on an 8-bit microcontroller. The usefulness of LiteX is severely mitigated by just using more powerful microcontrollers coupled with purpose-specific parts.

So explain to me why the RPi doesn't have SATA on board directly then, rather than forcing one to use some kludegy USB to SATA interface. Surely there are purpose built parts for it.

Re: Xilinx FPGA Board for Arduino

#35
post #17
post #11

Earlier quoted context omitted.

Right now, the homebrew electronics industry is buzzing like linux and open source was in 1996. PCB design and manufacturing has been opened up to millions by cost reductions and open source software in the past few years. FPGA development is following suit as well. One of the big drawbacks of using an Arduino is that it is so limited in the number of modern devices it can access (USB 3, SATA, HDMI In or Out, etc). T…

You are ignoring price point. Small FPGA board from Digilent costs as much as Raspberry Pi 4 4 GB. Development on Raspberry Pi is much more convenient, it is powerful and it already has decent CSI-2, 4K HDMI, Ethernet. Comparable FPGA board goes for hundreds $/€. Because decent CSI-2 with high frame rate and resolution as well as 4K HDMI need decent FPGA with transceivers. Add long hardware development cycles and thi…

Is that because the FPGA boards aren't really mass produced like the RPi is? Could you imagine a world where if FPGA's get popular in the electronics market it could change? Could you imagine what might happen if a cheap FPGA platform came in to the market like the RPi did for SBC's?

Again, I'm not saying it's going to happen. But people were making similar arguments about linux in 1996: "Windows just works." And very similar to linux, it dropped the barrier to entry for server programming. Either you had paid through the nose for Unix, or you were coding on NT, and your company was paying through the nose for the server licenses.

Re: Xilinx FPGA Board for Arduino

#36
post #21

Earlier quoted context omitted.

I'm just getting started on electronics for an audio project, but the Arduino setup of compiling code on my regular computer and uploading it over USB to firmware seems pretty nice? Since I'm never going to connect it to the Internet or even a monitor, why does Ethernet or HDMI matter? Let alone 4K HDMI. It seems like that's more about having a cheap desktop computer than doing electronics? But I already have a deskt…

If you're going to do serious audio signals processing, you're probably going to very quickly find out that an 8bit Arduino and the Arduino environment are nowhere near powerful enough for your needs. If you really stick with it, you'll upgrade to something significantly more powerful (both hardware and tooling wise). If you start to push the limits of a 32bit microcontroller or DSP, but are still sensitive to price/…

I've done three years of an electronic engineering degree with a digital design on FPGAs course and I'm still not entirely sure why one would want to use an FPGA for anything - am I right in guessing that what you write in HDL for an FPGA will be faster than what you write in C? Or do you use the FPGA for testing then export designs into hardware?

Re: Xilinx FPGA Board for Arduino

#37
post #5

Earlier quoted context omitted.

I suppose you could use the aurdino as a management controller for the others, but yeah you’ve got a point.

I think the point is that the FPGA can handle very high speed IO in hardware, the ESP32 can host the application software and handle the communications. The Arduino provides power supply and maybe low-speed peripherals like GPIO... (sarc) Still awesome feature set and price point. I'm seriously thinking about using this standalone.

Well... medium speed I/O. "High speed" in an FPGA context would imply a 5+ Gbit SERDES, which the Spartan-7 doesn't have and the connectors on this board wouldn't support anyway.

Re: Xilinx FPGA Board for Arduino

#38
post #21

Earlier quoted context omitted.

If you're going to do serious audio signals processing, you're probably going to very quickly find out that an 8bit Arduino and the Arduino environment are nowhere near powerful enough for your needs. If you really stick with it, you'll upgrade to something significantly more powerful (both hardware and tooling wise). If you start to push the limits of a 32bit microcontroller or DSP, but are still sensitive to price/…

I've done three years of an electronic engineering degree with a digital design on FPGAs course and I'm still not entirely sure why one would want to use an FPGA for anything - am I right in guessing that what you write in HDL for an FPGA will be faster than what you write in C? Or do you use the FPGA for testing then export designs into hardware?

>faster than what you write in C

It's hard to compare working with an HDL to working with a programming language like C; they are fundamentally different. The short answer to that question is that using an FPGA can lead to massive but situational performance increases. You can't use an FPGA for everything, but when you need it, you need it.

>testing then export designs into hardware

This is another common use case. Some designs can be tested on an FPGA before committing that design for production as an ASIC. There's also the case where you may need to reconfigure the hardware, so you can never truly commit to an ASIC, and continue using the FPGA.

Re: Xilinx FPGA Board for Arduino

#39

Earlier quoted context omitted.

I'm just getting started on electronics for an audio project, but the Arduino setup of compiling code on my regular computer and uploading it over USB to firmware seems pretty nice? Since I'm never going to connect it to the Internet or even a monitor, why does Ethernet or HDMI matter? Let alone 4K HDMI. It seems like that's more about having a cheap desktop computer than doing electronics? But I already have a deskt…

You don't need to do your development on the Raspberry Pi, and I wouldn't recommend doing so. It's pretty easy to develop code on your desktop and push it to your Pi via SSH/SCP/etc. You might also be able to set up a connection to push via USB but that might end up being more complicated anyway. For many projects, people choose something higher-end than an Arduino because their project requires more compute or memor…

Yeah, I meant that more genetically as something that works with the Arduino IDE, certainly not an 8-bit processor. I'm considering a higher-end Teensy or PocketBeagle. Does Raspberry Pi have any particular advantages for audio compared to them?

Re: Xilinx FPGA Board for Arduino

#40
post #34
post #20

Earlier quoted context omitted.

The Arduino is limited in regards to capabilities because it's a heavy ecosystem (usually) running on a wildly anemic device; you're out of your mind if you're expecting HDMI enc/dec, USB host controller, etc. on an 8-bit microcontroller. The usefulness of LiteX is severely mitigated by just using more powerful microcontrollers coupled with purpose-specific parts.

So explain to me why the RPi doesn't have SATA on board directly then, rather than forcing one to use some kludegy USB to SATA interface. Surely there are purpose built parts for it.

Because the RPi is a budget SBC where the most common use case is running it off an SD card, and they apparently didn't consider a SATA controller a priority feature. For many users (maybe even a large majority), that assumption was correct.

https://www.ti.com/product/TUSB9261

There's a purpose-specific part from TI that's probably incredibly well supported and easy to source. It instantly adds a little under $7 to the BOM at volume (yikes), and you're not even counting the hundreds of hours of engineering time that would go in to integrating it (double yikes). Trying to do it with an FPGA would be even worse in terms of cost and engineering time.

COTS products don't fulfill every use case, and never will.

Post reply on HN