Hasty Briefsbeta

CHIP8 – writing emulator, assembler, example game and VHDL hardware impl

19 days ago
  • #VHDL
  • #Emulator
  • #CHIP8
  • Project goal was to implement a simple ISA (CHIP8) using VHDL, create an interpreter, assembler, and a game for the platform.
  • CHIP8 features include 16x 8-bit registers, 16-bit address and program counter registers, 8-bit stack pointer, delay and sound timers, 35 opcodes, 16-key keypad, and a 64x32 monochrome display.
  • The emulator was implemented in C, focusing on opcode execution without abstraction layers, using a straightforward fetch-decode-execute cycle.
  • The assembler was written in C++, using a functional style for parsing and generating binary opcodes, with support for labels and dynamic address resolution.
  • A Flappy Bird clone was developed as a test game, showcasing the use of CHIP8 opcodes and including self-modifying code to handle dynamic sprite heights.
  • Hardware implementation was done on an Altera RZ-EasyFPGA A2.2 board, featuring a finite state machine for execution, BRAM for memory, and a VGA generator for display.
  • Key components included a clock divider, 7-segment display controller, and VGA signal generator, with the system capable of running basic CHIP8 games.