Spartan 3E Breakout and Development Board

back in stock at SparkFun…
sparkfun.com/commerce/produc … ts_id=8458
http://www.sparkfun.com/commerce/images/Spartan3EEvalBoard-01-M.jpg
and the compiler is available as a download at xilinx… woo hoo.
:mrgreen:

I know, and I really want one, but can’t afford it right now. I already have the Xilinx software installed under Windows. Can’t seem to get the Linux version to install under Debian Etch though. :frowning:

8-Dale

My college’s library has a few books on VHDL and Veriolg (sp?). I’m going to read them at my free time. If I can understand wtF they are saying, I might get one of these boards. I really want to drive the PSP Sharp LCD + TochScreen! The only cheap option other than the i.MX21 COG is this FPGA…

I went to the product webpage to read more information on this, but I must admit I am stumped at understanding its intended application.

What can this little guy be used for?

bewildered look uh, you mean the FPGA? It is like the worlds biggest PAL (programmable array logic) taken to about the 100th power. And this is still small by comparison to some of the big parts like the Virtex Pro II and stuff with multiple power PC processor cores built in.

Here is a really over-simplified answer though, assuming you know what a PAL is.

At the simplest levels you write logic code, or functions, like you would for a PAL using primitives such as and, or, and basic register types. You can then build the equivalent of devices by grouping sets of functions into a modules. Typically you are using either Verilog or VHDL programming languages to write the functions and modules, but there are other choices as well. You can even find (but) tools that let you write in C or other high level languages which then get compiled down into modules. You can buy libraries with all standard TTL and CMOS ICs, and a huge number of microcontroller and peripheral device cores, all as modules. Depending on the tools you have you can assign modules to schematic symbols and then connect the symbols just like drawing a schematic.

When you have all the parts you want connected the way you want, and they all compile, then you run a fitter which attempts to take your “logic” and cram it into a particular part. The fitter knows every fuse, gate, connection, and i/o pin of the device and it tries to connect things (typically) using the least amount of resources in the part. Usually you (can) specify propagation times and other hardware type parameters that control how the fitter “routes” the signals in the part. When it is done fitting the part you program an FPGA with the resulting vector file. Now your FPGA has become a single device that implements the design you built in the schematic from many different devices.

It differs fundementally from a PAL in that PALs are wired as a sum of products that typically feed into an output macrocell…basically a block of registers or specific features that can be programmed to do one or more functions. the output of a macrocell feeds back into the PAL and/or to an actual device pin. An FPGA has lots, and I mean lots like hundreds of thousands if you have enough money, of small macrocells and even more interconnecting pathways to allow them to be wired together. every macrocell and every pathway can be programmed using a fuse to do one thing. The power comes from having so many of them in such a small package. I think the FPGA on this board is a 500,000 gate part which means there are 500,000 programmable macrocells. So if you take something like a 4-bit counter, 7490 or similar, that has maybe 75 to 100 gates then it would take a similar number of gates to implement in the FPGA. That is 0.02% of the total gates in this part, so you get an abstract idea of how much logic you can cram into this.

QED, right?

I think FPGA stands for Field Programmable Gate Array.

An FPGA is basically fully programmable hardware. :slight_smile: You can program and reprogram the FPGA for different applications. There are even “soft core” MCUs you can configure and program into an FPGA.

FPGAs can be used to create fully programmable peripherals and much more, including full blown microcontroller systems.

8-Dale

@ EDDIE

bewildered look :confused: scratches head…

What does it do again? :laughing:

I think you forget that I am just a machine programer, that uses the Mickey Mouse programming language. All I understood was that it’s an FPGA (Fine Pitched Grid Array).

Thanks for trying to explain but this is WAY over my head. :laughing: :open_mouth:

Mickey Mouse programming language? :laughing:

Hmm… it’s like a challenge or something… 8)

You know what AND, OR, and INVERTER gates are right? (7408, 7432, 7404 TTL ICs, 14-pin parts)

So say someone took 125,000 DIP14 packages and put them in your office and said wire them up on a PCB so when you are done the PCB functions as some microcontroller would. The FPGA is like the 125,000 gate packages AND the PCB. You can connect gates on a schematic capture program just like designing a board, or you can write logic functions and compile them just like writing a program. When you get done it makes a file that can be programmed into an FPGA to connect the gates together just like you had wired them up on a PCB. The FPGA weighs a whole lot less though, and if you make an error or decide you want to add some features you just re-compile and re-program and volia!

Field Progammable Gate Array. :wink:

I understand to some degree, it has built in programmable active components that can be configured via software. So you can sketch up a circuit and program the FPGA to “wire” the internal hardware, unlike a PIC which is code that configures the pins of the IC to work a certain way, right?

Also, I learned that in package terms FPGA is Fine Pitch Grid Array, or PGA = Pin Grid Array or like BGA stands for Ball Grid Array. No?

EDIT

I have been using the wrong term for years apparently. I Googled FPGA and could not find anything stating that there is package type by the name of “Fine Pitch Grid Array”

I’m hopeless… :cry: :laughing:

Not exactly. It’s the “G” in the name - gates. An FPGA has many thousands of gates that can be connected pretty much any way you want to connect them. It is true that there can be some sections dedicated to specific purposes such as memory, etc. These sections are still made up of many gates though.

You can actually program an FPGA to work like a PIC or AVR, or be a completely different “soft core” MCU. There is actually code available for FPGAs to be an AVR or similar MCU. Xilinx (Microblaze), and Altera (NIOS) both have their own soft core MCUs that can be configured different ways and programmed into one of their FPGAs. The larger FPGAs often have a dedicated internal MCU section.

FPGA = Field Programmable Gate Array. The larger FPGAs can be found in a BGA package. Otherwise, there is no relationship between FPGAs and BGAs.
Yes, BGA is Ball Grid Array.

8-Dale
8-Dale

Thinking about it, QFPs would not be fine pitch grid arrays since the pins are not configured in a grid pattern like PGAs or BGAs. This has been my mistake all along.

I knew there was no relationship between FPGAs and BGAs since they are different packages, but I originally thought FPGA stood for a type of package, the same way BGA stands for Ball Grid Array which is a type of package with many variations.

Just a note:

It’s near impossible at times to not Hijack a topic since it is so easy to branch off in to other areas of any discussion.

Sorry Eddie… :confused:

Bah, I threw this in the general electonics topic just because I figured the thread subject only had a lifetime of half a dozen posts tops anyway. :smiling_imp:

I imagine any of the regulars who might be interested in the beast have already either done something about it or wrote if off as too expensive. :slight_smile:

You never can tell who might be interested in a topic you start. There is even a GPL’ed soft core processor that can run uCLinux. I don’t think it can run full Linux, at least not yet, but it should be doable.

Nope, not yet. I want one, but I would prefer to get one of the boards from KNJN, especially the Saxo-L (with LPC-2132 ARM7, Xylo-L or Xylo-LM (with LPC-2138 ARM7). Yes, they are expensive, but I think they are reasonably priced for what you get. I want to eventually base a design for a mixed signal test instrument on one of these. There is alsp a less expensive Pluto series of RS-232 boards.

I already have some nice high resolution, high speed ADCs. I am already equipped with the software to program Xilinx, Altera, Lattice, and Actel FPGAs. I’ve done the first Xilinx tutorial up to actually programming the FPGA.

I think a bot board with a nice sized FPGA would be awesome! :smiley::smiley:

Edit: Added links

8-Dale

I too have thought of using an FGPA for my 'bot.
They’d be great to program a (macrocells per fpga/(macrocells per comparator)+counter) channel servo controller which updates all servo’s simultaneously whilst still being bored to death :laughing:

Unfortunately I’ve only yet scratched the surface of VHDL programming and I have far too much other projects to start working on it…

A buddy of mine promised he’d build me a breakout-board soon though… maybe I should bug him about it a bit more :smiling_imp: