In this project, we want to start with the feature specification, instruction set, and architecture requirements of a unit to implement and follow through with the entire design process from the on-paper register transfer design through to the implementation and simulation of the final product. The hardware chosen to implement was a game console device, popular in the 1980's, the Nintendo Entertainment System.
The NES system offers the ideal starting position for this project. First of all the hardware requirements and features are well known. This is because the many people have written software simulators of the unit and have made public how the different the components within the NES work together. The internal design however is not known since most of that information is not required for software simulators and is hidden inside of the ceramic packages of the NES integrated circuits. This is ideal since the internal design is exactly what this projected desires to develop. Also the NES system as a whole is a fairly simple system and also provides some interesting material to simulate.
This project explores each of the steps through the research of the NES functional specification including the instruction set, functional components, and software interface (memory breakdown, ROMs, RAMs, registers, etc.) to actual design of the datapath, control logic, and other components, to implement a working NES system. Although it is certainly possible to actually wire-up a complete system, this project will only perform a hardware simulation of the final design using VHDL and Synopsys simulation tools. This will provide a accurate test of our design without actually having to build it physically.