我正在努力理解格雷码以及它如何影响输出。基本上,我要做的最终目标是设计一个基于真值表的电路。我理解大部分内容,除了灰色代码部分。
假设我给出了这个真值表,其中输出根据3位格雷码在每个上升时钟边沿变化(最后一个值循环回到第一个值)。我如何填写输出?我应该采用左值,并在灰色代码中找出它的下一个值并将其填入?
Inputs | Outputs
-------------------
S2 S1 S0 | N2 N1 N0
--------------------
0 0 0 | ? ? ?
0 0 1 |
0 1 0 |
0 1 1 |
1 0 0 |
1 0 1 |
1 1 0 |
1 1 1 |
我的第一反应是我看到左栏不是格雷码。我会根据基本的格雷码序列填充它吗?格雷码的3位序列是000,001,011,010,110,111,101,100。我是否只需填写图表的右侧,如001,011,110,010等?
答案 0 :(得分:2)
我已经解决了。对于未来偶然发现这个主题的人来说,这里是如何将二进制转换为灰色代码。
首先,降低最重要的位。这是格雷码的第一位。 如果我们的二进制值为100,则第一位为1,因此格雷码为1 - 。
要查找格雷码的第二位,请将第二位二进制加到第二位。在100中,这将是1 + 0 = 1.这是格雷码的第二位,11 - 。
接下来,将第二位二进制加到第三位。这是灰色代码的最后一点。 100,所以0 + 0 = 0,我们的格雷码变为110。
对于四位转换,只需继续该模式,但添加二进制位3和4以获得格雷码编号的第4位。
我的答案的完成表是
{{1}}