General Questions on Hardware Design and FPGAs
- What's an FPGA? Why would I want to have one? An FPGA is a Field-Programmable Gate Array, an electronic device which can be configured to behave as an arbitrary logic circuit. Such circuits are often called programmable logic devices, to indicate that one can program the functionality of the device after manufacturing, and this by sending a configuration sequence to the device. One should note that the word program is used in this case loosely and does not indicate anything like processor instructions; it is used to emphasize the possibility of determining the function of a logic device after manufacturing.
- What is Altera? Altera Corporation is a leading manufacturer of programmable logic devices. Among its chief competitors are Xilinx Inc., Lattice Semiconductor Corporation, Actel Corporation, Quicklogic Corporation, and Atmel Corporation.
- What are synthsizers and place and route tools? A logic synthesizer is a computer program that is able to transform a high-level abstract description of a digital circuit (described for instance in VHDL or Verilog) into an optimized implementation consisting in a network of basic primitives, such as logic gates, flip-flops, and latches. A place and route tool (often referred as P&R) is another computer program which takes a netlist of primitive components, decides the placement of the components on a physical support (e.g., a VLSI device or an FPGA), and figures out a possible way to interconnect the physical blocks following the constraints of the support (e.g., wiring cost, electrical properties, maximum number of wires in a channel). These tools are at the heart of modern electronic design automation and are almost universally used now both to design VLSI circuits and to implement FPGA designs.
- What is Quartus II? What is Nios II? What is SOPC Builder? Quartus II is a software provided by Altera for their FPGAs which implements synthesis and P&R. Nios II is a simple but powerful 32-bit RISC processor by Altera intended for their FPGAs. SOPC Builder is a toolsuite to create complex designs using Nios II and peripherals.
General Questions on the FPGA4U Project and Board
- What is FPGA4U? What can I do with it? FPGA4U is a small electronic board which connects to and is powered by a normal PC via the USB link. The board is packed with components: a large FPGA, a 12x8 LED matrix, some pushbuttons, 16 switches, 32 MB of SDRAM, enough nonvolatile memory to store the FPGA configuration, an Ethernet interface, a USB interface, extension connectors to cascade several FPGA4U boards, and several other interfaces.
- What is the reason of the FPGA4U project? The reason is essentially pedagogical. The basic idea behind FPGA4U is that it is extremely easy for students to play with software (just get any PC, download an open source operating system, and you have taken off) but experimenting with hardware design is increasingly difficult. There was a time when discrete logic components (e.g., 74xxx, 40xx) would make it possible to assemble little but meaningful inexpensive circuits. Nowadays, FPGAs are offering much more potential, but are hard to obtain and use for most of the students. FPGA4U wants to change this situation and offer a simple and accessible powerful platform.
- How do I get an FPGA4U? Can I buy one somewhere? EPFL students will receive boards as a support for some courses. Other interested EPFL students not eligible to receive an FPGA4U board for their coursework are invited to contact Paolo Ienne or any of the professors involved in Computer Engineering at EPFL. There are no plans to make FPGA4U available commercially but, for EPFL students, there are certainly many other ways to obtain one.
Basic Questions on Using FPGA4U
- Just got the board. Where do I start? You can start installing the required software by following the instructions. We recommend then going through the different tutorials available. Finally look at the full documentation pointed to by the link section
- Shall I install software on my PC? What does it cost? To develop hardware for your FPGA4U, you need Altera Quartus II software. Please follow our tutorial to get the Altera Quartus II Web Edition which is free of charge.
- What operating systems can I run on my PC? Development tools from Altera run on Windows, UNIX, and Linux. More information about installing the tools can be found here.
- I think my FPGA4U is broken. How do I test it? You can start by running the board tests which we use to verify new boards.
- How do I handle and take care of my FPGA4U ? Before you touch the board, make sure you have electrically discharged yourself by touching a metal piece (eg. table frame, radiator, etc). Always put your FPGA4U board back into its box when you carry it.
Potentials of FPGA4U
- Can I create a complete computing system on my FPGA4U? What processor can I use? What operating system? Yes, of course! You can use Altera's NIOS II processor. On the operating system side, Altera's supports uC/OS-II. Some effort to port eCos are described on the web. Instructions on how to run uClinux are available on this page: Linux on FPGA4U.
- How many processors can be implemented on my FPGA4U? With how much memory? How much space is left? With the EP2C20 FPGA on the FPGA4U board, one can fit 4 NIOSII standard processors with 512 bytes of cache and a local memory of 2kB (512x32) per processor. A global SRAM of 1kB and 32MB of external SDRAM memory are accessible by all 4 processors. This leaves the device with approximately 10kB of SRAM and 40% of resources free.
- Can I use FPGA4U without a PC? You cannot develop new applications or download configurations without a USB connection to a PC. Yet, once you have a complete application loaded in the Flash, you can use FPGA4U standalone and supply it either through the power input or through a USB power supply (such as those available for iPods and other MP3 players).
- I have a cool idea but don't know how to start to develop it. Can anyone help? Sure! Talk to any of the teachers using the board in their courses or to Paolo Ienne.
- I have a cool design. How can I share it with others? The community portal is available especially for this purpose. Do not hesitate to create a page for your project and upload your design files.