Problem:
A property of code is that one's always appear in pairs, no more no less. So for example the following sequence of bits is a valid code word:
001101100011000110
but the following code word is invalid (it has errors in 2 places):
011101100011110110
We would like to detect invalid code words by producing a single output, Z, which is true if there is one or more errors anywhere in the word, and false if the full word meets the spec. The problem is, at this point, we do not know how many bits will be in a code word.
Derive a minimum unit cell (module containing combinational logic) which will get one data bit of the code word together with whatever staging inputs are needed.
I have the solution for this problem, but I just can't seem to understand the approach taken to solve it.
The goal is to create a module that looks like this, with Di being the data bit.
I have an encoding which is:
And from this encoding, I am suppose to come up with this truth table:
Now, I am completely lost at this point. The outputs above (S1S0) were obtained from the encoding table, but I have no idea how this was done.
For example, on inputs 001, output 01 is obtained.
Do I just match S1 S0 from the enocoding table to the truth table? It matches for some inputs, but not for all.
Please help me someone? I know that after the truth table, I would just make K-Maps to get the functions, and I have no problem with that. Just understanding the logic is an issue for me.
A property of code is that one's always appear in pairs, no more no less. So for example the following sequence of bits is a valid code word:
001101100011000110
but the following code word is invalid (it has errors in 2 places):
011101100011110110
We would like to detect invalid code words by producing a single output, Z, which is true if there is one or more errors anywhere in the word, and false if the full word meets the spec. The problem is, at this point, we do not know how many bits will be in a code word.
Derive a minimum unit cell (module containing combinational logic) which will get one data bit of the code word together with whatever staging inputs are needed.
I have the solution for this problem, but I just can't seem to understand the approach taken to solve it.
The goal is to create a module that looks like this, with Di being the data bit.
I have an encoding which is:
And from this encoding, I am suppose to come up with this truth table:
Now, I am completely lost at this point. The outputs above (S1S0) were obtained from the encoding table, but I have no idea how this was done.
For example, on inputs 001, output 01 is obtained.
Do I just match S1 S0 from the enocoding table to the truth table? It matches for some inputs, but not for all.
Please help me someone? I know that after the truth table, I would just make K-Maps to get the functions, and I have no problem with that. Just understanding the logic is an issue for me.