【數字邏輯】學習筆記 第四章 Part2 常用組合邏輯電路與競爭、險象

本章小結:

  • 二種方法: 分析、設計方法
  • 六種電路 : 譯碼器 、數據選擇 器

本章要求:

  • 熟練掌握組合電路的分析方法和設計方法
  • 熟練掌握兩種芯片的主要功能和基本應用:74LS138, 74LS151
  • 瞭解組合電路中的競爭與險象

一、常用組合邏輯電路

1. 譯碼器

譯碼: 將具有特定含義二進制代碼變換( (翻譯) 成一定的輸出信號,以表示二進制代碼的原意,這一過程稱爲譯碼。實現譯碼功能的組合電路稱爲譯碼器。

譯碼是編碼的逆過程,即將某個二進制代碼翻譯成電路的某種狀態。常見的譯碼器有二進制譯碼器、二-十進制譯碼器、顯示譯碼器。

(1) 二進制譯碼器 74LS138(3/8譯碼器)

二進制譯碼器把輸入的 nn 位二進制代碼翻譯爲 2n2^n 個輸出的高低電平信號,其中只有一個爲有效電平,其編號對應於輸入的二進制代碼。

常見的二進制譯碼器有 2-4 譯碼器、3-8 譯碼器和 4-16 譯碼器。

3線-8線譯碼器見下圖:

注意:譯碼器是多輸入、多輸出組合邏輯電路,每個輸出對應一個 nn 變量最小項——也稱最小項發生器。 當然,這裏的符號和真值表只是一個簡化的情形,詳細的看後面。

a. 一般符號和圖形符號

注意,這裏凡是有上劃線的信號,都是低位有效的,比如 STAST_A 是高位有效的,Y0\overline {Y_0} 是低位有效的;同時,凡是有上劃線的信號,輸出的信號線都有三角符號或者是空心圓符號,同樣表示低位有效。

b. 74LS138功能表

下表有:

  • 33 個輸入端:A,B,CA,B,C
  • 88 個輸出端:Y0...Y7\overline {Y_0} ... \overline {Y_7} (低電平有效)
  • 33 個使能端:STA,STB,STCST_A, \overline {ST_B},\overline {ST_C}

功能表中,要注意的是:對於 n=3n=3 個輸入信號,有 2n=82^n=8 輸出信號,輸出信號爲 00 表示有效,比如 Y1=0\overline {Y_1} = 0 表示 A,B,CA,B,C 二進制轉換爲十進制爲 11。此外,輸出信號有大量無效的狀態,爲了避免這些狀態,就使用了使能端,其中 STAST_A00 時,全部輸出爲無效信號;STB+STC=1\overline {ST_B}+\overline {ST_C} = 1 或者說 STB=1STC=1\overline {ST_B} = 1 \vee \overline {ST_C} = 1 時,全部輸出爲無效信號;只有 STA=1ST_A=1,且 STB+STC=0\overline {ST_B} + \overline {ST_C}=0 或者說 STB=0STC=0\overline {ST_B}=0 \wedge \overline {ST_C} = 0 時,纔有有效輸出。

c. 兩片 74LS138 構成 4-16 譯碼器:

A3A2A1A0A_3A_2A_1A_0 :譯碼輸入,對應的是 1616 個輸出信號;

這裏用最高位地址作爲片選信號:

  • A3=0A_3 =0 時,片 11 低位輸出工作,爲了讓片 11 工作,我們將 A3A_3 取反送入11STAST_A 中,此時 A3=0A_3 = 0 不會讓高位輸出工作。A3A2A1A0A_3A_2A_1A_0000001110000-0111 ,有效輸出產生於:Y0Y7\overline {Y_0}- \overline{Y_7} 之中;
  • A3=1A_3 =1 時,片 22 高位輸出工作,爲了讓片 22 工作,我們可以將 A3A_3 直接送入22STAST_A 中,此時 A3=0\overline {A_3} = 0 不會讓低位輸出工作。A3A2A1A0A_3A_2A_1A_0100011111000-1111 ,有效輸出產生於:Y8Y15\overline{Y_8}-\overline {Y_{15}}

d. 用 74LS138 實現函數

二進制譯碼器的輸出分別對應一個 最小項 (高電平譯碼) 或一個 最小
項的非
(低電平譯碼),所以附加適當門,可實現任意函數。

特點 :方法簡單,無須簡化,工作可靠。

如上圖,實現的邏輯函數如下:
F=Y0 Y3 Y4 Y7=Y0+Y3+Y4+Y7=m0+m3+m4+m7=(0,3,4,7)\begin{aligned} F&=\overline {\overline {Y_0}\ \overline{Y_3}\ \overline{Y_4}\ \overline{Y_7}} \\ &= Y_0 + Y3 +Y_4 + Y_7 \\ &= m_0 + m_3 + m_4 + m_7 \\ &= \sum {(0,3,4,7)}\end{aligned}

e. 9片 74LS138 擴展構成6-64線譯碼器

用一片 74LS138 進行高 33 位譯碼,88 個輸出分別用來控制 88 片譯碼器進行低 33 位譯碼。最後,將這 88 片的共 6464 個輸出作爲總譯碼的輸出結果。
在這裏插入圖片描述


(2) 二—十進制譯碼器 74LS42

二—十進制譯碼器把輸入的 44BCDBCD 碼翻譯爲 1010 個輸出的高低電平信號 ,其中有一個爲有效電平, 其編號對應於輸入的 BCDBCD 碼。

看起來和前面的二進制譯碼器很像,要做好區分。

a. 一般符號

b. 74LS42功能表

功能表中,要注意的是:

74LS138二進制譯碼器 74LS42二-十進制譯碼器
輸入和輸出 nn 個輸入信號,有 2n2^n 輸出信號 44 個輸入信號,有 1010 輸出信號,不是 1616 個,因爲是 BCD 碼,有些變量的組合不被使用
使能端 存在使能端 STA,STB,STCST_A,\overline{ST_B}, \overline{ST_C} ,只有 STA=1ST_A=1STB+STC=0\overline {ST_B} + \overline {ST_C}=0 時,纔有有效輸出 沒有使能端
輸出變量 低位有效 低位有效
舉例 Y1=0\overline {Y_1} = 0 表示 A,B,CA,B,C 二進制轉換爲十進制爲 11 Y1=0\overline {Y_1} = 0 表示 A3A2A1A0A_3A_2A_1A_0 BCD碼轉換爲十進制爲 11

(3) 數字顯示譯碼器 74LS48

在數字系統中,常需把結果用十進制數碼顯示出來,數字顯示電路包括兩部分——譯碼驅動電路和數碼顯示器。

舉個例子,8421BCD 顯示譯碼電路框圖如下:

我們要介紹的是七段顯示譯碼器 74LS48。也就是七段數碼管(每一段由一個發光二極管組成),順時針從 aga\rightarrow g 編碼。

  • 共陰極:高電平亮
  • 共陽極:低電平亮

輸入:二—十進制代碼
輸出:譯碼結果,可驅動相應的七段數碼管顯示正確的數字。

a. BCD七段字符顯示譯碼器74LS48功能表

注意,這裏的輸出不是低位有效的,而且是多位有效。一個例子,要輸出數字 44,需要 b,c,f,gb,c,f,g 段發光,因此,Yb,Yc,Yf,YgY_b,Y_c, Y_f, Y_g 都爲 11,其他位爲 00


2. 數據選擇器

定義:能從多個數據信號選擇一個數據信號傳送到輸出端的電路。

  • 輸入:2n2^n 路數據和 nn 位地址,因此有 2n+n2^n+n 個輸入變量;
  • 輸出:11 位數據;
  • 地址:控制選擇哪個數據的信號。

數據選擇器類似一個多擲開關。選擇哪一路信號由相應的一組控制信號控制。

(1) 4選1數據選擇器

我們常用的是 4411 數據選擇器:

  • 輸入數據:a3,a2,a1,a0a_3,a_2,a_1,a_0
  • 控制地址:A1,A0A_1, A_0
  • 輸出數據:FF
  • 功能:根據輸入地址,選擇輸入數據中的一個,送到輸出端

真值表

A1A_1 A0A_0 FF
00 00 a0a_0
00 11 a1a_1
11 00 a2a_2
11 11 a3a_3

表達式:
F=A1 A0a0+A1A0a1+A1 A0a2+A1A0a3=m0a0+m1a1+m2a2+m3a3=i=02n1miai=i=03miai\begin{aligned} F &= \overline {A_1}\ \overline {A_0} a_0 + \overline {A_1} {A_0} a_1 + {A_1}\ \overline {A_0} a_2 + A_1A_0a_3\\ &= m_0 \cdot a_0 + m_1 \cdot a_1 + m_2 \cdot a_2 + m_3 \cdot a_3\\ &= \sum_{i=0}^{2^n-1} m_i \cdot a_i \\ &= \sum_{i=0}^3 m_i\cdot a_i \end{aligned}

nn 位地址變量,有 2n2^n 個數據通道,實現 2n2^n11 功能。

(2) 集成數據選擇器: 8選1數據選擇器74LS151

881174LS15174LS151
16161174LS15074LS150
441174LS15374LS153
221174LS15774LS15774LS15874LS158

a. 74LS151功能表

8811 數據選擇器 74LS15174LS151 的功能表

使能時,輸出 YY 和輸入的邏輯關係:

b. 74LS151一般符號和電路

  • 數據輸入端:D7D0D_7 \to D_0
  • 地址端:A2A0A_2 \to A_0
  • 輸出端:YYW\overline W

二、競爭和險象

1. 基本概念

理想情況:

  • 邏輯門連線無延遲
  • 多個信號同時瞬間變化

實際情況:

  • 信號變化:過渡時間
  • 信號通過邏輯門: 響應時間
  • 多個信號變化:有先有後

競爭:信號經不同路徑到達某一點時,所用的時間不同,這個時間差稱爲競爭;
險象:由競爭引起電路輸出發生瞬間錯誤的現象,表現爲輸出端出現了原設計中沒有的窄脈衝(毛刺),稱爲險象。

一般來說,時延對數字系統是有害的,它會降低系統的工作速度,還會產生競爭冒險現象。
競爭和險象是對電路的,而不是針對函數的。

2. 險象分類

依據輸入信號變化前後輸出
信號的變化情況,分爲:

  • 靜態險象:本應不變而發生了變化
  • 動態險象:本應一次變化而發生了多次變化

依據導致輸出信號發生變化
輸入變量個數,分爲:

  • 邏輯險象:一個輸入變量發生變化導致的險象
  • 功能險象:多個輸入變量發生變化導致的險象

兩兩組合起來,就是 44 種險象。我們主要關注的是靜態邏輯險象!

此外,根據輸出的錯誤,還分爲:

  • 00 型險象: 產生低電平錯誤
  • 11 型險象: 產生高電平錯誤

可以繼續依次細分爲:

(1) 靜態功能險象

產生的原因:

  • 多個輸入變量的值不可能嚴格地“同時”變化

產生的條件:

  • KK 個 (K>1K>1) 輸入信號同時發生變化
  • 輸入信號變化前、後的穩態輸出值相同
  • 變化的 KK 個變量的取值組合,對應在卡諾圖上所佔有的 2K2^K 個方格中,必定既有 11 ,又有 00

e.g.e.g. 分析邏輯函數 F=BC+ACF=B\overline C+AC ,說明當輸入信號 ABCABC010010 變化到 111111 時,是否有險象發生。
分析:
輸入信號 AACC 發生變化,從 0000 變爲 1111B=1B=1AACC 發生變化的 44 個最小項了中既有 00 也有 11,可能發生險象。

功能險象邏輯函數的功能所固有的,無法通過改變設計來消除,只能通過控制輸入信號的變化順序來避免。

(2) 靜態邏輯險象

產生的原因:邏輯器件固有的時延;
產生的條件:

  • 一對邏輯變量 AA 和反變量 A\overline A 同時出現,且在某些取值條件下,邏輯表達式可寫成 F=AAF = A\cdot \overline A 或者 F=A+AF=A+\overline A
  • 一個輸入變量 AA 發生變化
  • 輸入變量發生變化前、後穩態輸出值相同

e.g.e.g. F=BC+ACF=B\overline C+ AC.
分析:當 A=B=1A=B=1 時,F=C+CF=C+\overline C. 當 CC11 變爲 00 ,會出現險象。

3. 險象的判別

(1) 邏輯表達式判別法

如果電路中存在出現險象的可能性,則其邏輯表達式有如下特點:

  • 當某一變量同時以原變量和反變量的形式出現在邏輯表達式中,則該變量就具備了競爭的條件;
  • 保留被研究變量,用某些定值消去其它變量
  • 若得到的表達式爲下列形式之一,則有險象存在:
    F=A+AF = A + \overline A00 險象(如 AA 從 1 → 0)
    F=AAF = A \cdot \overline A11 險象(如 AA 從 0 → 1)

e.g.e.g. F=(A+B+C)(C+D)(B+D)F=(A+B+\overline C)(C+D)(\overline B+\overline D).
分析:式中變量 B,C,DB,C , D 均以原變量、反變量形式出現在表達式中,具備競爭條件:

  • ABC=010ABC=010110110 時,表達式爲 F=DDF= D\cdot \overline D,如果 DD010→1,則存在1險象。
  • ABD=000ABD=000 時,表達式爲 F=CCF=C\cdot \overline C ,如果 CC010→1,則存在 11 險象。
  • ACD=011ACD=011 時,表達式爲 F=BBF = B\cdot \overline B, 如果 BB010→1,則存在 11 險象。

(2) 卡諾圖判別法

對於“與-或”電路:在卡諾圖中,如果兩個圈 11 的卡諾圈存在着部分相切 ,且這個相切部分又沒有被其它的圈 11 卡諾圈包含,則該電路必然存在險象
F=A C+ABF= \overline A\ \overline C + AB

對於“或-與”電路: 在卡諾圖中,如果兩個圈 00 的卡諾圈存在着部分相切,且這個相切部分又沒有被其它的圈 00 卡諾圈包含,則該電路必然存在險象
F=(A+C)(B+C)F = (A+C)(B+\overline C)

4. 險象的消除

(1) 加選通脈衝

對下面的電路圖,
(1) 先使 CP0CP = 0關閉與門
(2) 等 AAA\overline A 信號都來到後,讓 CP1CP = 1,得到可靠的 FF

(2) 加冗餘卡諾圈

在相切部分加上冗餘的卡諾圈:
F=AB+BC   F=(A+B)(B+C)\quad F = A\overline B + BC \qquad \qquad \ \ \ F = (A+B)(\overline B +C)

F=AB+BC+ACF=(A+B)(B+C)(A+C)\quad F = A\overline B + BC +AC \quad \quad F = (A+B)(\overline B +C)(A+C)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章