Optimization 我想用16比1的多路复用器把二进制码转换成格雷码

Optimization 我想用16比1的多路复用器把二进制码转换成格雷码,optimization,binary,logical-operators,Optimization,Binary,Logical Operators,问题是我还没有学会加法器或VHDL(很多人告诉我要用它们),但我所拥有的只是16对1的MUX 我应该从select输入将每个MUX与另一个MUX链接起来吗?(知道我有4个输入和4个输出) 附言:我对这类事情还不熟悉,我很难解决这个问题 提前谢谢。将二进制代码转换为格雷码非常简单。在C语言中,它只是gray=bin^(bin>>1)。除最高位外,每个位都需要一个异或门 这里有一个很好的示意图: 您可以使用4对1的多路复用器轻松实现异或。当然,通过将两个输入连接到地上,也可以制作一个16对1的多路复

问题是我还没有学会加法器或VHDL(很多人告诉我要用它们),但我所拥有的只是16对1的MUX

我应该从select输入将每个MUX与另一个MUX链接起来吗?(知道我有4个输入和4个输出)

附言:我对这类事情还不熟悉,我很难解决这个问题


提前谢谢。

将二进制代码转换为格雷码非常简单。在C语言中,它只是
gray=bin^(bin>>1)
。除最高位外,每个位都需要一个异或门

这里有一个很好的示意图:

您可以使用4对1的多路复用器轻松实现异或。当然,通过将两个输入连接到地上,也可以制作一个16对1的多路复用器,但这是对门的巨大浪费