User manual
Gatelab takes a Boolean function from algebra to a wired TTL circuit, and then checks that the circuit you built actually computes the function you derived. This is how to drive it.
Table of contents (19 topics)
- Interactive quickstart
- Start here
- Writing a function
- The theory workspace
- Gate rules
- The diagram editor
- The lab
- Presets & building blocks
- Logic gates
- 74xx chips & exceptions
- Trainer chassis & breadboard
- Flip-flops & counters
- Faults
- Verification
- Timing and hazards
- The report
- Shortcuts & gestures
- Terms & system check
- Contact
Interactive Visual Quickstart
New to GateLab or exploring its digital logic design pipeline? Follow this 4-step tutorial demonstrating how algebraic derivation connects directly to 74xx breadboard construction and $2^n$ verification.
From Boolean Algebra to a Verified 74xx Breadboard in 4 Steps
Start here
The whole product is one loop, and it is worth doing once end to end before anything else:
- In Theory, write a function — say
F(A,B,C) = A'B + BC. It is minimized as you type. - Open the Build it tab in Theory (or navigate to /build) and press Build this circuit in the lab. Real 74xx chips appear, wired, with the power rails already connected.
- In the Lab, open Verify. It sweeps all 2ⁿ input combinations through the circuit and diffs the result against your algebra.
- Now break it on purpose — pull the wire off pin 14 — and watch the lab tell you exactly what you did.
You never have to go through Theory, though. The lab has its own From equation button, and you can wire a circuit up from nothing and verify it against a target you type in later.
Writing a function
Everything lands on the same function, whichever way you write it. The parser accepts all of the usual notations, so you can type what your textbook uses:
| A' !A ~A ¬A | NOT A | any of the four |
| AB A·B A*B A&B | A AND B | juxtaposition is AND |
| A + B A|B | A OR B | |
| A ^ B A⊕B | A XOR B | |
| 0 1 | constants | tie to GND / +5V |
| F(A,B,C) = Σm(1,3,7) | sum of minterms | the rows where F = 1 |
| F(A,B,C) = Σm(1,3) + d(6,7) | with don't-cares | rows you are free to choose |
| F(A,B,C) = ΠM(0,2) | product of maxterms | the rows where F = 0 |
Juxtaposition is AND, so AB is A AND B. An apostrophe is NOT, so A' is NOT A.
The theory workspace
Type an expression at the top, or click outputs in the truth table or K-map. Every view updates as you type:
- Truth table— click any output bit to cycle it through 0, 1 and X (don't care).
- K-map — rendered with the prime implicants looped. The loops are not re-derived for the drawing; they are the Quine–McCluskey result, drawn.
- Derivation — Quine–McCluskey step by step: grouping by number of 1s, matching terms that differ by one bit, and the prime implicant chart that picks the essential ones.
- Canonical forms — minterm list (Σm), maxterm list (ΠM), and the numeric vectors.
Gate rules
“Implement this using NAND only” is not a suggestion — in a digital logic course it is the whole exercise. So the rule is chosen before you build:
Every gate and every chip in the library.
AND, OR, NOT — nothing else.
One chip: the 7400.
One chip: the 7402.
Everything except XOR and XNOR.
Compose bigger circuits out of half adders, muxes and decoders.
When a rule is active, the palette narrows to match — you cannot place gates you are not allowed to use — and the synthesizer is steered by it, so Build this circuit obeys the rule rather than apologizing for breaking it.
The power rails matter here. A constant 1 is not 0-preserving, so having +5V on the board makes {XOR, AND} universal when it would otherwise be useless.
The diagram editor
Diagramis a canvas. Drag a block out of the palette, drag from one of its pins to another block's pin to wire them, and drag the blocks around until it reads the way you want.
- Drag a pin to a pin to wire them. Click a wire to select it.
- Drag empty space to marquee-select. Hold ⌥ or drag with the middle button to pan; ⌘-scroll to zoom.
- R rotates the selection a quarter turn, ⇧R the other way.
- Arrow keys nudge one grid step, ⇧ and an arrow one pixel. Hold ⌘ while dragging to ignore the grid entirely.
- ⌘Z / ⇧⌘Z undo and redo. ⌘D duplicates. ⌫ deletes.
- Arrange tidies everything into left-to-right dataflow, and the result is still yours to move.
Getting the wires straight
A pin sits at a fraction of its block's height, and two different parts almost never line up — so a rough drag used to leave a small two-bend jog in the middle of a wire that plainly wanted to be straight. While you are dragging, a block within a few pixels of straightening one of its wires is now pulled the rest of the way, and a whole bus of them agrees on one shift.
Building bigger things
Select several blocks and press G. They fold into one block, which joins the palette and can be placed as many times as you like. Build a 4-bit adder once, group it, place it four times — that is a 16-bit adder, and it is how every real digital system is put together.
Exporting
SVG first, and deliberately. It is a vector, it stays sharp at any size, Word and Google Docs both accept it, and you can open it afterwards to add an annotation the tool did not think of. PNG is there at 1×, 2× and 4× for submission portals that refuse anything else, and File → Save as JSON keeps the editable document.
LaTeX is there for reports written in LaTeX, where a PNG of a circuit has the wrong fonts, the wrong line weights and goes soft in print. It writes a TikZ picture of the same drawing — download a standalone .tex you can compile on its own, or copy the figure straight into your document.
The lab
Drag parts from the palette. Click one pin, then another, to wire them — the wire routes itself around obstacles. Click a switch to toggle it.
Wire Selection & Routing Controls
Clicking any wire on the Schematic or Breadboard selects it:
- Action HUD: A docked toolbar opens allowing you to recolor the wire across 8 distinct hues or delete it.
- Horizontal Routing Handle: A circular white handle appears along the horizontal segment. Drag this handle up or down to adjust its Manhattan routing channel (
snappedY) without moving the connected pins. - Quick Delete: Hold Alt and click a wire, or press Delete / Backspace while selected, to delete it instantly.
Logic is four-state: 0, 1, Z and X. Z is a floating, undriven net — not zero. X is a conflict or power-up indeterminate state. This is the difference between a simulator that tells you your circuit works and one that tells you the truth: a boolean simulator reads an unconnected input as false and stays quiet.
Wires are colored by net, cycling through eight hues, for the same reason real jumper wire is multicolored — so you can trace one. But Z and X keep their own unmistakable color and dashing. A broken wire must never be able to look like a working one.
X-Ray Mode (Hotkey X)
Press X in Breadboard view to reveal the live internal logic gate and flip-flop symbols inside every DIP package, color-coded by electrical state.
Airwires & Ravine Dragging
Press Ato show unrouted rat's-nest airwires. Drag any IC horizontally along the center ravine to re-seat it — attached strip jumpers automatically translate with the pins!
Presets & building blocks
The Presets menu is organized around one idea: complex circuits are built from simple ones.
- Building blocks — half and full adders, comparators, multiplexers, decoders, priority encoders.
- Hierarchical blocks — full adders wired from two half adders and an OR; 4:1 mux as a tree of three 2:1 muxes; 8:1 mux from two 4:1s and a 2:1.
- Large circuits — 2-, 4-, 8- and 16-bit ripple-carry adders. Watch the top sum bit wait for the carry to walk all the way up.
Logic gates
The seven gates, what each one means, and the algebraic properties that decide how it behaves when you build with it.
Before the gates: the four values
0LowA net driven to ground. In TTL, anything below about 0.8 V.
1HighA net driven to +5 V. In TTL, anything above about 2.0 V.
ZFloatingNothing is driving this net at all. It is NOT 0 — a real TTL input left floating drifts HIGH and behaves unpredictably, so reading it as 0 is the worst available guess. Gatelab propagates it and raises a fault instead.
XConflictTwo drivers disagree — one is pulling the net to 0 while another pulls it to 1. On a real board this is a short, and it is the one that gets hot.
AND
Y = A · B740874117421The output is 1 only when EVERY input is 1.
| A | B | Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
- Commutative — A ∘ B = B ∘ A — the order of the inputs does not matter.
- Associative — (A ∘ B) ∘ C = A ∘ (B ∘ C) — so it chains, and a wide version means what you expect.
- Universal — This gate alone cannot express every function; it needs help.
- Identity: 1 — A ∘ 1 = A — feeding a constant 1 leaves the other input untouched, which is how you disable an input you are not using.
- Annihilator: 0 — A ∘ 0 = 0 — a single 0 decides the output on its own, whatever else is happening.
AND is a gate that asks 'are all of these true?'. Its controlling value is 0: a single 0 on any input forces the output to 0, whatever the others are doing — which is why AND(0, X) is 0 and not X.
OR
Y = A + B7432The output is 1 when ANY input is 1.
| A | B | Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
- Commutative — A ∘ B = B ∘ A — the order of the inputs does not matter.
- Associative — (A ∘ B) ∘ C = A ∘ (B ∘ C) — so it chains, and a wide version means what you expect.
- Universal — This gate alone cannot express every function; it needs help.
- Identity: 0 — A ∘ 0 = A — feeding a constant 0 leaves the other input untouched, which is how you disable an input you are not using.
- Annihilator: 1 — A ∘ 1 = 1 — a single 1 decides the output on its own, whatever else is happening.
The dual of AND. Its controlling value is 1: one input at 1 decides the output on its own, so OR(1, X) is 1 even with a floating second input.
NOT
Y = A′7404The output is the opposite of the input.
| A | Y |
|---|---|
| 0 | 1 |
| 1 | 0 |
- Involution — (A′)′ = A — invert twice and you are back where you started, which is why a double inverter is a buffer.
- Universal — NOT alone cannot express every function — it cannot combine two signals at all.
An inverter. You rarely buy one: NOT is free inside a NAND or NOR package — tie both inputs together and NAND(a, a) = a′ — which is why a NAND-only design usually needs no 7404 at all.
NAND
Y = (A · B)′7400741074207430AND, inverted. The output is 0 only when every input is 1.
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
- Commutative — A ∘ B = B ∘ A — the order of the inputs does not matter.
- Associative — (A ∘ B) ∘ C ≠ A ∘ (B ∘ C) — so a CHAIN of them is not the same as one wide gate. You cannot widen it by chaining; that is what the 7410 and 7420 are for.
- Universal — Every Boolean function can be built from this gate alone.
UNIVERSAL: every Boolean function can be built from NAND alone. That, plus the fact that it is the cheapest gate to make in TTL, is why the 7400 is the most-produced logic chip in history.
NOR
Y = (A + B)′74027427OR, inverted. The output is 1 only when every input is 0.
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
- Commutative — A ∘ B = B ∘ A — the order of the inputs does not matter.
- Associative — (A ∘ B) ∘ C ≠ A ∘ (B ∘ C) — so a CHAIN of them is not the same as one wide gate. You cannot widen it by chaining; that is what the 7410 and 7420 are for.
- Universal — Every Boolean function can be built from this gate alone.
Also UNIVERSAL, and the dual of NAND. The Apollo Guidance Computer was built almost entirely from NOR gates — about 5,600 of them, and nothing else.
XOR
Y = A ⊕ B7486The output is 1 when the inputs DIFFER.
| A | B | Y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
- Commutative — A ∘ B = B ∘ A — the order of the inputs does not matter.
- Associative — (A ∘ B) ∘ C = A ∘ (B ∘ C) — so it chains, and a wide version means what you expect.
- Universal — This gate alone cannot express every function; it needs help.
- Identity: 0 — A ∘ 0 = A — feeding a constant 0 leaves the other input untouched, which is how you disable an input you are not using.
The difference detector, and the sum bit of an adder. It has NO controlling value — no single input can decide the output alone — so XOR(anything, X) is X. It is also affine, which is why a rule of 'XOR only' can never build an AND.
XNOR
Y = (A ⊕ B)′The output is 1 when the inputs are the SAME.
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
- Commutative — A ∘ B = B ∘ A — the order of the inputs does not matter.
- Associative — (A ∘ B) ∘ C = A ∘ (B ∘ C) — so it chains, and a wide version means what you expect.
- Universal — This gate alone cannot express every function; it needs help.
- Identity: 1 — A ∘ 1 = A — feeding a constant 1 leaves the other input untouched, which is how you disable an input you are not using.
The equality detector. An n-bit comparator is n XNORs and an AND.
74xx chips & exceptions
The GateLab 74xx TTL integrated circuit catalog covers 17 standard DIP packages, transcribed directly from official Texas Instruments datasheets.
7400
4 × 2-input NANDDIP-14Quad 2-input NAND
- 1A1
- 1B2
- 1Y3
- 2A4
- 2B5
- 2Y6
- GND7
- 14VCC
- 134B
- 124A
- 114Y
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7402
4 × 2-input NORDIP-14Quad 2-input NOR
- 1Y1
- 1A2
- 1B3
- 2Y4
- 2A5
- 2B6
- GND7
- 14VCC
- 134Y
- 124B
- 114A
- 103Y
- 93B
- 83A
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
Careful: the 7402 is not shaped like the 7400. Its gate 1 is inputs (2, 3) → output 1— the output comes first. Pattern-matching one chip's layout onto another is the classic way to wire a NOR chip backwards.
7404
6 × 1-input NOTDIP-14Hex inverter
- 1A1
- 1Y2
- 2A3
- 2Y4
- 3A5
- 3Y6
- GND7
- 14VCC
- 136A
- 126Y
- 115A
- 105Y
- 94A
- 84Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
The inverters reverse direction on the right-hand half of the package. Read the pin names, not the pattern.
7408
4 × 2-input ANDDIP-14Quad 2-input AND
- 1A1
- 1B2
- 1Y3
- 2A4
- 2B5
- 2Y6
- GND7
- 14VCC
- 134B
- 124A
- 114Y
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7432
4 × 2-input ORDIP-14Quad 2-input OR
- 1A1
- 1B2
- 1Y3
- 2A4
- 2B5
- 2Y6
- GND7
- 14VCC
- 134B
- 124A
- 114Y
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7486
4 × 2-input XORDIP-14Quad 2-input XOR
- 1A1
- 1B2
- 1Y3
- 2A4
- 2B5
- 2Y6
- GND7
- 14VCC
- 134B
- 124A
- 114Y
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7410
3 × 3-input NANDDIP-14Triple 3-input NAND
- 1A1
- 1B2
- 2A3
- 2B4
- 2C5
- 2Y6
- GND7
- 14VCC
- 131C
- 121Y
- 113C
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7411
3 × 3-input ANDDIP-14Triple 3-input AND
- 1A1
- 1B2
- 2A3
- 2B4
- 2C5
- 2Y6
- GND7
- 14VCC
- 131C
- 121Y
- 113C
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7420
2 × 4-input NANDDIP-14Dual 4-input NAND
- 1A1
- 1B2
- NC3
- 1C4
- 1D5
- 1Y6
- GND7
- 14VCC
- 132D
- 122C
- 11NC
- 102B
- 92A
- 82Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7421
2 × 4-input ANDDIP-14Dual 4-input AND
- 1A1
- 1B2
- NC3
- 1C4
- 1D5
- 1Y6
- GND7
- 14VCC
- 132D
- 122C
- 11NC
- 102B
- 92A
- 82Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7427
3 × 3-input NORDIP-14Triple 3-input NOR
- 1A1
- 1B2
- 2A3
- 2B4
- 2C5
- 2Y6
- GND7
- 14VCC
- 131C
- 121Y
- 113C
- 103B
- 93A
- 83Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7430
1 × 8-input NANDDIP-148-input NAND
- 1A1
- 1B2
- 1C3
- 1D4
- 1E5
- 1F6
- GND7
- 14VCC
- 13NC
- 121H
- 111G
- 10NC
- 9NC
- 81Y
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: 1A, 1B are the inputs of gate 1 and 1Y is its output. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
7474
2 × D flip-flop, positive edgeDIP-14Dual D flip-flop
- 1CLR1
- 1D2
- 1CLK3
- 1PRE4
- 1Q5
- 1Q̅6
- GND7
- 14VCC
- 132CLR
- 122D
- 112CLK
- 102PRE
- 92Q
- 82Q̅
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: the leading digit is which flip-flop, so 1CLK clocks flip-flop 1 — and a name with no digit, like the '175's CLK, is shared by all of them. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
74LS76A
2 × J-K flip-flop, negative edgeDIP-16Dual J-K flip-flop
- 1CLK1
- 1PRE2
- 1CLR3
- 1J4
- VCC5
- 2CLK6
- 2PRE7
- 2CLR8
- 161K
- 151Q̅
- 141Q
- 13GND
- 122K
- 112Q
- 102Q̅
- 92J
Power: pin 5 → +5V · pin 13 → GND
Pin names follow the datasheet: the leading digit is which flip-flop, so 1CLK clocks flip-flop 1 — and a name with no digit, like the '175's CLK, is shared by all of them. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
Careful: the supply is on pin 5 and pin 13, not the corners. Wire it like a 7474 and the chip simply never powers up.
74LS107A
2 × J-K flip-flop, negative edgeDIP-14Dual J-K flip-flop
- 1J1
- 1Q̅2
- 1Q3
- 1K4
- 2Q5
- 2Q̅6
- GND7
- 14VCC
- 131CLR
- 121CLK
- 112J
- 102CLR
- 92CLK
- 82K
Power: pin 14 → +5V · pin 7 → GND
Pin names follow the datasheet: the leading digit is which flip-flop, so 1CLK clocks flip-flop 1 — and a name with no digit, like the '175's CLK, is shared by all of them. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
74175
4 × D flip-flop, positive edgeDIP-16Quad D register
- CLR1
- 1Q2
- 1Q̅3
- 1D4
- 2D5
- 2Q̅6
- 2Q7
- GND8
- 16VCC
- 154Q
- 144Q̅
- 134D
- 123D
- 113Q̅
- 103Q
- 9CLK
Power: pin 16 → +5V · pin 8 → GND
Pin names follow the datasheet: the leading digit is which flip-flop, so 1CLK clocks flip-flop 1 — and a name with no digit, like the '175's CLK, is shared by all of them. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
74174
6 × D flip-flop, positive edgeDIP-16Hex D register
- CLR1
- 1Q2
- 1D3
- 2D4
- 2Q5
- 3D6
- 3Q7
- GND8
- 16VCC
- 156Q
- 146D
- 135Q
- 125D
- 114D
- 104Q
- 9CLK
Power: pin 16 → +5V · pin 8 → GND
Pin names follow the datasheet: the leading digit is which flip-flop, so 1CLK clocks flip-flop 1 — and a name with no digit, like the '175's CLK, is shared by all of them. Numbering runs anticlockwise from the notch — down the left side, then back up the right.
Trainer chassis & breadboard
Switching from Schematic to Breadboard seats your components onto the MODEL 74XX-TTL · 5V BENCH Digital Logic Trainer, a high-fidelity virtual workbench with integrated power, pulsing, input switches, and logic indicators.
1. DC Power Supply (+5.0V & 0.0V GND)
Located top-left. Click the red +5.0V (VCC) or blue 0.0V (GND) banana socket and click any rail hole to supply power. Or click Auto-Power in the top toolbar to automatically wire and bridge supplies for all seated ICs.
2. Pulse / Clock Generator (PULSE, CLR, 1Hz–5Hz)
Wire the amber CLK OUT socket to flip-flop clock pins. Click PULSE for a clean 0 → 1 → 0 transition, CLR to reset flip-flops from power-up X to 0, or toggle 1Hz / 2Hz / 5Hz for continuous execution.
3. Logic Input Switches (Bottom Chassis)
Click the physical toggle bat lever on any switch to toggle its logic state between 1 (HIGH) and 0 (LOW). Click its blue OUT banana socket to route a jumper wire to the breadboard. Add more switches with + Input.
4. Logic Indicators (Top-Right Chassis)
Each LED displays a real-time 4-state digital readout badge (0, 1, Z floating, or X conflict). Click the small lens dot beside any LED label to cycle across 7 lens colors (Green, Red, Amber, Blue, Cyan, Purple, White).
Three Physical Breadboard Rules Modelled Strictly by GateLab:
- 5-Hole Vertical Terminal Strips: In each column (1–63), holes A–E short together, and holes F–J short separately. They never meet across the center ravine.
- One Leg or Jumper Per Hole: An IC leg occupies row E (pins 1..N/2) and row F (pins N/2+1..N). Jumper wires must plug into the remaining 4 free holes (A–D or G–J) in that column.
- Midpoint Power Rail Split: Like physical 63-column breadboards, the +top, -top, +bottom, and -bottom rails break between Column 32 and Column 33. Bridge the split with jumper wires or click
Auto-Powerwhen placing ICs on the right half.
Flip-flops, clocks and counters
Combinational outputs depend solely on current inputs. Flip-flops introduce memory: their outputs change only at clock edges.
Why Flip-Flops Power Up at X (Unknown State)
Real bistable multivibrators power up in an indeterminate state dictated by transistor mismatch. GateLab reflects physical reality: newly placed flip-flops start at X, and clocking X propagates X. You must click CLR on the Trainer Clock module (or Clear in the Clock Drawer) to initialize flip-flops to 0 before pulsing the clock!
7474Dual D flip-flop, positive edge, with asynchronous preset and clear.
The workhorse. Vcc on 14, GND on 7, like the gates.
74LS76ADual J-K flip-flop, negative edge, with preset and clear.
Vcc is pin 5 and GND is pin 13 — not the corners. Wire it like a 7474 and the chip never powers up. (The plain 7476 shares this pinout but is pulse-triggered rather than edge-triggered; the edge-triggered part is the one modelled, so it is the one named.)
74LS107ADual J-K flip-flop, negative edge, clear only — no preset.
The usual ripple-counter part: tie J and K high and it toggles.
74175Quad D flip-flop with one shared clock and one shared clear — a 4-bit register.
The shared clock is the point. Wire each Q to the next D and the same chip is a shift register.
74174Hex D flip-flop, shared clock and clear. A 6-bit register.
No complementary outputs — Q only.
Faults
The Faults panel runs as a separate pass from value resolution. The simulator always produces a value so the board stays usable; the fault panel separately alerts you to real physical wiring errors:
UNPOWERED_ICA chip has no +5V on pin 14 (or pin 5/16), or no GND on pin 7 (or pin 13/8).
Wire the rails or click Auto-Power. An unpowered TTL chip drives nothing — its outputs sit at Z, and the whole downstream circuit floats. This is the single most common bench mistake, and it is why the fault exists.
FLOATING_INPUTA gate input is connected to nothing.
A real TTL input left floating drifts HIGH, unreliably. Gatelab refuses to guess: it propagates X. Tie the input to +5V or GND, or wire it to a valid signal source.
OUTPUT_SHORTTwo gate outputs are wired to each other and disagree.
On a real board this is a short between a totem-pole HIGH and a totem-pole LOW, and it is the one that gets hot. Delete one of the wires.
OUTPUT_DRIVES_RAILA gate output is wired directly to +5V or GND.
The rail always wins and the gate is fighting it. You almost certainly meant to wire an INPUT to the rail.
RAIL_SHORT+5V and GND are on the same net.
Dead short across the power supply. Find and delete the jumper that bridges the positive and negative rails.
OSCILLATIONA feedback loop never settles — an odd number of inversions round a ring.
Combinational logic must be acyclic. Break the loop, unless a ring oscillator is what you wanted.
UNUSED_GATESome gates in a package are not used.
Not an error — just a note. On a real board you would tie their inputs to a rail rather than leave them floating.
Verification
The Verification Bridge sweeps all $2^n$ input combinations through your wired circuit and diffs the results against your algebraic Boolean specification.
- Variable-Label Alignment: Input switches match Boolean variables by exact label name (e.g.
A, B, CorS, D0, D1), not array order, supporting up to 16 variables. - Tarjan SCC Feedback Detection:Netlists are checked with Tarjan's Strongly Connected Components algorithm; any combinational feedback loops or unclocked latches are caught and flagged as non-combinational memory.
- 5 Automated Fault Hypotheses: When verification fails, GateLab tests root-cause hypotheses:
UNPOWERED_IC: IC supply pins missing +5V or GND.FLOATING_INPUT: Gate inputs disconnected and drifting to X.output-inverted: Circuit output is the exact complement of target (e.g. NAND used for AND).output-stuck: Circuit output is permanently stuck at 0 or 1.inputs-swapped: Tests if swapping any two input signals (e.g. A ↔ B) produces a 100% match.
Timing and hazards
The GateLab Timing Drawer houses a Dual Timing Engine designed for both combinational hazard analysis and sequential clock debugging:
1. Combinational Unit-Delay Engine
Drives inputs in a forward-then-reverse Gray-code sequence (changing 1 bit per step) with configurable unit gate delays (1, 2, or 3 ticks). By changing only one variable at a time, it isolates true static and dynamic logic hazards from unavoidable function hazards. Capped at 7 inputs (256 held steps).
2. Clocked Sequential Engine
Drives 18 continuous clock cycles while holding input switches constant. Plots flip-flop state transitions, propagation ripple delay, and register waveforms.
Remember: minimal is not hazard-free. The redundant consensus term that Quine–McCluskey discards during minimization is precisely the term that prevents a static-1 glitch. Add it back to eliminate the spike!
The report
Report assembles the whole derivation into one printable page: truth table, K-map, tabular reduction, schematic/breadboard snapshot, and the row-by-row verification matrix.
Print it with your browser (⌘P / Ctrl-P) and “Save as PDF”. It outputs vector SVG elements so figures stay crisp and publication-ready.
Shortcuts & gestures
| Click wire | Select wire (opens HUD for color/delete & exposes draggable routing handle) |
| Alt+Click wire | Delete wire instantly |
| Delete / Backspace | Delete selected wire or component |
| Drag white handle | Adjust wire horizontal Manhattan routing channel (snappedY) |
| Click pin, click pin | Wire two pins or breadboard holes together |
| Click switch lever / Space | Toggle logic switch between 0 (LOW) and 1 (HIGH) |
| PULSE button | Fire a complete 0 → 1 → 0 clock pulse (advances rising & falling edge ICs) |
| CLR button | Reset sequential flip-flops from power-up X to 0 |
| X | Toggle DIP internal gate / flip-flop X-Ray view on breadboard |
| A | Toggle unrouted schematic Airwires rat's nest guide |
| F | Toggle Zen fullscreen mode |
| [ or B | Toggle Parts palette sidebar |
| ] | Toggle Faults & Verification inspector |
| R / Shift+R | Rotate selected gate or IC 90° CW / CCW |
| H / V | Flip selected gate horizontally / vertically |
| G / Shift+G | Group selection into reusable IC / Ungroup (Diagram workbench) |
| Esc | Cancel wire drawing or clear active selection |
| Tab / Shift+Tab | Focus next / previous component or control |
| Space / Enter | Select focused part or toggle focused switch |
| ⌘Z / Ctrl-Z | Undo |
| ⇧⌘Z / Ctrl-Shift-Z | Redo |
| Scroll / pinch | Zoom canvas (anchored to cursor or touch center) |
| Drag background | Pan canvas with velocity inertia |
GateLab runs 100% in your browser. All designs and states are saved locally in localStorage with zero server uploads.
Terms & system check
Contact
Found a wrong answer, a bad pinout, or something that should exist and does not? That is the most useful thing you can send.