Minimig
Encyclopedia
Minimig 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.
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.
VGA-+-PS2 (joystick etc.)
|
CPU <-> FPGA <-> Microcontroller <-> Flashmemory
|
RAM
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.
) 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 4kb 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.
form factor version of the Minimig under the Open Source design License. This hardware version fits in standard Mini-ITX cases and has dimensions of 17 cm x 17 cm. Connecting ports in this version were moved to the back of the mainboard to comply with Mini-ITX requirements.
On 9 Feb 2008 ACube Systems announced the availability of finished Minimig v1.1 boards.
On 2006-10-11 Jens Schönfeld at Individual Computers
revealed that they had been working on a commercial Amiga-in-FPGA for the past year called "Clone-A" that is similar to Minimig. In contrast to Minimig, Individual Computers's Clone-A was developed by a three person development team employing a powerful logic analyzer
. The system will use clone chips to replace CIAs, Paula, Gary, Agnus and Denise. The CPU will be the original from Motorola. Final chips will also include AGA and a working parallel port to enable 4-player games.
Wolfgang Förster has completed the Suska project, which is an Atari ST
-on-FPGA.
Natami (derived from Native Amiga) is a closed source advanced Amiga compatible machine, allowing users to run original Amiga 68k software and will update the original Amiga design to modern standards.
It introduces a new 3D softcore responsible for 3D graphics acceleration as well as an "68050" softcore as an addition to the 68k family CPU, more compatible with 68000 than e.g. 68060, yet more advanced and with higher clock frequency.
Amiga 500
The Amiga 500 - also known as the A500 - was the first “low-end” Commodore Amiga 16/32-bit multimedia home/personal computer. It was announced at the winter Consumer Electronics Show in January 1987 - at the same time as the high-end Amiga 2000 - and competed directly against the Atari 520ST...
using a field-programmable gate array
Field-programmable gate array
A field-programmable gate array is an integrated circuit designed to be configured by the customer or designer after manufacturing—hence "field-programmable"...
(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.
Original prototype
The original Minimig prototype is based on the Xilinx Spartan-3 Starter Kit, the Original Amiga ChipsetOriginal Amiga chipset
The Original Chip Set was a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities...
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
MultiMediaCard
The MultiMediaCard is a flash memory memory card standard. Unveiled in 1997 by Siemens AG and SanDisk, it is based on Toshiba's NAND-based flash memory, and is therefore much smaller than earlier systems based on Intel NOR-based memory such as CompactFlash. MMC is about the size of a postage...
slot with a small PIC microcontroller acting as a disc controller that supports the FAT16
File Allocation Table
File Allocation Table is a computer file system architecture now widely used on many computer systems and most memory cards, such as those used with digital cameras. FAT file systems are commonly found on floppy disks, flash memory cards, digital cameras, and many other portable devices because of...
filesystem and does on-the-fly Amiga disk file
Amiga Disk File
Amiga Disk File aka ADF is a file format used by Amiga computers and emulators to store images of disks. It has been around almost as long as the Amiga itself, although it was not initially called by any particular name. Before it was known as ADF, it was used in commercial game production, backup...
(ADF) decoding.
VGA-+-PS2 (joystick etc.)
|
CPU <-> FPGA <-> Microcontroller <-> Flashmemory
|
RAM
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
Verilog
In the semiconductor and electronic design industry, Verilog is a hardware description language used to model electronic systems. Verilog HDL, not to be confused with VHDL , is most commonly used in the design, verification, and implementation of digital logic chips at the register-transfer level...
instead of VHDL on a PC using Xilinx Webpack software for code development.
Purposes and intent
- Run Amiga specific application software to convert files to newer platforms.
- Run software only available on Amiga.
- Running Amiga video gamesAmiga gamesAmiga games are computer games compatible with the Commodore Amiga.The Amiga was an important platform for games in the late 1980s and early 1990s. Of all the 16-bit home computers, it was the one to gain the greatest success as a games machine due to its graphic and sound subsystems, which were...
. - FPGA development experience using Verilog.
- Creating something for the community.
- Proof of Concept.
- Allows creation of new games that take advantages of the new features in Minimig (faster memory, more memory sprites, colours, etc), while maintaining full compatibility with the Amiga.
Platform
As of Minimig rev1.0 board:- Xilinx Spartan-3 400k gate (XC3S400-4PQ208C) FPGA using 82% capacity.
- FreescaleFreescale SemiconductorFreescale Semiconductor, Inc. is a producer and designer of embedded hardware, with 17 billion semiconductor chips in use around the world. The company focuses on the automotive, consumer, industrial and networking markets with its product portfolio including microprocessors, microcontrollers,...
MC68SEC000, 3.3V, at 7.09379 MHz. However there's no 'E' clock, MOVE sr,is privileged and there is no real replacement instruction. This does not seem to affect any programs as of yet. - Amiga Chip RAM bus and Slow RAM merged into a single synchronous bus running at 7.09379 MHz.
- 2 MiB 70 ns asynchronous SRAMStatic random access memoryStatic random-access memory is a type of semiconductor memory where the word static indicates that, unlike dynamic RAM , it does not need to be periodically refreshed, as SRAM uses bistable latching circuitry to store each bit...
organised as 2x 524,288 x 16 bit banks. - MCUMicrocontrollerA microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
PIC 18LF252-I/SP (An alternative would be Atmel AVRAtmel AVRThe AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
) implements a FAT16 disk layout and handles loading of FPGA configuration and Kickstart. Simulates a floppy to the Amiga by encoding on the fly from ADF files. - MMC Flash memory cardFlash memoryFlash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...
to load FPGA configuration, kickstart and software for the simulated computer. - 3× LEDs to display the disk activity, main power and Amiga power up status (no existing audio filter!) Amiga power up status led will change intensity to show audio filter status.
- Video D/A consists of 4 resistors for each color red, green, blue (4 bits/color) and output via VGAVideo Graphics ArrayVideo Graphics Array refers specifically to the display hardware first introduced with the IBM PS/2 line of computers in 1987, but through its widespread adoption has also come to mean either an analog computer display standard, the 15-pin D-subminiature VGA connector or the 640×480 resolution...
connector. - Audio from an 8 bit dithering sigma-deltaDelta-sigma modulationDelta-sigma modulation is a method for encoding high-resolution or analog signals into lower-resolution digital signals. The conversion is done using error feedback, where the difference between the two signals is measured and used to improve the conversion...
converter with 2nd order analogue filter. - +5V DC main power (~200 mA).
Ports
- Spare 3x generic I/O from the FPGA (GPIO)
- JTAG for programming chips (TMS, TDI, TDO, TCK)
- RS232RS-232In telecommunications, RS-232 is the traditional name for a series of standards for serial binary single-ended data and control signals connecting between a DTE and a DCE . It is commonly used in computer serial ports...
serial port - 2x Joystick of Atari 2600Atari 2600The Atari 2600 is a video game console released in October 1977 by Atari, Inc. It is credited with popularizing the use of microprocessor-based hardware and cartridges containing game code, instead of having non-microprocessor dedicated hardware with all games built in...
DE9M type. - DE15F VGAVideo Graphics ArrayVideo Graphics Array refers specifically to the display hardware first introduced with the IBM PS/2 line of computers in 1987, but through its widespread adoption has also come to mean either an analog computer display standard, the 15-pin D-subminiature VGA connector or the 640×480 resolution...
video (which can output PAL compatible signals to connect to SCARTSCARTSCART is a French-originated standard and associated 21-pin connector for connecting audio-visual equipment together...
). - MMC Flash memory cardFlash memoryFlash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...
slot. - PS/2 connectorPS/2 connectorThe PS/2 connector is a 6-pin Mini-DIN connector used for connecting some keyboards and mice to a PC compatible computer system. Its name comes from the IBM Personal System/2 series of personal computers, with which it was introduced in 1987...
Keyboard + Mouse - 3.5 mm audio jack
- +5V DC 2.1 mm cylindrical DC plug power supply inlet.
Implementation
- Motorola 68000Motorola 68000The Motorola 68000 is a 16/32-bit CISC microprocessor core designed and marketed by Freescale Semiconductor...
type CPU. - Hardware OCSOriginal Amiga chipsetThe Original Chip Set was a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities...
and ECS, PALPALPAL, short for Phase Alternating Line, is an analogue television colour encoding system used in broadcast television systems in many countries. Other common analogue television systems are NTSC and SECAM. This page primarily discusses the PAL colour encoding system...
& NTSCNTSCNTSC, named for the National Television System Committee, is the analog television system that is used in most of North America, most of South America , Burma, South Korea, Taiwan, Japan, the Philippines, and some Pacific island nations and territories .Most countries using the NTSC standard, as...
video switchable via OSD. - 512 KiB SRAM for Kickstart used as ROMRead-only memoryRead-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
. Slow RAM expansion (originally 512k). Chip RAM (originally 1024k). - On-screen displayOn-screen displayAn on-screen display is an image superimposed on a screen picture, commonly used by modern television sets, VCRs, and DVD players to display information such as volume, channel, and time.-History:...
offers selection of ADF disk images from the SD/MMC card using the keyboard or a joystick.
Roadmap
Date | Event |
---|---|
2005-03-06 | Verilog sources coding started. |
2005-12-05 | Announcement of the project. |
2006 Spring | Verilog sources completed. |
2006-06-11 | Screenshoot of schematic for board v1.0 published. |
2006-10-15 | Schematic for board v1.0 completed. |
2007-06-xx | Sources predicted to be released, but weren't. |
2007-07-04 | Last source edit (core). |
2007-07-13 | Busy making website for the project. |
2007-07-24 | Minimig sources released on the official website. |
Issues
- Needs a binary copyBinary fileA binary file is a computer file which may contain any type of data, encoded in binary form for computer storage and processing purposes; for example, computer document files containing formatted text...
of kickstart from a real Amiga 500 due to copyright. A free re-implementation exists, but isn't fully compatible.{Citation: See AROS project: http://aros.sourceforge.net/ | http://www.power2people.org/projects/profile/6} - Current firmwareFirmwareIn electronic systems and computing, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices...
limited to a single root directoryDirectory (file systems)In computing, a folder, directory, catalog, or drawer, is a virtual container originally derived from an earlier Object-oriented programming concept by the same name within a digital file system, in which groups of computer files and other folders can be kept and organized.A typical file system may...
and 8.3 filenames.
Development tools used
- Computer: Shuttle barebone, Prescott Pentium 4 , ,
- Software: XilinxXilinxXilinx, Inc. is a supplier of programmable logic devices. It is known for inventing the field programmable gate array and as the first semiconductor company with a fabless manufacturing model....
WebpackXilinx ISEXilinx ISE is a software tool produced by Xilinx for synthesis and analysis of HDL designs, which enables the developer to synthesize their designs, perform timing analysis, examine RTL diagrams, simulate a design's reaction to different stimuli, and configure the target device with the...
version 6.3.03i (2007-07-22 9.1). Time from HDLHardware description languageIn electronics, a hardware description language or HDL is any language from a class of computer languages, specification languages, or modeling languages for formal description and design of electronic circuits, and most-commonly, digital logic...
source to loadable configuration file (.bit) = 2 minutes. CacheCacheIn computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...
and memory speed is vital for the Synthesis + Place & Route Silicon compilerSilicon compilerA silicon compiler is a software system that takes a user's specifications and automatically generates an integrated circuit . The process is sometimes referred to as hardware compilation.Silicon compilation takes place in three major steps:...
in FPGA generation software.
Future
- Possible developments include a faster CPU, ECS chipset, AGA graphics (new FPGA board is required), hard disk, ethernet, small RISC-Core for enhanced AROS functions etc.
- Use of a free kickstart replacement (e.g. AROSAROS Research Operating SystemAROS Research Operating System is a free and open source multi media centric implementation of the AmigaOS 3.1 APIs. Designed to be portable and flexible, ports are currently available for x86-based and PowerPC-based PCs in native and hosted flavors, with other architectures in development...
).
- A networked version would eliminate the need for swapping flash memories.
Read/Write support
On 2008-09-03 a new FPGA core enables read/write support, as well as some Chipset improvements.ARM Controller board upgrade
On 2008-12-22 a replacement board that fits in the PIC (MCUMicrocontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
) 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 4kb 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
Amiga 600
The Amiga 600, also known as the A600 , is a home computer that was introduced at the CeBIT show in March 1992. The A600 was Commodore International's final model based on the Motorola 68000 CPU and the ECS chipset. It is essentially a redesign of the Amiga 500 Plus, with the option of an internal...
/A1200
Amiga 1200
The Amiga 1200, or A1200 , was Commodore International's third-generation Amiga computer, aimed at the home market...
style GAYLE parallel ATA interface. Up to 551 kByte/s is possible with a minor hardware modification. Otherwise only ~300 kByte/s is possible.
Additional 2 MiB RAM
On 2008-12-22 a modification of the original PCB by piggybacking another set of SRAM chips enables up to 4 MiB of RAM in total .AGA Support
The Minimig core has been upgraded with AGA support and extended to support at least 50 MiB of Chip memory on the prototype Replay board designed by Mike Johnson at FPGA Arcade.Similar projects
Illuwatar, a small private hardware designer in Sweden, implemented a Mini-ITXMini-ITX
Mini-ITX is a 17 x 17 cm low-power motherboard form factor developed by VIA Technologies in 2001. Mini-ITX is slightly smaller than microATX. Mini-ITX boards can often be passively cooled due to their low power consumption architecture, which makes them useful for home theater PC systems,...
form factor version of the Minimig under the Open Source design License. This hardware version fits in standard Mini-ITX cases and has dimensions of 17 cm x 17 cm. Connecting ports in this version were moved to the back of the mainboard to comply with Mini-ITX requirements.
On 9 Feb 2008 ACube Systems announced the availability of finished Minimig v1.1 boards.
On 2006-10-11 Jens Schönfeld at Individual Computers
Individual Computers
Individual Computers is a German computer hardware company specializing in retrocomputing accessories for the Commodore 64, Amiga, and PC platforms. Individual Computers produced the C-One reconfigurable computer in 2003...
revealed that they had been working on a commercial Amiga-in-FPGA for the past year called "Clone-A" that is similar to Minimig. In contrast to Minimig, Individual Computers's Clone-A was developed by a three person development team employing a powerful logic analyzer
Logic analyzer
A logic analyzer is an electronic instrument which displays signals in a digital circuit. A logic analyzer may convert the captured data into timing diagrams, protocol decodes, state machine traces, assembly language, or correlate assembly with source-level software.Presently, there are three...
. The system will use clone chips to replace CIAs, Paula, Gary, Agnus and Denise. The CPU will be the original from Motorola. Final chips will also include AGA and a working parallel port to enable 4-player games.
Wolfgang Förster has completed the Suska project, which is an Atari ST
Atari ST
The Atari ST is a home/personal computer that was released by Atari Corporation in 1985 and commercially available from that summer into the early 1990s. The "ST" officially stands for "Sixteen/Thirty-two", which referred to the Motorola 68000's 16-bit external bus and 32-bit internals...
-on-FPGA.
Natami (derived from Native Amiga) is a closed source advanced Amiga compatible machine, allowing users to run original Amiga 68k software and will update the original Amiga design to modern standards.
It introduces a new 3D softcore responsible for 3D graphics acceleration as well as an "68050" softcore as an addition to the 68k family CPU, more compatible with 68000 than e.g. 68060, yet more advanced and with higher clock frequency.