> ## Content Index
> Fetch the complete content index at: https://cms.yufeiran.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Building a Computer with Nexys4 DDR [0]: Overview
- URL: https://cms.yufeiran.com/en-yong-nexys4ddr-zhi-zuo-yi-tai-ji-suan-ji/
- Published: 2020-05-29T02:53:42.000Z
- Updated: 2026-09-27T12:37:58.000Z
- Author: Feiran Yu
- Tags: works, #lang-en, #legacy-import

## 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

1. [Overview](https://yufeiran.com/en/yong-nexys4ddr-zhi-zuo-yi-tai-ji-suan-ji/?ref=cms.yufeiran.com)
2. [Hardware](https://yufeiran.com/en/yong-nexys4ddr-zhi-zuo-yi-tai-ji-suan-ji-1/?ref=cms.yufeiran.com)
3. [Operating System](https://yufeiran.com/en/yong-nexys4ddr-zhi-zuo-yi-tai-ji-suan-ji-2-cao-zuo-xi-tong-she-ji/?ref=cms.yufeiran.com)
4. Applications

Below is the concrete design of each part of the complete computer.

## 1 Hardware

![1132884-20180713171537631-1809727816-1](https://yufeiran.com/content/images/2021/01/1132884-20180713171537631-1809727816-1.png)

Use the Nexys4 DDR FPGA development board: CPU + memory + hard disk + bus, based on [OpenMIPS](https://github.com/yufeiran/OpenMIPS?ref=cms.yufeiran.com).

Keyboard and VGA monitor are used as system input and output.

### 1.1 Introduction to Nexys4 DDR

![nexys-4-ddr-0](https://yufeiran.com/content/images/2021/01/nexys-4-ddr-0.png)

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](https://reference.digilentinc.com/reference/programmable-logic/nexys-4-ddr/start?ref=cms.yufeiran.com)

This project plans to use this board to build a computer that can run C programs.

## 2 Operating System

![BatchOS-1](https://yufeiran.com/content/images/2021/01/BatchOS-1.jpg)

Use a Unix-like operating system.

It manages the hardware and runs applications.

## 3 Compiler

![compileProcess-1](https://yufeiran.com/content/images/2021/01/compileProcess-1.jpg)

The plan is to use a simplified C compiler, based on an improved version of the earlier [CMin](https://github.com/B266/CMin?ref=cms.yufeiran.com) project.

## 4 Applications

![3d](https://yufeiran.com/content/images/2021/01/3d.png)

Run a 3D rendering program similar to [yufeiran/3D\_Engine](https://github.com/yufeiran/3D%5FEngine?ref=cms.yufeiran.com).

## 5 References

[Nexys 4 DDR - Getting Started with Microblaze](https://reference.digilentinc.com/learn/programmable-logic/tutorials/nexys-4-ddr-getting-started-with-microblaze/start?ref=cms.yufeiran.com)

[Nexys 4 DDR Music Looper](https://reference.digilentinc.com/learn/programmable-logic/tutorials/nexys-4-ddr-looper-demo/start?tdsourcetag=s%5Fpctim%5Faiomsg&ref=cms.yufeiran.com)

[The Elements of Computing Systems](https://book.douban.com/subject/1998341//?ref=cms.yufeiran.com)

[CPU Design: Build Your Own CPU](https://book.douban.com/subject/25780703/?ref=cms.yufeiran.com)

[Write Your Own CPU](https://book.douban.com/subject/25960657/?ref=cms.yufeiran.com)

[Run your own RISC-V on FPGA Nexys4-DDR platform, Bilibili mirror](https://www.bilibili.com/video/BV1tf4y197ay?zw&ref=cms.yufeiran.com)