FPGA's (Field Programmable Gate Array) are semiconductors devices which are made up of programmable components called "logic blocks". These "logic blocks" are programmed to initiate functions on basic logic gates which are AND, XOR, XAND and other complex functions(i.e., decoders and mathematical functions).
- Rapid development cycles.
- High flexibility and re-usability.
- Development of accelerated code in a low cost parallel architecture.
- Might employ typical processor capabilities.
- They can be configured and reconfigured as many times as needed.
- It combines a CPU, peripherals and memory on a single chip.
- Low energy consumption.
- No need for special electrical installation.
- No need for special cooling system.
In order to use the advantages that FPGAs offer, it is necessary a compiler that can create a stream file to be downloaded to the circuit. Our research group downloaded four compilers called: Impulse C, Mitrion C, FPGAC, and System C. We have tested the different compilers with some simple mathematic algorithms. Based on the results, we were able to decide which compiler was the best to use for the project.
We chose Impulse C based on four simple facts. (1) You can write a program using standard C++ code. (2) The C++ code can be converted into VHDL or VERILOG(either or). (3) This VHDL code is then converted into a binary file, and (4) once this process is completed, you can download it into the FPGA circuit. We almost decided for Mitrion C but the only important fact we found interesting about it was its GUI Modules. The way we executed the GUI visual was through examples found in the Mitrionics website. Even though you can write in standard C, the compiler did not acquire the exact utilities like Impulse C. In FPGAC, we could never find a way to convert the C language in VHDL or VERILOG, so without this conversion we couldn't convert into a binary file which we needed to download into the FPGA circuit. System C is not even a compiler, it's more a library than a compiler. Its libraries are used in a compiler called Eclipse. This compiler is similar to the Microsoft Visual Studio 2008, but just mainly focused on C++.