PDA

View Full Version : PACE Overview


Chris
5th December 2007, 10:39 AM
Introduction

PACE is an architecture for logic-level emulation of various gaming platforms, mainly arcade game systems.

Hardware designs may be compiled for a number of different hardware targets, and have fairly generic I/O, video and sound interfaces allowing for instance composite video, 1-bit delta-sigma audio and keyboard control on one target, and vga video, 16-bit audio DAC and gamecube controller on another.

The primary design language is VHDL, though some leftover bits are written in Verilog. Language preferences aside, we request all new changes are VHDL to facilitate simulation as mixed-language simulation environments are basically out of reach of anyone who doesn't do this stuff for a living.

Terminology

PACE is split into several abstraction layers to facilitate modularity. The major modules are known as:


Platform - Emulation of a specific hardware platform, Eg. Pacman
Target - Particular target board
Component - A sub-design that has been moved into a library of components to share between platforms, Eg. AY8910 sound IC
Device - A particular emulation device (Ie. FPGA family)


Filesystem Structure

/src - Main source tree
/src/component - Shared components
/src/component/cpu - CPU emulations
/src/component/io - I/O ICs and peripheral controllers
/src/component/sound - Sound ICs
/src/component/video - Video controller ICs
/src/pace - Core PACE components
/src/platform/* - Platform-specific files
/src/target/* - Target-specific files

/synth - Source files for synthesis
/synth/device - Device-specific synthesis files
/synth/platform - Target specific settings and project files

/dev - Development tools

Hierarchical Structure

target_top - Target specific top-level source, in /src/target/*, also instantiates any support modules required for the target
pace - PACE top-level, contains declarations for generic emulation modules used
game, graphics, sound - PACE generic sound modules, actual implementation taken from platform directory

Repository

Pace subversion source code repository is available at https://svn.pacedev.net/repos/pace - read only access only for now.