【学习笔记】4、组合逻辑电路(上)

  • 数字电路的分类:组合逻辑电路,时序逻辑电路。
  • 本章学习组合逻辑电路。

4.1 组合逻辑电路的分析

  • 给定的逻辑电路,确定其逻辑表达式,列出真值表,得到简化后的逻辑表达式,分析得到其功能。

3位奇校验电路

(1) 如下图所示。
在这里插入图片描述
(2)列出真值表

A B C Z L
0 0 0 0 0
0 0 1 0 1
0 1 0 1 1
0 1 1 1 0
1 0 0 1 1
1 0 1 1 0
1 1 0 0 0
1 1 1 0 1

(3) 分析出奇校验电路功能。

  • 当C为1时,且AB中有0个或2个1时(AB同,Z=0),(奇数个1),L为1。
  • 当C为0时,且AB中只有1个1时(AB异,Z=1),(奇数个1),L为1。
  • 即,ABC中出现奇数个1时,L为1。ABC中出现偶数个1时,L为0。

3位偶校验电路

(1)在奇校验电路的基础上,在输出端再加一级反相器,可以得到偶校验电路

3位取反码电路

  • 如下图所示。
    在这里插入图片描述
  • 逻辑表达式。
    X = A X = A X=A
    Y = ( A ⋅ B ‾ ‾ ) ⋅ ( A ‾ ⋅ B ) ‾ ‾ = A ⋅ B ‾ + A ‾ ⋅ B Y = \overline{(\overline{A·\overline{B}})·(\overline{\overline{A}·B)}}=A·\overline{B}+\overline{A}·B Y=(AB)(AB)=AB+AB
    Z = ( A ‾ ⋅ C ‾ ) ⋅ ( A ⋅ C ‾ ) ‾ ‾ = A ‾ ⋅ C + A ⋅ C ‾ Z=\overline{(\overline{\overline{A}·C})·(\overline{A·\overline{C})}}=\overline{A}·C+A·\overline{C} Z=(AC)(AC)=AC+AC
  • 真值表。
A B C X Y Z
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 1 1 1
1 0 1 1 1 0
1 1 0 1 0 1
1 1 1 1 0 0
  • 功能分析。
    (1)原码ABC,A作为符号位,0表示正数,1表示负数。
    (2)反码XYZ,X作为符号位,与A一致。
    (3)当A=0正数时,YZ和BC一致。
    (4)当A=1负数时,符号位不变X=A,YZ为BC取反后的结果。

4.2 组合逻辑电路设计

  • 明确逻辑功能,确定输入输出,列出真值表,写出逻辑表达式,简化变换逻辑表达式,画出逻辑图。

3位火车进站指示灯

  • 需求。
    (1)使用2输入与非门,反相器。
    (2)1号指示灯,特快车进站指示灯。优先级高。
    (3)2号指示灯,直快车进站指示灯。优先级中。
    (4)3号指示灯,慢车进站指示灯。优先级低。
    (5)同时最多只能有一个指示灯亮。

  • 定义输入输出变量。
    (1)输入信号, I 0 特快请求, I 1 直快请求, I 2 慢车请求 I_0特快请求,I_1直快请求,I_2慢车请求 I0特快请求,I1直快请求,I2慢车请求。1表示有进站请求,0表示无进站请求。
    (2)输出信号, L 0 特快进站指示灯, L 1 直快进站指示灯, L 2 慢车进站指示灯 L_0特快进站指示灯,L_1直快进站指示灯,L_2慢车进站指示灯 L0特快进站指示灯,L1直快进站指示灯,L2慢车进站指示灯。1表示灯亮,0表示灯不亮。

  • 真值表。

输入 输出
I_0 I_1 I_2 L_0 L_1 L_2
0 0 0 0 0 0
1 X X 1 0 0
0 1 X 0 1 0
0 0 1 0 0 1
  • 列出逻辑表达式
    L 0 = I 0 L_0 = I_0 L0=I0
    L 1 = I 0 ‾ ⋅ I 1 L_1 = \overline{I_0}·I_1 L1=I0I1
    L 2 = I 0 ‾ ⋅ I 1 ‾ ⋅ I 2 L_2 = \overline{I_0}·\overline{I_1}·I_2 L2=I0I1I2

  • 根据需求,变换为与非形式。
    L 0 = I 0 L_0 = I_0 L0=I0
    L 1 = I 0 ‾ ⋅ I 1 ‾ ‾ L_1 = \overline{\overline{\overline{I_0}·I_1}} L1=I0I1
    L 2 = I 0 ‾ ⋅ I 1 ‾ ‾ ‾ ⋅ I 2 ‾ ‾ L_2 =\overline{\overline{\overline{\overline{\overline{I_0}·\overline{I_1}}}·I_2}} L2=I0I1I2

  • 画出逻辑图。
    (1)一片74HC00芯片,包含4个2输入CMOS与非门。
    (2)一片74HC04芯片,包含6个CMOS反相器。
    在这里插入图片描述

4位格雷码转自然二进制码

  • 需求。
    (1)可以使用任何逻辑门电路。
    (2)4位格雷码,转换为自然二进制码。

  • 定义输入输出变量。
    (1)输入变量, G 3 , G 2 , G 1 , G 0 G_3,G_2,G_1,G_0 G3,G2,G1,G0
    (2)输出变量, B 3 , B 2 , B 1 , B 0 B_3,B_2,B_1,B_0 B3,B2,B1,B0

  • 列出真值表。

输入 输出
G_3 G_2 G_1 G_0 B_3 B_2 B_1 B_0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 0
0 0 1 0 0 0 1 1
0 1 1 0 0 1 0 0
0 1 1 1 0 1 0 1
0 1 0 1 0 1 1 0
0 1 0 0 0 1 1 1
1 1 0 0 1 0 0 0
1 1 0 1 1 0 0 1
1 1 1 1 1 0 1 0
1 1 1 0 1 0 1 1
1 0 1 0 1 1 0 0
1 0 1 1 1 1 0 1
1 0 0 1 1 1 1 0
1 0 0 0 1 1 1 1
  • 根据真值表,画出卡诺图。
    在这里插入图片描述
    在这里插入图片描述

  • 列出逻辑表达式。
    B 3 = G 3 B_3 = G_3 B3=G3
    B 2 = G 3 ‾ ⋅ G 2 + G 3 ⋅ G 2 ‾ = G 3 ⊕ G 2 B_2 = \overline{G_3}·G_2 + G_3·\overline{G_2}=G_3⊕G_2 B2=G3G2+G3G2=G3G2
    B 1 = G 3 ‾ G 2 G 1 ‾ + G 3 G 2 ‾ G 1 ‾ + G 3 ‾ G 2 ‾ G 1 + G 3 G 2 G 1 = ( G 3 G 2 ‾ + G 3 ‾ G 2 ) G 1 ‾ + ( G 3 G 2 ‾ + G 3 ‾ G 2 ) ‾ G 1 = G 3 ⊕ G 2 ⊕ G 1 B_1 = \overline{G_3}G_2\overline{G_1}+G_3\overline{G_2}\overline{G_1}+\overline{G_3}\overline{G_2}G_1+G_3G_2G_1=(G_3\overline{G_2}+\overline{G_3}G_2)\overline{G_1}+\overline{(G_3\overline{G_2}+\overline{G_3}G_2)}G_1=G_3⊕G_2⊕G_1 B1=G3G2G1+G3G2G1+G3G2G1+G3G2G1=(G3G2+G3G2)G1+(G3G2+G3G2)G1=G3G2G1
    B 0 = G 3 ⊕ G 2 ⊕ G 1 ⊕ G 0 B_0=G_3⊕G_2⊕G_1⊕G_0 B0=G3G2G1G0

  • 画出逻辑图。
    在这里插入图片描述

4.3 组合逻辑电路中的竞争与冒险

  • 组合逻辑电路中,信号经过逻辑门都需要一定的时间。
  • 信号经过不同的路径,传输时间不同(逻辑门的级数不同,逻辑门的种类不同)。
  • 竞争:一个逻辑门的多个输入端的信号同时向相反方向变化,变化的时间有差异的现象,称为“竞争”。(谁先变化,谁后变化,即为竞争)。
  • 冒险:竞争产生的输出干扰窄脉冲,这种现象称为冒险。

4.3.1 产生竞争冒险的原因

  • 输入信号不能同时到达,导致出现短时间的异常窄脉冲。
  • 与门
    在这里插入图片描述
  • 或门
    在这里插入图片描述

4.3.2 消去竞争冒险的方法

1. 发现并消去互补相乘项

  • F = ( A + B ) ( A ‾ + C ) F = (A+B)(\overline{A}+C) F=(A+B)(A+C)
  • 当B=C=0时,会出现 A A ‾ A\overline{A} AA乘积项。
  • 发现: A A ‾ A\overline{A} AA乘积项可能会导致“竞争冒险”。
    在这里插入图片描述
  • 互补相乘项: A ⋅ A ‾ A·\overline{A} AA
  • 消去: F = ( A + B ) ( A ‾ + C ) = A A ‾ + A C + B A ‾ + B C = A C + B A ‾ + B C F = (A+B)(\overline{A}+C)=A\overline{A}+AC+B\overline{A}+BC=AC+B\overline{A}+BC F=(A+B)(A+C)=AA+AC+BA+BC=AC+BA+BC。这样就不存在互补项,在一定程度上,避免了竞争和冒险。

在这里插入图片描述

2. 增加乘积项以避免互补项相加

  • 上文所述, F = A C + B A ‾ + B C F =AC+B\overline{A}+BC F=AC+BA+BC,当B=C=1时, F = A + A ‾ + 1 = 1 F = A+\overline{A}+1 =1 F=A+A+1=1。此处的BC乘积项=1,起到了作用,避免了互补项相加的竞争冒险。
  • 根据常用恒等式“或”运算(2.1节), A B + A ‾ C + B C = A B + A ‾ C AB + \overline{A} C + BC = AB + \overline{A} C AB+AC+BC=AB+AC
  • 当遇到逻辑函数 L = A C + B C ‾ L=AC + B\overline{C} L=AC+BC这种形式时,我们可以增加乘积项 A B AB AB
    在这里插入图片描述

3. 输出端并联电容器

  • 针对速度较慢的工作场景。
  • 电容值4~20pF。对冒险窄脉冲起到 “平波”的作用。
  • 缺点:会使输出波形上升沿和下降沿,变得缓慢。

4.4 (学习重点)若干典型的组合逻辑集成电路

  • 编码器,译码器,数据选择器,数据分配器,数值比较器,算术/逻辑运算单元。

4.4.1 编码器

1. 定义和工作原理

  • 用一个二进制代码表示特定含义的信息,称为编码。
  • 具有编码功能的逻辑电路,称为编码器。
    在这里插入图片描述
(1)普通译码器(4线-2线编码器)
  • 4个输入 I 0 I 1 I 2 I 3 I_0 I_1 I_2 I_3 I0I1I2I3,高电平有效信号。
  • 2个输出 Y 1 Y 0 Y_1Y_0 Y1Y0
  • 前提:任何时刻, I 0 I 1 I 2 I 3 I_0 I_1 I_2 I_3 I0I1I2I3只能有一个值为1。并且有一个对应的二进制码 Y 1 Y 0 Y_1Y_0 Y1Y0
  • 如下表所示,除此4输入的4种取值组合之外,其他12种组合对应的输出,都是00。
I 0 I_0 I0 I 1 I_1 I1 I 2 I_2 I2 I 3 I_3 I3 Y 1 Y_1 Y1 Y 0 Y_0 Y0
1 0 0 0 0 0
0 1 0 0 0 1
0 0 1 0 1 0
0 0 0 1 1 1
  • 逻辑表达式与逻辑图
    Y 1 = I 0 ‾ I 1 ‾ I 2 I 3 ‾ + I 0 ‾ I 1 ‾ I 2 ‾ I 3 Y_1 = \overline{I_0}\overline{I_1}I_2\overline{I_3}+\overline{I_0}\overline{I_1}\overline{I_2}I_3 Y1=I0I1I2I3+I0I1I2I3
    Y 0 = I 0 ‾ I 1 I 2 ‾ I 3 ‾ + I 0 ‾ I 1 ‾ I 2 ‾ I 3 Y_0 = \overline{I_0}I_1\overline{I_2}\overline{I_3}+\overline{I_0}\overline{I_1}\overline{I_2}I_3 Y0=I0I1I2I3+I0I1I2I3

在这里插入图片描述

  • 额外问题:如果4个输入中,同时有2位以上取值为1,输出会出现错误编码。
    例如: I 2 = I 3 = 1 I_2=I_3=1 I2=I3=1时, Y 1 Y 0 = 0 Y_1Y_0=0 Y1Y0=0
  • 针对这个问题,可以通过增加优先级的方式,规定好轻重缓急和优先顺序。
(2)优先编码器
  • 在上述基础上,列出真值表。
I 0 I_0 I0 I 1 I_1 I1 I 2 I_2 I2 I 3 I_3 I3 Y 1 Y_1 Y1 Y 0 Y_0 Y0
1 0 0 0 0 0
X 1 0 0 0 1
X X 1 0 1 0
X X X 1 1 1
  • 逻辑表达式:
    Y 1 = I 2 I 3 ‾ + I 3 = I 2 + I 3 Y_1 = I_2\overline{I_3}+I_3= I_2+I_3 Y1=I2I3+I3=I2+I3
    Y 0 = I 1 I 2 ‾ I 3 ‾ + I 3 = I 1 I 2 ‾ + I 3 Y_0 = I_1\overline{I_2}\overline{I_3}+I_3=I_1\overline{I_2}+I_3 Y0=I1I2I3+I3=I1I2+I3

在这里插入图片描述

(3)输出值有效
  • 额外问题:当 I 0 = 1 或 I 0 = 1 I_0=1或I_0=1 I0=1I0=1时,始终 Y 1 Y 0 = 0 Y_1Y_0=0 Y1Y0=0。输入不同,输出相同,无法区分有效的输出0( I 0 = 1 I_0=1 I0=1无效的输出0
  • 针对该问题,可以增加一个表示“输出值有效”的输出标志值GS。
  • 例如,如下的8421BCD编码器。真值表的第一行和第二行,都是0000,只有当GS==1时,表示此时的ABCD是有效的代码。
S 9 S_9 S9 S 8 S_8 S8 S 7 S_7 S7 S 6 S_6 S6 S 5 S_5 S5 S 4 S_4 S4 S 3 S_3 S3 S 2 S_2 S2 S 1 S_1 S1 S 0 S_0 S0 A A A B B B C C C D D D G S GS GS
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0 0 0 0 0 1
1 1 1 1 1 1 1 1 0 1 0 0 0 1 1
1 1 1 1 1 1 1 0 1 1 0 0 1 0 1
1 1 1 1 1 1 0 1 1 1 0 0 1 1 1
1 1 1 1 1 0 1 1 1 1 0 1 0 0 1
1 1 1 1 0 1 1 1 1 1 0 1 0 1 1
1 1 1 0 1 1 1 1 1 1 0 1 1 0 1
1 1 0 1 1 1 1 1 1 1 0 1 1 1 1
1 0 1 1 1 1 1 1 1 1 1 0 0 0 1
0 1 1 1 1 1 1 1 1 1 1 0 0 1 1

2. 集成电路优先编码器

  • 典型:CD4532优先编码器(已停产)
    在这里插入图片描述

  • 优先编码器 I 7 优先级最高, I 0 优先级最低。 优先编码器 I_7优先级最高,I_0优先级最低。 优先编码器I7优先级最高,I0优先级最低。

    • 只有当EI=1时,编码器工作。
    • EI=0时,禁止编码器工作(输出全低电平)。
  • 当EI=1时,所有的输入都为低电平时,找不到更低的优先级输入高电平,此时输出000。此时EO=1。

  • 只有在EI=1,且所有输入端都为0时,EO=1。专用于与另一片器件的EI级联。

  • 在EI=1,输入端至少一个为高电平1,GS=1。

  • 具体逻辑表达式和逻辑框图见书中内容。

E I 允许编码 EI允许编码 EI允许编码 I 7 I_7 I7 I 6 I_6 I6 I 5 I_5 I5 I 4 I_4 I4 I 3 I_3 I3 I 2 I_2 I2 I 1 I_1 I1 I 0 I_0 I0 Y 2 Y_2 Y2 Y 1 Y_1 Y1 Y 0 Y_0 Y0 G S 有输入 1 GS有输入1 GS有输入1 E O 输入全 0 EO输入全0 EO输入全0
0 x x x x x x x x 0 0 0 0 0
1 1 x x x x x x x 1 1 1 1 0
1 0 1 x x x x x x 1 1 0 1 0
1 0 0 1 x x x x x 1 0 1 1 0
1 0 0 0 1 x x x x 1 0 0 1 0
1 0 0 0 0 1 x x x 0 1 1 1 0
1 0 0 0 0 0 1 x x 0 1 0 1 0
1 0 0 0 0 0 0 1 x 0 0 1 1 0
1 0 0 0 0 0 0 0 1 0 0 0 1 0
1 0 0 0 0 0 0 0 0 0 0 0 0 1

  • 当 E I 1 = 0 时,片 1 被禁用。 Y 2 Y 1 Y 0 = = 000 , G S 1 = 0 , E O 1 = 0 。 E I 0 = 0 ,片 0 也被禁用。 当EI_1=0时,片1被禁用。Y_2Y_1Y_0==000,GS_1=0,EO_1=0。EI_0=0,片0也被禁用。 EI1=0时,片1被禁用。Y2Y1Y0==000GS1=0EO1=0EI0=0,片0也被禁用。

    • 此时 G S 0 = 0 。 L 3 L 2 L 1 L 0 = 0000 。 G S = G S 1 + G S 0 = 0 , 此时GS_0=0。L_3L_2L_1L_0=0000。GS = GS_1+GS_0=0, 此时GS0=0L3L2L1L0=0000GS=GS1+GS0=0,
    • 此时为 无效编码。
  • 当 E I 1 = 1 时,片 1 允许编码,若 I 15 − I 8 = 000...000 ,此时 E O 1 = 1 ,从而 E I 0 = 1 。片 0 允许编码。可知,片 1 编码的优先级高于片 0 编码 当EI_1=1时,片1允许编码,若I_{15} - I_8 = 000...000,此时EO_1=1,从而EI_0=1。片0允许编码。可知,片1编码的优先级高于片0编码 EI1=1时,片1允许编码,若I15I8=000...000,此时EO1=1,从而EI0=1。片0允许编码。可知,片1编码的优先级高于片0编码

    • 此时 L 3 = G S 1 = 0 , L 2 = Y 2 1 + Y 2 0 = Y 2 0 , L 1 = Y 1 1 + Y 1 0 = Y 1 0 , L 0 = Y 0 1 + Y 0 0 = Y 0 0 此时L_3=GS_1=0 ,L2=Y2_1+Y2_0=Y2_0,L1=Y1_1+Y1_0=Y1_0,L0=Y0_1+Y0_0=Y0_0 此时L3=GS1=0L2=Y21+Y20=Y20L1=Y11+Y10=Y10L0=Y01+Y00=Y00
    • 输出的编码范围是 0000 − 0111 输出的编码范围是0000-0111 输出的编码范围是00000111
  • 当 E I 1 = 1 时,片 1 允许编码,若 I 15 − I 8 至少有一个 1 ,此时 E O 1 = 0 , 从而 E I 0 = 0 ,片 0 禁止编码。 当EI_1=1时,片1允许编码,若I_{15} - I_8 至少有一个1,此时EO_1=0,从而EI_0=0,片0禁止编码。 EI1=1时,片1允许编码,若I15I8至少有一个1,此时EO1=0,从而EI0=0,片0禁止编码。

    • 此时 L 3 = G S 1 = 1 , L 2 = Y 2 1 + Y 2 0 = Y 2 1 , L 1 = Y 1 1 + Y 1 0 = Y 1 1 , L 0 = Y 0 1 + Y 0 0 = Y 0 1 此时L_3=GS_1=1,L2=Y2_1+Y2_0=Y2_1,L1=Y1_1+Y1_0=Y1_1,L0=Y0_1+Y0_0=Y0_1 此时L3=GS1=1L2=Y21+Y20=Y21L1=Y11+Y10=Y11L0=Y01+Y00=Y01
    • 输出编码的范围是 1000 − 1111 输出编码的范围是1000-1111 输出编码的范围是10001111
E I 1 允许编码 EI_1允许编码 EI1允许编码 E I 0 允许编码 EI_0允许编码 EI0允许编码 I 15 I_{15} I15 I 14 I_{14} I14 I 13 I_{13} I13 I 12 I_{12} I12 I 11 I_{11} I11 I 10 I_{10} I10 I 9 I_{9} I9 I 8 I_8 I8 I 7 I_7 I7 I 6 I_6 I6 I 5 I_5 I5 I 4 I_4 I4 I 3 I_3 I3 I 2 I_2 I2 I 1 I_1 I1 I 0 I_0 I0 Y 2 1 Y2_1 Y21 Y 1 1 Y1_1 Y11 Y 0 1 Y0_1 Y01 Y 2 0 Y2_0 Y20 Y 1 0 Y1_0 Y10 Y 0 0 Y0_0 Y00 E O 1 输入全 0 EO_1输入全0 EO1输入全0 E O 0 输入全 0 EO_0输入全0 EO0输入全0 G S 1 有输入 1 GS_1有输入1 GS1有输入1 G S 0 有输入 0 GS_0有输入0 GS0有输入0 L 3 L_3 L3 L 2 L_2 L2 L 1 L_1 L1 L 0 L_0 L0
0(片1禁用 ) E I 0 = E O 1 = 0 EI_0=EO_1=0 EI0=EO1=0(片0禁用 ) x x x x x x x x x x x x x x x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 x x x x x x x x x x x x x x x 1 1 1 0 0 0 0 0 1 (片1有输入) 0 1 L 3 = G S 1 L_3 =GS_1 L3=GS1 1 L 2 = Y 2 1 L_2 =Y2_1 L2=Y21 1 L 1 = Y 1 1 L_1 =Y1_1 L1=Y11 1 L 0 = Y 0 1 L_0 =Y0_1 L0=Y01
1 0 0 1 x x x x x x x x x x x x x x 1 1 0 0 0 0 0 0 1 0 1 1 1 0
1 0 0 0 1 x x x x x x x x x x x x x 1 0 1 0 0 0 0 0 1 0 1 1 0 1
1 0 0 0 0 1 x x x x x x x x x x x x 1 0 0 0 0 0 0 0 1 0 1 1 0 0
1 0 0 0 0 0 1 x x x x x x x x x x x 0 1 1 0 0 0 0 0 1 0 1 0 1 1
1 0 0 0 0 0 0 1 x x x x x x x x x x 0 1 0 0 0 0 0 0 1 0 1 0 1 0
1 0 0 0 0 0 0 0 1 x x x x x x x x x 0 0 1 0 0 0 0 0 1 0 1 0 0 1
1 0 0 0 0 0 0 0 0 1 x x x x x x x x 0 0 0 0 0 0 0 0 1 0 1 0 0 0
1 E I 0 = E O 1 = 1 EI_0=EO_1=1 EI0=EO1=1(片0工作 ) 0 0 0 0 0 0 0 0 1 x x x x x x x 0 0 0 1 1 1 1(片1输入全0) 0 0(片1无效编码) 1 0 L 3 = G S 1 L_3 =GS_1 L3=GS1 1 L 2 = Y 2 0 L_2 =Y2_0 L2=Y20 1 L 1 = Y 1 0 L_1 =Y1_0 L1=Y10 1 L 0 = Y 0 0 L_0 =Y0_0 L0=Y00
1 1 0 0 0 0 0 0 0 0 0 1 x x x x x x 0 0 0 1 1 0 1 0 0 1 0 1 1 0
1 1 0 0 0 0 0 0 0 0 0 0 1 x x x x x 0 0 0 1 1 1 1 0 0 1 0 1 0 1
1 1 0 0 0 0 0 0 0 0 0 0 0 1 x x x x 0 0 0 1 1 1 1 0 0 1 0 1 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 x x x 0 0 0 1 1 1 1 0 0 1 0 0 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 x x 0 0 0 1 1 1 1 0 0 1 0 0 1 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 x 0 0 0 1 1 1 1 0 0 1 0 0 0 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1(片0输入全0) 0 0(片0无效编码) 0 0 0 0

4.4.2 译码器

  • 138译码器。
  • 151数据选择器。

1. 定义和功能

  • 有两种类型的译码器:
    • 唯一地址译码器:将一系列代码转换成与之一一对应的有效信号。(例如计算机对存储单元地址的译码,将地址代码转换成一个有效信号,选中对应的存储单元)
    • 代码变换器:将一种代码转换成另一种代码。
(1)二进制译码器
  • n个输入端
  • 2 n 2^n 2n个输出端
  • 1个使能端
(2)2线-4线译码器
  • 输出端,低电平有效
    在这里插入图片描述
  • 真值表
输入 输出
/E A_1 A_0 /Y_3 /Y_2 /Y_1 /Y_0
1 禁止 X X 1 1 1 1
0 使能 0 0 1 1 1 0 低有效
0 使能 0 1 1 1 0低有效 1
0 使能 1 0 1 0 低有效 1 1
0 使能 1 1 0 低有效 1 1 1
  • 逻辑表达式(非门与非门的表达形式)

Y 0 ‾ = E ‾ ‾ ⋅ A 1 ‾ ⋅ A 0 ‾ ‾ \overline{Y_0} = \overline{\overline{\overline{E}}·\overline{A_1}·\overline{A_0}} Y0=EA1A0 //00
Y 1 ‾ = E ‾ ‾ ⋅ A 1 ‾ ⋅ A 0 ‾ \overline{Y_1} = \overline{\overline{\overline{E}}·\overline{A_1}·A_0} Y1=EA1A0 //01
Y 2 ‾ = E ‾ ‾ ⋅ A 1 ⋅ A 0 ‾ ‾ \overline{Y_2} = \overline{\overline{\overline{E}}·A_1·\overline{A_0}} Y2=EA1A0 //10
Y 3 ‾ = E ‾ ‾ ⋅ A 1 ⋅ A 0 ‾ \overline{Y_3} = \overline{\overline{\overline{E}}·A_1·A_0} Y3=EA1A0 //11

  • 2线-4线译码器的逻辑图
    在这里插入图片描述

2. 集成电路译码器

(1)二进制译码器
2线-4线译码器x2
  • 用74x139表示CMOS型74HC139或者TTL型74LS139。
  • 74x139是“双2线-4线译码器”。
  • 两个独立的译码器封装在一个集成芯片中。(详细见上文)
    在这里插入图片描述
3线-8线译码器
  • 用74x138表示CMOS型74HC138或者TTL型74LS138。
  • 74x1383线-8线译码器
  • 利用3线-8线译码器可以构成4线-16线译码器5线-32线译码器6线-64线译码器
  • E 3 = 1 , E 2 ‾ = E 1 ‾ = 0 E_3=1,\overline{E_2}=\overline{E_1}=0 E3=1,E2=E1=0时,译码器处于工作状态。

在这里插入图片描述

  • 仿照前文,可以推出“3线-8线译码器”的逻辑表达式。

Y 0 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ‾ ⋅ A 0 ‾ ‾ \overline{Y_0} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·\overline{A_1}·\overline{A_0}} Y0=E3E2E1A2A1A0 //000
Y 1 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ‾ ⋅ A 0 ‾ \overline{Y_1} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·\overline{A_1}·A_0} Y1=E3E2E1A2A1A0 //001
Y 2 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ⋅ A 0 ‾ ‾ \overline{Y_2} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·A_1·\overline{A_0}} Y2=E3E2E1A2A1A0 //010
Y 3 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ⋅ A 0 ‾ \overline{Y_3} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·A_1·A_0} Y3=E3E2E1A2A1A0 //011
Y 4 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ‾ ⋅ A 0 ‾ ‾ \overline{Y_4} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·\overline{A_1}·\overline{A_0}} Y4=E3E2E1A2A1A0 //100
Y 5 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ‾ ⋅ A 0 ‾ \overline{Y_5} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·\overline{A_1}·A_0} Y5=E3E2E1A2A1A0 //101
Y 6 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ⋅ A 0 ‾ ‾ \overline{Y_6} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·A_1·\overline{A_0}} Y6=E3E2E1A2A1A0 //110
Y 7 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ⋅ A 0 ‾ \overline{Y_7} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·A_1·A_0} Y7=E3E2E1A2A1A0 //111

5先-32线译码器
  • 利用74x139和74x138构成“5线-32线译码器”
    在这里插入图片描述
3线-8线译码器实现逻辑函数
  • 逻辑函数是 L = A ‾ ⋅ C ‾ + A ⋅ B L=\overline{A}·\overline{C}+A·B L=AC+AB
  • 3线-8线译码器的输入,可以定义为A、B、C。
  • 3线-8线译码器的输出,实际就是A、B、C的各种最小项情况一一对应的8线输出。
  • 任何ABC组合,只会有一路输出为有效电平。
  • L实际就是A、B、C组合的几种情况的集合。

L = A ‾ ⋅ C ‾ + A ⋅ B = A ‾ ⋅ B ‾ ⋅ C ‾ + A ‾ ⋅ B ⋅ C ‾ + A ⋅ B ⋅ C ‾ + A B C = m 0 + m 2 + m 6 + m 7 L=\overline{A}·\overline{C}+A·B =\overline{A}·\overline{B}·\overline{C}+\overline{A}·B·\overline{C} + A·B·\overline{C}+ABC = m_0+m_2+m_6+m_7 L=AC+AB=ABC+ABC+ABC+ABC=m0+m2+m6+m7

Y 0 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ‾ ⋅ A 0 ‾ ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 0 ‾ \overline{Y_0} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·\overline{A_1}·\overline{A_0}} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_0} Y0=E3E2E1A2A1A0=E3E2E1m0 //000
Y 1 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ‾ ⋅ A 0 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 1 ‾ \overline{Y_1} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·\overline{A_1}·A_0} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_1} Y1=E3E2E1A2A1A0=E3E2E1m1 //001
Y 2 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ⋅ A 0 ‾ ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 2 ‾ \overline{Y_2} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·A_1·\overline{A_0}}= \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_2} Y2=E3E2E1A2A1A0=E3E2E1m2 //010
Y 3 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ⋅ A 0 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 3 ‾ \overline{Y_3} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·A_1·A_0}= \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_3} Y3=E3E2E1A2A1A0=E3E2E1m3 //011
Y 4 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ‾ ⋅ A 0 ‾ ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 4 ‾ \overline{Y_4} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·\overline{A_1}·\overline{A_0}}= \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_4} Y4=E3E2E1A2A1A0=E3E2E1m4 //100
Y 5 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ‾ ⋅ A 0 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 5 ‾ \overline{Y_5} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·\overline{A_1}·A_0}= \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_5} Y5=E3E2E1A2A1A0=E3E2E1m5 //101
Y 6 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ⋅ A 0 ‾ ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 6 ‾ \overline{Y_6} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·A_1·\overline{A_0}}= \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_6} Y6=E3E2E1A2A1A0=E3E2E1m6 //110
Y 7 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ⋅ A 1 ⋅ A 0 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ m 7 ‾ \overline{Y_7} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·A_2·A_1·A_0}= \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·m_7} Y7=E3E2E1A2A1A0=E3E2E1m7 //111

  • 确保 E 3 = 1 , E 2 = 0 , E 1 = 0 确保E_3=1,E_2=0,E_1=0 确保E3=1,E2=0,E1=0,也就是说 Y 0 ‾ = m 0 ‾ , Y 2 ‾ = m 2 ‾ , Y 6 ‾ = m 6 ‾ , Y 7 ‾ = m 7 ‾ \overline{Y_0}=\overline{m_0},\overline{Y_2}=\overline{m_2},\overline{Y_6}=\overline{m_6},\overline{Y_7}=\overline{m_7} Y0=m0Y2=m2Y6=m6Y7=m7

  • 根据反演律变换逻辑函数
    L = L ‾ ‾ = m 0 + m 2 + m 6 + m 7 ‾ ‾ = m 0 ‾ ⋅ m 2 ‾ ⋅ m 6 ‾ ⋅ m 7 ‾ ‾ = m 0 + m 2 + m 6 + m 7 ‾ ‾ = Y 0 ‾ ⋅ Y 2 ‾ ⋅ Y 6 ‾ ⋅ Y 7 ‾ ‾ L=\overline{\overline{L}} = \overline{\overline{m_0+m_2+m_6+m_7}} = \overline{\overline{m_0}·\overline{m_2}·\overline{m_6}·\overline{m_7}} = \overline{\overline{m_0+m_2+m_6+m_7}} = \overline{\overline{Y_0}·\overline{Y_2}·\overline{Y_6}·\overline{Y_7}} L=L=m0+m2+m6+m7=m0m2m6m7=m0+m2+m6+m7=Y0Y2Y6Y7

  • 得到逻辑图
    在这里插入图片描述

(2)二-十进制译码器
  • 774HC42

  • 4个输入端

  • 10个输出端,输出低电平有效,对应十进制数0~9。
    在这里插入图片描述

  • 4个输入端,共有16种情况

  • 只有 m 0 , m 1 , m 2 . . . . . . m 9 m_0 ,m_1,m_2......m_9 m0,m1,m2......m9为有效的输入(对应的输出引脚输出低0,其余输出高1)。

  • 其余6中 m 10 , m 11 , m 12 . . . . . . m 15 m_{10} ,m_{11},m_{12}......m_{15} m10,m11,m12......m15为无有效译码输出(无效时,输出全为高1)。

  • 画出74HC42的输入、输出波形图。

在这里插入图片描述

  • 如果DCBA循环输入0000-1001,会在 Y 0 ‾ 到 Y 9 ‾ \overline{Y_0}到\overline{Y_9} Y0Y9上循环输出“顺序脉冲信号”。
  • 译码器可以构成顺序脉冲产生电路。
    在这里插入图片描述
(3)七段显示译码器
  • 数码管显示原理
    在这里插入图片描述

  • 集成七段显示译码器。74HC4511(共阴极)(高电平点亮)

  • L E LE LE锁存使能

  • L T ‾ \overline{LT} LT灯测试输入,当 L T ‾ = 0 \overline{LT}=0 LT=0时,a-g全部输出1,显示字形“8”。

  • B L ‾ \overline{BL} BL灭灯输入,当 L T ‾ = 1 ,且 B L ‾ = 1 \overline{LT}=1,且\overline{BL}=1 LT=1,且BL=1时,a-g全部输出0。可用于将不必要的显示的零“0”,熄灭。
    在这里插入图片描述

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0000时,对应输出字形“0”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0001时,对应输出字形“1”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0010时,对应输出字形“2”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0011时,对应输出字形“3”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0100时,对应输出字形“4”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0101时,对应输出字形“5”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0110时,对应输出字形“6”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=0111时,对应输出字形“7”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=1000时,对应输出字形“8”

  • D 3 D 2 D 1 D 0 D_3D_2D_1D_0 D3D2D1D0=1001时,对应输出字形“9”

  • 1010-1111,熄灭

3. 数据分配器

  • 一到多,将公共数据线的数据,根据需要送到不同的通道上。

  • 类似“单刀多掷开关”

  • 使用唯一地址译码器,实现数据分配器

  • 举例,74x138集成3线-8线译码器。

  • E 1 ‾ 作为数据输入 \overline{E_1}作为数据输入 E1作为数据输入

  • Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Y_0 Y_1 Y_2Y_3Y_4Y_5Y_6Y_7 Y0Y1Y2Y3Y4Y5Y6Y7作为数据输出的8个通道
    在这里插入图片描述

  • Y 2 ‾ = E 3 ⋅ E 2 ‾ ‾ ⋅ E 1 ‾ ‾ ⋅ A 2 ‾ ⋅ A 1 ⋅ A 0 ‾ ‾ \overline{Y_2} = \overline{E_3·\overline{\overline{E_2}}·\overline{\overline{E_1}}·\overline{A_2}·A_1·\overline{A_0}} Y2=E3E2E1A2A1A0 //010

  • 上图, E 3 = 1 , E 2 ‾ = 0 E_3=1,\overline{E_2}=0 E3=1E2=0,当地址线 A 2 A 1 A 0 = 010 A_2A_1A_0=010 A2A1A0=010时, Y 2 ‾ = E 1 ‾ \overline{Y_2}=\overline{E_1} Y2=E1

  • 同理可以得出:
    当地址线 A 2 A 1 A 0 = 000 A_2A_1A_0=000 A2A1A0=000时, Y 0 ‾ = E 1 ‾ = D \overline{Y_0}=\overline{E_1}=D Y0=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 001 A_2A_1A_0=001 A2A1A0=001时, Y 1 ‾ = E 1 ‾ = D \overline{Y_1}=\overline{E_1}=D Y1=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 010 A_2A_1A_0=010 A2A1A0=010时, Y 2 ‾ = E 1 ‾ = D \overline{Y_2}=\overline{E_1}=D Y2=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 011 A_2A_1A_0=011 A2A1A0=011时, Y 3 ‾ = E 1 ‾ = D \overline{Y_3}=\overline{E_1}=D Y3=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 100 A_2A_1A_0=100 A2A1A0=100时, Y 4 ‾ = E 1 ‾ = D \overline{Y_4}=\overline{E_1}=D Y4=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 101 A_2A_1A_0=101 A2A1A0=101时, Y 5 ‾ = E 1 ‾ = D \overline{Y_5}=\overline{E_1}=D Y5=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 110 A_2A_1A_0=110 A2A1A0=110时, Y 6 ‾ = E 1 ‾ = D \overline{Y_6}=\overline{E_1}=D Y6=E1=D,其他 Y x = 1 Y_x=1 Yx=1
    当地址线 A 2 A 1 A 0 = 111 A_2A_1A_0=111 A2A1A0=111时, Y 7 ‾ = E 1 ‾ = D \overline{Y_7}=\overline{E_1}=D Y7=E1=D,其他 Y x = 1 Y_x=1 Yx=1

4.4.3 数据选择器

1. 定义和功能

  • 和上文4.4.2.3的"数据分配器",功能相反。
  • 多到一。
  • 例如,4选1数据选择器。
    在这里插入图片描述
  • E ‾ = 0 \overline{E}=0 E=0,允许工作。
  • S 1 = 0 , S 0 = 0 S_1=0,S_0=0 S1=0S0=0时, Y = I 0 Y=I_0 Y=I0
  • S 1 = 0 , S 0 = 1 S_1=0,S_0=1 S1=0S0=1时, Y = I 1 Y=I_1 Y=I1
  • S 1 = 1 , S 0 = 0 S_1=1,S_0=0 S1=1S0=0时, Y = I 2 Y=I_2 Y=I2
  • S 1 = 1 , S 0 = 1 S_1=1,S_0=1 S1=1S0=1时, Y = I 3 Y=I_3 Y=I3

2. 集成电路数据选择器

  • 74x151:一-8选1-数据选择器。对应CMOS型74HC151,TTL型74LS151。
  • 74x153:双-4选1-数据选择器。对应CMOS型74HC153,TTL型74LS153。
  • 74x157:四-2选1-数据选择器。对应CMOS型74HC157,TTL型74LS157。
  • 74x251:具有三态输出,当 E ‾ = 1 \overline{E}=1 E=1时,输出高阻状态。支持多个芯片输出端“线与”。
  • 74x253:具有三态输出,当 E ‾ = 1 \overline{E}=1 E=1时,输出高阻状态。支持多个芯片输出端“线与”。
  • 74x257:具有三态输出,当 E ‾ = 1 \overline{E}=1 E=1时,输出高阻状态。支持多个芯片输出端“线与”。
(1)74HC151

Y = S 2 ‾ ⋅ S 1 ‾ ⋅ S 0 ‾ ⋅ D 0 + S 2 ‾ ⋅ S 1 ‾ ⋅ S 0 ⋅ D 1 + S 2 ‾ ⋅ S 1 ⋅ S 0 ‾ ⋅ D 2 + S 2 ‾ ⋅ S 1 ⋅ S 0 ⋅ D 3 + S 2 ⋅ S 1 ‾ ⋅ S 0 ‾ ⋅ D 4 + S 2 ⋅ S 1 ‾ ⋅ S 0 ⋅ D 5 + S 2 ⋅ S 1 ⋅ S 0 ‾ ⋅ D 6 + S 2 ⋅ S 1 ⋅ S 0 ⋅ D 7 Y=\overline{S_2}·\overline{S_1}·\overline{S_0}·D_0 +\overline{S_2}·\overline{S_1}·S_0·D_1 +\overline{S_2}·S_1·\overline{S_0}·D_2 +\overline{S_2}·S_1·S_0·D_3 +S_2·\overline{S_1}·\overline{S_0}·D_4 +S_2·\overline{S_1}·S_0·D_5 +S_2·S_1·\overline{S_0}·D_6 +S_2·S_1·S_0·D_7 Y=S2S1S0D0+S2S1S0D1+S2S1S0D2+S2S1S0D3+S2S1S0D4+S2S1S0D5+S2S1S0D6+S2S1S0D7
在这里插入图片描述

(2)数据选择器的应用
  • 数据选择器的扩展。

    • 输出位数扩展( Y 0 − > Y 1 Y 0 Y_0->Y_1Y_0 Y0>Y1Y0)
    • 输入位数扩展( D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 − > D 15 D 14 D 13 D 12 D 11 D 10 D 9 D 8 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 D_7D_6D_5D_4D_3D_2D_1D_0->D_{15}D_{14}D_{13}D_{12}D_{11}D_{10}D_{9}D_{8}D_7D_6D_5D_4D_3D_2D_1D_0 D7D6D5D4D3D2D1D0>D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0)。
  • 逻辑函数产生器

    • 已知,8选1数据选择器。
      Y = S 2 ‾ ⋅ S 1 ‾ ⋅ S 0 ‾ ⋅ D 0 + S 2 ‾ ⋅ S 1 ‾ ⋅ S 0 ⋅ D 1 + S 2 ‾ ⋅ S 1 ⋅ S 0 ‾ ⋅ D 2 + S 2 ‾ ⋅ S 1 ⋅ S 0 ⋅ D 3 + S 2 ⋅ S 1 ‾ ⋅ S 0 ‾ ⋅ D 4 + S 2 ⋅ S 1 ‾ ⋅ S 0 ⋅ D 5 + S 2 ⋅ S 1 ⋅ S 0 ‾ ⋅ D 6 + S 2 ⋅ S 1 ⋅ S 0 ⋅ D 7 Y=\overline{S_2}·\overline{S_1}·\overline{S_0}·D_0 +\overline{S_2}·\overline{S_1}·S_0·D_1 +\overline{S_2}·S_1·\overline{S_0}·D_2 +\overline{S_2}·S_1·S_0·D_3 +S_2·\overline{S_1}·\overline{S_0}·D_4 +S_2·\overline{S_1}·S_0·D_5 +S_2·S_1·\overline{S_0}·D_6 +S_2·S_1·S_0·D_7 Y=S2S1S0D0+S2S1S0D1+S2S1S0D2+S2S1S0D3+S2S1S0D4+S2S1S0D5+S2S1S0D6+S2S1S0D7

    • Y = m 0 ⋅ D 0 + m 1 ⋅ D 1 + m 2 ⋅ D 2 + m 3 ⋅ D 3 + m 4 ⋅ D 4 + m 5 ⋅ D 5 + m 6 ⋅ D 6 + m 7 ⋅ D 7 Y=m_0·D_0 +m_1·D_1 +m_2·D_2 +m_3·D_3 +m_4·D_4 +m_5·D_5 +m_6·D_6 +m_7·D_7 Y=m0D0+m1D1+m2D2+m3D3+m4D4+m5D5+m6D6+m7D7

    • 逻辑函数 L = A ‾ B C + A B ‾ C + A B L=\overline{A}BC+A\overline{B}C+AB L=ABC+ABC+AB
      L = A ‾ B C + A B ‾ C + A B = A ‾ B C + A B ‾ C + A B C ‾ + A B C = m 3 + m 5 + m 6 + m 7 L=\overline{A}BC+A\overline{B}C+AB=\overline{A}BC+A\overline{B}C+AB\overline{C}+ABC=m_3+m_5+m_6+m_7 L=ABC+ABC+AB=ABC+ABC+ABC+ABC=m3+m5+m6+m7

    • 使用8选1数据选择器实现上述函数L
      L = Y = m 3 + m 5 + m 6 + m 7 ,其中 D 7 D 6 D 5 D 3 = 1111 , D 4 D 2 D 1 D 0 = 0000 L=Y=m_3+m_5+m_6+m_7,其中D_7D_6D_5D_3=1111,D_4D_2D_1D_0=0000 L=Y=m3+m5+m6+m7,其中D7D6D5D3=1111D4D2D1D0=0000
      在这里插入图片描述

  • 并行数据转串行数据
    在这里插入图片描述

4.4.4 数值比较器

1. 定义和功能

  • 对两个数的大小进行比较。
(1)1位数值比较器
  • 列出真值表
A B F A > B F_{A>B} FA>B F A < B F_{A<B} FA<B F A = = B F_{A==B} FA==B
0 0 0 0 1
0 1 0 1 0
1 0 1 0 0
1 1 0 0 1
  • 逻辑表达式
    • F A > B = A ⋅ B ‾ F_{A>B} = A·\overline{B} FA>B=AB
    • F A < B = A ‾ ⋅ B F_{A<B} = \overline{A}·B FA<B=AB
    • F A = = B = A ⋅ B + A ‾ ⋅ B ‾ F_{A==B} = A·B+\overline{A}·\overline{B} FA==B=AB+AB
  • 逻辑图
    在这里插入图片描述
(2)2位数值比较器
  • 列出真值表
A 1 ? B 1 A _1?B_1 A1B1 A 0 ? B 0 A_0?B_0 A0?B0 F A > B F_{A>B} FA>B F A < B F_{A<B} FA<B F A = = B F_{A==B} FA==B
A 1 > B 1 A_1>B_1 A1>B1 x 1 0 0
A 1 < B 1 A_1<B_1 A1<B1 x 0 1 0
A 1 = = B 1 A_1==B_1 A1==B1 A 0 > B 0 A_0>B_0 A0>B0 1 0 0
A 1 = = B 1 A_1==B_1 A1==B1 A 0 < B 0 A_0<B_0 A0<B0 0 1 0
A 1 = = B 1 A_1==B_1 A1==B1 A 0 = = B 0 A_0==B_0 A0==B0 0 0 1
  • 逻辑表达式
    F A > B = F A 1 > B 1 + F A 1 = = B 1 ⋅ F A 0 > B 0 F_{A>B} = F_{A_1>B_1} +F_{A_1==B_1}·F_{A_0>B_0} FA>B=FA1>B1+FA1==B1FA0>B0
    F A < B = F A 1 < B 1 + F A 1 = = B 1 ⋅ F A 0 < B 0 F_{A<B} = F_{A_1<B_1} +F_{A_1==B_1}·F_{A_0<B_0} FA<B=FA1<B1+FA1==B1FA0<B0
    F A = = B = F A 1 = = B 1 ⋅ F A 0 = = B 0 F_{A==B} = F_{A_1==B_1}·F_{A_0==B_0} FA==B=FA1==B1FA0==B0

  • 逻辑图
    在这里插入图片描述

2. 集成数值比较器

  • 74x85,4位数值比较器。(CMOS型74HC85)
  • 74x682,8位数值比较器。
(1)74HC85的功能
  • I A > B 、 I A = B 、 I A < B I_{A>B}、I_{A=B}、I_{A<B} IA>BIA=BIA<B是扩展输入端。当4位输入AB都相等时,根据扩展输入端,判断AB的大小。
    在这里插入图片描述
  • 列出真值表即可写出逻辑表达式。
(2)数值比较器的位数扩展
  • 串联,扩展为8位数值比较器
    在这里插入图片描述

  • 并联,扩展为16位数值比较器。

  • 并联的当时,速度快。
    在这里插入图片描述

文章大小限制,后续见《【学习笔记】4、组合逻辑电路(下)》

相关推荐

  1. 电路笔记】-逻辑与门

    2024-07-15 05:52:04       36 阅读
  2. 电路笔记】-逻辑或门

    2024-07-15 05:52:04       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 05:52:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 05:52:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 05:52:04       45 阅读
  4. Python语言-面向对象

    2024-07-15 05:52:04       55 阅读

热门阅读

  1. vue 中时间日期格式处理

    2024-07-15 05:52:04       17 阅读
  2. leetcode239.滑动窗口最大值

    2024-07-15 05:52:04       11 阅读
  3. SQL基础 | NOT NULL 约束介绍

    2024-07-15 05:52:04       19 阅读
  4. 算法金 | 深度学习图像增强方法总结

    2024-07-15 05:52:04       16 阅读
  5. rabbitmq解除消息者消息推送限制

    2024-07-15 05:52:04       17 阅读
  6. 迪米特法则

    2024-07-15 05:52:04       23 阅读