Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: Kohanbash on October 27, 2006, 07:23:24 AM

Title: FPGA's
Post by: Kohanbash on October 27, 2006, 07:23:24 AM
I have been experimenting with FPGA's lately. they seem to be very effiacint and fast. Also i can use it for signal procesing (ie PWM). Any one else have experiance or advice for FPGA's.
Title: Re: FPGA's
Post by: Admin on October 27, 2006, 01:48:36 PM
I know almost nothing about FPGA's but . . .
(doesnt really explain it well, but lotsa links at the bottom)

I once went to this AI talk where a guy was saying you can build a human brain by taking a bunch of modern FPGA's and link em in parallel. Interesting though, if you can get a FPGA to be self reconfiguring . . . you could emulate brain neurons . . . or so his theory goes . . .

I am curious about your project . . . what are you doing with them? Are they cheap or easy to work with?
Title: Re: FPGA's
Post by: JesseWelling on October 27, 2006, 06:56:09 PM
From what I hear they are best used for digital signal processing like filtering for images and preprocessing for robotic vision because they are faster than doing it in software. So if you only had a micro C and a decent camera you could use the FPGA to do preprocessing on the image data so you wouldn't burn up alot of cycles with the micro C.
Title: Re: FPGA's
Post by: Kohanbash on October 28, 2006, 06:12:53 PM
currently i am designing individual components. but my eventual goal is to create a a miniature train station/city. I have already designed traffic lights and train crossings using FPGA's using Xilinz( a free simulator/synthesizer) with relative ease. Currently I'm looking into adding an FGPA core so that i can emulate a PIC.
Using FPGA's could be a good step towards AI since it can truly do parallel tasks without resorting to multiple threads/time sharing.
Title: Re: FPGA's
Post by: JesseWelling on October 28, 2006, 06:26:12 PM
well Stanford got around this by using about 7 full fledged computers in thier Darpa Grand Challenge entry.

I don't see FPGA offering more performance than that.....but for hoby robotics that have limited processing capeabilities for things like visual and audio...yea I can see that working.
Although I still plan on using a black-board type system on my linux based robot, which is of course going to use would be silly not to.
Title: Re: FPGA's
Post by: Kohanbash on October 28, 2006, 07:48:45 PM
7 full computers is still a little large. blackboards are kind of dangerous since all systems have access to it and one fault can realy mess things up.
Title: Re: FPGA's
Post by: Kohanbash on November 04, 2006, 09:40:51 PM
I just finished implementing a FPGA core. It is still extremely sensitive while synthesizing to the chip. Also I lost the ability to run parallel tasks within those macro-cells. However I only have part of the FPGA configured with the core.

I was talking to an HP engineer who said that they are starting to use FPGA's in their printers. This allows them to update the printers "micro" by just replacing the core.
Title: Re: FPGA's
Post by: Admin on December 07, 2006, 05:48:40 AM
found this today . . .
lotsa useful links
Title: Re: FPGA's
Post by: Militoy on December 07, 2006, 08:41:26 AM
A recent issue of COTS Magazine has a good article on FPGAs, and how they are being integrated into more and more military systems – UAVs in particular. I haven’t worked with FPGAs, but the way I understand the technology, there’s no great advantage in using them over ASICs, performance-wise. Where they really shine is in their flexibility. With an ASIC mask running around 1 million dollars, and NRE for a new ASIC running roughly another million $, it’s pretty easy to see the advantage in using FPGAs in short-run production, or in a system that’s evolving quickly.
Title: Re: FPGA's
Post by: Cognaut on December 07, 2006, 11:11:58 AM
I've also been very fascinated with the various programmable gate arrays.  They seem like I could get happily lost in them for years.

There are also chips which contain arrays of DSP processors on an internal grid type network.  In the early 90's, I read about this one particular chip that had 512 fully functional DSP processors, each having a MAC, ALU, SHIFTER, hardware looping, program and data memory, etc.  The total processing power on this one chip was 10 Billion IPS.  That was 15 years ago.  They mentioned visual processing in that product description.

The nice thing about DSP chips is that each of the processor sections (MAC, ALU, SHIFTER, hardware looping, program and data memory, etc) operate independently in parallel, allowing the DSP to perform multiple instructions simultaneously.  Usually 5, or so, for each cycle of the clock.  The internal program sequencer is smart, multitasking as much as the programmer's code will allow.  It has a best of both worlds position between the CPU and the PGA.
Title: Re: FPGA's
Post by: JoeStrout on December 07, 2006, 12:02:49 PM
The XBC (aka Botball Controller) has an FPGA, which is used for a lot of different things, including back-EMF to close the motor loop, and color blob-tracking for real-time vision.  It's very impressive what it can do, for not very much money.
Title: Re: FPGA's
Post by: Cognaut on December 07, 2006, 12:15:16 PM
For some applications, a PGA is the best solution.  It does have the nice feature that you don't need a lot of "glue" chips to implement it on a board.  Any gates you need for multiplexing and whatnot are on the chip, awaiting configuration.
Title: Re: FPGA's
Post by: Kohanbash on December 07, 2006, 04:46:10 PM
FPGA's have interconnect logic beetween the various function blocks that can be reprogrammed with each design. the only thing to be carefull with is when assigning pins( in Xilinx you can save the .ucf file) that they remain constant for differenet versions of your program.
Title: Re: FPGA's
Post by: Cognaut on December 09, 2006, 05:50:18 PM
I think I'm going to have to change my position on the FPGA vs DSP Processor issue.

With the scale and speed of today's FPGA's, I think the dedicated DSP chips have been made obsolete.  I'm going for it.
Title: Re: FPGA's
Post by: Kohanbash on December 09, 2006, 06:33:36 PM
I have already used FPGA's to create Sinusoid, SawTooth, and Square waves with relative ease.
While square waves are extremely easy to create; Sinusoidal and sawtooth are a little trickier. The best way that I have found is by running multiple outputs( ie. 8 bit etc..) to a DAC. For a Sinusoidal wave I have also run square waves with varying duty cycles through one output port and into an RC filter with excellent results.

Also since FPGA's by definition are hardware and have a parallel architecture you can write the code once and initiate it on multiple function blocks to simulate the specialized DSP chips
Title: Re: FPGA's
Post by: JesseWelling on December 09, 2006, 06:52:35 PM
Was looking around for an easy USB solution and found these FPGA's
Don't know any thing about FPGA besides what they can do (generaly) so how do these stack up
if I wanted to learn about them by doing a project?
Title: Re: FPGA's
Post by: Kohanbash on December 09, 2006, 07:19:02 PM
I have never used a USB development kit before. However i have used the FTDI USB/Serial chip before reliably. They look good but from the site it seems contradictory as to how the USB interface is established( FTDI (This is probably how) or directly on the FPGA (which can be dangerous if reprogrammed with another programmer). I am biased to the xilinx FPGA's as those are what i usually use and also the free programming/simulation/synthesize suite that i use is from Xilinx.
A suggestion before shelling out cash for one is to download the software to practice VHDL coding and simulating the designs in the attached microsim program.
Many things will simulate but are not synthesizable to the chip(ex. ambiguous states will cause a synthesize error) with a little experience you can get most designs that simulate to also synthesize on the first attempt.
Title: Re: FPGA's
Post by: Kohanbash on December 09, 2006, 08:41:25 PM
Based on the current theme from the Admin’s image processing tutorials...

Field Programmable Gate Arrays or FPGA’s are good for image processing tasks. FPGA’s have the benefit of being hardware and being able to perform parallel bitwise functions in real time (minus a negligible unnoticeable propagation delay) whereas a computer follows a serial approach and can only operate one thing at a time. A single standard FPGA can handle grayscale or black-and-white images. Decreasing the resolution can be done by ANDing multiple bits together. Things like color inversion and increasing/decreasing contrast can be done with simple arithmetic additions and subtractions. Other useful things such as finding the brightest light source or color intensity detection within a picture can be done by having indexes for each pixel location and incrementing them (similar to histogram binning) accordingly, followed by using logic comparators to find the largest index location. This process is usually done by treating multiple rows and columns as one unit. This is important if you want to be able to find position in both the X and Y position with an evenly distributed reference.  Basic edge detection can also be done using the above method.

Ill try to add to this after the Admin posts the third image processing tutorial.
Title: Re: FPGA's
Post by: JesseWelling on December 09, 2006, 10:40:04 PM
hit the nail on the head with why I want to start looking into fpga's  ;D
Title: Re: FPGA's
Post by: Admin on January 19, 2007, 08:08:39 PM
HP apparently has made a big advance with FPGA's. They call it FPNI for 'field programmable nanowire interconnect.'

"In the FPNI approach, all logic operations are performed in the CMOS, whereas most of the signal routing in the circuit is handled by a crossbar that sits above the transistor layer. Since conventional FPGAs use 80 to 90 percent of their CMOS for signal routing, the FPNI circuit is much more efficient; the density of transistors actually used for performing logic is much higher and the amount of electrical power required for signal routing is decreased."
Title: Re: FPGA's
Post by: Admin on January 27, 2007, 08:22:26 PM
found a place to buy affordable FPGA's!

still really havnt found a need for them yet . . . but they look neater every day I hear about em . . .

I was talking to a friend the other day, and she was telling me for a class project she hooked up 7 cameras to a single FPGA - rated at 30fps, doing 3D analysis, for 360 degrees around a robot. Crazy!!! She said it took her 4 months of frustration, but it worked . . .

edit: If you get one of the Xilinx-based boards, go to Xilinx and
download a copy of the free programming software (ISE/webpack):