Simulator Components

All 40 simulator components on one page: a real canvas snapshot of each component, a short description, and a link to a datasheet with the truth table. Come back here whenever you meet an unfamiliar circuit element.

Besides the palette elements, a circuit you build can be folded into a custom chip — a ready-made block with propagation delay, like a real IC. The first reward chip is the ADDER8 8-bit adder; the rest are awarded for levels 13–16 and part finals.

Basic logic

ComponentDescriptionDatasheet
NAND NAND A universal logic gate. Outputs 0 only when both inputs are 1; all other cases yield 1. Any other logic gate can be built from NAND gates: NOT, AND, OR, XOR, and even an entire processor.
NOT (Inverter) NOT (Inverter) The simplest logic gate. Inverts the signal: 0 becomes 1, 1 becomes 0. Used wherever an inverted signal is needed.
AND AND Logical multiplication (conjunction). Outputs 1 only when both inputs are 1, otherwise 0. Matches the "AND" operation: result is true only if both conditions are true.
OR OR Logical addition (disjunction). Outputs 1 if at least one input is 1. Only outputs 0 when both inputs are 0. Matches the "OR" operation: result is true if at least one condition is true.
XOR (Exclusive OR) XOR (Exclusive OR) Exclusive OR. Outputs 1 when the two inputs differ (one 0, one 1). Outputs 0 when both inputs are the same. Useful for bit comparison and in adders.
NOR NOR Combination of OR and NOT. Outputs 1 only when both inputs are 0; all other cases yield 0. Used as the foundation for RS latches and other memory circuits.

Arithmetic & selection

ComponentDescriptionDatasheet
Half Adder Half Adder Adds two bits. Produces a sum (Sum) and a carry (Carry). Cannot handle a carry from a previous bit — that requires a Full Adder. Built from XOR and AND.
Full Adder Full Adder Adds three bits: two operands plus a carry from the previous bit (CarryIn). Produces a sum (Sum) and a carry (CarryOut). Chaining multiple Full Adders enables multi-bit arithmetic.
MUX (Multiplexer 2→1) MUX (Multiplexer 2→1) Routes one of two input signals to the output depending on a selector signal. If selector = 0, the first input passes through; if 1 — the second. Acts as a digital switch.

Data buses

ComponentDescriptionDatasheet
Bus Input (8-bit) Bus Input (8-bit) Sets a numeric value from 0 to 255 on an 8-bit data bus. Value is set with a slider. The bus combines 8 bits into one number — a convenient way to work with bytes.
Bus Output (8-bit) Bus Output (8-bit) Displays the value on an 8-bit bus in decimal. Useful for observing the results of circuits that handle bytes.
Bus Constant Bus Constant Always emits a fixed value (0–255) regardless of external signals. Useful for supplying constant addresses, masks, or configuration codes.
Splitter (bus→bits) Splitter (bus→bits) Takes an 8-bit bus and splits it into 8 individual bit signals (least to most significant). Lets you work with each bit of a byte independently.
Maker (bits→bus) Maker (bits→bus) Takes 8 individual bit signals (least to most significant) and assembles them into one 8-bit byte.
Bus NOT Bus NOT Bitwise NOT for a bus. Inverts each of the 8 bits independently: every 0 becomes 1, every 1 becomes 0. Used for bitwise negation of a byte.
Bus AND Bus AND Bitwise AND for two 8-bit buses. Each result bit is 1 only if the corresponding bits of both input buses are 1. Used for applying bit masks.
Bus OR Bus OR Bitwise OR for two 8-bit buses. Each result bit is 1 if at least one of the corresponding input bits is 1.
Bus XOR Bus XOR Bitwise XOR for two 8-bit buses. Each result bit is 1 if the corresponding input bits differ. Useful for comparing bytes.
Bus MUX Bus MUX Routes one of two 8-bit buses to an 8-bit output based on a selector signal. Works like a regular multiplexer but switches entire bytes.
Bus SHL Bus SHL Shifts an 8-bit value one bit to the left: each bit moves to a more significant position, bit 7 is dropped, and 0 is written into bit 0. Arithmetically this multiplies by 2 (modulo 256).
Bus SHR Bus SHR Shifts an 8-bit value one bit to the right: each bit moves to a less significant position, bit 0 is dropped, and 0 is written into bit 7. Arithmetically this is integer division by 2.
Bus Zero (zero detector) Bus Zero (zero detector) Checks an 8-bit bus and outputs 1 if the bus is zero (00000000), and 0 for any non-zero value. Lets the circuit "see" the result of a computation.

Memory

ComponentDescriptionDatasheet
DFF (D Flip-Flop) DFF (D Flip-Flop) Stores one bit of data. The output (Q) changes only at the rising edge of the clock signal. Between edges, the output holds the previous value. The basic building block for registers and counters.
Register 8-bit Register 8-bit Stores one byte (8 bits). Writes a new value on the clock edge. Until the next clock edge, the register holds the previous value. Used for temporary data storage in the processor.
ROM (Read-Only Memory) ROM (Read-Only Memory) Stores 256 bytes of data that do not change during operation. Addressed by an 8-bit address (0–255). Contains the processor program or constants. Data is retained even when power is off.
RAM (Random Access Memory) RAM (Random Access Memory) Stores 256 bytes of data with read and write support. Addressed by an 8-bit address. Data is temporary — lost on power-off. Used for storing variables and computation results.

Processor & control

ComponentDescriptionDatasheet
Program Counter Program Counter Holds the address of the currently executing instruction. On each clock cycle it increments by the Inc value (default 1), advancing to the next instruction. The most critical part of the processor — determines which command to fetch from memory.
Index Register (IX) Index Register (IX) Index register for indirect addressing. Stores an 8-bit address used to access arrays in RAM. Increments by 1 on Clock edge when Inc=1. Loads data from bus when WE=1.
Addr Decoder (ADEC) Addr Decoder (ADEC) Address decoder. Determines whether an address belongs to RAM (0x00–0xDF) or I/O devices (0xE0–0xFF). Generates signals to arbitrate access between RAM and I/O devices.
LFSR (Random Number Generator) LFSR (Random Number Generator) Linear Feedback Shift Register — an 8-bit pseudorandom number generator. Polynomial: x^8 + x^6 + x^5 + x^4 + 1. Shifts on every Clock edge. Read via port 0xFA (DevAddr=0x1A).
Decoder (instruction decoder) Decoder (instruction decoder) Splits an 8-bit instruction into two fields: the upper 4 bits are the opcode, the lower 4 bits are the operand. Based on the opcode it generates 9 control signals that enable the right processor blocks: register write, RAM read, ALU operation selection, jumps.
ALU 8-bit (Arithmetic Logic Unit) ALU 8-bit (Arithmetic Logic Unit) Performs 8 operations on two 8-bit numbers: ADD, SUB, AND, OR, XOR, NOT, SHL (shift left), SHR (shift right). The operation is selected by a control signal. The heart of any processor.
Clock Clock Generates a periodic signal that toggles between 0 and 1 at a set frequency. Used to synchronize sequential circuits: registers, counters, memory, and the entire processor.
Manual Clock Manual Clock A manual clock signal generator. Each press of the «▶ Tick» button produces a full clock pulse (0→1→0) on the Tick output. Used for step-by-step manual clocking of a circuit.

I/O & peripherals

ComponentDescriptionDatasheet
Input Input A signal source. Manually toggle between 0 and 1. Serves as the circuit's input port — the truth table feeds test values through it.
Output Output A signal receiver. Displays the current value (0 or 1) on its input. Serves as the circuit's output port — its value is checked against the truth table to verify correctness.
Gamepad Gamepad A 4-button gamepad (Up/Down/Left/Right) for controlling circuits and programs. Addressed via port 0xFE (DevAddr=0x1E). Returns a bitmask of pressed buttons.
Matrix Display 16x16 Matrix Display 16x16 A 16×16 pixel matrix display for graphics output. Addressed via three ports: 0xFC (set X-coordinate), 0xFD (set Y-coordinate), 0xFF (write pixel).
Display Display Shows the numeric value on its input in decimal, binary, or hexadecimal format. Switch modes by clicking on the display. Indispensable for debugging and visualizing circuit behavior.
LED8 (LED bar) LED8 (LED bar) An 8-bit visual indicator. Each bit of the DataIn input bus is shown as a separate LED: lit = 1, off = 0. Lets you see the register value in binary.
Build a circuit yourself →