Meet Daisy

Daisy is a 16-bit computer equipped with a screen and a keyboard. It resembles old school handheld computers like Gameboys, PDAs and mobile phones.

This project includes:

  • a hardware platform,
  • an assembler,
  • a virtual machine,
  • a programming language called DaisyScript,
  • the DaisyScript compiler,
  • a mini operating system written in DaisyScript

All these modules are built and tested using a hardware simulator because that is how hardware engineers build chips. First, the hardware is designed, tested and optimised on a software simulator. Only once the design is finalised, is the gate logic committed to silicon.

My goal for this project was to build a modern computer from scratch using first principles.

Chipset

The Daisy chipset is composed of the following 37 chips. All these chips are generic and can be used in the construction of many different computers.

The Nand and DFF chips are considered to be primitive and their implementation bundled with the hardware simulator. All other chips listed here are built using a combination of these two chips.

Elementary logic gates

  • Nand (primitive)
  • Not
  • And
  • Or
  • Xor
  • Mux
  • Dmux
  • Not16
  • And16
  • Or16
  • Mux16
  • Or8Way
  • Mux4Way16
  • Mux8Way16
  • DMux4Way
  • DMux8Way

Combinational chips

  • HalfAdder
  • FullAdder
  • Add16
  • Inc16
  • ALU

Sequential chips

  • DFF (primitive)
  • Bit
  • Register
  • RAM8
  • RAM64
  • RAM512
  • RAM4K
  • RAM16K
  • PC

Computer Architecture

  • Memory
  • CPU
  • Computer

Credits

Massive thanks to Shimon Schocken and Noam Nisan from Hebrew University of Jerusalem. This project owes everything to their excellent book The Elements of Computing Systems.