Pages: [1] 2   Go Down
Author Topic: Based upon the type of projects you do what FPGA would you combine with your Ard  (Read 1765 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

We are currently looking to develop a board which merges an Arduino Leonardo with an FPGA development board based upon a Spartan-6 device from Xilinx. The footprint for the FPGA accommodates four possible device sizes - 9k, 16k, 25k and 45k logic cells - all of which support the additional 100 I/Os we are looking to provide.

I was wondering, based upon the type of projects you are using the Arduino for, which size of device you would think would be the best for your applications?

I look forward to hearing your thoughts.

Thanks.
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 126
Posts: 8472
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I can't answer exactly but recently I designed a board with a Lattice MachX02-2000, that's 2000 LUTs and I figured that was enough.

With that chip you can do a UART for example with 600 LUTs I think.

But I have to say I'm not that up to speed with FPGAs these days, and the  MachX02-2000 has the same pinout as the 7000 so I had an out if I ran out of logic.

_____
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It depends what you expect the user to do with the FPGA. If it is just to learn about them, a small number of LUTs would be enough, and the cost would be proportionate to the Arduino. However, for a full-blown FPGA implementation the cost could be too high for individuals to accept. Also consider the cost of any required software, and any programming devices, cables etc. which are needed.

You might be interested in my Arduino shield using a MACHXO2-1200. It's now on Kickstarter.com and can be found here http://kck.st/164ObLg or look for Trifdev. It's self-contained and needs only a simple USB cable to program it. The software is a free download from Lattice, and I will be providing tutorials to help the beginner. To give new users an easy start, the shield comes pre-loaded with an I/O expander, which can be modified to include other functions which the user may need.
Logged

Melbourne, Australia
Offline Offline
God Member
*****
Karma: 8
Posts: 567
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've seen FPGAs mentioned, and am still struggling to understand what they are. Reading your kickstarter page to try and get a better understanding, Roy.

I'm curious: how fast is the process of an Arduino requesting info and then receiving it from the FPGA?
What are the advantages in using an FPGA vs another Arduino chip/board flashed with the same functionality as the FPGA?
Logged

Windows serial port monitor: Tellurium | Arduino serial port debugging library: DBG | Cusom LCD char generator | Technical questions will only be answered in forum threads

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 126
Posts: 8472
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
how fast is the process of an Arduino requesting info and then receiving it from the FPGA?
That largely depends on how you do it.

The X02 series has built-in SPI and I2C hardware, I don't know what speed they are rated at but in the case of the SPI port I think "bloody fast" is a reasonable guess.

But if you want really bloody fast then in the case of the SAM (on the Due) you could memory-map the X02 and talk to it at external memory speeds which is probably about 20-30M bytes per second, twice that if you use 16-bit data.

What you do with that data is another question, VGA interface with dual-ported screen RAM anyone?

Apart from all that you can add pretty much any hardware you like for example add a UART and talk to the FPGA using serial. Or maybe just a few 74xx595 shift registers and use shiftOut() to send data.

Quote
What are the advantages in using an FPGA vs another Arduino chip/board flashed with the same functionality as the FPGA?
The FPGA is hardware, therefore is an order of magnitude faster than a second processor.

And if all that's not enough you can actually put an 8 or 32-bit processor inside the FPGA as well as other hardware.

These XO2 chips are very interesting, as indeed are all the FPGA/CPLD devices but I like the look of the XO2s.

I think all that's right, please correct me if not Roy.

EDIT: Roy, I backed your project the other day, hopefully it will get over the line.

_____
Rob
« Last Edit: June 20, 2013, 10:43:03 am by Graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

Melbourne, Australia
Offline Offline
God Member
*****
Karma: 8
Posts: 567
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So you could set up a bus (erk moving into unchartered territory, captain) that is 16 bits wide, to "talk" to the FPGA? The Due is an ARM thingamajig isn't it?

Logged

Windows serial port monitor: Tellurium | Arduino serial port debugging library: DBG | Cusom LCD char generator | Technical questions will only be answered in forum threads

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 126
Posts: 8472
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes and yes.

You could treat the FPGA as "memory", either a set of registers or I think you could directly access the internal RAM of the chip.

The Due uses a SAM3X8E, that's an ARM3 processor. The processor on the Arduino Mega could also be used to access an FPGA using external memory but it wouldn't be as fast.

______
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Melbourne, Australia
Offline Offline
God Member
*****
Karma: 8
Posts: 567
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I read an oldish book many years ago that described the process and architecture of parallel memory. I never saw it commercialised, and I don't have any need for such capability at the present time, but intuition tells me you could implement it with an FPGA.

Really appreciate the time you've taken to help me understand. Thanks.
Logged

Windows serial port monitor: Tellurium | Arduino serial port debugging library: DBG | Cusom LCD char generator | Technical questions will only be answered in forum threads

Offline Offline
Sr. Member
****
Karma: 4
Posts: 327
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

to answer the question above:

what is an FPGA.

Simply, its a lot of registers and gates in a package, with an interconnection matrix.
    you connect up the gates and registers, and IO pins, to perform the 'function' you want.

which can be just about anything.

bigger devices have hard placed macros like DSP blocks, ram areas, high speed serial IO, Ethernet MAC's.

u program the fpga in a few different ways, normally in a high level language like Verilog or ( the oproper language ) VHDL. yes I'm biased.....

two big companies Alter and the inventor of the FPGA Xilinx.
   both have free tools available to you.

You would very quickly get to the point that the Processor is the peripheral of the FPGA,

   
Logged

Melbourne, Australia
Offline Offline
God Member
*****
Karma: 8
Posts: 567
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

As I have not programmed extensively in assembler, and the project where I used it occurred a couple of decades ago, the words "registers" and "gates" appear as blank boxes in the mental imagery being formed as I read your words.

DSP blocks further exacerbate the loss of clarity in the image.

They certainly sound interesting and useful, however. I'll keep an eye out for examples of their use that are practical, understandable and provide rationale for their use.
Logged

Windows serial port monitor: Tellurium | Arduino serial port debugging library: DBG | Cusom LCD char generator | Technical questions will only be answered in forum threads

Melbourne, Australia
Offline Offline
God Member
*****
Karma: 8
Posts: 567
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Just curious what the difference in the specs is between

2112 LUTS, 279 I/O, 3.3V, -6 SPEED, IND, HALOGEN-FREE / "GREEN"

and

2112 LUTS, 80 I/O, 1.2V, -1 SPEED, COM, HALOGEN-FREE / "GREEN"


Specifically: what's -6 speed vs -1 speed. Clearly one is faster than the other, but what does it mean?
And COM vs IND?

Does 484-ball fpBGA (23x23 mm) mean there are 484 contact points to be soldered to a breadboard?

Logged

Windows serial port monitor: Tellurium | Arduino serial port debugging library: DBG | Cusom LCD char generator | Technical questions will only be answered in forum threads

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 126
Posts: 8472
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Does 484-ball fpBGA (23x23 mm) mean there are 484 contact points to be soldered to a breadboard?
No, it means that it's impossible to use without a serious PCB smiley You would need about 6 layers to get all those pins to the outside world.

The largest user-friendly package with these chips is a TQFP 144, but you still can't breadboard that directly, you'd need a breakout board (but they are plentiful and cheap)

I can't remember the speed grades off hand, and have no idea what COM and IND means, I'll look them up.

______
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Melbourne, Australia
Offline Offline
God Member
*****
Karma: 8
Posts: 567
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I would have looked them up myself, I was on the website, but there were no obvious links that said "What we mean" or similar.
Logged

Windows serial port monitor: Tellurium | Arduino serial port debugging library: DBG | Cusom LCD char generator | Technical questions will only be answered in forum threads

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 126
Posts: 8472
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No I think it's a matter of trawling through the data sheet.

_____
Rob
Logged

Rob Gray aka the GRAYnomad www.robgray.com

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 126
Posts: 8472
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Of course, IND = Industrial, COM = commercial, that refers to the temp range the chip is rated for

EDIT: They have a lot of speed grades and they mean a lot of things, but basically -1 is 104MHz clock speed and -6 is 388MHz. Other grades in between of course.

______
Rob
« Last Edit: June 20, 2013, 11:12:57 pm by Graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

Pages: [1] 2   Go Up
Jump to: