本書第1版為普通高等教育“十一五”國家級規劃教材,2007年被評為江蘇省高等學校精品教材,第2版為“十二五”普通高等教育本科國家級規劃教材。本書在第1、2版的基礎上,按照教育部電子電氣基礎課程教學指導委員會修訂的課程教學基本要求修訂而成。本次修訂使內容更加先進,結構更為合理,特色更加鮮明,是高等院校電氣信息類、機電類、儀器儀表類各專業數字電子技術基礎課程的難得的好教材,而且可作為從事電子技術工作的工程技術人員的參考書。
將傳統數字技術與自動化設計技術有機融合。本教材以數字電子技術的基本理論和基本技能為引導,以EDA平臺和硬件描述語言為設計手段,將數字電子技術課程和EDA技術課程深度融合,建立傳統數字電子技術設計和現代設計方法設計相結合的新課程體系。
保持知識結構的合理性、突顯教材的新穎性。本教材以注重基本概念、基本單元電路、基本方法和典型電路為出發點,保證了數字電路知識點的完整性和合理性,同時教材中安排了許多針對性強的應用實例和自主創新型綜合實踐項目,體現了教材的新穎性。
有利于與后續課程形成良好對接。本教材在構建時兼顧了與后續課程的銜接,包括基本知識的銜接、設計項目的可延伸性以及對創新能力培養,盡可能為后續課程營建良好的接口。
前言Foreword本書第1版為國家普通高等教育“十一五”規劃教材,2007年被評為江蘇省高等學校精品教材,本書第2版為“十二五”普通高等教育本科國家級規劃教材。本書列入“十二五”江蘇省高等學校重點教材,編號:20141121。
本書在前兩版的基礎上,針對傳統教材和教學中存在的問題,按照教育部電子電氣基礎課程教學指導委員會修訂的課程教學基本要求,總結提高、修改增刪而成。第3版教材在編寫時突出了以下特點:
1.將傳統數字技術與現代數字技術有機融合
本教材以數字電子基本理論和基本技能為引導,以EDA平臺和硬件描述語言為設計手段,將數字電子技術課程和EDA技術課程深度融合,建立傳統數字電子技術設計和現代數字電子設計方法相結合的新課程體系。
2.保持知識結構的合理性和新穎性
本教材以注重基本概念、基本單元電路、基本方法和典型電路為出發點,保證了數字電路知識點的完整性和合理性,同時教材中安排了許多針對性強的應用實例和自主創新型綜合實踐項目,體現了教材的新穎性。
3.有利于與后續課程構成創新能力教學課程體系
本教材在構建時兼顧了與后續課程的銜接,包括基本知識的銜接、設計項目的可延伸性以及對創新能力培養的鋪墊等,盡可能為后續課程創建良好的接口,由此可將數字電路、單片機技術、EDA技術、SoC、嵌入式系統等具有較大相關性的課程構建一個創新課程系列有機體。這可以優化相關專業的課程設置,讓學生提前進入理論與工程實踐相結合的高效學習和訓練階段,提前激發創造欲望,提前具備進入自主設計性空間的能力,提前為未來的學習和實踐打開充裕的時間空間、自主學習空間和就業準備空間。4.注重創新能力的培養
本教材通過教材的啟迪和教材中大量的有創意啟發性的項目的訓練,能動地激發創新意識,培養自主創新能力,從而使學生在數字電子技術的基本理論、實踐能力和創新精神3方面能得到同步收獲,有能力提早進入大學生課外科技活動。本教材以數字電路傳統技術的介紹為基礎,以自動化設計技術的學習為能力培養的手段,注重現代數字技術基本知識、理論和方法的介紹,注重工程能力、分析能力和實踐能力的培養,全書構建了從介紹基礎知識向創新能力培養逐級遞進的學習和實踐的階梯。
參加本書第3版編寫工作的有吳志敏(第1、2章)、梁向紅(第3、4章)、陸貴榮(第5、6、7章)、朱正偉(第8章)、何寶祥(第9章)、儲開斌(第10章),朱正偉負責全書的策劃、組織和定稿。
作者雖然力求完美,但由于水平有限,錯誤和疏漏之處難免,懇請關心本教材的師生和其他讀者不吝指正。
編者2017年4月◆數字電路邏輯設計(第3版)
第3章chapter3
組合邏輯電路1.1微型計算機簡介引言數字系統中常用的邏輯電路,就其結構和工作原理可分為兩類:一類叫組合邏輯電路,簡稱組合電路;圖3.1組合邏輯電路
一類叫時序邏輯電路,簡稱時序電路。組合邏輯電路的基本組成單元是邏輯門電路。這種電路在任一時刻輸出狀態只取決于該時刻的輸入狀態,而與輸入信號作用前電路所處的狀態無關;在時序邏輯電路中,任意時刻的輸出狀態不僅取決于該時刻的輸入狀態,而且取決于從前電路的狀態。本章討論組合邏輯電路,組合電路的一般結構可用方框圖3.1表示,其輸出與輸入之間的邏輯關系是:Z1=f1(X1,X2,…,Xn),Z2=f2(X1,X2,…,Xn),…,Zm=fm(X1,X2,…,Xn)
從電路結構看,它具有如下特征:
(1)信號是單向傳輸的,輸出輸入之間沒有反饋通道;
(2)只由邏輯門組成,電路中不含記憶單元。
組合電路可以單獨完成各種復雜的邏輯功能,而且還是時序邏輯電路的組成部分,在數字系統中應用十分廣泛。本章首先介紹小規模組合邏輯電路的分析與設計方法,然后討論典型的中規模集成組合邏輯電路的功能和應用,最后闡述競爭冒險產生的原因及消除方法。
3.1傳統的組合邏輯電路的分析與設計
小規模集成(SSI)電路中的門,如與門、或門、與非門、或非門、與或非門、異或門等都是獨立的。本節主要介紹以這些門電路為基本組成單元的組合電路的分析與設計。
3.1.1傳統的組合電路分析
所謂組合電路的分析,是指已知邏輯電路,尋找輸出與輸入之間邏輯關系,確定電路功能的過程。其步驟大致如下:
(1)由給定的邏輯圖寫出所有用來描述輸出輸入關系的邏輯表達式;
(2)將已得到的邏輯函數表達式簡化成最簡與或表達式,或視具體情況變換成其他適當的形式;
(3)根據邏輯函數表達式列真值表;
(4)根據真值表,進行分析并概括出給定組合邏輯電路的邏輯功能。
例3.1分析圖3.2所示電路的功能。
圖3.2例3.1邏輯電路和符號
解:(1)寫出邏輯表達式。
D=AB,E=AD,F=DB,S=EF
(2)化簡邏輯表達式。
S=AD·DB=AD+DB=AAB+ABB=AB
◆數字電路邏輯設計(第3版)第◆3章組合邏輯電路(3)列真值表,如表3.1所示。表3.1例3.1真值表輸入輸出ABS000011101110(4)對真值表中的數值進行分析可以看出,該電路完成了邏輯上的異或運算,異或邏輯符號見圖3.2(b),它同時還可以實現二進制運算。
例3.2分析圖3.3(a)所示電路的功能。
圖3.3例3.2圖解:(1)寫出邏輯表達式。
S=AAB·BAB
C=AB
(2)化簡邏輯表達式。
S=B+A
C=AB
(3)列真值表,如表3.2所示。表3.2例3.2真值表輸入輸出ABSC0000011010101101(4)根據圖3.3和表3.2分析,可以將此電路看成是一個異或門(輸出S:同例3.1)和一個與門(輸出C)的合成,若A、B分別作為一位二進制數,則S就是A與B相加和的本位,C就是A與B相加和的進位。這種電路被稱為半加器,圖3.3(b)為它的邏輯符號,其特點是不考慮從低位的進位。若要考慮從低位來的進位,則電路可以將半加器作為單元電路經過一定的組合設計得到。
在分析復雜一些的組合邏輯電路時,除了上述按照邏輯門逐級分析的辦法外,還可以將電路進行模塊劃分。若熟悉一些重要的基本單元電路(如例3.2的半加器),則可以直接從單元電路入手,分析單元電路在新建電路中的作用,最終得出復雜電路的邏輯功能。
例3.3分析圖3.4(a)所示電路的功能。
圖3.4例3.3電路圖
如圖3.4(a)所示,其中,Ai、Bi和Ci-1分別表示加數、被加數和從低位的進位,Si和Ci分別表示和的本位和進位。這樣一個包括低位來的進位輸入在內的二進制加法電路,稱之為全加器,邏輯符號如圖3.4(b)所示。全加器的真值表如表3.3所示。表3.3例3.3真值表輸入輸出輸入輸出AiBiCi-1SiCiAiBiCi-1SiCi0000000110010100110110010101011100111111(1)用兩個半加器(虛線框)和一個或門實現了全加器:先求兩個加數的半加和,再與低位的進位作第二次半加,所得結果即全加器的和。
(2)兩個半加器的進位作邏輯加,即得全加器的進位。
例3.4分析圖3.5所示電路的功能。
圖3.5例3.4圖
解:由圖3.5寫出邏輯表達式F=(10)D0+(1A0)D1+(A10)D2+(A1A0)D3根據表達式列出真值表,如表3.4所示。由表可以看出,當A1A0賦予不同的代碼值時,輸出F將獲取相應的輸入Di(i=0,1,2,3)。故電路相當于一個四路選擇開關,對輸入具有選擇并輸出的功能。
表3.4例3.4真值表輸入輸出A1A0F00D001D110D211D3由以上例題可以看出,在組合電路的分析過程中,寫出邏輯表達式、列出真值表并不難,而由真值表說明電路的功能對初學者來講就比較難,它需要一定的知識積累。
3.1.2傳統的組合電路設計
所謂組合電路的設計,是指根據所要求實現的邏輯功能,設計出相應的邏輯電路的過程,在某些場合組合電路的設計也被稱為邏輯綜合。設計通常以電路簡單、所用器件最少為目標。用代數法和卡諾圖法化簡邏輯函數,就是為了獲得最簡的形式,以便能用最少的門電路來組成邏輯電路。
組合電路的設計步驟大致如下:
(1)根據命題,分析輸出輸入關系,列出真值表;
(2)由真值表,寫出有關邏輯表達式或畫卡諾圖;
(3)運用卡諾圖或其他化簡方法化簡輸出邏輯,注意化簡的結果必須符合原來問題的要求,如:邏輯門類型的限制,輸入端是否允許出現反變量等;
(4)根據輸出邏輯表達式,畫出邏輯電路圖。
在進行組合邏輯電路的設計時,可以用多種邏輯電路實現同一邏輯函數。例如用邏輯電路來實現邏輯函數F=A·AB+B·AB。
(1)直接用與非門、與門、或非門實現,參見圖3.6(a)。
圖3.6邏輯函數的代數變換
(2)邏輯代數變換后,用與非門實現F=ABA+B=AB··參見圖3.6(b)。
(3)代數變換后,用同或門實現F=A++B+=A+B=+AB參見圖3.6(c)。
結論:以上均為同或門的邏輯電路和表達式,可見,一個邏輯問題對應的真值表是唯一的,但實現它的邏輯電路是多樣的,可根據不同器件,通過邏輯表達式的變換來實現。
例3.5試設計一個3人多數表決電路。
解:(1)設3人A、B、C為輸入,同意為1,不同意為0;表決結果F為輸出,F始終同輸入的大多數狀態一致,即輸入A、B、C之中有2個或3個為1時,輸出為1;其余情況,輸出為0。由此可列真值表,如表3.5所示。表3.5例3.5真值表輸入輸出ABCF00000010010001111000101111011111(2)畫出卡諾圖如圖3.7所示。
圖3.7卡諾圖
(3)卡諾圖化簡(也可先寫出邏輯表達式,再根據邏輯代數運算法則化簡)得最簡與或表達式F=AB+BC+AC(4)得出相應的邏輯圖如圖3.8(a)所示。若要求用與非門實現,則還需將上述表達式變換成如下形式F=AB·BC·AC再畫出相應的邏輯圖,如圖3.8(b)所示。讀者可進一步思考,若全部用兩輸入端與非門,怎么辦?
圖3.83人表決器
例3.6試用兩輸入與非門和反相器設計一個四舍五入的邏輯電路。用以判別一位8421碼是否大于等于5,大于等于5時,電路輸出為1,否則為0。
解:(1)根據題意列真值表。
假設輸入的8421碼用A、B、C、D表示,輸出用F表示,則可得真值表如表3.6所示。當ABCD=0000~0100時,F=0;當ABCD=0101~1001時,F=1;需要說明的是:輸入ABCD不可能取值1010~1111,這在邏輯電路設計中被稱為約束條件,既然這些輸入組合不會出現,也就不必要求對應的輸出是什么,或者說輸出可以是1,也可以是0,所以稱其為任意項或無關項,一般在表達式中用d(真值表中用×)表示。表3.6例3.6真值表輸入輸出輸入輸出ABCDFABCDF00000100010001010011001001010×001101011×010001100×010111101×011011110×011111111×(2)求最簡與或表達式。
根據表3.6中最后6個最小項作無關項處理,可以寫出函數的最小項表達式F=∑(m5,m6,m7,m8,m9)+∑d(m10,m11,m12,m13,m14,m15)直接填入卡諾圖,如圖3.9所示。由此可得最簡與或表達式F=A+BC+BD(3)若要求用兩輸入與非門和反相器實現,則還需將上述表達式變換成如下形式F=A+BC+BD=·BC·BD=·BC·BD=·BC+BD=·BC·BD(4)畫出邏輯圖,如圖3.10所示。
圖3.9例3.6卡諾圖圖3.10例3.6邏輯圖從以上例題可以看出,由命題列出真值表是電路設計的關鍵。而邏輯表達式的不同形式決定了邏輯電路的結構組成,所以要得到一個符合實際要求的邏輯電路,邏輯表達式的化簡和變換同樣非常重要。
例3.7試用兩輸入與非門和反相器設計一個優先排隊電路。火車有高鐵、動車和普通客車。它們進出站的優先次序是:高鐵、動車和普通客車,同一時刻只能有一列車進出。
解:(1)由題意進行邏輯抽象。火車用輸入變量高鐵A、動車B、普通客車C,輸出信號為FA、FB、FC,當高鐵A=1時,無論動車B、普通客車C為何值,FA=1,FB=FC=0;當動車B=1,且A=0時,無論C為何值,FB=1,FA=FC=0;當普通客車C=1,且A=B=0時,FC=1,FA=FB=0。
(2)經過邏輯抽象,可列真值表,如表3.7所示。表3.7例3.7真值表輸入輸出ABCFAFBFC0000001XX10001X010001001(3)寫出邏輯表達式。FA=A,FB=B,FC=C根據題意,變換成與非形式FA=A,FB=B,FC=C=·C(4)畫出邏輯電路圖,如圖3.11所示。
圖3.11例3.7邏輯圖
該邏輯電路可用一片內含4個兩輸入端的與非門74LS00和另一片內含6個反相器74LS04的集成電路組成,也可用兩片內含4個兩輸入端的與非門74LS00的集成電路組成。注意:原邏輯表達式雖然是最簡形式,但它需要一片反相器和一片三輸入端的與門才能實現,器件數和種類都不能節省。由此可見最簡的邏輯表達式用一定規格的集成器件實現時,其電路結構不一定是最簡單和經濟的。設計邏輯電路時應以集成器件為基本單元,而不應以單個門為單元,這是工程設計與理論分析的不同之處。
3.2編碼器與譯碼器〖4/5〗3.2.1編碼器所謂編碼,即將某一信息(輸入)變換為某一特定的代碼(輸出),如把二進制碼按一定規律編排,使每組代碼都具有各自特定的含義。常見的編碼器是將m個輸入狀態信息變換成一個n位二進制碼,其中m、n滿足2n≥m,例如m=8,n=3,就稱8線3線編碼器。編碼器通常分為普通編碼器和優先編碼器兩種,以下分別以4線2線編碼器和74LS148為例予以介紹。
1.普通編碼器
普通編碼器的特點是只允許在一個輸入端加有效信號,否則輸出將會出現混亂。
普通4線2線編碼器真值表如表3.8(a)所示。表3.84線2線編碼器真值表
(a)普通4線2線編碼器真值表輸入輸出I0I1I2I3Y1Y0100000010001001010000111(b)加控制端的普通4線2線編碼器真值表輸入輸出狀態指示I0I1I2I3Y1Y0YS0000××01000001010001100101010001111編碼器的輸入為高電平有效。由真值表可得輸出編碼的邏輯表達式為Y1=0·1·I2·3+0·1·2·I3
Y0=0·I1·2·3+0·1·2·I3該電路存在的問題是當所有的輸入都為0時,電路的輸出為Y1Y0=00,和真值表中第一行的編碼一樣,無法區分,所以,提出一種解決方案,就是在輸出端引入狀態指示端子YS來區分有編碼輸入和無編碼輸入的情況,參見表3.8(b)。
……