FPGA basics

What is necessary for implemented a basic working FPGA circuit? For a microchip pic one just needs a stable power supply. I have not found any basic FPGA circuit's nor how to program them. There is mention in the manuals about programming but very little. I've bought some FPGA's but unsure about how to use them. Are they basically similar to pics in setting up the support circuitry?

Reply to
Kodfk Dleepd
Loading thread data ...

On a sunny day (Sat, 22 Aug 2009 13:23:18 -0700 (PDT)) it happened Kodfk Dleepd wrote in :

'Bought some FPGAs;' is very vague, as there are many sorts, with our without internal FLASH memory. You are much better of buying a FPGA development board, say from Altera, Xilinx, or Actel. And get their free software with supporting libraries.

If not, you may need one or more supply voltages, perhaps an external FLASH chip, some interface perhaps to load your program in the FPGA, and to talk to it.... Perhaps also a JTAG interface. Depends on what you want to do. Get a development board is my advice.

Reply to
Jan Panteltje

Get an eval kit, or at least download the schematic of one.

Modern ram-based FPGAs typically need three supply voltages (say, 3.3,

2.5, 1.2), some external clocks, and a way to configure the "program", JTAG or SPI typically.

Design can be schematic entry but is trending to VHDL or Verilog. Most vendors have pretty good free software, but with a big learning curve.

John

Reply to
John Larkin

As John says, you'll probably be best starting with a dev board. A couple of good sources are at

formatting link
or
formatting link
and then over to
formatting link
for a general introduction.

It would probably also be worth your while to lurk around comp.arch.fpga, comp.lang.vhdl, and comp.lang.verilog for a while to get a sense of what may be involved.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

"Kodfk Dleepd" schrieb im Newsbeitrag news: snipped-for-privacy@a13g2000yqc.googlegroups.com...

Microchip has good literature, so has e.g. Xilinx. Their actual low cost FPGA series are Spartan 3, Spartan 3E and Spartan 3A, the latter are the cheapest.

Read the following manuals from Xilinx (beside the datasheets), these cover nearly every aspect for a HW designer.

formatting link
formatting link

You can take a look at our FPGA boards as a reference:

formatting link
formatting link

Altera, Lattice and Actel also have good FPGA products.

MIKE PS: A better place to ask for is comp.arch.fpga

--
www.oho-elektronik.de
OHO-Elektronik
Michael Randelzhofer
FPGA und CPLD Mini Module
Klein aber oho !
Kontakt:
Tel: 08131 339230
mr@oho-elektronik.de
Usst.ID: DE130097310
Reply to
M.Randelzhofer

AFAIK, it's the same story. You need the right voltage of course (I forget if 5V FPGAs are even still available), and the SRAM ones need an outboard EEPROM containing the code. Of course, the EEPROM ones are nonvolatile so they're good to go. They may or may not need a reset or brownout or power-good or whatever sort of startup condition. The simplest shouldn't need much more than bypass caps though.

Now, as for programming them, that appears to be something manufacturers keep suspiciously quiet about. The usual process is, purchase an IDE that compiles VHDL into a binary, then JTAG it onto the FPGA. Whereas manual hex coding is still quite possible among microcontrollers, it appears to be actively discouraged in FPGAs. I don't know if there is even software that lets you specify what parts of the chip to use. Shame.

Best bet might be to get a dev board and JTAG blaster or whatever, and start writing some VHDL. Then plop down a socket and start poking around on your own board, make LEDs blink and whatever else you want.

Tim

--
Deep Friar: a very philosophical monk.
Website: http://webpages.charter.net/dawill/tmoranwms
Reply to
Tim Williams

They don't. 5V parts haven't been around for a decade. Even 5V tolerant I/O has gone the way of the DoDo.

Not really. FPGAs are very sensitive to programming errors. It's possible (actually, hard not) to connect two drivers together on the same wire. This tends to destroy hardware quickly, something the FPGA manufacturers don't want to encourage. I've certainly never wished I had the ability to program the guts of an FPGA.

The dev board is really the only way to go here, though it is a long uphill climb even so. There is just so much that needs to sink in before any results can be seen. DIscourragement aside, the kits tend to come with everything needed to program them and some are quite inexpensive. The Actel Igloo Icicle kit is under a hundred bucks. The Actel Igloo is rather interesting because of its miserly power usage, it's flash based, and dirt cheap. Unfortunately, it only comes in microscopic packages. :-(

Reply to
krw

.

orget

d

e so

n't

that

al hex

that

tart

your

Unfortunately, Actel is one of the few flash based FPGA. The big guys (xilinx/altera) are mostly sram based. For sram FPGA, you need external flash in master (FPGA) serial mode or another micro in slave (FPGA) serial mode.

Reply to
linnix

Xilinx and Altera are *all* SRAM based. You can't get the speeds these guys get with a flash process. Serial (master or slave) isn't the only way to program these things. Parallel (either master or slave) is common, as is JTAG. The Altera I was using supports all modes, but not in the smaller packages (no support in F256 and below). Parallel programming modes take a lot of pins.

Reply to
krw

Why not start with a CPLD? The PALCE 16V8 is a good device to start with. Lattice has a whole range of CPLD devices and free software.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
                     "If it doesn\'t fit, use a bigger hammer!"
--------------------------------------------------------------
Reply to
Nico Coesel

Guys, thanks for the info. I do understand there are a lot of extra things one can add. This should be obivous. Even with a pic one can add external memory and other components. My question is in the general case for basic stuff. With the pic one does not need an external clock because it has an internal one. Do fpga's have such internal clocks or must they be added? I realize that some fgpa's probably do not have internal clocks. Again, the questions are about the general case of current fpga technology. My main question is minimum support circuitry for your average fpga. For a pic one just needs 1 or 2 bypass caps, a 3.3V or 5V power supply, and possibly 2 resistors for ICSP.

My main question is if to get a working fpga circuit to play around with am I going to have to have a very complex circuitry or basically is it on par with pics. Am I going to have to *have* external memory, external clock, clock conditioning, many caps and resistors, a complex programmer and expensive programmer, and god knows what else? Pics are pretty easy... can I expect similar situation with an fgpa? Again, in general. I know in some cases one might have to have a lot of support circuitry. I'm only talking about basics here. Think of a microchip pic... it's pretty simple... can one say the same with your average fpga?

Maybe an analogy is best. To get a cpu such as some advanced intel processor up and running requires a ton of support circuitry and additional components. A pic, on the other hand, requires virtually nothing. Where does the fpga fall? Is it more like a cpu in that regard or a pic?

Lets suppose I got a generic fpga from your favorite generic fpga company. How much more difficult will it be to blink an led with the fgpa as compared to doing it with a pic? On a scale of 1 to 10 I rate the pic at a 1. This excludes coding. I have downloaded the liberal dev suite and it just crashes so I have not been able to mess with the software.

Reply to
Kodfk Dleepd

On a sunny day (Sun, 23 Aug 2009 09:20:45 -0700 (PDT)) it happened Kodfk Dleepd wrote in :

Why do you just take the advice given and stop moaning?

Reply to
Jan Panteltje

m...

a
d

I forget

oard

tile so

r

uldn't

ers

DE that

anual hex

be

are that

GA

I

A's

s

d start

on your

d

he

Not all apps requires 500MHz+ clocks. You pay heavryly in power with sram cells. Even with sram FPGA, There is no reason not to have on- chip flash rom for booting,

Jtag and parallel are not very practical in the target system.

Reply to
linnix

Don't: Get. A. Dev. Board. And save yourself tons of grief.

For the simplest approach, on your scale, the difficulty would be somewhere around 0.01 or less. CLK_IN routed to LED_OUT. Taa-Daa!

I think you have the perception that one "programs" an FPGA. One does not. One describes hardware, often with a hardware description language. But just because it's entered with a text editor it is not a "program" in the sense that a microcontroller is programmed.

--
Rich Webb     Norfolk, VA
Reply to
Rich Webb

That depends on your experience. In order to blink a led you'll need the same amount of code whether its a PIC or an FPGA. You'll need development tools and a programmer to store the program in the FPGA.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
                     "If it doesn\'t fit, use a bigger hammer!"
--------------------------------------------------------------
Reply to
Nico Coesel

Parallel is very usefull! If you use a microcontroller which has an external bus you can load the FPGA very quickly and use the data and control lines afterwards.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
                     "If it doesn\'t fit, use a bigger hammer!"
--------------------------------------------------------------
Reply to
Nico Coesel

forget

hex

that

start

your

True enough, but that's where they are playing.

Yes, there certainly is! Flash and high performance SRAM processes are not compatible.

Who says? What target system? Parallel is quite practical for many applications. Often the parallel path needs to be there anyway, and it's a *LOT* simpler. JTAG is along for the ride, in any case.

Reply to
krw

Parallel flash tends to be a lot cheaper than specialty serial flash devices, too. The external flash is also easily used by the FPGA during operation. There are tons of reasons to use parallel programming modes.

Reply to
krw

You need an external clock.

Correct. They often have PLLs (or DLLs), but you have to supply the input clock.

FPGAs typically use something like 1.2V and 2.5V (varies depending on brand) and supplies for whatever I/O technologies you decide to use. In no case is there anything approaching 5V on the chip. 5V = smoke on any modern FPGA. You'll need a bunch of capacitors on each supply used. You'll need a board to mount these things on, which isn't going to be simple given the packages. In short, forget it. Get a development board. They're cheap.

Complex. Nothing like a PIC.

Likely not necessary for any small project. Many FPGAs have piles of on-board memory. This stuff is quite handy since they do all the work for you (dual ports, ROM, RAM, whatever).

No resistors needed for simple circuits, but you're going to need a clean clock and decoupling caps, yes.

You'll need a "download (JTAG) cable", which is in the low $hundreds ($300 for Altera's USB Blaster). A small development board will have this built in, so all you need is a USB cable. Sime plug directly into a USB port.

PICs need a JTAG cable too. They aren't free.

No.

Depends on what you want to do. Just to blink an LED it's not too bad, but it won't come cheap. The board design alone will be expensive. Buy a dev board.

For me? An FPGA is much easier. I hate C. ;-)

For most, a PIC will be much easier. The FPGA learning curve is 10x the PIC.

Reply to
krw

formatting link

Have Fun! Rich

Reply to
Rich Grise

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.