MATLAB/Octave generator of Hamming ECC coder/decoder. Output format is Verilog HDL. Optional adding atop Hamming Coding extra parity bit we have a Single Error Correction/Double Error Detection (SEC/DED) algorithm.
💡
|
Russian description available here: http://idoka.ru/verilog-secded-generator/ |
🔥
|
Now available online version of generator http://idoka.ru/verilog-ecc-generator/ |
You need installed on your host:
-
MatLab
or
-
GNU Octave
The GNU Octave required additional toolboxes, under RHEL/CentOS 6/7 systems please type for installs required prerequisites:
$ sudo yum install -y octave-devel
$ octave
octave:> pkg install -forge control
octave:> pkg install -forge signal
octave:> pkg install -forge -verbose communications
📎
|
for control package installing Octave version should be >= 3.6.0 |
Just type (by default run matlab target):
make
or if you can forcibly specify target (if you decide which tool will be use):
make matlab
or
make octave
-
(2m-1, 2m-m-1, 3) - for standard Hamming codes
-
(2m, 2m-m-1, 4) - for SED/DED codes
-
Using template (n,k,d) where is:
-
n = d + k + m; where:
-
m - extracted from Hammgen() function, in fact this is width of correction bits
-
-
k - user data width (which should be under ECC protection)
-
d = 3 + SECDED_parity_bit_if_used; where 3 - is Hamming distance
-
-
HammingCoder_n_k_d()
-
HammingDecoder_n_k_d()
-
e.g.:
-
..72_64_4
-
..71_64_3
-
..39_32_4
-
..38_32_3
-
..26_20_4
-
..25_20_3
-
-
HammingCode_kbit.v
-
e.g.:
-
HammingCode_20bit.v
-
HammingCode_64bit.v
-
etc..
-
Please read CONTRIBUTING.adoc for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the MIT License - see the LICENSE file for details
Feel free to send me comments, suggestions and bug reports