数字电子 - 解码器



什么是解码器?

在数字电子学中,一种组合逻辑电路,它将N位二进制输入代码转换为M个输出通道,使得对于每一种可能的输入组合,只有一个输出通道被激活,这种电路被称为解码器

换句话说,一种将N条输入线转换为最多2N条输出线的组合逻辑电路称为解码器

因此,解码器是一种能够识别或检测特定代码的组合逻辑电路。解码器执行的操作称为解码。解码器的通用框图如图1所示。

Block Diagram of a Decoder

这里,解码器有N条输入线和M(2N)条输出线。在解码器中,每条输入线可以是0或1,因此可能的输入组合或代码的数量等于2N。对于这些输入组合中的每一个,只有M条输出线中的一条将被激活,而其他所有输出线将保持非激活状态。

解码器的类型

存在几种类型的解码器。但是,根据存在的输入和输出线,解码器可以分为以下三种类型:

  • 2到4解码器
  • 3到8解码器
  • 4到16解码器

现在,让我们逐一详细讨论每种类型的解码器。

2到4解码器

2到4解码器是一种具有2条输入线和4(22)条输出线的解码器。2到4解码器的功能框图如图2所示。

2 to 4 Decoder

当使用使能输入E使该解码器启用时,则对于每种输入组合,其四个输出中的一个将被激活。可以使用下表给出的真值表来分析此2线到4线解码器的操作。

输入 输出
E A B Y3 Y2 Y1 Y0
0 X X 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0

使用此真值表,我们可以导出每个输出的布尔表达式,如下所示:

$$\mathrm{Y_{0} \: = \: E \: \cdot \: \bar{A} \: \cdot \: \bar{B}}$$

$$\mathrm{Y_{1} \: = \: E \: \cdot \: \bar{A} \: \cdot \: B}$$

$$\mathrm{Y_{2} \: = \: E \: \cdot \: A \: \cdot \: \bar{B}}$$

$$\mathrm{Y_{3} \: = \: E \: \cdot \: A \: \cdot \: B}$$

由于每个输出项都包含输入变量的乘积,因此可以使用与门来实现。因此,2到4解码器的逻辑电路图如图3所示。

2 to 4 Decoder Circuit Diagram

操作

2到4解码器逻辑电路的操作描述如下:

  • 当使能输入(E)处于非活动状态,即设置为0时,任何与门都不会工作。
  • 当使能输入(E)通过设置为1使其处于活动状态时,电路将按以下方式工作。
  • 当A = 0且B = 0时,与门1被激活并产生输出Y0
  • 当A = 0且B = 1时,与门2被激活并产生输出Y1
  • 当A = 1且B = 0时,与门3被激活并产生输出Y2
  • 当A = 1且B = 1时,与门4被激活并产生输出Y3

3到8解码器

3到8解码器是一种具有3条输入线和8(23)条输出线的解码器。3到8解码器的功能框图如图4所示。

3 to 8 Decoder

当使用使能输入E使该解码器启用时,则对于每种输入组合,其八个输出中的一个将被激活。可以使用下表给出的功能表来分析此3线到8线解码器的操作。

输入 输出
E A B C Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 X X X 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1
1 0 0 1 0 0 0 0 0 0 1 0
1 0 1 0 0 0 0 0 0 1 0 0
1 0 1 1 0 0 0 0 1 0 0 0
1 1 0 0 0 0 0 1 0 0 0 0
1 1 0 1 0 0 1 0 0 0 0 0
1 1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0

使用此功能表,我们可以导出每个输出的布尔表达式,如下所示:

$$\mathrm{Y_{0} \: = \: E \: \bar{A} \: \bar{B} \: \bar{C}}$$

$$\mathrm{Y_{1} \: = \: E \: \bar{A} \: \bar{B} \: C}$$

$$\mathrm{Y_{2} \: = \: E \: \bar{A} \: B \: \bar{C}}$$

$$\mathrm{Y_{3} \: = \: E \: \bar{A} \: B \: C}$$

$$\mathrm{Y_{4} \: = \: E \: A \: \bar{B} \: \bar{C}}$$

$$\mathrm{Y_{5} \: = \: E \: A \: \bar{B} \: C}$$

$$\mathrm{Y_{6} \: = \: E \: A \: B \: \bar{C}}$$

$$\mathrm{Y_{7} \: = \: E \: A \: B \: C}$$

我们可以看到,每个输出项都包含输入变量的乘积,因此可以使用与门来实现。因此,3到8解码器的逻辑电路图如图5所示。

3 to 8 Decoder Circuit Diagram

操作

3到8解码器逻辑电路的操作描述如下:

  • 当使能输入(E)处于非活动状态,即设置为0时,任何与门都不会工作。
  • 当使能输入(E)通过设置为1使其处于活动状态时,电路将按以下方式工作。
  • 当A = 0,B = 0,且C = 0时,与门1被激活并产生输出Y0
  • 当A = 0,B = 0,且C = 1时,与门2被激活并产生输出Y1
  • 当A = 0,B = 1,且C = 0时,与门3被激活并产生输出Y2
  • 当A = 0,B = 1,且C = 1时,与门4被激活并产生输出Y3
  • 当A = 1,B = 0,且C = 0时,与门5被激活并产生输出Y4
  • 当A = 1,B = 0,且C = 1时,与门6被激活并产生输出Y5
  • 当A = 1,B = 1,且C = 0时,与门7被激活并产生输出Y6
  • 当A = 1,B = 1,且C = 1时,与门8被激活并产生输出Y7

4到16解码器

4到16解码器是一种具有4条输入线和16(214)条输出线的解码器。4到16解码器的功能框图如图6所示。

4 to 16 Decoder

当使用使能输入E使该解码器启用时,则对于每种输入组合,其十六个输出中的一个将被激活。可以使用下表给出的功能表来分析此4线到16线解码器的操作。

输入 输出
E A B C D
0 X X X X 0
1 0 0 0 0 Y0
1 0 0 0 1 Y1
1 0 0 1 0 Y2
1 0 0 1 1 Y3
1 0 1 0 0 Y4
1 0 1 0 1 Y5
1 0 1 1 0 Y6
1 0 1 1 1 Y7
1 1 0 0 0 Y8
1 1 0 0 1 Y9
1 1 0 1 0 Y10
1 1 0 1 1 Y11
1 1 1 0 0 Y12
1 1 1 0 1 Y13
1 1 1 1 0 Y14
1 1 1 1 1 Y15

从此功能表中,我们可以直接写出每个输出的布尔表达式,如下所示:

$$\mathrm{Y_{0} \: = \: E \: \bar{A} \: \bar{B} \: \bar{C} \: \bar{D}}$$

$$\mathrm{Y_{1} \: = \: E \: \bar{A} \: \bar{B} \: \bar{C} \: D}$$

$$Y_2 = E \bar{A} \bar{B} C \bar{D}$$

$$Y_3 = E \bar{A} \bar{B} C D$$

$$Y_4 = E \bar{A} B \bar{C} \bar{D}$$

$$Y_5 = E \bar{A} B \bar{C} D$$

$$Y_6 = E \bar{A} B C \bar{D}$$

$$Y_7 = E \bar{A} B C D$$

$$Y_8 = E A \bar{B} \bar{C} \bar{D}$$

$$Y_9 = E A \bar{B} \bar{C} D$$

$$Y_{10} = E A \bar{B} C \bar{D}$$

$$Y_{11} = E A \bar{B} C D$$

$$Y_{12} = E A B \bar{C} \bar{D}$$

$$Y_{13} = E A B \bar{C} D$$

$$Y_{14} = E A B C \bar{D}$$

$$Y_{15} = E A B C D$$

我们可以像实现2到4译码器和3到8译码器一样实现这些输出表达式。

现在,让我们讨论译码器的应用。

译码器的应用

译码器用于仅在特定输入代码组合出现时激活输出或一组输出的情况。下面列出了一些译码器的重要应用:

  • 译码器用于代码转换。
  • 译码器广泛应用于计算机的存储系统。
  • 译码器也用于多路分解或数据分配。
  • 译码器也用于需要非常短的传播延迟的数据路由应用。
  • 译码器也可用于定时或排序目的。
  • 译码器还用于在特定时间打开和关闭数字设备。

这就是关于译码器及其在数字电子系统中的应用。

广告

© . All rights reserved.