CMPE 415 Montgomery College The Hamming Code and Error Detection Problems
CMPE 415 – Homework/Project #6 [30 Pts]
Problem 1
Using the Hamming coding described in the class, determine whether there is an error in each of the following ECC words (you need to write the equations and explain in detail), and if so, determine the corrected ECC word and the original data value.
a) 100100011010
b) 000110111000
c) 111011011101 [70 pts]
Problem 2 Using Hamming code described in class, design an error correction code (ECC) for a 4-bit data word. Reminder:
– Required number of check bits is log2N+1, where N is data word length
– ECC bits whose indices are powers of two are used as check bits.
– If we write the indices of ECC bits in binary, the check bit with a 1 in position i of its index is the XOR of data ECC bits that have a one in position i of their indices.
[5 pts] What is the length of total code word? Which bits are check bits and which one are data bits? Compute the ECC bits for 4-bit data 0110 and write the complete code word.
[20 pts] Write the verilog for the module that checks if there is an error in the received data. The verilog module has the received word as input and has two outputs error and error-bit. If there is any error, then the verilog module must locate the error bit and make the error signal to be 1 and send out the location of error-bit. Otherwise the error signal remains zero. Error detection module error bit location error Input Verified Behavioral Simulation •
[15 pt] Write a testbench that can tests the block with these input values. First write down what is the error bit location if there was an error. o 1111000 o 0110111 o 1000111 o 0111010
[20 pt] UART Implementation • In order to see what is happening in your FPGA, in the implementation you will communicate via a UART connection. No need for extra cables; the USB connection is configured on the board as a UART • You will need a serial terminal, SPECIFICALLY REALTERM(it’s the only one which can send/receive in hex or binary. Instructions here https://learn.sparkfun.com/tutorials/terminal-basi…
• Although you will receive the core UART models, you are responsible for figuring out how to connect it to your main module. Hopefully a sample will be provided but no promises.