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.