| --- |
| license: mit |
| tags: |
| - pytorch |
| - safetensors |
| - threshold-logic |
| - neuromorphic |
| - arithmetic |
| --- |
| |
| # threshold-subtractor4bit |
|
|
| 4-bit subtractor. Computes A - B (modulo 16) with borrow output. |
|
|
| ## Function |
|
|
| subtractor4bit(A, B) = (A - B) mod 16, borrow_out |
| |
| ## Truth Table (selected rows) |
| |
| | A | B | Diff | Borrow | |
| |---|---|------|--------| |
| | 7 | 3 | 4 | 0 | |
| | 5 | 5 | 0 | 0 | |
| | 3 | 7 | 12 | 1 | |
| | 0 | 1 | 15 | 1 | |
| |
| ## Architecture |
| |
| Ripple-borrow subtractor using full subtractor units. |
| |
| For each bit i: |
| - diff_i = a_i XOR b_i XOR borrow_{i-1} |
| - borrow_i = majority(NOT(a_i), b_i, borrow_{i-1}) |
| |
| The borrow signal indicates A < B (unsigned comparison). |
| |
| ## Parameters |
| |
| | | | |
| |---|---| |
| | Inputs | 8 (a3-a0, b3-b0) | |
| | Outputs | 5 (d3-d0, bout) | |
| | Neurons | 25 | |
| | Layers | 8 | |
| | Parameters | 86 | |
| | Magnitude | 88 | |
| |
| ## Usage |
| |
| ```python |
| from safetensors.torch import load_file |
| # See model.py for full implementation |
|
|
| # 7 - 3 = 4 |
| # subtractor4(0,1,1,1, 0,0,1,1) = [0,1,0,0, 0] |
|
|
| # 3 - 7 = 12 (wraps), borrow=1 |
| # subtractor4(0,0,1,1, 0,1,1,1) = [1,1,0,0, 1] |
| ``` |
| |
| ## License |
| |
| MIT |
| |