threshold-carrysave-adder

4-bit carry-save adder (CSA) as threshold circuit. Adds three 4-bit numbers producing a sum and carry vector, with no carry propagation delay.

Circuit

A[3:0] ──┐
B[3:0] ──┼──► CSA ──┬──► S[3:0]    (sum)
C[3:0] β”€β”€β”˜         └──► Cout[3:0] (carry)

Final result: A + B + C = S + (Cout << 1)

How It Works

Each bit position computed independently (no ripple):

S[i]    = A[i] XOR B[i] XOR C[i]
Cout[i] = MAJ(A[i], B[i], C[i])

The carry vector is shifted left by 1 before final addition.

Truth Table (per bit)

A B C S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Architecture

Component Count Neurons
XOR3 (sum) 4 28
MAJ3 (carry) 4 4

Total: 32 neurons, 256 parameters, 3 layers

Applications

CSAs are fundamental building blocks in:

  • Fast multipliers (Wallace trees, Dadda trees)
  • Multi-operand addition
  • DSP circuits
  • Reducing 3 operands to 2 without carry propagation

Usage

from safetensors.torch import load_file

w = load_file('model.safetensors')

# Example: 15 + 15 + 15 = 45
# S = 13 (1101), Cout = 7 (0111)
# Result = 13 + (7 << 1) = 13 + 14 = 27... wait
# Actually: S + 2*Cout = 13 + 14 = 27, but need final adder
# CSA output needs one final ripple-carry add

Files

threshold-carrysave-adder/
β”œβ”€β”€ model.safetensors
β”œβ”€β”€ create_safetensors.py
β”œβ”€β”€ config.json
└── README.md

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-carrysave-adder