Transcript 数据选择器
2.3 常用的中规模组合逻辑电路 2.3.1 译码器 2.3.2 数据选择器 2.3.3 编码器 2.3.4 数据比较器 2.3.5 运算器(算数逻辑单元 ALU) 2.3.6 奇偶校验器 习题4.3,4.5,4.12,4.15,4.18,4.22,4.23 2.3.2 数据选择器(Data Selector) 原理:在控制信号作用下,从多个输入中每次选中一个输 出。因此又称多路开关(Multiplexer-MUX)。是计算 机系统中使用最多的一类中规模器件。 例:4选1(4通道选1)数字选择器: 逻辑框图 S1 S0 D3 D2 D1 D0 Y 真值表 S1 S0 Y 0 0 D0 0 1 D1 1 0 D2 1 1 D3 Y S0 S1D0 S0 S1D1 S0 S1D2 S0 S1D3 数据选择器的内部结构 D0 S0 S1 S0 D3 D2 D1 D0 Y S1 D1 S0 S1 D2 + S0 S1 Y S 0 S1D0 S 0 S1D1 S 0 S1D 2 S 0 S1D3 D3 S0 S1 控制变量S1 S0的组合在同一时间内只能有一个为“1”, 因此输出只能选中其中的一个 Y 数据选择器用于总线发送控制 三态门 控制总线 A A BUS B B BUS C C BUS H H BUS 数据选择器 控制总线 S0 S1 S2 8选1数据 选择器 ABC 想想看:数据选择器还 有哪些应用? H 多位结构的数字选择器 4位2选1 S 2位4选1 1D0 1D1 2D0 2D1 3D0 3D1 4D0 4D1 1Y 2Y S1 1D0 1D1 1D2 1D3 S0 1Y 4Y 3Y 2D0 2D1 2D2 2D3 2Y 带控制端的数据选择器 逻辑框图 真值表 E S1 S0 Y 1 X X 0 0 0 0 D0 使能(Enable)控制端 0 0 1 D1 E =1,选择器被禁止 0 0 1 0 D2 1 1 D3 S1 E D 3 D 2 D 1 D 0 S0 Y E =0,选择器输出Y= Di Y E(S 0 S1D0 S 0 S1D1 S 0 S1D 2 S 0 S1D3 ) 有使能端的2位4选1数据选择器 (带互补输出:W=Y) 逻辑框图 S11E 1D0 1D1 1D2 1D3 2E 2D0 2D1 2D2 2D3 S0 1Y 1W 2Y 2W 选择器扩展: 16选1选择器 中规模器件只有有限个输入,当需要 更大规模电路时,就需要扩展。 S0 S1 S2 S2 如果手中没有16选1的选择器, 16选1数据 选择器 …… D15 D14 D0 可以用8选1、4选1等扩展实现。 选择器扩展:用4选1选择器 扩展成16选1选择器 16选1功能表 S3 S2 S1 S0 Y 0 0 0 0 Y0 0 1 Y1 1 0 Y2 1 1 Y3 0 0 Y4 0 1 Y5 1 0 Y6 1 1 Y7 0 0 Y8 0 1 Y9 1 0 Y10 1 1 Y11 0 0 Y12 0 1 Y13 1 0 Y14 1 1 Y15 0 1 1 1 0 1 S1 S0 S1 S0 一定要选两次,分成4组,每组选出一 个,再从4个中选择一次。 两种不同的扩展方案,从功能表上分析, 可以先用低两位控制,也可以先用高两 位控制。 选择器扩展:用双4选1选择器(无E) 扩展成16选1选择器(1) 选择器无选通控制端, 只能用两级选择结构 D0 S1 D3 D4 D D3 D0 S1 0 S0 Y Y S0 S3 S2 D7 D3 D8 D11D12 D15 D D3 D0 D3 S1 0 S0 Y Y D D3 S1 0 S0 Y 逻辑结构:S1 S0控制第一层选择,S3 S2控制第二层选择。 选择器扩展:用双4选1选择器(无E) 扩展成16选1选择器(2) 选择器无选通控制端, 只能用两级选择结构 D0 S3 D12D1 D0 D3 D0 S1 S0 Y Y S2 S1 S0 D13 D3 D0 D3 S1 S0 Y D2 D14D3 D15 D0 D3 D0 D3 S1 S0 Y Y P.121 图4-34 逻辑结构:S3 S2控制第一层选择,S1 S0控制第二层选择。 选择器扩展:带E的双4选1选择器 扩展成16选1选择器 用译码器+带E的数据选择器,一级选择就可以。 高两位控制端经译码后分别控制数据选择器的使能端,以实 现扩展。输出级是三态门,因此可以“线与”。 译码器与数据选择器的比较 译码器 数据选择器 A B Y0 Y1 Y2 Y3 S1 S0 Y 0 0 0 1 1 1 0 0 D0 1 0 1 0 1 1 0 1 D1 0 1 1 1 0 1 1 0 D2 1 1 1 1 1 0 1 1 D3 Y A B 0 Y1 A B Y2 AB Y AB 3 Y S0 S1D0 S0 S1D1 S0 S1D2 S0 S1D3 A B Y0 Y1 Y2 Y3 S1 D 3 D 2 D 1 D 0 S0 Y 数据选择器与数据分配器 数据选择器 数据分配器 S1 S0 Y 0 0 D0 0 1 D1 1 0 D2 1 1 D3 Y S0 S1D0 S0 S1D1 S0 S1D2 S0 S1D3 S1 D 3 D 2 D 1 D 0 S0 Y Din S1 S0 D 3 D 2 D 1 D 0 译码器实现数据分配器 S1 S0 Din A B E Y0 Y1 Y2 Y3 译码器与数据选择器的比较 都是与非,与或非逻辑的全组合 都可以有E控制端,用于扩展和选通 都可以实现逻辑函数(最小项的全组合) 扩展应用:译码器都要用E,选择器可以不 用E(扩展时要先画真值表,找规律) 选择器的输出结构可以带有三态输出、OC 门输出等结构,因此选择器可以用于总线 发送器。 E 用作扩展(译码器) 5片2-4译码器构成4-16译码器。第一层的一个译码 器用作选片。E=0时,C D=00时选中左边一片,译出 Y0…Y3 ;依此类推。 译码器实现逻辑函数 译码器输出可以看成是N个输入变量组成 的2N个最小项,再经一级与非门,组成“与 非-与非”逻辑,既可表达“与-或”表达 式。 例如:F=ABC+ABC+ABC=m Y 1+m2+m7 m A 0 Y1 Y2 1 B C Y7 m7 F 数据选择器实现逻辑函数 数据选择器: 逻辑结构就是与-或表达式。 数据选择器可以看成是N个控制端选择2N个最小项组成 的“与-或”表达式。选择某些输入为“1”,就是选中这 些最小项组成逻辑函数。逻辑变量接到选择控制端,逻 辑表达式中包含的最小项取“1”,其余取“0”。 例如,用八选一数据选择器实现函数:F B AC AC 数据选择器实现逻辑函数 8选1数据选择器可以实现4变量函数, 3个变量用在选择控制端,1个变量在数据输入。 例: F ( AC B) N ( AC AC ) N F ' AC B, F ' ' AC AC F F' N F'' N B A 00 01 C 0 1 1 1 1 1 11 10 1 0 0 0 F' A C B, B A 00 01 C 0 0 1 1 1 0 11 10 1 0 0 1 F' ' AC AC 8选1数据选择器实现4变量函数 S0 S1 S2 输入 F’ F’’ 函数F的值 0 0 0 D0 1 0 N 1 N 0 N 1 0 0 D1 1 1 0 1 0 D2 0 1 1 0 D3 1 0 N 0 N 0 0 1 N 1 N 1 1 0 0 1 D4 1 1 1 0 1 D5 1 0 1 1 D6 0 0 N 1 N 0 N 1 N 0 N 1 N 1 1 1 D7 0 0 N 0 N 0 0 N “1” N 1 N 1 1 N 1 N 1 1 E C B A “0” S2 S1 S0 D0 D7 F 2.3.3 编码器 (Encoder) 编码器(Encoder)原理 优先编码器(Priority Encoder) 8-3优先编码器 扩展应用:16-4 优先编码器 编码器(Encoder)原理 功能:将译码器反过来,对应输入的每 一个状态,输出一个编码。 4-2编码,将输入的4个状态编成2位二 进制数码; 8-3编码,将输入的8个状 态编成3位二进制数码;BCD编码,将 10个输入编成BCD码。 编码器(Encoder)原理 例:4-2编码器 I0 I1 功能表 I0 I1 I2 I3 A0 A1 I2 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 I3 1 1 1 0 1 1 A0 I 0 I1 I 2 I 3 I 0 I1 I 2 I 3 I 0 I1 I 2 I 3 I 0 I1 I 2 I 3 A1 I 0 I1 I 2 I 3 I 0 I1 I 2 I 3 I 0 I1 I 2 I 3 I 0 I1 I 2 I 3 A0 A1 8421码编码器 X0 X1 Y0 X9 X8 X7 X6 X5 X4 X3 X2 X1 Y3 Y2 Y1 Y0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 Y3 X 8 X 9 0 0 0 1 0 0 0 0 0 0 1 1 0 Y2 X 4 X 5 X 6 X 7 0 0 1 0 0 0 0 0 0 0 1 1 1 Y 1 X 2 X 3 X 6 X 7 0 1 0 0 0 0 0 0 0 1 0 0 0 Y0 X 1 X 3 X 5 X 7 X 9 1 0 0 0 0 0 0 0 0 1 0 0 1 8421 编码器 X9 Y1 Y2 Y3 8421码编码器 Y3 X 8 X 9 Y3 Y2 Y1 Y0 Y2 X 4 X 5 X 6 X 7 Y 1 X 2 X 3 X 6 X 7 Y0 X 1 X 3 X 5 X 7 X 9 局限:只有互斥输入时, 才能用这种编码器。即在 任一时刻所有输入线中只 允许有一个为“1”,否则 编码器会发生混乱。必须 X X X X X X 9 8 7 6 5 4 用优先编码器。 X3 X2 X1 优先编码器 当两条或两条以上线为“0”时,优先按输入编号大的 编码,称优先编码器(Priority Encoder) 。 以8-3优先编码器为例。 8-3 优先编码器 优先编码功能表 Ei 0 0 0 0 0 0 0 0 0 1 0 X X X X X X X 0 1 X 1 X X X X X X 0 1 1 X 2 X X X X X 0 1 1 1 X 3 X X X X 0 1 1 1 1 X 4 X X X 0 1 1 1 1 1 X 5 X X 0 1 1 1 1 1 1 X 6 X 0 1 1 1 1 1 1 1 X 7 0 1 1 1 1 1 1 1 1 X A0 A1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 A2 0 0 0 0 1 1 1 1 1 1 GS 0 0 0 0 0 0 0 0 1 1 E0 1 1 1 1 1 1 1 1 0 1 7 6 5 4 3 2 1 0 (A2,A1,A0用反码编码,Gs为编码输出,Eo为使能输出,Ei为使能输入) A 0 E i (7 765 76543 7654321) E i (7 65 643 6421) 用公式化简: A 1 E i (7 76 76543 765432) E i (7 6 543 542) A+AB=A+B A 2 E i (7 76 765 7654) E i (7 6 5 4) E 0 E i 76543210 (E0=0,表示本片没有编码,多片相连时低位可以编码) 3-8优先编码器逻辑图 P125 图4-40 3-8优先编码器扩展为16-4优先编码器 15 Ei 8 76543210 Gs A2 A1 A3 A2 A1 A0E0 A0 7 Ei Gs 0 76543210 A2 A1 A0 E0 E0 若高位片有“0”输入,高位Eo=1,应禁止低位片,以(A2~0)高 作为(A2~0)16-4 ,高位片的Gs(=0)作为A3 若高位片无“0”输入,高位Eo=0,低位片工作,以(A2~0) 低 作为(A2~0)16-4 ,高位片的Gs(=1)作为A3 2.3.4 数据比较器 A3A2 A1 A0 B3B2 B1 B0 若A3>B3 则A>B, 从高位开始比较, 若A <B 则A<B, 3 3 若A3=B3 则再比较低位 功能:比较A、B两数大小,判断A>B、A<B、A=B Ai>Bi的条件:Ai=1,Bi=0;即 Ai Bi 1或Z Ai Ai Bi 1 Ai<Bi的条件:Ai=0,Bi=1;即 Ai Bi 1或W Bi Ai Bi 1 Ai=Bi的条件: Ai Bi 1或W Ai Ai Bi Bi Ai B 1 i 数据比较器功能表 A3 , B3 A2 , B2 A1 , B1 A0 , B0 A>B A<B A=B A3 > B3 X X X 1 0 0 A3 < B3 X X X 0 1 0 A3 = B3 A2 >B2 X X 1 0 0 A3 = B3 A2 <B2 X X 0 1 0 A3 = B3 A2 =B2 A1 >B1 X 1 0 0 A3 = B3 A2 =B2 A1 <B1 X 0 1 0 A3 = B3 A2 =B2 A1 = B1 A0 >B0 1 0 0 A3 = B3 A2 =B2 A1 = B1 A0 <B0 0 1 0 A3 = B3 A2 =B2 A1 = B1 A0 =B0 0 0 1 ( A B) W3 Y3 W2 Y3 Y2 W1 Y3 Y2 Y1 W0 Y3 Y2 Y1 Y0 表达式:( A B) Z 3 Y3 Z 2 ( A B) Y3 Y2 Y1 Y0 Y3 Y2 Z 1 Y3 Y2 Y1 Z 0 Y3 Y2 Y1 Y0 (Yi表示Ai=Bi; Wi表示Ai<Bi; Zi表示Ai>Bi 数据比较器逻辑图 P129 图4-43 这是4位并行比较器,一次判断4位数大小。 按此思想可以推广到多位并行比较。 但是位数多了以后会出现组合爆炸,因此用 分段比较。 分段比较:多片比较器构成更长位数的方法 比较器不仅输出比较结果,还要能接受其 它片输出的结果。 A B 4位 比较器 A>B A<B A=B A>B A<B A=B 8位比较器:P130 图4-45 74LS85 2.3.5 运算器(算数逻辑单元 ALU) 十进制加法与二进制加法 加法器 – 四位串行进位加法器 – 快速加法器 – 16位加法器 算术运算逻辑单元 – 四位算术逻辑运算单元 – 功能 – 超前进位扩展器 我们所熟悉的十进制加法 计算器中用的加法,按照十进制数逐位相加。 将十进制数按二进制编码(BCD码),用4位二进制表示一位 十进制。典型的是8421 码和余3码。 十进制数 8421码 十进制数 余3码 0 0000 0 0011 1 0001 1 0100 2 0010 2 0101 3 0011 3 0110 4 0100 4 0111 5 0101 5 1000 6 0110 6 1001 7 0111 7 1010 8 1000 8 1011 9 1001 9 1100 8421码和余3码十进制数如何直接运算 (1) 8421 码加法:两个8421码相加,结果仍然要求是8421码。 (146)10 ( 259)10 ( 405)10 0001 0100 0110 0010 0101 1001 0011 1001 1111 0110 0101 0011 1010 0000 8421 BCD码 修正 修正 0110 0100 (8)10 (8)10 (16)10 0101 1000 8421 BCD码 1000 0001 0000 0110 修正 0110 (16)10 0001 (405)10 (52)10 (199)10 (251)10 0000 0101 0010 0001 1001 1001 0001 1110 1011 0110 0110 0101 0110 0010 8421 BCD码 修正 (251)10 8421 码加法,如果和数在 1010-1111之间,需要+6修 正才能得到8421码的相加和。 BCD码和余3码十进制数如何直接运算 (2) 余3 码加法:两个余3码相加,结果可以方便地得到8421码。 0101 1010 8421码 (13)10 0111 1001 0101 1000 1100 1010 0000 0101 0110 0100 7+6 0110 1011 0110 减6修正 0101 8421码 (5)10 余3码 146+259 减6修正 0000 0101 2+3 1001 0001 0011 0100 余3码 余3码 8421码 (405)10 余3 码加法,如果和数在 1010-1111之间,减6 修正就能得到8421码的 相加和。 由于余3 码做减法方便, 因此得到应用。