數位電子 - 解碼器



什麼是解碼器?

在數位電子學中,一種組合邏輯電路,它將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譯碼器一樣實現這些輸出表達式。

現在,讓我們討論譯碼器的應用。

譯碼器的應用

譯碼器用於僅在特定輸入程式碼組合出現時啟用輸出或一組輸出的情況。下面列出了一些譯碼器的重要應用:

  • 譯碼器用於程式碼轉換。
  • 譯碼器廣泛應用於計算機的儲存系統。
  • 譯碼器也用於多路分解或資料分配。
  • 譯碼器也用於需要非常短的傳播延遲的資料路由應用。
  • 譯碼器也可用於定時或排序目的。
  • 譯碼器還用於在特定時間開啟和關閉數字裝置。

這就是關於譯碼器及其在數字電子系統中的應用。

廣告