Design for High-Level Model Based on an Eight Bit Entertainment SystemAlejandro Lizaola, Ricardo Castro, Gilberto Beltran. Manuel Salim and Alejandro MorenoDepartamento de electronica , Systemas e InformaticaInstitutoTecnologico y de EstudiosSuperiores de OccidenteGuadalajara, Mexico.
Outline • Introduction • NES Main Block Description • Design Methodology • Verification Strategies • Results • Conclusions 2
Introduction • NES prototype has been developed in order to increase engineering skills on this area. • This one was not verified, formal verification process has not been executed. • Design lifecycle must be complete. 3
…Introduction • A model reference will be developed in a hardware description and verification language. • Design. • Implementation. • Verification. • Validation. • Reverse engineering will help to speed up the knowledge and design of the NES. 4
Design Methodology • NES functionality understanding. • Emulator election. • Reference model design. • Reference model main blocks implementation. • Reference model integration modules. 6
Main Block Description Main Block Proposal: 7
…Verification Strategies Reference Model Verification: 8
Verification Strategies Verification Plan: All functional areas as well as monitors and checkers are described through the specification of the console. Monitor and checkers are used to know the status of : • Memory. • Flags. • I/O Signals. • Variables. 9
…Results Reference Model Emulator Mapper comparison between output files using Soccer Game ROM. 10
Results Triangular channel outputs for Soccer game. Emulator Reference Model ComparisonResults 11
…Results Delta Modulation outputs for Soccer game. Emulator Reference Model ComparisonResults 12
…Results Emulator Reference Model ComparisonResults Audio buffer outputs for Soccer game. 13
…Results Scroll results for Soccer game. Emulator Reference Model ComparisonResults Emulator Reference Model ComparisonResults • Sprites results for Soccergame. 14
…Results Resulttablegames. 15
Conclusions • NES functionality, interconnection and architecture was developed. • After several attempt to select an PC emulator, NesCore has been selected . • Reference model was implemented in SystemVerilogin a modular way, adding two none existing modules in the NES prototype. 16
…Conclusions • An automated verification strategy was implemented: • Human Factor Reduction. • Improve efficiency. • Faster results comparison. • The performance of the model behaves as expected due to results comparison. 17
Future Work • Mappers and more expansion chips can be implemented. • Verification´s framework must be implemented. • NES prototype verification can be done. 18
Question & Answers… Any question ?
Slides Background Central Processing Unit: The CPU emulated by the NES is an 8-bit microprocessor produced by Ricoh based on MOS Technology 6502 core. The NTSC version (North America and Japan) of the console use the Ricoh 2A03 (or RP2A03), which operates at 1.78MHz, PAL version (Europe and Australia) use the Ricoh 2A07 (or RP2A07), this is identical to version NTSC with the difference that it works on 1.66MHz.
Slides Background Audio Processing Unit: The APU is responsible for generating the game sound. It is implemented in two chips, RP2A03 for NTSC and RP2A07 for PAL. The APU has 5 channels: • Square channel, frequency ranges 54 Hz – 28 KHz. • Square channel, frequency ranges 54 Hz – 28 KHz. • Triangle channel, frequency ranges 27 Hz – 56 KHz. • Noise channel, LFSR, two modes and sixteen programmable frequencies. • DPCM channel.
Slides Background MAPPERS: Mappers are chips designed for videogames developers to use them in NES cartridges. Mappers are used to access memory beyond the limits of the 64k memory, allowing special effects in the video and sound, such as forcing some interruptions and instructions among other things. The memory used by the NES is implemented in two blocks, Rom program (PRG-ROM) and Rom Character (CHR-ROM). This includes the memory area where the current code will be executed by the micro as well as the video memory data .
Slides Background Picture Processing Unit: The PPU used by the NES was designed by Ricoh. This unit is responsible for transforming the digital information received from the CPU into video signal to display the game on screen. This process is known as image rendering The PPU contains the following: • Background render unit. • Sprites render unit. • Records of entry and exit. • Internal RAM 32B. • External RAM 256B.