我正在努力理解灰色代码以及它如何影响输出。基本上,我试图做的最终目标是设计一个基于真值表的电路。除了格雷代码部分,我了解大部分内容。
假设我得到了这个真值表,其中输出在每个时钟上升沿根据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等吗?
发布于 2016-12-11 12:24:38
我已经解决了。对于将来偶然发现这个主题的人来说,这里是如何将二进制代码转换为格雷码的。
首先,降低最重要的位。这是格雷码的第一个比特。如果二进制值为100,则第一位将为1,因此格雷码为1--。
要找到格雷码的第二位,请将二进制的第一位与第二位相加。在100中,这将是1+0 = 1。这是格雷码的第二位,11-。
接下来,将二进制数的第二位与第三位相加。这是最后一段格雷代码。100,所以0+0 = 0,我们的格雷码就变成了110。
对于四位转换,只需继续该模式,但将二进制位3和4相加,即可获得格雷码数的位4。
我的答案的完成表是
Inputs | Outputs
-------------------
S2 S1 S0 | N2 N1 N0
--------------------
0 0 0 | 0 0 0
0 0 1 | 0 0 1
0 1 0 | 0 1 1
0 1 1 | 0 1 0
1 0 0 | 1 1 0
1 0 1 | 1 1 1
1 1 0 | 1 0 1
1 1 1 | 1 0 0https://stackoverflow.com/questions/41082831
复制相似问题