Minimig (short for Mini Amiga) is an open source re-implementation of an Amiga 500 using a field-programmable gate array (FPGA).
Minimig started in secrecy around January 2005 as a proof of concept by Dutch electrical engineer Dennis van Weeren. He intended Minimig as the answer to the ongoing discussions within the Amiga community on implementing the Amiga custom chipset using an FPGA. The project's source code and schematics were released under version 3 of the GNU General Public Licence on 25 July 2007.
The original Minimig prototype is based on the Xilinx Spartan-3 Starter Kit, the Original Amiga Chipset is synthesized in the FPGA. Two printed circuit boards are attached via the FPGA kit expansion ports. The first one holds a 3.3V Motorola 68000 type CPU. The second has a MultiMediaCard slot with a small PIC microcontroller acting as a disc controller that supports the FAT16 filesystem and does on-the-fly Amiga disk file (ADF) decoding.
The prototype was shown at an Amiga meet and loaded most Amiga programs although bugs did exist. Van Weeren's personal preferences led to the use of verilog instead of VHDL on a PC using Xilinx Webpack software for code development.
As of Minimig rev1.0 board:
On 2008-09-03 a new FPGA core enables read/write support, as well as some Chipset improvements.
On 2008-12-22 a replacement board that fits in the PIC (MCU) controller socket were announced. It makes harddrive, 4x floppy disk and write support possible. The FPGA core is the same for the new ARM and PIC firmware but only the ARM has enough resources to support four drives. The PIC only supports two. The upgrade also allows one to select to increase the CPU speed from 7.09 to 49.63 MHz with a 4 KB zero waitstate CPU cache. But it requires an FPGA core to actually carry it out (which works with the 16 MHz 68SEC000 chips). The harddrive support is available by a virtual A600/A1200 style GAYLE parallel ATA interface. Up to 551 kByte/s is possible with a minor hardware modification. Otherwise only ~300 kByte/s is possible.