Gradually, old systems completely degrade and cannot be used, and their preservation in the most reliable way possible is important to the history of computing. If we can’t keep the original chips, we can at least keep their organization and make the FPGAs behave like they are.
What is MiSTer FPGA?
MiSTer FPGA is a free and open source project that seeks the most reliable reproduction possible of old systems through the use of an FPGA, which is configured to emulate old systems, whether they are computers or video game consoles. For this, the MiSTer community has created files that allow the MiSTer FPGA to be configured to operate as different 8-bit and 16-bit systems.
Through the use of an FPGA configured as the original hardware, it behaves like the original hardware and not by emulation. In other words, the MiSTer FPGA behaves like the original hardware and is the ideal replacement for those who want the most faithful experience possible with these systems.
The differences with other projects? As this is an open and free project, it is not associated with a trademark, this gives participants the freedom to be as faithful as possible to the original material. Many of the commercial solutions that “mimic” older consoles through FPGAs are limited to not infringing on patents or intellectual property and therefore must seek other solutions to avoid litigation.
How do the nuclei of the different systems develop?
FPGAs are programmed using hardware description languages such as Verilog and VHDL in their various versions. These languages do not describe the programs to be executed, but rather the internal organization of the various transistors. The way to do this is to first take pictures with special microscopes and use visual information such as a card which is then encoded. This is because the number of transistors has doubled from time to time due to Moore’s Law, which complicates analysis and implementation.
When systems are very complex, an FPGA version is created as close to the original hardware as possible, but there are often things that have not been documented by the manufacturer and these need to be implemented by retro- engineering. This means that even though the MiSTer FPGA has been configured to behave like a specific kernel, it does not perform reliably.
Another problem is that the video times of the old systems were designed to work with monitors and televisions that no longer exist, and although it is possible to add additional modules that allow you to use a CRT monitor, in fact all MiSTer FPGA cores are designed to output their video signal through HDMI, so they are not completely faithful to the original hardware. Fortunately, this is an open project and the kernels that describe the hardware are updated over time.
Why an FPGA?
The advantage of FPGAs is that we can configure them as if they were different hardware components interconnected with each other and working in parallel. This has a higher efficiency than an emulator in which all the parts of it are emulated by a single core or by several but in a less efficient way. An FPGA makes it possible to integrate older hardware more reliably, not only by making the hardware work as is, but also with the same communication times and interfaces.
What hardware is the MiSTer FPGA made of?
The main FPGA of the MiSTer FPGA is the De10-Nano from Terasic, it is an Intel Cyclone V SoC 5CSEBA6U23I7, which includes two ARM Cortex-A9 cores as the main processor, 1 GB DDR3 RAM, Micro SD interface, HDMI video output and mini-USB type B connector. This part of the hardware is used to charge the cores to through a menu, once they have been loaded, the FPGA is launched, which begins to function like the kernel that we loaded.
The number of logic gates of the FPGA is 110,000, which means that it cannot simulate complex systems due to the lack of programmable logic gates inside. So if you are hoping to emulate a 32-bit or 64-bit system, it is best to forget to do so, as there aren’t enough items for it.
You also don’t expect 100% reliable emulation, because as we mentioned before, there are many pieces of hardware in these systems which if we know what they are doing, they have never been. documented and we do not have the information on how they are implemented in hardware.
SDRAM modules for the MiSTer FPGA
The other item required is SDRAM modules, which is surprising since the system has 1 GB of onboard DDR3 memory. The explanation? It has to do with clock speed and latency, because as RAM offers more bandwidth, latency has also increased. Today that’s negligible, but older systems were designed to have processors running at specific times, which was related to the latency between RAM and different components.
The usual thing would be to use the internal memory of the FPGA, but that means reducing it for hardware simulation, so it is necessary to use external RAM and the answer has been to use SDRAM, which is a compromise between the best SRAM and the worst solution would be to use DDR memory when simulating different systems.
The other reason is that DDR RAM is used by ARM cores, which means there is contention in its access, adding even more latency and making simulation by the FPGA incorrect. In general, memory response times are important for the system to operate in a synchronized and coordinated fashion.
I / O Extensions for the MiSTer FPGA
The MiSTer FPGA has a series of expansion cards that add additional functionality needed to add certain functionality and connectivity with certain peripherals. The installation of these plates is not easy, as in some cases they do not rely on their connection to an expansion port and must be done by soldering some connections. In most cases, therefore, we recommend that you purchase a MiSTer FPGA with the entire kit fully assembled.
The first I / O board for the MiSTer is the so-called analog board which adds the following:
- A VGA connector, to be able to connect a CRT monitor.
- A mini audio jack with TOSLINK.
- A secondary SD interface, required for some cores.
- A fan to cool the De10-Nano, i.e. the FPGA.
- A port of USB 3.0 aspect, called user port and it is a serial port, which is mainly used to connect the original controllers through said interface.
SNAC adapters allow you to connect a control button to one of these connectors, but if we want to be able to connect more buttons, we are very limited, because the analog card has only one user port.
The second expansion card is the RTC card, which adds a real time clock for the cores that need it to function properly. Processors generally count time from the length of their clock cycles, so to have information about the course of time in the real world, they need this type of plate, which can also be updated via Internet.
The third plate is the audio / tape input, this plate allows connection of a cassette unit for greater fidelity of the 8-bit computer experience. It’s an addition for people who still have tapes from their 8-bit computers and will be working after such a long time, so it’s not a foundational piece to work on.
USB card and BlisSTer
The fourth board is the USB hub, which adds 7 USB ports to the MiSTer FPGA to be able to connect various peripherals. Be it mice, keyboards, gamepads and we can even add Bluetooth and WiFi modules.
The USB Hub should not be confused with the BlisSTer card, which integrates a series of user ports to be able to connect several SNAC adapters and be able to connect several controls and peripherals at the same time. Which is ideal if you still have the original devices and want to keep using them.