--- license: mit tags: - pytorch - safetensors - threshold-logic - neuromorphic - arithmetic - adder --- # 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 ```python 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