基于3位格雷码生成真值表

时间:2016-12-11 03:54:00

标签: logic

我正在努力理解格雷码以及它如何影响输出。基本上,我要做的最终目标是设计一个基于真值表的电路。我理解大部分内容,除了灰色代码部分。

假设我给出了这个真值表,其中输出根据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等?

1 个答案:

答案 0 :(得分:2)

我已经解决了。对于未来偶然发现这个主题的人来说,这里是如何将二进制转换为灰色代码。

首先,降低最重要的位。这是格雷码的第一位。 如果我们的二进制值为100,则第一位为1,因此格雷码为1 - 。

要查找格雷码的第二位,请将第二位二进制加到第二位。在100中,这将是1 + 0 = 1.这是格雷码的第二位,11 - 。

接下来,将第二位二进制加到第三位。这是灰色代码的最后一点。 100,所以0 + 0 = 0,我们的格雷码变为110。

对于四位转换,只需继续该模式,但添加二进制位3和4以获得格雷码编号的第4位。

我的答案的完成表是

{{1}}