FPGA

From ArmadeusWiki
Revision as of 10:50, 22 October 2006 by SonZerro (Talk | contribs) (New page: FPGA design flow)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

FPGA on APF9328

The APF9328 is optionally equipped with an Xilinx Spartan-3 FPGA (Field Programmable Gate Array). An FPGA is a configurable digital device. Today, large and complex digital circuits and processor cores fit into FPGAs. To find more information about FPGAs, check the Wikipedia: [1]

The FPGA on APF9328 is connected to the processor bus of the iMX and to the connector of the APF9328. This makes it possible to design your own peripherals and configure them into the FPGA. Because the FPGA can be reconfigured at any time, it allows you to replace these peripherals (or a part of them), if other functionalities are needed. This is possible even at run-time!

Firmware Development

Digital Hardware Design

FPGAs are quite complex digital devices. Modern tools allow to describe the circuits to be implemented an abstract way, which makes it possible to manage the complexity. The trend for new tools is toward higher levels of abstraction in order to be able to manage even more coplex devices in future. Nevertheless, at least basic knowledge of digital circuits and gates is necessary to start designing firmware for FPGAs.

FPGA Design-Flow

The starting point for the implementation flow is a description of the functionality in a Hardware Description Language (HDL). One of the most commonly used HDLs is VHDL (Very High Speed Integrated Circuit Hardware Description Language). VHDL files are plain text files and editing can be done in any editor.

This VHDL circuit description can be simulated to verify the functionality.

If everything is working fine, a tool called synthesizer is used to translate this HDL description in a hardware netlist. Then this netlist is mapped onto the FPGA technology. After Place and Route and Bitstream generation, a configuration file for the FPGA is created (bitfile).

For more informations about VHDL and the design flow, see [2]. This page also contains many examples that show how to describe simple electronic circuits in VHDL.

Development Environment for APF9328

For FPGA development, you need the Xilinx ISE WebPack from Xilinx. It can be downloaded for free from the Xilinx homepage [3]. The WebPack contains all you need to implement a design for the FPGA on the APF9328: Editor, Synthesizer, Mapper, Place and Route Tool, Bitstream generator, and the tools to download a configuration to the FPGA.

For simulation, Xilinx offers a free version of ModelSim, with the name ModelSim Xilinx Edition (MXE). It can also be downloaded from the Xilinx homepage [4] for free, but registration is required to request the license.