threshold-bcd-adder

BCD (Binary-Coded Decimal) single-digit adder as threshold circuit. Adds two decimal digits (0-9) with carry.

Circuit

A[3:0] ──┐  (BCD digit 0-9)
B[3:0] ──┼──► BCD Adder ──┬──► S[3:0]  (BCD digit 0-9)
Cin    β”€β”€β”˜                └──► Cout    (decimal carry)

Algorithm

1. Binary add: Z = A + B + Cin  (4-bit result + carry)
2. Detect overflow: Z > 9 OR binary carry
3. If overflow: add 6 (0110) for correction
4. Decimal carry = overflow detected

Why Add 6?

BCD uses only values 0-9. When binary sum exceeds 9:

  • 10 (1010) + 6 = 16 (10000) β†’ 0 with carry
  • 11 (1011) + 6 = 17 (10001) β†’ 1 with carry
  • etc.

Adding 6 skips the invalid codes A-F (10-15).

Truth Table (examples)

A B Cin S Cout
5 3 0 8 0
5 5 0 0 1
9 9 0 8 1
9 9 1 9 1

Architecture

Stage Component Neurons
Binary add 4 Full Adders 28
Detect >9 AND, OR gates 4
Correction 2 Half Adders + XOR 11

Total: 43 neurons, 133 parameters, 5 layers

Applications

  • Decimal arithmetic in calculators
  • Financial calculations requiring exact decimal
  • BCD-based displays (7-segment)
  • Legacy systems using packed BCD

Usage

from safetensors.torch import load_file

w = load_file('model.safetensors')

# Valid inputs: A, B in range 0-9
# All 200 test cases verified (10 Γ— 10 Γ— 2)

Files

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

License

MIT

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

Collection including phanerozoic/threshold-bcd-adder