首先我们介绍数据选择器,它的功能是从n个输入中选择一个输出。如果n为2,我们该如何告诉电路选择哪一个呢?答案很简单,可以设计输入0代表选择1路,输入1代表选择2路,这样两路便可以由一个bit信息告诉选择哪个作为输出,如果n为4或者为8呢?n为4时可以设计两个bit表示:
00(选择1路) 01(选择2路) 10(选择3路) 11(选择4路)。
如果n为8,可以用三个bit表示,因此n为几就可以找到一个的x最小值。解码器(DEC)的功能就是将x二进制数据解码为哪一个输出位输出信号。普遍地,DEC都是x个输入,个输出。x为1时,则为1位解码器,x为3时,则为3位解码器。
一位解码器的实现由一个非门完成。注意在解码器输入为0时,默认输出一路信号。对于两位,三位解码器甚至更多位的解码器可以通过枚举思路设计电路图,也可以“逻辑上”嵌套一位解码器。
下图是使用一位解码器和开关所设计的二位解码器。解码规则使用的是最基础的8421BCD解码,因此该解码器被称为基础解码器。不同的解码规则可由设计者设计,由枚举或其他思路搭建电路图。
有了解码器,便可以指定选择哪个输出端口输出信号。下面我们再讨论回数据选择器,我们将设计一个一字节2路数据选择器,它可以接收两字节的输入,并选择一个数据作为输出。利用解码器和八位开关,可以很轻松的设计出一字节的2路数据选择器,原理图如下:
数据选择器后文会简称为选通器,有了选通器,便可以从各路信号中选择指定信号输出。