Brussels / 2 & 3 February 2019


Emulation revisited - narrowing the gap between software and hardware

Highlights on Verilator and MiSTer projects

Haven't you been a bit disappointed by the recent Nintendo NES/SNES Mini Classic series? If so, this talk is for you: learn to write a hardware emulator of a classic game console! After a brief overview of what FPGAs can do, we will see how we can start developing a software emulator (written in C++), then progressively replace software by hardware designs (written in Verilog), using Verilator to run simulations of the whole system. Then we will see how FPGA + ARM SoCs improve I/Os handling on modern hardware, such as USB gaming pads, and HDMI outputs, such as what is done with the MiSTer project.

Step by step instructions to design a hardware clone of a classic game console (probably the Nintendo NES).

Motivation - Mission Statement - Copyright and patents - Fair use - Preservation

Overview of FPGAs - What are FPGAs - What are HDLs - Differences between programming languages and HDLs - Running / debugging hardware designs.

Introducing Verilator - From Verilog to C++ - C++ models of common ICs - Side-by-side simulation of software and hardware models.

Introducing MiSTer - History and evolution of emulators - ARM and Linux as companion devices - MiSTer architecture and design choices - MiSTer FPGA core porting guidelines.



Gregory Estrade