Threshold Logic Circuits
Collection
Boolean gates, voting functions, modular arithmetic, and adders as threshold networks.
•
248 items
•
Updated
•
1
16:1 multiplexer. Selects one of 16 data inputs based on 4-bit select signal.
MUX16(d0..d15, s3,s2,s1,s0) = d[s] where s = 8s3 + 4s2 + 2*s1 + s0
d0..d15 (16 data) s3 s2 s1 s0 (4 select)
| |
+--------------------+
|
v
[N0] d0 AND (s=0000) ----+
[N1] d1 AND (s=0001) ----|
[N2] d2 AND (s=0010) ----|
... +---> [OR] ---> output
[N14] d14 AND (s=1110) ----|
[N15] d15 AND (s=1111) ----+
Each neuron Ni fires when di=1 AND s=i:
| Inputs | 20 (16 data + 4 select) |
| Outputs | 1 |
| Neurons | 17 |
| Layers | 2 |
| Parameters | 373 |
| Magnitude | 145 |
from safetensors.torch import load_file
import torch
w = load_file('model.safetensors')
def mux16(data, s3, s2, s1, s0):
inp = torch.tensor([float(d) for d in data] +
[float(s3), float(s2), float(s1), float(s0)])
l1 = (inp @ w['layer1.weight'].T + w['layer1.bias'] >= 0).float()
out = (l1 @ w['layer2.weight'].T + w['layer2.bias'] >= 0).float()
return int(out.item())
# Select d10 (s=1010)
data = [0]*16
data[10] = 1
print(mux16(data, 1, 0, 1, 0)) # 1
MIT