design for high-level model based on an eight bit entertainment system alejandro lizaola, ricardo...
TRANSCRIPT
Design for High-Level Model Based on an Eight Bit Entertainment System
Alejandro Lizaola, Ricardo Castro, Gilberto Beltran. Manuel Salim and Alejandro Moreno
Departamento de electronica , Systemas e InformaticaInstituto Tecnologico y de Estudios Superiores de Occidente
Guadalajara, 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
1. NES functionality understanding.
2. Emulator election.
3. Reference model design.
4. Reference model main blocks implementation.
5. Reference model integration modules.
6
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.
Verification Strategies
9
…Results
Scroll results for Soccer game.
Sprites results for Soccer game.
14
Emulator
Reference Model
Comparison Results
Comparison Results
Reference Model
Emulator
…Results
Game’s name MapperNumber
Funtionality Comparision
Soccer, Demo Sound, Donkey Kong, Súper Mario Bros 1 0 Correct
Contra 2 Correct
Castlevania I, Legend of Zelda, Techno Baseball, Road Race, Megaman I, III
1 Correct
Hudson Island I,II, III 3 Correct
Punch Out 9 Correct
Megaman II 3 Incorrect
Castlevania III Japanese version 24 Incorrect
Súper Mario Bros III 5 Correct
Nintendo World Cup, Tiny Toons, Mitsufatoru 4 Correct
Dragon Ball Z 16 Incorrect
Result table games. 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 SystemVerilog in 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
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:
1. Square channel, frequency ranges 54 Hz – 28 KHz.
2. Square channel, frequency ranges 54 Hz – 28 KHz.
3. Triangle channel, frequency ranges 27 Hz – 56 KHz.
4. Noise channel, LFSR, two modes and sixteen programmable frequencies.
5. 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:1. Background render unit.
2. Sprites render unit.
3. Records of entry and exit.
4. Internal RAM 32B.
5. External RAM 256B.