|
|
--- |
|
|
license: mit |
|
|
tags: |
|
|
- pytorch |
|
|
- safetensors |
|
|
- threshold-logic |
|
|
- neuromorphic |
|
|
--- |
|
|
|
|
|
# threshold-barrelshift4 |
|
|
|
|
|
4-bit left barrel shifter. Shifts by variable amount 0-3. |
|
|
|
|
|
## Function |
|
|
|
|
|
barrelshift4(a3, a2, a1, a0, s1, s0) = [a3, a2, a1, a0] << s |
|
|
|
|
|
where s = 2*s1 + s0 (shift amount 0-3) |
|
|
|
|
|
## Examples |
|
|
|
|
|
| Input | Shift | Output | |
|
|
|-------|-------|--------| |
|
|
| 0001 | 0 | 0001 | |
|
|
| 0001 | 1 | 0010 | |
|
|
| 0001 | 2 | 0100 | |
|
|
| 0001 | 3 | 1000 | |
|
|
| 1010 | 1 | 0100 | |
|
|
| 1111 | 2 | 1100 | |
|
|
|
|
|
## Architecture |
|
|
|
|
|
``` |
|
|
Layer 1: (data_bit AND shift_match) detectors (10 neurons) |
|
|
Each neuron fires when a specific data bit is 1 AND shift amount matches. |
|
|
|
|
|
a3_s00: a3 AND s=00 (y3 source when s=0) |
|
|
a2_s00: a2 AND s=00 (y2 source when s=0) |
|
|
a2_s01: a2 AND s=01 (y3 source when s=1) |
|
|
a1_s00: a1 AND s=00 (y1 source when s=0) |
|
|
a1_s01: a1 AND s=01 (y2 source when s=1) |
|
|
a1_s10: a1 AND s=10 (y3 source when s=2) |
|
|
a0_s00: a0 AND s=00 (y0 source when s=0) |
|
|
a0_s01: a0 AND s=01 (y1 source when s=1) |
|
|
a0_s10: a0 AND s=10 (y2 source when s=2) |
|
|
a0_s11: a0 AND s=11 (y3 source when s=3) |
|
|
|
|
|
Layer 2: OR gates combining relevant sources (4 neurons) |
|
|
y3 = a3_s00 OR a2_s01 OR a1_s10 OR a0_s11 |
|
|
y2 = a2_s00 OR a1_s01 OR a0_s10 |
|
|
y1 = a1_s00 OR a0_s01 |
|
|
y0 = a0_s00 |
|
|
``` |
|
|
|
|
|
## Parameters |
|
|
|
|
|
| | | |
|
|
|---|---| |
|
|
| Inputs | 6 (4 data + 2 shift) | |
|
|
| Outputs | 4 | |
|
|
| Neurons | 14 | |
|
|
| Layers | 2 | |
|
|
| Parameters | 114 | |
|
|
| Magnitude | 61 | |
|
|
|
|
|
## Usage |
|
|
|
|
|
```python |
|
|
from safetensors.torch import load_file |
|
|
# See model.py for full implementation |
|
|
|
|
|
# barrelshift4(0,0,0,1, 0,1) = [0,0,1,0] # 0001 << 1 = 0010 |
|
|
# barrelshift4(0,0,0,1, 1,1) = [1,0,0,0] # 0001 << 3 = 1000 |
|
|
``` |
|
|
|
|
|
## License |
|
|
|
|
|
MIT |
|
|
|