threshold-t-flipflop

T flip-flop (toggle) next-state logic as threshold circuit.

Circuit

T ───────┐
Q_prev ──┴──► T-FF ──┬──► Q
                    └──► Qn

Modes

  • T=0 (Hold): Q stays same
  • T=1 (Toggle): Q flips

Truth Table

T Q_prev Q Qn Mode
0 0 0 1 Hold
0 1 1 0 Hold
1 0 1 0 Toggle
1 1 0 1 Toggle

Logic

Q  = T XOR Q_prev
Qn = T XNOR Q_prev

XOR is not linearly separable (the classic Minsky/Papert result), requiring 2 layers.

Architecture

    T      Q_prev
    β”‚        β”‚
    β”œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€
    β”‚    β”‚   β”‚
    β–Ό    β–Ό   β–Ό
  β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”
  β”‚ OR β”‚NANDβ”‚NOR β”‚AND β”‚   Layer 1
  β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”˜
    β”‚    β”‚    β”‚    β”‚
    β””β”€β”¬β”€β”€β”˜    β””β”€β”¬β”€β”€β”˜
      β”‚         β”‚
      β–Ό         β–Ό
   β”Œβ”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”
   β”‚ AND β”‚   β”‚ OR  β”‚      Layer 2
   β””β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”˜
      β”‚         β”‚
      β–Ό         β–Ό
      Q        Qn
  • Q = AND(OR, NAND) = XOR
  • Qn = OR(NOR, AND) = XNOR

Parameters

Inputs 2
Outputs 2
Neurons 6
Layers 2
Parameters 18
Magnitude 19

Application: Binary Counter

T flip-flops with T=1 create divide-by-2 counters:

q = 0
for _ in range(8):
    q = t_flipflop(1, q)  # toggles: 0,1,0,1,0,1,0,1

Chain multiple T flip-flops for multi-bit counters.

Usage

from safetensors.torch import load_file

w = load_file('model.safetensors')

# Toggle mode creates oscillation
q = 0
for _ in range(4):
    q_next = compute(t=1, q_prev=q, w)
    q = q_next  # 0 -> 1 -> 0 -> 1

License

MIT

Downloads last month
9
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Collection including phanerozoic/threshold-t-flipflop