• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

FPGA Circuits?

Status
Not open for further replies.

Robo_Pi

New Member
Hi,

I would like to find information on FPGA circuits. Which forum would I post this in? I didn't see an FPGA forum category.

What I'm looking for specifically is information on how to design a neural network on an FPGA.

I'm totally new to working with FPGAs so I'm looking for the absolute simplest design possible. It doesn't need to do anything useful.

I'm looking for a design that I can fully understand and work with for learning. So the most elementary learning example is what I'm seeking.

Thank you.
 

dknguyen

Well-Known Member
Most Helpful Member
Then use an FPGA module like micronova mercury (uses outdated software but easier to get started) or Trenz 0725 (more powerful and up to date). FPGAS are a PITA and expensive to design and make boards for. You can buy the micronova direct from manufacturer or trenz from digikey if you're in north america. You can buy straight from trenz if in europe.

you'll need to learn vhdl or verilog. They arent programming languages so dont have preconceptions from programming or you will be lead astray.

you'll also need a programmer for the trenz. You can use trenz's xmod for easy use with the module, but the digilent HS3 is more easily usable on more platforms. micronova has one onboard and does not need a programmer.
 
Last edited:

Robo_Pi

New Member
Then use an FPGA module like micronova mercury (uses outdated software but easier to get started) or Trenz 0714 (more powerful and up to date). FPGAS are a PITA and expensive to design and make boards for.

you'll need to learn vhdl or verilog.
I already have an FPGA developement board and I'm currently learning VHDL. I also already have experience designing digital logic circuits.

All I'm interested in here is finding an extremely simple example of a neural network for an FPGA. I need something extremely simple. Something designed for teaching the concept. I don't want a large neural network that has already been programmed into a library. That won't do me any good. I want to understand how to build a neural network on a FPGA from the ground up. So I'm looking for the simplest possible example circuit. Kind of like the "Hello World" for Neural Networks on an FPGA.
 

AnalogKid

Well-Known Member
Most Helpful Member
Interesting question. I'd start by searching the app note and design brief libraries at the big guns - Xylinx, Lattice, Atmel (did they get bought), etc. Another possible source is an online college-level FPGA course or a biomedical engineering course, research paper, etc.

ak
 

dknguyen

Well-Known Member
Most Helpful Member
I already have an FPGA developement board and I'm currently learning VHDL. I also already have experience designing digital logic circuits.

All I'm interested in here is finding an extremely simple example of a neural network for an FPGA. I need something extremely simple. Something designed for teaching the concept. I don't want a large neural network that has already been programmed into a library. That won't do me any good. I want to understand how to build a neural network on a FPGA from the ground up. So I'm looking for the simplest possible example circuit. Kind of like the "Hello World" for Neural Networks on an FPGA.
ah, i see. outta my league then.
http://lab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/Omondi2006.pdf

https://stackoverflow.com/questions/2190470/neural-network-simulator-in-fpga
"Most attempts at building a 'literal' neural network on an FPGA hit the routing limits very quickly, you might get a few hundred cells before P&R pulls takes longer to finish than your problem is worth waiting for. Most of the research into NN & FPGA takes this approach, concentrating on a minimal 'node' implementation and suggesting scaling is now trivial.

The way to make a reasonably sized neural network actually work is to use the FPGA to build a dedicated neural-network number crunching machine. Get your initial node values in a memory chip, have a second memory chip for your next timestamp results, and a third area to store your connectivity weights. Pump the node values and connection data through using techniques to keep the memory buses saturated (order node loads by CAS line, read-ahead using pipelines). It will take a large number of passes over the previous dataset as you pair off weights with previous values, run them through DSP MAC units to evaluate the new node weights, then push out to the result memory area once all connections evaluated. Once you have a whole timestep finished, reverse the direction of flow so the next timestep writes back to the original storage area."
 

Robo_Pi

New Member
ah, i see. outta my league then.
http://lab.fs.uni-lj.si/lasin/wp/IMIT_files/neural/doc/Omondi2006.pdf

https://stackoverflow.com/questions/2190470/neural-network-simulator-in-fpga
"Most attempts at building a 'literal' neural network on an FPGA hit the routing limits very quickly, you might get a few hundred cells before P&R pulls takes longer to finish than your problem is worth waiting for. Most of the research into NN & FPGA takes this approach, concentrating on a minimal 'node' implementation and suggesting scaling is now trivial.

The way to make a reasonably sized neural network actually work is to use the FPGA to build a dedicated neural-network number crunching machine. Get your initial node values in a memory chip, have a second memory chip for your next timestamp results, and a third area to store your connectivity weights. Pump the node values and connection data through using techniques to keep the memory buses saturated (order node loads by CAS line, read-ahead using pipelines). It will take a large number of passes over the previous dataset as you pair off weights with previous values, run them through DSP MAC units to evaluate the new node weights, then push out to the result memory area once all connections evaluated. Once you have a whole timestep finished, reverse the direction of flow so the next timestep writes back to the original storage area."
Thanks for taking the time to do a search. I've already found both of those resources myself. In fact, the first one from Omondi does provide some pretty basic examples. I can probably work from that on my own. But I was hoping to find a simple tutorial where someone actually creates a working example on an actual FPGA either using VHDL, Verilog, a Finite State Machine, or an actual circuit diagram.

Once I learn how to make a simple example I'll write up my own tutorial on it for others to use as an introduction to neural networks on an FPGA. So far I haven't been able to find a really simple tutorial. Although I have found tons of simple tutorials on basic neural networks. I might need to just translate one of those onto an FPGA myself. But I was hoping that someone else had already done that. Save me from having to start from scratch.
 
Status
Not open for further replies.

EE World Online Articles

Loading
Top