Looking for more real-world applications of FPGAs

Go To Last Post
46 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've always been curious about doing something with FPGA hardware, but never had any idea of a feasible. 

I already known some about FPGA  programming, well, nuts and bolts of the basic concept i mean, like Basic Introduction and Design flow of Programmable Logic Device FPGA, that helps a lot for me for the earlier time by the way (If you also need to pick up this, you can check it out here). 

when i first started looking at Arduino I am just feeling: what's something meaty or complex / involved that really taxes the hardware to its limits?

For me, one Arduino example would be motion simulation: controlling 2-6 motors / actuators with PID processing for motor control, interfacing to a PC for force and acceleration inputs, with some limit switch and overheat / overcurrent failsafes. I have seen these in action, and have a very simple understanding of what is involved. It's practical, real-time, dynamically physical and gives me an idea of what is possible vs the blink without delay sketch.

I am keen to delve deeper into FPGAs.

In my youtube travels, I have seen lots of arcade games and VGA drivers, blinking leds (!!), bitcoin miners and musical keyboards.

What really impressed me was embedding an Atmel uC into the FPGA, and being able to program that embedded processor with Arduino IDE.

But like the blinking led examples for Arduino, the FPGA examples I am seeing seem more theoretical, or entertaining.

I guess I am looking for more real-world applications of FPGAs and particularly examples where the technology is being used to its potential. I want to know what I can aim for in my learning, what I can aspire to.

Any takers?

Last Edited: Sat. Mar 3, 2018 - 07:47 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You might find that medical imaging equipment is chock full of fpgas. They need to deal with a lot of real time data in real or near real time.
There’s plenty of opportunity with lidar and radar processing.
Artificial intelligence.
Real time video processing

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Go to the vendors websites - I'm sure they'll have some "showcase" applications ...

 

Real-time high-speed image processing is a big one.

 

eg, Automatic Number Plate Recognition (ANPR) for fast (70mph+) roads ...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Sat. Mar 3, 2018 - 11:27 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

awneil wrote:
Go to the vendors websites - I'm sure they'll have some "showcase" applications ...

for example: https://www.xilinx.com/applications.html

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

bigbang7809 wrote:
I guess I am looking for more real-world applications of FPGAs and particularly examples where the technology is being used to its potential.

Icestorm

...

 

https://www.avrfreaks.net/forum/icestorm#comment-1905831

...

... what are good reasons to be using FPGAs nowadays? How common are design challenges now that aren't met by very cheap off the shelf solutions?

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Fpga's are used in > USD30 Logic Analysers from Ali / Ebay / China.

 

OpenCores might be an interesting place for you:

https://opencores.org/projects

You can also try searching for fpga stuff on github, but I don't really know how succesfull that will be.

 

FPGA development boards used to be expensive, but a little peek on Ali show's they start at USD 15 nowaday's:

https://www.aliexpress.com/wholesale?SearchText=fpga+development+board

For that kind of money it won't hurt too much if you let some of the magic smoke out.

 

Edit: addition:

Duckduck was still open after my post:

https://duckduckgo.com/html?q=fpga+core+microcontroller

And it linked to a pdf from Altera:

https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/wp/wp-01255-top-7-reasons-to-replace-your-microcontroller-with-a-max-10-fpga.pdf

It seems that FPGA's nowadays have built in ADC's

I also have some vague memories of programmable analog logic. Opamps, filters and such, in a chip, but I don't know how popular and/or widespread that stuff is.

There is far to much going on in this world to keep track of it all.

 

Have Fun.

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

Last Edited: Sun. Mar 4, 2018 - 10:33 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

On hackaday you can also find quite a collection of FPGA related projects:

https://hackaday.com/blog/page/23/?s=fpga

 

Maybe also try instructables?

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Right now I can think of two real applications that could not be done so easily on any currently available processor:

- Software defined radio: Software is the FPGA's configuration in this case. A single channel receiver might be possible, but a receiver that can track several fast data channels at the same time is better implemented on an FPGA.

- Transaction signing for financial infrastructure: The algorithms used (mostly RSA) to ensure the authenticity of the transactions are very heavy and there are many concurrent transactions on a server for a larger financial institution. So the cryptography is delegated to dedicated hardware, implemented on FPGAs. The goal here is both to have purpose built hardware which is maximally efficient at these calculations and also massive parallelism. There are dozens of "cores" (not as in CPU cores) on a single FPGA that all work (almost) independently.

 

As a rule of thumb, an FPGA is especially useful for tasks that are easy to parallelize and that need a high and constant data throughput. Also the, task should not be computationally difficult.

"Some people die at 25 and aren't buried until 75." -Benjamin Franklin

 

What is life's greatest illusion?"  "Innocence, my brother." -Skyrim

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pawi777 wrote:
... and there are many concurrent transactions on a server for a larger financial institution.
An alternative is blockchain where the computations are done on the machines in the network.

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

bigbang7809 wrote:
I guess I am looking for more real-world applications of FPGAs and particularly examples where the technology is being used to its potential. I want to know what I can aim for in my learning, what I can aspire to.

 

Digikey shows FPGA starting from $1.30/500, whilst MCUs start from sub 30c/500.

That's a quite low FPGA entry price, which opens many applications, but for very price sensitive designs, FPGAs will be used only if absolutely necessary.  

 

At those prices, it is less about "where the technology is being used to its potential" and more about what can you add that makes simple economic sense.

eg a Motor controller might use a FPGA to add a couple of channels of Quadrature encoder missing from a MCU, that needs to count to 1MHz+, and that's not really "being used to its potential".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
a Motor controller might use a FPGA to add a couple of channels of Quadrature encoder missing from a MCU
  Bad example Quadrature counters on uC timer hardware is getting increasingly common these days.

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:

Who-me wrote:
a Motor controller might use a FPGA to add a couple of channels of Quadrature encoder missing from a MCU
  Bad example Quadrature counters on uC timer hardware is getting increasingly common these days.

Read what I wrote carefully - it is common to not have enough Quadrature channels, and require more.

 

Looking at the dsPIC series for example - high end motor focused parts, but with a choice of 0,1,2 QEI and that's it.

Someone using a RaspPi as their MCU, will find zero QEI available ....

 

The point is, adding a FPGA allows you to select a MCU without needing to have every single peripheral included.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Many thanks for the info.

Have a nice day!wink

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

@Who-me:

When using small uC's such as dsPIC or Cortex-M3 a setup of one microcontroller per motor seems a more logical choiche.

Raspi is a very bad example. the processor in there is specifically designed for multimedia applications.

Of course it does not have Quadrature hardware.

If you look at TI's Sitara processor (Used in the BeagleBone). it has some very nice features as an "Intermediate" step to an FPGA.

It has 2 "PRU's" (Programmable Realtime Unit) which are 200MHz microcontrollers built directly into the silicon with real-time memory sharing with the main processor.

These PRU's do not get interrupted and are designed for hard real-time applications. Using them for EtherCat or Quadrature decoding.

 

(P.s: What is thie "QEI" ting? I get some references to some old english queen on the 'net).

 

But wen entering the realm of PC hardware.

For CNC applications "motion control" cards are very often FPGA based.

With LinuxCNC the "mesa" cards, wich are freely programmable FPGA cards are popular for getting rock solid step and direction pulses for multiple stepper (or other) motors.

https://duckduckgo.com/html?q=linuxcnc+mesa

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You may be interested in an on-ramp for learning FPGAs. I encourage you to check out this wiki, which is being developed just for FPGA newbies:

https://www.mocomakers.com/wiki/learning/

 

To support an AVR core you'll need a very large FPGA, but you probably want to start learning from a cheaper FPGA, and then throw more hardware at it once you've got the basics. The Fipsy FGPA is being developed for beginners, and is affordable, with basic examples given.

 

The Arduino section of the Wiki shows you a project that creates an Arduino environment on a FPGA.

 

MoCo Makers - A community for DIY and tech enthusiasts

Last Edited: Tue. Mar 20, 2018 - 10:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:

Raspi is a very bad example. the processor in there is specifically designed for multimedia applications.

What the processor was originally designed for, does not matter to all those raspPi users.

 

If I google raspberry pi for embedded control  the result is  About 2,390,000 results

 

That's many more hits than AVR for embedded control

Looks to me like Raspi is a very good example, of something needing some help with the coal face of embedded control.

 

Paulvdh wrote:

(P.s: What is thie "QEI" ting? I get some references to some old english queen on the 'net).

 

My guess is Quadrature Encoder Interface ?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

mocomakers wrote:
To support an AVR core you'll need a very large FPGA

By "support" here, I guess you mean to implement the AVR within the FPGA?

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That's right. gchapman has a good link. In fact the OpenCores Project has all kinds of cores that can be implemented rapidly.

MoCo Makers - A community for DIY and tech enthusiasts

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I was curios. "Papilio" rang a bell so I clicked on Chapmans' link.

First I was put off by the multiple screenshots of that java contraption used by some aruidno folks.

 

I stopped reading just after:

 

I really do not understand why anyone would put up with crap like that in 2018.

A statement like that is exactly the same to me as qouting:

"We have no clue about writing decent programs and / or we don't give a damn about our user base"

 

Whenever I find a project where such basic things are not handled, I automatically assume that the rest of the software is of similar hobbyist quality and so bug ridden that I do not want to waste a further second of my time on it. Yuch !

(Some exceptions, if there is no viable alternative, do apply).

 

On unix like systems this has never been an issue (as far as I know).

When microsoft finally caught up with long file names (Was it in windows '95) That's more than 20 years ago. They did a really stupid thing by immediately putting everything in the "Program Files" directory. and that space (and / or long filename) has caused a tremendous amount of headache for far to many people.

Apart from that the longest name in my root directory is 5 letters long. Quite enough.

and "/home" has stayed the same for 40 years or so?

 

About OpenCores:

I beat you to that in post #6.

 

On the last Fosdem (Brussels 2018-02) there were some talks on the development of open source tools for working with FPGA's.

Have you tried typing "FPGA" in github?

I'm curious -> 7,482 repository results for:

https://github.com/search?utf8=%E2%9C%93&q=fpga&type=

 

Now, if 5% of those are interesting projects...

 

 

 

 

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
On the last Fosdem (Brussels 2018-02) there were some talks on the development of open source tools for working with FPGA's.

Olimex on Wordpress

This is FOSDEM 2018

08 FEB 2018

https://olimex.wordpress.com/2018/02/08/this-is-fosdem-2018/

...

Jesús Arroyo Torrens presented Icestudio – graphical way to program FPGAs. I would say this is quite entertaining and easy start for beginners with no previous knowledge about electronics.

main

Juan Gonzalez-Gomez (Obijuan) upgraded this talk with very entertaining presentation about what he did with Icestudio and small funny blocks he created. He is using his daughter as beta tester. I recommend you to watch this talk when the video is available.

Juan and Jesus are part of Spanish community working with FPGAs. You can see more about what they do on this site FPGAwars.

Staf Verhaegen shared his findings about is it possible today to implement ASIC design with open source tools. Very interesting topic, let’s hope the time Makers and small companies will be able to make their own chips with Open source tools is approaching.

...

P.S.

It’s amazing how the organizers make such event possible, between 8 and 10 000 people all around the world come together at one place. 

Wow

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I've never been to Fosdem myself yet.

Fosdem has grown so big / popular that they even started organizing sight seeing tours in Brussels for the non software inclined spouses and kids.

Apart from all the talks and presentations it is an opportunity for people who have worked on Open Source projects together for years to finally meet face to face (maybe with a beer or two inbetween them).

 

I believe there were at least 2 different talks related to Jesús Arroyo Torre's ICESTUDIO.

A simple search on the Fosdem site itself gives 20 FPGA related hits:

https://fosdem.org/2018/search/?q=fpga&page=1

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Inside a Behriger X32 digital mixing console: https://youtu.be/FKQtOyi5VCY?t=374

 

X32

 

And some ATMega8As, too:  https://youtu.be/FKQtOyi5VCY?t=434

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

My 40 year old VIC-20 has an FPGA connected to it now...

 

https://www.youtube.com/watch?v=4BOKJl4wUik&feature=youtu.be

 

 

... and an XMega, of course.

 

Maybe not practical, but certainly an example of  "real-world"!

 

Brad

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

That is very awesome, thanks Brad.wink

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Now I'm feeling hurt and dissapointed. crying

You think a photograph of a breadboard is more awesome than a link to opencores?frown

Or more awesome than a link to hackaday with > 23 pages of FPGA projects?

 

Now I have an idea:

Search Youtube for "Jeri Elsworth". She is a very lovable woman wich does truly awesome stuff.

Her video's are surely more awesome than a breadboard photograph.

One of the projects she did was the design of a complete Commodore 64 in a FPGA chip. (maybe an extra RAM and some small stuff added).

This was even sold as a complete product, which looked like a yoystick which you could plug directly into an tv.

As far as I know she unfortunately did not make much money out of it.

She did the design for some asian company and to cut cost they ommitted all decoupling caps and other things which caused "some production problems"

She has even got her own wikipedia page and her own site:

https://www.jeriellsworth.com/

https://en.wikipedia.org/wiki/Jeri_Ellsworth

https://en.wikipedia.org/wiki/C64_Direct-to-TV

 

Edit:

Name correction, links.

It also was not my intention to downplay the awesomeness of Atomic Zombie's breadboard in any way, nor to start a contest nor name calling feute about awesomeness.

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

Last Edited: Mon. Mar 26, 2018 - 02:48 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My post was not a comparison of what is more awsome.

My post was in response to "real world".

In "my" world, breadboard is "real", and so is this FPGA project.

 

And yes, Jeri is truly awesome.

So please spell her name correctly from now on.

All-righty-then!

 

Brad

 

 

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have a friend which use FPGA in two areas: advanced SRM drivers for motors and generators and high speed PLC (full loop in a few us).

Last Edited: Mon. Mar 26, 2018 - 01:03 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Here is another real world example from my basement hacking lab.

 

Lazarus-64...