A domino computer is a mechanical computer built using dominoes [1] to represent mechanical amplification or logic gating of digital signals. [2]
Sequences of standing dominoes can be arranged to demonstrate digital concepts such as amplification and digital signals. Since digital information is conducted by a string of dominoes, this effect differs from phenomena where:
The Domino Day event shows many constructs, mainly for the purposes of entertainment. Some constructs are reminiscent of digital circuits, suggesting that not only telegraph-like tools can be shown, but also simple information processing modules.
It is possible to use this phenomenon for constructing unconventional computing tools. [1] [2] [3] The base phenomenon is sufficient to achieve this goal, [2] but “mechanical synapses” can also be used (see online [4] ), to the analogy of electrical synapses or chemical synapses.
The logic OR gate is simple to make in dominoes, consisting of two domino paths in a Y-shape with the stem of the Y as the output. The complex piece is which gate is able to be added to OR to obtain a functionally complete set such that all logic gates can be represented.
No domino gate can produce output 1 with all inputs 0, so a NOT gate cannot be created unless an external 'power source' sequence (a line of dominoes that is knocked down no matter what) is included; in that case, the signal from the input can be used to hit the dominoes in the 'power source' sequence in the wrong direction, such that they are stopped from continuing on when they would have otherwise. It is, however, difficult to lead in a sequence from one 'power source' to many gates with suitable timing. [5] An OR gate and a NOT gate are together functionally complete, allowing for any domino computer to be theoretically constructed under this paradigm. [6]
In order to produce output 0 with all inputs 1, feedback is required to interrupt the path from the input signal P to the output signal Q such that the logic gate is equivalent to Q AND (NOT P). Similarly, an XOR gate can be realized with feedback from both inputs such that the two inputs interrupt each other if both are 1; however, such a gate heavily depends on the simultaneity of the inputs to prevent one input from destroying the opposite input's feedback loop.
The current record for the biggest domino computer is a 6-bit adder.
At the Manchester Science Festival in 2012, mathematician Matt Parker and a team of volunteers worked together to build a domino binary adder which could add two three-bit inputs and produce a 3-bit output, which ran successfully. The following day, they attempted to build a 4-bit adder, which they completed, but the final test run had some errors (one due to signal bleed between chains of dominoes, and one timing issue). [7]
In 2018, at Bank Muscat headquarters in Oman, a team of American British Academy (ABA) Grade 12 students led by Saatvik Suryajit Korisepati, assisted by Alex Freyer, Zoltan Sojitory, and other computer students, used 15,000 dominoes to build a 5-bit adder able to add any numbers up to the sum of 63. [8]
In January 2024, a team of Finnish high school students successfully built a 6-bit adder out of over 10,000 dominoes. [9]
In digital logic and computing, a counter is a device which stores the number of times a particular event or process has occurred, often in relationship to a clock. The most common type is a sequential digital logic circuit with an input line called the clock and multiple output lines. The values on the output lines represent a number in the binary or BCD number system. Each pulse applied to the clock input increments or decrements the number in the counter.
A logic gate is a device that performs a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output. Depending on the context, the term may refer to an ideal logic gate, one that has, for instance, zero rise time and unlimited fan-out, or it may refer to a non-ideal physical device.
Digital electronics is a field of electronics involving the study of digital signals and the engineering of devices that use or produce them. This is in contrast to analog electronics which work primarily with analog signals. Despite the name, digital electronics designs includes important analog design considerations.
In digital circuits, an adder–subtractor is a circuit that is capable of adding or subtracting numbers. Below is a circuit that adds or subtracts depending on a control signal. It is also possible to construct a circuit that performs both addition and subtraction at the same time.
Transistor–transistor logic (TTL) is a logic family built from bipolar junction transistors. Its name signifies that transistors perform both the logic function and the amplifying function, as opposed to earlier resistor–transistor logic (RTL) and diode–transistor logic (DTL).
In computing, a linear-feedback shift register (LFSR) is a shift register whose input bit is a linear function of its previous state.
In automata theory, combinational logic is a type of digital logic that is implemented by Boolean circuits, where the output is a pure function of the present input only. This is in contrast to sequential logic, in which the output depends not only on the present input but also on the history of the input. In other words, sequential logic has memory while combinational logic does not.
An adder, or summer, is a digital circuit that performs addition of numbers. In many computers and other kinds of processors, adders are used in the arithmetic logic units (ALUs). They are also used in other parts of the processor, where they are used to calculate addresses, table indices, increment and decrement operators and similar operations.
Asynchronous circuit is a sequential digital logic circuit that does not use a global clock circuit or signal generator to synchronize its components. Instead, the components are driven by a handshaking circuit which indicates a completion of a set of instructions. Handshaking works by simple data transfer protocols. Many synchronous circuits were developed in early 1950s as part of bigger asynchronous systems. Asynchronous circuits and theory surrounding is a part of several steps in integrated circuit design, a field of digital electronics engineering.
The OR gate is a digital logic gate that implements logical disjunction. The OR gate outputs "true" if any of its inputs are "true"; otherwise it outputs "false". The input and output states are normally represented by different voltage levels.
A carry-lookahead adder (CLA) or fast adder is a type of electronics adder used in digital logic. A carry-lookahead adder improves speed by reducing the amount of time required to determine carry bits. It can be contrasted with the simpler, but usually slower, ripple-carry adder (RCA), for which the carry bit is calculated alongside the sum bit, and each stage must wait until the previous carry bit has been calculated to begin calculating its own sum bit and carry bit. The carry-lookahead adder calculates one or more carry bits before the sum, which reduces the wait time to calculate the result of the larger-value bits of the adder.
Lola is designed to be a simple hardware description language for describing synchronous, digital circuits. Niklaus Wirth developed the language to teach digital design on field-programmable gate arrays (FPGAs) to computer science students while a professor at ETH Zurich.
A ring counter is a type of counter composed of flip-flops connected into a shift register, with the output of the last flip-flop fed to the input of the first, making a "circular" or "ring" structure.
XOR gate is a digital logic gate that gives a true output when the number of true inputs is odd. An XOR gate implements an exclusive or from mathematical logic; that is, a true output results if one, and only one, of the inputs to the gate is true. If both inputs are false (0/LOW) or both are true, a false output results. XOR represents the inequality function, i.e., the output is true if the inputs are not alike otherwise the output is false. A way to remember XOR is "must have one or the other but not both".
Unconventional computing is computing by any of a wide range of new or unusual methods. It is also known as alternative computing.
A frequency divider, also called a clock divider or scaler or prescaler, is a circuit that takes an input signal of a frequency, , and generates an output signal of a frequency:
Four-phase logic is a type of, and design methodology for dynamic logic. It enabled non-specialist engineers to design quite complex ICs, using either PMOS or NMOS processes. It uses a kind of 4-phase clock signal.
Domino logic is a CMOS-based evolution of dynamic logic techniques consisting of a dynamic logic gate cascaded into a static CMOS inverter. The term derives from the fact that in domino logic, each stage ripples the next stage for evaluation, similar to dominoes falling one after the other. Domino logic contrasts with other solutions to the cascade problem where cascading is interrupted by clocks or other means.
In computing, an arithmetic logic unit (ALU) is a combinational digital circuit that performs arithmetic and bitwise operations on integer binary numbers. This is in contrast to a floating-point unit (FPU), which operates on floating point numbers. It is a fundamental building block of many types of computing circuits, including the central processing unit (CPU) of computers, FPUs, and graphics processing units (GPUs).
In electronics, flip-flops and latches are circuits that have two stable states that can store state information – a bistable multivibrator. The circuit can be made to change state by signals applied to one or more control inputs and will output its state. It is the basic storage element in sequential logic. Flip-flops and latches are fundamental building blocks of digital electronics systems used in computers, communications, and many other types of systems.