๐ฎ A Game of Life in Assembly โ Cellular Automaton on the Nios II Processor
๐ EPFL โ Bachelor in Communication Systems, Year 2 (2022)
๐ฅ Team: Matthias Wyss, Lucas Simonnet
๐ Code Repository: GitHub Repository
In this project, we implemented a fully functional version of Conwayโs Game of Life in MIPS-like assembly on a multicycle Nios II processor, running on the Gecko4Education board. The project involved writing the entire game logic, including cell state transitions, user controls (pause, speed adjustment, seed selection), and dynamic state updates, in low-level assemblyโwithout relying on any OS or runtime support.
Key tasks included:
- Translating high-level algorithmic logic into efficient assembly code compatible with the Nios II processor.
- Managing memory-mapped I/O to interact with the LED matrix, 7-segment display, and push buttons for user interaction.
- Ensuring proper stack usage and subroutine structure to maintain compatibility with the simulatorโs grading and execution system.
The project focused heavily on low-level debugging, hardware simulation, and state machine design, giving us hands-on experience with embedded systems and processor-level execution flow.
๐ Tools & Libraries:
- Assembly (Nios II)
- nios2sim Simulator
- Gecko4Education Board
๐ง Techniques:
- Hardware Simulation
- Memory-Mapped I/O
- Low-Level Debugging
- State Machine Design
- Stack-Based Subroutine Calling