Daisy V: Machine Language

A computer can be described , abstractly, by specifying and demonstrating its machine language capabilities. Seeing some low-level programs written in machine language helps us understand not only how to get the computer to do things, but also why its hardware was designed in a certain way. Machine language is the most profound interface in the overall computer enterprise—the fine line where hardware meets software. This the point where abstract thoughts and symbolic instructions are turned into physical operations performed in silicon.

Daisy IV: Memory

The most elementary sequential chip in the computer is a device called a flip-flop. There are several variants of flip-flops. In this project, I've used the variant called a data flip-flop or DFF. Its interface consists of a single bit data input, and a single-bit data output. In addition, the DFF has a clock input that continuously changes according to the master clock's signal. For the purpose of this project, DFFs are treated as primitive building blocks from which all other memory elements are built.

Daisy III: Sequential logic

All the Boolean and arithmetic chips built so far have been combinational. Combinational chips compute functions that depend solely on combinations of their input values. These relatively simple chips provide many important processing functions (like the ALU) but they cannot maintain state. Since computers must be able to store and recall values too, they need memory elements that can preserve data over time. These memory elements are built using sequential logic.

Daisy II: The ALU

The chips built thus far have been generic, i.e. their designs are universal and would hold for any computer. The ALU is the first bit of proprietary chip added into the mix. There is no universal way of designing an ALU. It all depends on product requirements.

Daisy I: Logic gates

All computer chips are made from the same building blocks: elementary logic gates. A logic gate is a physical device that implements a mathematical logic (Boolean) function. The simplest example of a logic gate is the `NOT` gate. It takes a single input and outputs its inverse. If the signal is ON, the inverter outputs OFF and vice versa. These gates can be constructed in many different ways but their logic behaviour remains consistent across all computers.