|
|
---
|
|
|
license: mit
|
|
|
tags:
|
|
|
- pytorch
|
|
|
- safetensors
|
|
|
- threshold-logic
|
|
|
- neuromorphic
|
|
|
- error-detection
|
|
|
- crc
|
|
|
---
|
|
|
|
|
|
# threshold-crc4
|
|
|
|
|
|
CRC-4 generator using polynomial x^4 + x + 1 (CRC-4-ITU).
|
|
|
|
|
|
## Function
|
|
|
|
|
|
crc4(d3, d2, d1, d0) -> (crc3, crc2, crc1, crc0)
|
|
|
|
|
|
Computes 4-bit CRC for 4-bit input data.
|
|
|
|
|
|
## Polynomial
|
|
|
|
|
|
G(x) = x^4 + x + 1 = 10011 (binary)
|
|
|
|
|
|
This is the ITU-T standard CRC-4 polynomial.
|
|
|
|
|
|
## Parallel CRC Equations
|
|
|
|
|
|
For 4-bit input, the CRC bits are:
|
|
|
- crc0 = d3 XOR d0
|
|
|
- crc1 = d2 XOR d1 XOR d0
|
|
|
- crc2 = d3 XOR d1
|
|
|
- crc3 = d3 XOR d2
|
|
|
|
|
|
## Truth Table (selected)
|
|
|
|
|
|
| Data | CRC |
|
|
|
|------|-----|
|
|
|
| 0000 | 0000 |
|
|
|
| 0001 | 0011 |
|
|
|
| 1000 | 1101 |
|
|
|
| 1111 | 0010 |
|
|
|
|
|
|
## Architecture
|
|
|
|
|
|
Each CRC bit is computed using XOR gates:
|
|
|
|
|
|
```
|
|
|
d3 d2 d1 d0
|
|
|
β β β β
|
|
|
ββββΌβββΌβββΌβββΊ XOR βββΊ crc0 (d3^d0)
|
|
|
β β β β
|
|
|
β ββββΌβββΌβββΊ XOR βββΊ crc3 (d3^d2)
|
|
|
β β β β
|
|
|
ββββΌβββΌβββΌβββΊ XOR βββΊ crc2 (d3^d1)
|
|
|
β β β β
|
|
|
β ββββ΄βββ΄βββΊ XOR3 ββΊ crc1 (d2^d1^d0)
|
|
|
```
|
|
|
|
|
|
## Parameters
|
|
|
|
|
|
| | |
|
|
|
|---|---|
|
|
|
| Inputs | 4 |
|
|
|
| Outputs | 4 |
|
|
|
| Neurons | 15 |
|
|
|
| Layers | 4 |
|
|
|
| Parameters | 61 |
|
|
|
| Magnitude | 50 |
|
|
|
|
|
|
## CRC Properties
|
|
|
|
|
|
- Detects all single-bit errors
|
|
|
- Detects all odd numbers of bit errors
|
|
|
- Detects burst errors up to length 4
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
```python
|
|
|
from safetensors.torch import load_file
|
|
|
|
|
|
w = load_file('model.safetensors')
|
|
|
|
|
|
# Append CRC to data for transmission
|
|
|
# Receiver recomputes CRC; if non-zero, error detected
|
|
|
```
|
|
|
|
|
|
## License
|
|
|
|
|
|
MIT
|
|
|
|