views:

123

answers:

4

I want to start FPGA programming. I don't have any knowledge at all about how FPGAs work and such. I would like to get a development board, not too expensive, but it should have at least 40 I/O pins. Anything up to $300 is OK.

I decided that I want to program in Verilog. I am not sure about the following:

  1. How will my compiled 'program' be stored on the chip? I would guess the chip has some kind of EEPROM to save my program, but from what I have read, it is apparently stored in RAM. I want my program to remain on the chip (or to be loaded somehow) every time it powers up.

  2. Can I buy a separate FPGA chip (not a whole development board) for production? And if yes, how can I upload my program to the separate chip? Does it in some way connect to the development board?

+1  A: 
  1. In Xilinx FPGA terminology the "program" is called bitstream. There are some FPGAs that have embedded flash to store the bitstream (e.g. Spartan 3AN). Most of the FPGAs require some external bitstream storage. Here is a configuration guide on how to configure an FPGA.

  2. Yes you can. There are multiple ways to do configuration. Most of them require some external circuitry.

OutputLogic
Most FPGAs have a dedicated logic circuit which knows how to read the configuration from a flash chip using a vendor-specific protocol, the vendor then sells configuration memories. Don't sweat the vendor-specific protocol though, the memories actually are pretty competitively priced. Then you can either load the configuration memory before installing it onto the board, or use the JTAG debugging interface to stuff a (vendor-provided) flash loader program which writes to the configuration memory, at reset the flash loader goes away and your design is loaded.
Ben Voigt
A: 

The whole point of using an FPGA is that your "program" is actually a circuit, not RAM. There are physical logic components that are configured when you write the bitstream to the FPGA. This is why they can run so much faster for specialized applications--you are basically making custom hardware.

Xilinx is one of the main FPGA manufacturers. Try their website. Check out the Boards & Kits section.

Try reading more about the technology before you get ahead of yourself. You will need a strong understanding of how FPGAs work before you can program them effectively. Wikipedia is a great place to start.

emddudley
FPGAs definitely lose their configuration when you power down and have to reload it from flash memory. In some chips, that flash memory is built into the FPGA fabric so it can be loaded far faster, these are usually called CPLDs. Also FPGAs do not have loose flip-flops and logic gates, instead they have "logic elements" of one flavor or another that include a lookup-table (basically a small RAM block) which is like a small network of gates but constant propagation delay, clock and reset inputs, and output from the LUT both before and after passing through a register (D flip-flop).
Ben Voigt
Thanks Ben, I removed the bad info from my answer.
emddudley
A: 

I'd recommend the Digilent Basys board as an introduction. It only has 16 external I/O, but it already has RAM, USB, switches, buttons, LEDs, 7-segment displays, a VGA connector, and a PS/2 connector onboard - You're unlikely to find an FPGA with fewer than 40 I/O pins. If you want I/O for another project, use the Nexys instead - More peripherals than I care to list, and also has a high-speed Hirose 43-pin connector if you have a project which specifically needs about 40 connections.

Also, consider how you want to interface with your PC. Is your goal to make an embedded system, or to interface with a computer through a PCI/Ethernet/USB connection?

Yes, you can buy separate FPGA boards for production - There's a dizzying array of options, though - Digikey has 5,300 at this time. You do need some way to program the FPGA, and an onboard NVM chip that programs the FPGA on startup is a popular option. However, you should start with a development board that's well supported and already has a programmer, toolchain and simulator available before you get too far into designing your board or worrying about how to save your program onto the chip. Those are good things to know, but they're not what you want to worry about right now. Good luck!

reemrevnivek
A: 

Check out actels's new Smart fusion fpga. Its has a fpga fabric offcourse, with a hard ARM MCu with a good analog end(DAC, ADC etc).

The Eval board is only 100$ http://www.actel.com/products/hardware/devkits_boards/smartfusion_eval.aspx

And all the software u need to get up and running if free.

Vikram