选择器和分配器

概述

选择器和分配器是组合电路中十分重要的逻辑元件。选择器用于从多个输入数据中选择一个输出;而分配器则刚好做相反的工作,将多个输入端输出到指定的输出端。

按照惯例,本文首先介绍相应的应用背景,然后讲解选择器和分配器的工作原理。

背景

选择器和分配器是电路中不可或缺的两个器件。童鞋们都知道,CPU中存在数量有限的寄存器(MIPS结构中一般是32个),CPU的ALU计算时,从寄存器中取数据进行计算。所有的寄存器都与ALU有电路连接,当我们进行计算时,如:

addi $t2, $t1, $0 // 表示计算$t0和$t1寄存器中的数之和

怎么从32个寄存器中选择$t0, $t1和$t2???

答案:选择器

对应的图示如下:


选择器和分配器_第1张图片
多路选择器背景图

另外,我们在写C语言中的if...else...分支结构时,程序计数器PC是加4(32位,一个字宽)顺序执行(if语句中的条件成立,执行if分支)还是加其它数(if语句中的条件不成立,执行else分支),也需要选择器来选择。

再想另一个场景,当两个计算机通讯时,假设通讯的位宽为1位,我们要传输一个字节,即8位,要保证两端的数据的时序(假设发送端A传送的数据为‘0101 1101’,接收端如何保证收到的也是‘0101 1101’)?(现实的场景更可能是:用64/32位宽的总线传输64N/32N位的数据,N为正整数)

答案:一位位宽一次只能传送一个二进制,分时传送,用选择器和分配器保证顺序

对应的图示如下:


选择器和分配器_第2张图片
选择器和分配器联合使用分时传送数据

选择器

选择器(通常用MUX表示)的抽象功能图如下所示:

选择器和分配器_第3张图片
选择器功能图

一般情况下,选择器包括m个数据输入端、一个使能控制端,n个(地址)控制端,和一个输出端。图中也展示了输出与输入之间的关系,其中的mi对应的是n个控制端的最小项。熟悉译码器的童鞋应该能发现什么?如果令Di = 1 (0<= i <= m),可以发现什么?

列出真值表跟容易理解,下图显示了8选1选择器的真值表:

选择器和分配器_第4张图片
8-3选择器真值表

常见的8选1选择器74LS151的逻辑符号如下图所示:

选择器和分配器_第5张图片
74LS151逻辑符号

这里要注意:74LS151提供了原变量输出和反变量输出两个输出

有了基本的8选1选择器,如何构造16选1选择器和32选1选择器?套路其实是一样的,重点是地址控制端,与译码器的级联一样,低位共享,高位控制使能端。下面将16选1和32选1的选择器电路图列出,童鞋们可以自己进行分析。

选择器和分配器_第6张图片
16选1选择器
选择器和分配器_第7张图片
32选1选择器

分配器

分配器(通常用DEMUX表示),其抽象图如下所示:

选择器和分配器_第8张图片
分配器抽象图

同样,如果我们令D=1,会有什么结论?

下面仅列出1-4分配器的真值表和电路图,具体原理就不再分析了。

选择器和分配器_第9张图片
Paste_Image.png

总结

观察选择器和分配器,其实都和译码器有关系,如果我们将选择器和分配器控制地址端看成译码器的输入,输入数据令其为1,就可以得到一些有趣的结果。另外,在计算机组成中,分配器通常和选择器联合使用。

如有错误,请大家批评指正!谢谢!

你可能感兴趣的:(选择器和分配器)