Building a Computer with Nexys4 DDR [0]: Overview
0 Introduction
This project came from a very simple idea: build a complete computer.
A complete computer contains four parts: hardware, operating system, compiler, and applications.
This is a long-term project with many unfinished parts, and it is updated irregularly.
0.1 What “Complete Computer” Means
It should have basic hardware, such as TLB, SPI Flash, and DDR2 RAM.
It should have basic input and output, such as a keyboard and monitor.
It should have a basic operating system, with features such as process switching and a file system.
It should be able to run basic C programs.
Index
- Overview
- Hardware
- Operating System
- Applications
Below is the concrete design of each part of the complete computer.
1 Hardware

Use the Nexys4 DDR FPGA development board: CPU + memory + hard disk + bus, based on OpenMIPS.
Keyboard and VGA monitor are used as system input and output.
1.1 Introduction to Nexys4 DDR

This is a fairly common FPGA development board among students. It has rich peripherals, including a 128MB DDR2 memory chip.
Official documentation: Nexys 4 DDR, Digilent Documentation
This project plans to use this board to build a computer that can run C programs.
2 Operating System

Use a Unix-like operating system.
It manages the hardware and runs applications.
3 Compiler

The plan is to use a simplified C compiler, based on an improved version of the earlier CMin project.
4 Applications

Run a 3D rendering program similar to yufeiran/3D_Engine.
5 References
Nexys 4 DDR - Getting Started with Microblaze
The Elements of Computing Systems
CPU Design: Build Your Own CPU
Run your own RISC-V on FPGA Nexys4-DDR platform, Bilibili mirror