PomeLabs
Logic

XOR Gate

3-state 2-input XOR gate with Schmitt-trigger inputs for the PomeLabs Core Kit.

The PomeLabs XOR Gate Module (PML-XG-01) captures one of the most useful and counterintuitive operations in digital logic — output HIGH when inputs disagree, LOW when they match. It is the foundation of binary addition, parity checking, and controlled inversion. Built on the same configurable IC as the AND and NOT Gate Modules, it demonstrates how three entirely different logic behaviors emerge from the same silicon through configuration alone.

Revision: v1.0 | Part Number: PML-XG-01 | Series: PomeLabs Core Kit

Xor Gate

Schematic

Xor Gate Schematic

Digital Twin

In the PomeLabs App, the PML-XG-01 is mirrored as a digital twin in both the Playground and inside any Connect Activity. On connection the module reports its unique ID, firmware version, and type, and the App places it in your circuit by reading the live netlist — so you always see which module it is and how it is wired. Its combinational logic runs entirely on the physical gate IC; the current release exposes no app-side controls or streamed values for this module.

Loading circuit

Datasheet

1. Overview

The PML-XG-01 implements a 2-input Exclusive-OR gate using the SN74LVC1G99DCUR (U1) — the same ultra-configurable gate used in the AND and NOT Gate Modules, here configured as a 3-state XOR. OE is permanently tied LOW.

Output Y is HIGH only when inputs A (S+_UL) and B (S+_LL) differ from each other. When both inputs are the same — both LOW or both HIGH — output Y is LOW. Y drives both S+_UR and S+_LR simultaneously. The XOR configuration is unique within the SN74LVC1G99 function table: input B is routed to configuration pin D rather than a dedicated input, making it the most instructive configuration to compare against AND and NOT when studying how programmable logic works.

2. BOM Components

Ref.TypeValue / PartRole on this module
U1Configurable logic gateSN74LVC1G99DCUR (TI)Configured as 3-state XOR: C = L, D = Input 2 (B), OE = GND. Schmitt-trigger inputs (0.56V0.56\,\mathrm{V} hysteresis typ at 3.3V3.3\,\mathrm{V}). SC-70-8 (DCUR) package.
R1, R2Resistor4.7kΩ4.7\,\mathrm{k\Omega}Pull-up resistors on UART TX/RX lines to 3.3V3.3\,\mathrm{V}.
p1p4ConnectorNode headersFour node connectors exposing +5V+5\,\mathrm{V}, GND, S+, S−, RX/TX, TX/RX to downstream modules.

3. Electrical Specifications

All values at 25C25\,\mathrm{{}^\circ C} unless otherwise noted. Gate specifications from TI SCES609G (SN74LVC1G99, Rev. G, Nov 2013).

3.1 U1 — SN74LVC1G99DCUR

3.1.1 Absolute Maximum Ratings

Exceeding these values may permanently damage the device. Stress ratings only.

ParameterMax ValueUnit
Supply voltage (VCCV_{CC})0.5-0.5 to 6.56.5V
Input voltage (VIV_I)0.5-0.5 to 6.56.5V
Output voltage — high-Z or power-off state (VOV_O)0.5-0.5 to 6.56.5V
Output voltage — high or low state (VOV_O)0.5-0.5 to VCC+0.5V_{CC} + 0.5V
Input clamp current (IIKI_{IK})50-50mA
Output clamp current (IOKI_{OK})50-50mA
Continuous output current (IOI_O)±50\pm 50mA
Continuous current through VCCV_{CC} or GND±100\pm 100mA
Thermal impedance θJA\theta_{JA} — DCU package227227°C/W
Storage temperature (TstgT_{stg})65-65 to +150+150°C
ParameterMinMaxUnit / Notes
Supply voltage (VCCV_{CC}) — operating1.651.655.55.5V
Input voltage (VIV_I)005.55.5V — inputs accept up to 5.5V5.5\,\mathrm{V} regardless of VCCV_{CC}
Output voltage (VOV_O)00VCCV_{CC}V
High-level output current (IOHI_{OH}) @ VCC=3.3VV_{CC} = 3.3\,\mathrm{V}24-24mA (sourcing)
Low-level output current (IOLI_{OL}) @ VCC=3.3VV_{CC} = 3.3\,\mathrm{V}2424mA (sinking)
High-level output current (IOHI_{OH}) @ VCC=5VV_{CC} = 5\,\mathrm{V}32-32mA (sourcing)
Low-level output current (IOLI_{OL}) @ VCC=5VV_{CC} = 5\,\mathrm{V}3232mA (sinking)
Operating temperature (TAT_A)40-40125125°C

4. Truth Table

OEA (S+_UL)B (S+_LL)Y Output (S+_UR / S+_LR)
LLLL — inputs identical (both LOW), output LOW
LLHH — inputs differ, output HIGH
LHLH — inputs differ, output HIGH
LHHL — inputs identical (both HIGH), output LOW
HXXZ — output disabled (high impedance)

5. Pin Descriptions

All signal pins are referenced to GND.

Pin / Net NameDirectionDescription
S+_ULInputLogic input A to U1. Upper-Left signal — first XOR input. Y HIGH when this differs from B.
S+_LLInputLogic input B to U1. Lower-Left signal — second XOR input. Y HIGH when this differs from A.
S+_UR / S+_LROutputXOR output Y. HIGH when inputs differ; LOW when identical. Drives both output channels simultaneously.
TX_UL-L / TX_LL-LInputUART transmit from Backend MCU (USART1/USART3).
RX_UL-L / RX_LL-LOutputUART receive from Upper-Left and Lower-Left connectors.
TX_UR-L / TX_LR-LInputUART transmit from Backend MCU (USART2/USART4).
RX_UR-L / RX_LR-LOutputUART receive from Upper-Right and Lower-Right connectors.
5V-ModulePower In5V5\,\mathrm{V} supply. Powers VCCV_{CC} of U1.
3V3Power In3.3V3.3\,\mathrm{V} logic rail for pull-up resistors R1R2 (4.7kΩ4.7\,\mathrm{k\Omega}).
GNDGroundCommon ground for all ICs and connectors.

6. Connection Guide & Common Errors

Correct power-up sequence:

  1. Connect GND first, shared across all modules on the common bus.
  2. Connect 5V-Module to a regulated 5V5\,\mathrm{V} source to power U1.
  3. Connect 3V3 rail for UART pull-up resistors.
  4. Verify OE is LOW (tied to GND on this module) — output should be active.
  5. Apply logic signals to S+_UL and S+_LL and observe output on S+_UR / S+_LR.

Common wiring errors and consequences:

MistakeSymptomCorrection
OE left floating on U1Output enters high-Z randomlyTie OE to GND. Never leave floating.
Input A or B left floatingUndefined input — XOR output unpredictableAlways drive both S+_UL (A) and S+_LL (B) from defined logic sources.
VCCV_{CC} to U1 exceeds 5.5V5.5\,\mathrm{V}U1 permanently damagedKeep VCC5.5VV_{CC} \leq 5.5\,\mathrm{V}.
Input signal exceeds 5.5V5.5\,\mathrm{V}Clamp current flows; damage if IIK>50mAI_{IK} > 50\,\mathrm{mA}Add series resistor if overvoltage risk exists.
Output Y driving load >50mA> 50\,\mathrm{mA}Current limit exceededKeep IOI_O within ±50mA\pm 50\,\mathrm{mA}.
Confusing XOR with XNORY LOW when inputs differ — opposite of expectedXOR: Y HIGH when inputs differ. XNOR: Y HIGH when inputs identical. Verify configuration pins.

How is this guide?

On this page