FPGA stands for Field Programmable Gate Array.
This is an integrated circuit (chip) where most of the logic is reprogrammable by setting electronic switches.
In modern FPGAs there are millions or even tens of millions of user settable switches. Thus making these devices very flexible as you can implement almost any logic function.
The complexity makes it necessary to program them in specialized programming languages. These languages are known as HDLs or Hardware Description Languages. The two major ones being VHDL and Verilog.
FPGAs are often used to prototype ASICs or as hardware accelarators for jobs where CPUs or DSPs are just too slow.
The smaller (and cheaper) devices are perfect for hobby purposes. Nowadays even the cheaper chips have enough logic cells for implementing complete SOCs (System on a Chip).
A simple 8 or 16 bit CPU together with some video logic, an audio synthesizer and IO fits easily. Therefore these FPGAs are popular as emulation platform for older computer hardware.
Examples are my Commodore 64 re-implementation FPGA-64 or the Amiga emulator minimig.
My FPGA Projects
FPGA-64 is a re-implementation of the Commodore-64 computer using reconfigurable logic chips.
Turbo Chameleon 64
Multi-function expansion cartridge for the Commodore 64. Adds VGA video and many other functions to the machine.
My C-One support page
The C-One page contains a programmers manual and some test cores. You can also find ports of my FPGA-64 and Turbo Chameleon 64 projects that can also run on the C-One hardware.
My open-source VHDL library
I've released some of my designs under an open-source license. A little toolbox with basic components to help reconfigurable computing hobbyists making own designs. The designs use only standard VHDL constructs, so should be usable on any FPGA platform. Click here for more information about the components made available.