數(shù)字邏輯與系統(tǒng)設(shè)計(jì)(陳彥輝) 課件全套 第1-8章 數(shù)字化處理基礎(chǔ)- 數(shù)字系統(tǒng)設(shè)計(jì)_第1頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì)(陳彥輝) 課件全套 第1-8章 數(shù)字化處理基礎(chǔ)- 數(shù)字系統(tǒng)設(shè)計(jì)_第2頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì)(陳彥輝) 課件全套 第1-8章 數(shù)字化處理基礎(chǔ)- 數(shù)字系統(tǒng)設(shè)計(jì)_第3頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì)(陳彥輝) 課件全套 第1-8章 數(shù)字化處理基礎(chǔ)- 數(shù)字系統(tǒng)設(shè)計(jì)_第4頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì)(陳彥輝) 課件全套 第1-8章 數(shù)字化處理基礎(chǔ)- 數(shù)字系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩1007頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章數(shù)字化處理基礎(chǔ)1.1數(shù)字處理系統(tǒng)1.2處理流程1.3進(jìn)制與運(yùn)算1.4編碼1.5布爾邏輯1.6邏輯的電路實(shí)現(xiàn)1.7數(shù)字集成電路1.8數(shù)字電路系統(tǒng)的結(jié)構(gòu)與設(shè)計(jì)

1.1數(shù)字處理系統(tǒng)

如圖1-1所示,信息處理系統(tǒng)主要由五部分構(gòu)成:信息獲取、信息加工、信息顯示、信息存儲(chǔ)、信息傳輸。圖中,豎虛線左側(cè)實(shí)框部件屬于當(dāng)前信息系統(tǒng),豎虛線右側(cè)的虛框部件屬于另一個(gè)信息系統(tǒng)。

圖1-1信息處理系統(tǒng)的結(jié)構(gòu)

信息獲取就是信息輸入,即從外部獲得信息;信息顯示就是信息輸出,即向外部展示信息;信息存儲(chǔ)就是信息保存,即將歷史信息和計(jì)算結(jié)果保存起來以備將來使用;信息傳輸就是多個(gè)信息處理系統(tǒng)之間的信息交互;信息加工是信息處理系統(tǒng)的核心,即處理輸入的信息,保存部分結(jié)果或讀取以前的部分信息,傳輸共享信息,輸出處理后的信息,供外部使用或展示。

對(duì)于信息處理系統(tǒng)而言,信息獲取是將物理量變成電路量(比如電壓或電流),信息顯示是將電路量變成物理量,信息存儲(chǔ)是采用介質(zhì)保存電路量,信息傳輸是將電路量通過介質(zhì)傳遞出去,信息加工是將輸入電路量通過相應(yīng)的處理電路產(chǎn)生新的電路量。

最簡(jiǎn)單、最基本的信息處理系統(tǒng)由信息獲取、信息加工和信息顯示三部分組成。

下面以一個(gè)飲料灌裝機(jī)的操作為例,介紹一個(gè)基本的信息處理系統(tǒng)。

圖1-2是一款飲料人工控制灌裝機(jī)的控制原理示意圖。其操作步驟如下:

(1)當(dāng)飲料盒就緒時(shí),壓電轉(zhuǎn)換器將重量變?yōu)橄鄳?yīng)的電信號(hào),經(jīng)過放大后在電壓表上顯示,電壓表的指針讀數(shù)代表飲料盒的重量。

(2)根據(jù)電壓表的指針讀數(shù)決定需要給電磁鐵多大電流來打開或關(guān)閉閥門。

(3)根據(jù)所需要的電流大小來調(diào)節(jié)電流控桿,輸出相應(yīng)的電流來驅(qū)動(dòng)電磁鐵。電流驅(qū)動(dòng)電路控制電磁鐵的磁力大小,從而決定銜鐵的位置(即閥門的開啟度)。

圖1-2飲料人工控制灌裝機(jī)的控制原理示意圖

圖1-3是根據(jù)電壓控制電流的一種曲線。當(dāng)檢測(cè)到有飲料盒時(shí),首先緩慢注入飲料,以防濺出;然后逐漸加快注入速度,直到閥門全打開;在飲料盒快要被注滿時(shí),逐漸關(guān)閉閥門。這個(gè)操控過程可以描述為如圖1-4所示的流程。

圖1-3電壓控制電流曲線

圖1-4人工操控流程

為了提升工作效率,可采用信息處理系統(tǒng)電路來模擬人工控制。圖1-5展示了基于信息處理系統(tǒng)電路的自動(dòng)控制灌裝系統(tǒng)的結(jié)構(gòu)。圖1-5基于信息處理系統(tǒng)電路的自動(dòng)控制灌裝系統(tǒng)的結(jié)構(gòu)

數(shù)值是采用數(shù)位表示的,每數(shù)位采用一根導(dǎo)線來實(shí)現(xiàn),每根導(dǎo)線上提供多個(gè)電路量來表示每位上的數(shù)值。電路量通常采用電平,它是導(dǎo)線與公共點(diǎn)之間的電壓,即電位差。公共點(diǎn)通常稱為該電路的地,其值定義為0V。

實(shí)現(xiàn)R

進(jìn)制數(shù)的電路稱為R進(jìn)制電路,R進(jìn)制電路中需要R個(gè)不同電平。對(duì)于二進(jìn)制電路,需要2個(gè)電平,即高電平和低電平;電路的每根導(dǎo)線代表一個(gè)數(shù)位,且只有兩種電平,即表示1的高電平和表示0的低電平。一個(gè)N

位二進(jìn)制數(shù)D=(DN-1DN-2…D1D0)2需要N

根導(dǎo)線傳輸。

采用高低電平表示的二進(jìn)制電信號(hào)通常稱為數(shù)字信號(hào),從外部獲取的信號(hào)和輸出至外部的信號(hào)通常稱為模擬信號(hào),模擬信號(hào)與數(shù)字信號(hào)之間需要采用專用電路進(jìn)行轉(zhuǎn)換。采用模/數(shù)轉(zhuǎn)換器(相當(dāng)于人的眼睛)將模擬電壓轉(zhuǎn)換為數(shù)值,即得到輸入數(shù)據(jù)。采用數(shù)/模轉(zhuǎn)換器(相當(dāng)于人的手)將控制數(shù)值轉(zhuǎn)換為相應(yīng)大小的電流,即可實(shí)現(xiàn)對(duì)閥門的開啟控制。采用數(shù)字電路(相當(dāng)于人的大腦)對(duì)輸入數(shù)據(jù)進(jìn)行存儲(chǔ)、比較、運(yùn)算等操作,計(jì)算出控制數(shù)值,即產(chǎn)生輸出數(shù)據(jù)。因此,由模/數(shù)轉(zhuǎn)換器、數(shù)字電路、數(shù)/模轉(zhuǎn)換器構(gòu)成了數(shù)字處理系統(tǒng),相應(yīng)的系統(tǒng)結(jié)構(gòu)如圖1-6所示。

圖1-6基于數(shù)字處理系統(tǒng)的自動(dòng)控制灌裝系統(tǒng)的結(jié)構(gòu)

1.2處理流程

處理流程可以按順序逐個(gè)操作進(jìn)行,這種方式稱為串行處理。處理中有多個(gè)相對(duì)獨(dú)立的操作是可以同時(shí)進(jìn)行的,這種方式稱為并行處理。通常一個(gè)處理流程是采用串行處理共同和并行處理共同完成的,一般也可以只采用串行處理方式,如同常規(guī)的微處理器執(zhí)行程序的方式。

1.數(shù)值運(yùn)算

數(shù)值運(yùn)算是針對(duì)數(shù)值本身進(jìn)行的,體現(xiàn)為數(shù)值的改變以及運(yùn)算過程中標(biāo)志的產(chǎn)生。數(shù)值運(yùn)算有算術(shù)運(yùn)算(加、減、乘、除)、比較運(yùn)算(大于、小于、等于、不大于、不小于、不等于)、邏輯運(yùn)算(與、或、非)。

一個(gè)處理流程中涉及的運(yùn)算通常是由數(shù)值運(yùn)算構(gòu)成的復(fù)合運(yùn)算。數(shù)值運(yùn)算通常采用算術(shù)運(yùn)算、比較運(yùn)算、邏輯運(yùn)算按照一定規(guī)則構(gòu)成混合運(yùn)算。

能夠?qū)崿F(xiàn)算術(shù)運(yùn)算、邏輯運(yùn)算的模塊稱為算術(shù)邏輯運(yùn)算器,實(shí)現(xiàn)比較運(yùn)算的模塊稱為比較器,如圖1-7所示。

圖1-7數(shù)值運(yùn)算模塊

2.數(shù)據(jù)存取

在處理流程中有許多計(jì)算結(jié)果需要保存,以供后面運(yùn)算使用。然而并不是所有計(jì)算結(jié)果都需要保存,若中間結(jié)果被立即使用,則不需要保存。例如:y1=f1(x),y=f2(y1),這里y1不需要保存。又如:s=s+1,這里s需要保存,每次計(jì)算是對(duì)s的更新。

數(shù)據(jù)存取通常采用如圖1-8所示的兩種部件:一種是寄存器,另一種是存儲(chǔ)器。

圖1-8數(shù)據(jù)存取模塊

為了區(qū)別出寄存器觸發(fā)前后的輸出值,通常將觸發(fā)前的值稱為現(xiàn)態(tài)值,將觸發(fā)后的值稱為次態(tài)值,記為Qn+1。觸發(fā)時(shí)刻完成Qn+1=D

的操作。

圖1-8(a)中寄存器保存s的值。若s在賦值操作符左邊,則表示由cp觸發(fā)的保存操作,保存的是次態(tài)值,如sn+1=d。

存儲(chǔ)數(shù)據(jù)通常簡(jiǎn)稱為寫數(shù),如x[k]=d。獲取數(shù)據(jù)通常簡(jiǎn)稱為讀數(shù),如y=x[k]。寫數(shù)和讀數(shù)操作統(tǒng)稱為訪問。存儲(chǔ)器訪問時(shí)只能操作一個(gè)存儲(chǔ)單元,訪問時(shí)需要給出數(shù)據(jù)所在之處的地址和讀寫標(biāo)識(shí)。

如圖1-8(b)所示,存儲(chǔ)器通常有地址輸入端、讀寫控制端、數(shù)據(jù)輸入端和數(shù)據(jù)輸出端。當(dāng)?shù)刂份斎攵藶閗

時(shí),表明存儲(chǔ)器的操作對(duì)象是地址為k

的存儲(chǔ)單元x[k]。根據(jù)讀寫控制端rw的控制值決定是讀操作還是寫操作。讀操作時(shí)數(shù)據(jù)輸出端y

輸出x[k]的當(dāng)前值,寫操作時(shí)x[k]值更新為數(shù)據(jù)輸入端d的值。

3.流程控制

程序控制結(jié)構(gòu)可分為三種結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

1)分支結(jié)構(gòu)

分支結(jié)構(gòu)有四種主要結(jié)構(gòu),即單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)和開關(guān)結(jié)構(gòu),如圖1-9所示。分支結(jié)構(gòu)的實(shí)質(zhì)是利用比較運(yùn)算結(jié)果進(jìn)行選擇操作。

圖1-9四種分支的結(jié)構(gòu)圖

分支結(jié)構(gòu)的實(shí)質(zhì)是根據(jù)條件選擇一個(gè)支體去執(zhí)行。對(duì)于某個(gè)變量,在每個(gè)支體中都可能被賦予新值,但最后只能有一個(gè)分支體的計(jì)算結(jié)果被輸出。這種從多個(gè)值中選擇其中之一的模塊稱為選擇器,如圖1-10(a)所示。圖中

N

個(gè)數(shù)據(jù)輸入端D0~DN-1

連接

N

個(gè)不同的數(shù)據(jù),控制輸入端C

指明選擇輸入端的序號(hào)c,數(shù)據(jù)輸入端Y

輸出所選擇輸入端的數(shù)據(jù)Dc。

序號(hào)的產(chǎn)生是由多個(gè)比較的結(jié)果組合形成的,這種組合模塊稱為編碼器,如圖1-10(b)所示,它將多種輸入按一定組合產(chǎn)生0~N-1中的某個(gè)數(shù)值來代表當(dāng)前的輸入值組合。

分支結(jié)構(gòu)可以采用如圖1-10(c)所示的結(jié)構(gòu)來實(shí)現(xiàn)。圖中

K

個(gè)輸入數(shù)值x0~xK-1

通過多個(gè)比較器產(chǎn)生所需要的比較結(jié)果,這些比較結(jié)果通過編碼器產(chǎn)生相應(yīng)的支路編號(hào)n,支路編號(hào)控制選擇器從

N

個(gè)數(shù)據(jù)d0~dN-1中選出dn

輸出。

圖1-10分支結(jié)構(gòu)的實(shí)現(xiàn)部件與結(jié)構(gòu)

2)循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)有三種基本結(jié)構(gòu),即當(dāng)型、直到型和計(jì)數(shù)型,如圖1-11所示。三種循環(huán)方式面向不同的應(yīng)用流程描述,其本質(zhì)都是比較執(zhí)行。循環(huán)結(jié)構(gòu)的實(shí)質(zhì)是含有返回操作的分支結(jié)構(gòu)。

圖1-11三種循環(huán)結(jié)構(gòu)的示意圖

4.流程執(zhí)行

在數(shù)據(jù)處理過程中,有的操作可以同時(shí)進(jìn)行,有的操作按先后順序執(zhí)行,采用寄存器保存的操作是在保存時(shí)刻完成的。

假如計(jì)算

N

個(gè)數(shù)的絕對(duì)值之和,這

N個(gè)數(shù)已經(jīng)保存在N個(gè)連續(xù)的存儲(chǔ)空間中,其計(jì)算的數(shù)學(xué)公式為

計(jì)算絕對(duì)值和常用的處理流程圖如圖1-12所示。圖1-12計(jì)算絕對(duì)值和的處理流程圖

處理流程通常采用串行處理的思路來描述。但當(dāng)采用電路實(shí)現(xiàn)時(shí),各種操作都是同時(shí)存在的,沒有所謂的開始、執(zhí)行和結(jié)束,只有重啟、執(zhí)行和保持。因此,處理過程要通過采用不同的信號(hào)或比較結(jié)果來確定當(dāng)前所要執(zhí)行的操作,按照這個(gè)思路可以得到如圖1-13所示的變形圖。

圖1-13計(jì)算絕對(duì)值和的處理流程的變形圖

根據(jù)處理流程可構(gòu)建出如圖1-14所示的模塊結(jié)構(gòu)。圖1-14計(jì)算絕對(duì)值和的處理流程的模塊結(jié)構(gòu)

1.3進(jìn)制與運(yùn)算

數(shù)據(jù)采用一個(gè)數(shù)值來表示,數(shù)值可以采用不同的進(jìn)制來表達(dá)。

在日常生活中,我們經(jīng)常用十進(jìn)制數(shù)來表示數(shù)值,如128、12.05、-34.4。十進(jìn)制數(shù)采用十個(gè)數(shù)符“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”分別表示值0、1、2、3、4、5、6、7、8、9,這些數(shù)符也稱為基數(shù)。一個(gè)十進(jìn)制數(shù)由多個(gè)數(shù)符排列而成,每個(gè)數(shù)符占一數(shù)位,每個(gè)數(shù)位的權(quán)值是10的冪。因此,十進(jìn)制數(shù)aN-1…a0.a-1…a-M

可以表示為

數(shù)值可以采用任何大于1的整數(shù)進(jìn)制來表示。對(duì)于R進(jìn)制數(shù),有R

個(gè)數(shù)符作為基數(shù),分別表示值0,1,…,R-1。采用這些基數(shù)排列可以構(gòu)成任意數(shù)值。假定某R

進(jìn)制數(shù)有N個(gè)整數(shù)位和M

個(gè)小數(shù)位,則可以表示為

1.3.1二進(jìn)制數(shù)

二進(jìn)制數(shù)采用“0”和“1”兩個(gè)數(shù)符作為基數(shù),分別代表值0和1。二進(jìn)制數(shù)與十進(jìn)制數(shù)的表示方式相近,同樣由整數(shù)和小數(shù)兩部分組成,其通用表達(dá)式為(bN-1…b0.b-1…b-M)2,bi∈{0,1}。例如,(11011)2、(101.101)2。在某些情況下,二進(jìn)制數(shù)采用括號(hào)不方便,可直接在數(shù)字后面加上“B”來表示其為二進(jìn)制數(shù),如11011B、101.101B。

二進(jìn)制數(shù)的每一位權(quán)值是2的冪,二進(jìn)制數(shù)的值采用權(quán)值與數(shù)位的組合來計(jì)算其十進(jìn)制數(shù),通用公式如下:

在將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),整數(shù)部分和小數(shù)部分需要分別對(duì)待,具體轉(zhuǎn)換方法如下所述。

1.整數(shù)部分

對(duì)于整數(shù)部分,采用的是輾轉(zhuǎn)除二取余法,即對(duì)需要轉(zhuǎn)換的十進(jìn)制整數(shù)連續(xù)除以2,直到商值為0后,再將所有的余數(shù)逆序排列即可得到對(duì)應(yīng)的二進(jìn)制的整數(shù)部分。

例如,求值為12的二進(jìn)制數(shù),其計(jì)算過程為

由此可得,12=1100B。

2.小數(shù)部分

對(duì)于小數(shù)部分,采用的是輾轉(zhuǎn)乘二取整法,即對(duì)需要轉(zhuǎn)換的十進(jìn)制小數(shù)先對(duì)其乘以2,取乘積的整數(shù)部分作為二進(jìn)制小數(shù)部分的第一位數(shù)字,隨后取乘積的小數(shù)部分作為新的乘數(shù)去乘以2,以此方法循環(huán)執(zhí)行,直到乘積為整數(shù)時(shí)為止。最后將所有的個(gè)位整數(shù)值順序排列即可得到對(duì)應(yīng)的二進(jìn)制的小數(shù)部分。

1.3.2十六進(jìn)制數(shù)與八進(jìn)制數(shù)

二進(jìn)制數(shù)采用0和1來表示,而當(dāng)數(shù)值較大時(shí)位數(shù)較多,不方便使用此方法。為此,在實(shí)際應(yīng)用中多采用十六進(jìn)制或八進(jìn)制表示法。

十六進(jìn)制數(shù)采用“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“A”“B”“C”“D”“E”“F”這16個(gè)數(shù)符分別表示值0~15。十六進(jìn)制數(shù)采用H作為后綴或以0x為前綴,如21EH、0x1C。采用H作后綴時(shí),若高位為

A~F,則須加“0”為前綴,如0A1H。

將二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)時(shí),整數(shù)部分從小數(shù)點(diǎn)向左,小數(shù)部分從小數(shù)點(diǎn)向右,每4位二進(jìn)制數(shù)可表示為1位十六進(jìn)制數(shù)。將十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),將每位十六進(jìn)制數(shù)寫成4位二進(jìn)制數(shù),仍按原順序排列即可。十六進(jìn)制數(shù)與二進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系如表1-1所示。

例如:

將二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)時(shí),整數(shù)部分從小數(shù)點(diǎn)向左,小數(shù)部分從小數(shù)點(diǎn)向右,每3位二進(jìn)制數(shù)可表示為1位八進(jìn)制數(shù)。將八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),將每位八進(jìn)制數(shù)寫成3位二進(jìn)制數(shù),仍按原順序排列即可。八進(jìn)制數(shù)與二進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系如表1-2所示。

例如:

1.3.3二進(jìn)制數(shù)的算術(shù)運(yùn)算

二進(jìn)制數(shù)的算術(shù)運(yùn)算與十進(jìn)制數(shù)的算術(shù)運(yùn)算類似。

1.加法

加法的規(guī)則是同位相加,逢2進(jìn)1。具體公式表示如下:

例如,11+14=25,用二進(jìn)制數(shù)加法運(yùn)算表示為1011B+1110B=11001B,其運(yùn)算豎式如下,其中有三次進(jìn)位。

2.減法

減法的規(guī)則是同位相減,借1當(dāng)2。具體公式表示如下:

0-0=0,1-0=1,1-1=0,10-1=1

例如,25-14=11,用二進(jìn)制數(shù)減法運(yùn)算表示為11001B-1110B=1011B,其運(yùn)算豎式如下,其中有三次借位。

3.乘法

乘法采用與十進(jìn)制相似的“逐位相乘,移位相加”的規(guī)則。例如,11×7=77,即1011B×111B=1001101B,其計(jì)算過程如下:

4.除法

除法采用與十進(jìn)制相似的規(guī)則。例如,77÷7=11,即1001101B÷111B=1011B,其計(jì)算過程如下:

1.4編

1.4.1有符號(hào)數(shù)的編碼在數(shù)的編碼中,分為無符號(hào)數(shù)編碼和有符號(hào)數(shù)編碼。無符號(hào)數(shù)是指數(shù)值是非負(fù)數(shù),所有位都是數(shù)值;而有符號(hào)數(shù)是有正負(fù)之分的,將最高位作為符號(hào)位,0表示正,1表示負(fù),其他位為數(shù)值。有符號(hào)數(shù)的編碼可以采用原碼、反碼和補(bǔ)碼三種形式來表示。

1.原碼

原碼就是在絕對(duì)值的二進(jìn)制數(shù)值前面加上符號(hào)。例如:

將(+15)+(-15)按原碼進(jìn)行二進(jìn)制加計(jì)算,計(jì)算過程如下:

其結(jié)果是101110而不是0,所以原碼不適合直接進(jìn)行加法計(jì)算。

對(duì)于字長(zhǎng)為n

的原碼,其正數(shù)范圍為[1,2n-1-1],負(fù)數(shù)范圍為[-(2n-1-1),-1],共有2n-1個(gè)編碼,不存在只有最高位為1而其他位為0的編碼。

對(duì)n=4的原碼,其正數(shù)原碼為0001~0111,即1~7;負(fù)數(shù)原碼為1111~1001,即-7~-1,不存在編碼1000。

2.反碼

正數(shù)的反碼與其原碼相同,負(fù)數(shù)的反碼是將其絕對(duì)值的數(shù)值按位取反后再與符號(hào)位連接而成。例如:

對(duì)于字長(zhǎng)為n

的反碼,其正數(shù)范圍為[1,2n-1-1],負(fù)數(shù)范圍為[-(2n-1-1),-1],共有2n-1個(gè)編碼,不存在全1的編碼。對(duì)n=4的反碼,其正數(shù)的反碼為0001~0111,即1~7;負(fù)數(shù)反碼為1000~1110,即-7~-1,不存在編碼1111。

反碼也不適合直接進(jìn)行加法計(jì)算。

3.補(bǔ)碼

對(duì)于字長(zhǎng)為n

的補(bǔ)碼,正數(shù)的補(bǔ)碼與其原碼相同,負(fù)數(shù)的補(bǔ)碼是2n

減去其絕對(duì)值后所得到的二進(jìn)制數(shù)。例如:

需要注意的是:-2n-1

是可以編碼的,它所對(duì)應(yīng)的二進(jìn)制數(shù)值為2n-1。其正數(shù)范圍為[1,2n-1-1],負(fù)數(shù)范圍為[-2n-1,-1],共有2n

個(gè)編碼。對(duì)n=4的補(bǔ)碼,其正數(shù)的補(bǔ)碼為0001~0111,即1~7;負(fù)數(shù)的補(bǔ)碼為1000~1111,即-8~-1。

將(+15)+(-15)按補(bǔ)碼進(jìn)行二進(jìn)制加計(jì)算,計(jì)算過程如下:

5位值為0,可以進(jìn)行加法運(yùn)算。

將(+15)-(-15)按補(bǔ)碼進(jìn)行二進(jìn)制減法計(jì)算,計(jì)算過程如下:

計(jì)算結(jié)果為11110,按無符號(hào)數(shù)來看是30,但按有符號(hào)數(shù)來看是2,這主要是由于計(jì)算結(jié)果超過有效數(shù)字位,即字長(zhǎng)不夠造成的。因此采用字長(zhǎng)為6,從而[+15]補(bǔ)=001111,[-15]補(bǔ)=110001,這樣兩者的和與差都正確了。

補(bǔ)碼是數(shù)字處理最為常用的表達(dá)方式。

1.4.2二

十進(jìn)制編碼(BCD碼)

BCD碼采用10種四位二進(jìn)制碼來表示十進(jìn)制數(shù)0~9。

8421BCD碼是指權(quán)值分別為8、4、2、1的四位二進(jìn)制碼。5421BCD碼是指權(quán)值分別為5、4、2、1的四位二進(jìn)制碼。2421BCD碼是指權(quán)值分別為2、4、2、1的四位二進(jìn)制碼。余3碼是8421碼的每個(gè)碼組加3而得的四位二進(jìn)制碼。

表1-3是這四種BCD碼與十進(jìn)制數(shù)的對(duì)應(yīng)表。

1.4.3格雷碼(GRAY碼)

格雷碼任何相鄰的兩組代碼中,僅有一個(gè)數(shù)碼不同,即具有相鄰性。其首尾兩碼也相鄰,又稱為循環(huán)碼。表1-4為典型的4位格雷碼。

1.4.4奇偶校驗(yàn)碼

奇偶校驗(yàn)碼是一種能夠檢測(cè)信息在傳輸過程中產(chǎn)生奇數(shù)個(gè)錯(cuò)誤的代碼,通常由信息位和校驗(yàn)位兩部分構(gòu)成。信息位的位數(shù)不限,但校驗(yàn)位僅有一位,它可以放置在信息位之前或之后。其編碼方式有兩種:使得信息位和校驗(yàn)位中的“1”的個(gè)數(shù)之和為奇數(shù)的編碼為奇校驗(yàn)碼;使得信息位和校驗(yàn)位中的“1”的個(gè)數(shù)之和為偶數(shù)的編碼為偶校驗(yàn)碼。

1.4.5ASCII碼

在計(jì)算機(jī)系統(tǒng)中通常采用二進(jìn)制代碼來表示字母和符號(hào),最為典型的編碼為ASCII碼。ASCII碼采用7位比特,共128種編碼,其中0x20~0x7E為可打印字符,其他為控制字符。ASCII編碼表如表1-5所示。

1.5布

1.5.1算術(shù)運(yùn)算與布爾邏輯數(shù)字信息處理的各種運(yùn)算都是基于二進(jìn)制數(shù)的,其輸入和輸出均是由0和1構(gòu)成的二進(jìn)制數(shù)。假定數(shù)字處理有一個(gè)n

位輸入X=(Xn-1,…,X0),一個(gè)m

位輸出Y=(Ym-1,…,Y0),其中

Xi和Yi

只能取0或1。數(shù)字信息處理可以采用函數(shù)F來描述,即Y=F(X)。將輸入X

和輸出Y

的對(duì)應(yīng)關(guān)系采用二值列出構(gòu)成輸入/輸出真值表,簡(jiǎn)稱真值表。

例如,一位二進(jìn)制數(shù)的加法計(jì)算公式為(Y1,Y0)=X1+X0。其中,X1

和X0

是一位加數(shù),Y1和Y0

的組合值為和,Y1稱為進(jìn)位,Y0

稱為本位和。將輸入

X1X0

和輸出Y1Y0

的對(duì)應(yīng)關(guān)系采用二值列出構(gòu)成如表1-6所示的真值表。

函數(shù)F

的輸出為Y,其任何一位iY都可以看成是所有輸入的函數(shù),即Yi=Fi(Xn-1,…,X0),它反映了因變量Yi與自變量Xn-1,…,X0

之間的關(guān)系,該函數(shù)的特點(diǎn)是由多位0或1產(chǎn)生一位0或1。例如,表1-6中的Y1

和Y0

可以分別看成

X1和

X0

的函數(shù),即Y1=F1(X1,X0)和Y0=F0(X1,X0),一位二進(jìn)制數(shù)加法運(yùn)算可采用如圖1-15所示的結(jié)構(gòu)來描述。

圖1-15一位二進(jìn)制加法和與加數(shù)的關(guān)系結(jié)構(gòu)

由此可見,輸出數(shù)值的每一位都可單獨(dú)視為所有輸入所有位的函數(shù)。函數(shù)體現(xiàn)了二值輸入與輸出之間的因果關(guān)系,因此也稱為邏輯函數(shù),其自變量稱為邏輯輸入,因變量稱為邏輯輸出。這種二值輸入與二值輸出之間的關(guān)系稱為二值邏輯,也稱為布爾邏輯。布爾邏輯常用于問題判斷的命題邏輯,所有邏輯運(yùn)算只需要采用“且”“或”“非”三種運(yùn)算符即可實(shí)現(xiàn)。

布爾邏輯在后文中簡(jiǎn)稱為邏輯。在沒有特殊說明的情況下,邏輯默認(rèn)為是布爾邏輯。

1.5.2邏輯運(yùn)算

邏輯運(yùn)算中表達(dá)判斷的語(yǔ)句稱為命題,它有兩個(gè)值,即真和假。這兩個(gè)值之間存在“非”的關(guān)系,即非真即假、非假即真。

多個(gè)命題通過“且”和“或”進(jìn)行連接構(gòu)成復(fù)合命題。

采用“且”連接時(shí),只有所有的命題都為真,復(fù)合命題才為真,即只要有一個(gè)命題為假,復(fù)合命題就為假,這種關(guān)系稱為“與”運(yùn)算。

采用“或”相連時(shí),只要有一個(gè)命題為真,復(fù)合命題就為真,即只有所有命題為假,復(fù)合命題才為假,這種關(guān)系稱為“或”運(yùn)算。

采用“與”“或”“非”三種運(yùn)算即可實(shí)現(xiàn)復(fù)合命題值的計(jì)算。分別采用“∧”“∨”“”表示“與”“或”“非”,基于“真”和“假”的命題邏輯運(yùn)算如表1-7所示。

真和假分別采用邏輯常量1和0來表示,運(yùn)算符分別采用“·”“+”“-”代替“∧、∨、”,這就構(gòu)成了布爾邏輯運(yùn)算。其中“·”稱為邏輯乘,“+”稱為邏輯加,“-”表示邏輯非。邏輯常量的基本邏輯運(yùn)算公式如表1-8所示。

邏輯運(yùn)算的基本定律如表1-9所示。

將與、或、非有機(jī)結(jié)合還可以構(gòu)造復(fù)合運(yùn)算,即與非、或非、與或非、異或和同或。同或和異或分別采用“☉”“⊕”表示,其計(jì)算公式如表1-10所示。

下面利用這些邏輯運(yùn)算來構(gòu)建一位二進(jìn)制加法運(yùn)算的邏輯函數(shù)。

(1)Y1=F1(X1,X0)。

從表1-6中可知,只有

X1

X0

全為1時(shí)Y1

才為1,與表1-8中的與運(yùn)算相同,故該函數(shù)可以表示為Y1=X1·X0。

(2)Y0=F0(X1,X0)。

從表1-6中可知,只有X1

和X0

不同時(shí)Y0

才為1,與表1-10中的異或運(yùn)算相同,故該函數(shù)可以表示為Y0=X1⊕X0。

1.6邏輯的電路實(shí)現(xiàn)

邏輯函數(shù)的輸入和輸出都可以采用高低電平來表示,通常稱高電平為邏輯1態(tài),低電平為邏輯0態(tài)。邏輯運(yùn)算的實(shí)質(zhì)是利用輸入的電平來控制開關(guān)閉合或斷開,從而產(chǎn)生相應(yīng)的電平輸出。一個(gè)輸入控制一個(gè)開關(guān),多個(gè)輸入的邏輯運(yùn)算相當(dāng)于多個(gè)開關(guān)的串聯(lián)和并聯(lián)相結(jié)合的混合電路。圖1-16所示的電路是由A、B

和C

三個(gè)輸入控制的邏輯運(yùn)算,F(xiàn)

為輸出。

用以實(shí)現(xiàn)基本邏輯運(yùn)算和復(fù)合邏輯運(yùn)算的單元電路稱為門電路。常用的門電路有與門、或門、非門、與非門、或非門、與或非門、異或門等。圖1-16邏輯運(yùn)算的電路結(jié)構(gòu)

1.6.1開關(guān)邏輯電路

由開關(guān)構(gòu)成的電路與邏輯運(yùn)算之間的關(guān)系是邏輯電路的構(gòu)建基礎(chǔ)。下面分析圖1-17所示的電路中開關(guān)與F

點(diǎn)的電位之間的關(guān)系。圖1-17開關(guān)與電位之間關(guān)系的示例電路

如果規(guī)定開關(guān)閉合和5V電位代表邏輯1,開關(guān)斷開和0V電位代表邏輯0,那么圖1-17所實(shí)現(xiàn)的邏輯關(guān)系如表1-11所示。

邏輯電路需要采用電平控制開關(guān),繼電器是最為常用的電壓控制開關(guān)。圖1-18是繼電器的結(jié)構(gòu)示意圖。若在其控制輸入端加上一定電壓,則電磁鐵有電流通過產(chǎn)生磁場(chǎng),從而吸引銜鐵,使開關(guān)閉合;若輸入端沒有電壓時(shí)也沒有電流,則電磁鐵沒有產(chǎn)生磁場(chǎng),故彈簧使銜鐵保持在原位置,開關(guān)斷開。

圖1-18繼電器的結(jié)構(gòu)示意圖

利用繼電器代替開關(guān),可以實(shí)現(xiàn)電平輸入和電平輸出的電路。為了與

F

電位輸出一致,輸入電壓也采用電源電壓UCC

和地GND(0V),稱UCC

為高電平,代表邏輯1,稱

GND為低電平,代表邏輯0。當(dāng)控制輸入有電流時(shí),相應(yīng)的繼電器開關(guān)閉合;無電流時(shí),相應(yīng)的繼電器開關(guān)斷開。采用繼電器構(gòu)成如圖1-19所示的基本邏輯運(yùn)算電路。

圖1-19基于繼電器的基本邏輯門

1.6.2半導(dǎo)體邏輯電路

自然界中存在一種特殊物質(zhì),它的導(dǎo)電性介于導(dǎo)體和絕緣體之間,如鍺、硅、砷化鎵和一些硫化物、氧化物等,將其稱為半導(dǎo)體。

完全純凈且具有晶體結(jié)構(gòu)的半導(dǎo)體稱為本征半導(dǎo)體,如將硅或鍺提純便形成單晶體。常溫下,少數(shù)價(jià)電子克服共價(jià)鍵的束縛成為自由電子,在原來的共價(jià)鍵中留下一個(gè)空位,該空位稱為空穴。因此半導(dǎo)體有兩種載流子:一種是帶負(fù)電的自由電子,另一種是帶正電的空穴。

在本征半導(dǎo)體中摻入少量的雜質(zhì)就構(gòu)成了雜質(zhì)半導(dǎo)體,它分為兩種:N

型半導(dǎo)體和P型半導(dǎo)體。N型半導(dǎo)體中的自由電子濃度遠(yuǎn)大于空穴濃度,多數(shù)載流子(也稱為多子)為自由電子,少數(shù)載流子(也稱為少子)為空穴。P型半導(dǎo)體的空穴濃度遠(yuǎn)大于自由電子濃度,多子是空穴,少子是自由電子。多子從高濃度向低濃度流動(dòng)稱為擴(kuò)散,載流子在電場(chǎng)作用下流動(dòng)稱為漂移。

在一塊半導(dǎo)體單晶上一側(cè)摻雜成P型半導(dǎo)體,另一側(cè)摻雜成N型半導(dǎo)體,構(gòu)成PN結(jié)。PN結(jié)中兩個(gè)區(qū)域的多子向?qū)Ψ綌U(kuò)散,在兩個(gè)區(qū)域之間構(gòu)成了空間電荷區(qū)。在沒有外加電場(chǎng)的情況下,多子的擴(kuò)散電流與少子的漂移電流相等,PN結(jié)的電流等于0。給PN結(jié)加載正向電壓,如圖1-20(a)所示,即P端電壓比N端電壓高,也稱為正偏,空間電荷區(qū)變薄,有利于多子擴(kuò)散,形成正向電流,相當(dāng)于PN結(jié)導(dǎo)通;給PN結(jié)加載反向電壓,如圖1-20(b)所示,即P端電壓比N端電壓低,也稱為反偏,空間電荷區(qū)變寬,不利于多子擴(kuò)散,少子漂移電流微弱,相當(dāng)于

PN結(jié)截止。所以,PN結(jié)具有單向?qū)щ娦浴?/p>

圖1-20PN結(jié)單向?qū)щ娦?/p>

1.二極管

二極管是采用如圖1-21(a)所示的PN結(jié)構(gòu)造的兩只管腳的元件,如圖1-21(b)所示,其電路符號(hào)如圖1-21(c)所示。圖1-21二極管的元件與符號(hào)

2.三極管

三極管也稱為雙極性晶體管,其內(nèi)部由發(fā)射區(qū)、基區(qū)和集電區(qū)三個(gè)部分組成,每個(gè)區(qū)都有一個(gè)電極,分別稱為基極(b)、發(fā)射極(e)和集電極(c),如圖1-22(a)所示,因此三極管通常是三個(gè)管腳,如圖1-22(b)所示。圖1-22三極管的內(nèi)部結(jié)構(gòu)與元件

三極管分為NPN和PNP兩種類型,它們的結(jié)構(gòu)和符號(hào)分別如圖1-23(a)和圖1-23(b)所示。圖1-23三極管的結(jié)構(gòu)與符號(hào)

三極管需要驅(qū)動(dòng)負(fù)載來提供電流才能導(dǎo)通。在如圖1-24(a)所示的PNP驅(qū)動(dòng)電路中,當(dāng)

X

為低電平時(shí)三極管導(dǎo)通,使F

為高電平。在如圖1-24(b)所示的NPN驅(qū)動(dòng)電路中,當(dāng)

X

為高電平時(shí)三極管導(dǎo)通,使F

為低電平。圖1-24三極管驅(qū)動(dòng)電路

3.MOS管

場(chǎng)效應(yīng)管稱為單極型三極管。它輸入阻抗高,工藝簡(jiǎn)單,方便集成,功耗小,體積小,制造成本低。

絕緣柵場(chǎng)效應(yīng)管稱為金屬

氧化物

半導(dǎo)體場(chǎng)效應(yīng)管,也稱為MOS場(chǎng)效應(yīng)管或MOS管。MOS管有PMOS和NMOS之分,其符號(hào)如圖1-25所示。MOS管有四個(gè)極:柵極(G)、源極(S)、漏極(D)和襯底(B)。通常襯底與源極相連。

圖1-25MOS管的結(jié)構(gòu)及符號(hào)

MOS管作為開關(guān)時(shí),PMOS管的源極和襯底接電源,可用來提供高電平,如圖1-26(a)所示;NMOS管的源極和襯底接地,可用來提供低電平,如圖1-26(b)所示。圖1-26MOS管電平產(chǎn)生電路

1.6.3邏輯電平

在邏輯電路中,通常采用高電平和低電平分別表示邏輯1和0。而在實(shí)際電路中,輸入和輸出的高低電平的具體電位值并不相同。因此,輸入的高低電平的電位分別表示為UIH和UIL,輸出的高低電平的電位分別表示為UoH

和UoL。

高電平和低電平是相對(duì)而言的,在實(shí)際電路中需要一個(gè)值或區(qū)間值來約定。通常設(shè)定如圖1-27所示的兩個(gè)門限,即高電平的最小電位UHmin

和低電平最大電位ULmax。

圖1-27高低電平電位分布

最為常用的邏輯電平分為TTL、CMOS兩大類,其電平

通常所取的標(biāo)準(zhǔn)參數(shù)如表1-12所示。

一個(gè)電路的輸出與另一個(gè)電路的輸入相連,其輸出和輸入的等效電路如圖1-28所示。當(dāng)不同電平輸出時(shí),其等效電路中的電阻值不同,通常輸入電阻值比輸出電阻值大得多。當(dāng)輸出端口為高電平時(shí),如圖1-28(a)所示,高電位可能會(huì)導(dǎo)致向外部流出電流,這種電流稱為“拉電流”;當(dāng)輸出端口為低電平時(shí),如圖1-28(b)所示,低電位可能會(huì)導(dǎo)致外部電流流入,這種電流稱為“灌電流”。

圖1-28邏輯電路輸入/輸出等效電路

對(duì)于電路的輸出端而言,外部電路的輸入等效電阻視為輸出的負(fù)載。當(dāng)一個(gè)電路的輸出作為

N

個(gè)電路的輸入時(shí),如圖1-29(a)所示,其輸出的負(fù)載相當(dāng)于每個(gè)輸入電阻的

N分之一,如圖1-29(b)所示。當(dāng)負(fù)載過小時(shí),會(huì)導(dǎo)致輸出電阻上分壓過大,出現(xiàn)“高電平不高”的現(xiàn)象,使電平無法正確表示邏輯1。因此,每個(gè)邏輯電路輸出后面連接的邏輯電路輸入數(shù)目受限,不能過多。當(dāng)遇到這種情況時(shí),通常連接上拉電阻提供額外電流來驅(qū)動(dòng)負(fù)載以消除負(fù)載過小的影響,如圖1-29(c)所示。

圖1-29多負(fù)載邏輯電路連接

1.7數(shù)字集成電路

數(shù)字集成電路是將元器件和連線集成于同一半導(dǎo)體芯片上而制成的數(shù)字邏輯電路。根據(jù)電路中包含的門電路或元器件數(shù)量,如表1-13所示,可將數(shù)字集成電路分為小規(guī)模集成電路(SSI)、中規(guī)模集成電路(MSI)、大規(guī)模集成電路(LSI)、超大規(guī)模集成電路(VLSI)和特大規(guī)模集成電路(ULSI)。

1.7.1小規(guī)模集成電路

1.TTL集成電路系列

TTL集成電路系列主要有54系列和74系列,兩個(gè)系列都有相同的子系列,主要是工作溫度和工作電壓范圍有差別。54系列工作溫度和電壓范圍更大,通常用在軍品上,而74系列則用在工業(yè)和民品上。74LS系列廣泛應(yīng)用于工業(yè)和民用產(chǎn)品中。常用的74LS系列集成邏輯門如表1-14所示。這些集成邏輯門都有14只管腳,如圖1-30所示,管腳7接地,管腳14接電源,電源電壓通常為5V。

圖1-3074LS系列邏輯門的外部特性

2.CMOS集成電路系列

目前CMOS集成電路產(chǎn)品有4000系列、74HC/HCT系列、74AHC/AHCT系

列、74VHC/VHCT系列和74LVC/LVCT系列。常用的4000系列集成邏輯門如表1-15所示。

1.7.2中規(guī)模集成電路

中規(guī)模集成電路主要用于由基本邏輯門構(gòu)建的具有一定功能的邏輯電路,類似選擇、編碼、譯碼、運(yùn)算、比較、觸發(fā)、鎖存、移位、計(jì)數(shù)等功能電路。表1-16為常用的中規(guī)模集成電路。

中規(guī)模集成電路元件如圖1-31所示。圖1-31中規(guī)模集成電路元件

1.7.3大規(guī)模及超大規(guī)模集成電路

大規(guī)模集成電路主要用于制造存儲(chǔ)器、計(jì)算機(jī)外部設(shè)備、低密度可編程邏輯器件。超大規(guī)模集成電路主要用于制造存儲(chǔ)器、微處理器、高密度可編程邏輯器件。圖1-32所示為大規(guī)模集成電路元件,如Intel和華為的處理器、AMDXILINX和Intel的FPGA。

圖1-32大規(guī)模集成電路元件

1.8數(shù)字電路系統(tǒng)的結(jié)構(gòu)與設(shè)計(jì)

數(shù)字電路系統(tǒng)通常由輸入電路、輸出電路、若干個(gè)單元電路、控制電路、時(shí)基電路這五個(gè)部分構(gòu)成,如圖1-33所示。

圖1-33數(shù)字電路系統(tǒng)的標(biāo)準(zhǔn)結(jié)構(gòu)

1.輸入電路

輸入電路將外部信號(hào)變換成數(shù)字電路能夠接收和處理的數(shù)字信號(hào)。

外部信號(hào)通??煞殖赡M信號(hào)和開關(guān)信號(hào)兩大類。例如,聲、光、電、溫度、濕度、壓力及位移等物理量屬于模擬量,而開關(guān)的閉合與打開,器件的導(dǎo)通與截止,電位的高與低,物理量的有與無和大與小等屬于開關(guān)量。

外部信號(hào)都必須通過輸入電路變換成數(shù)字電路能夠接受的二進(jìn)制邏輯電平。輸入電路中通常含有調(diào)理電路和模擬數(shù)字轉(zhuǎn)換器(ADC)。調(diào)理電路主要對(duì)輸入信號(hào)進(jìn)行變換、放大去雜等操作輸出適合轉(zhuǎn)換的信號(hào),模擬數(shù)字轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)變成數(shù)字信號(hào)。

2.輸出電路

輸出電路將加工得到的數(shù)字信號(hào)變換為外部所需要的信號(hào)。

輸出電路通常含有數(shù)字模擬轉(zhuǎn)換器(DAC)和驅(qū)動(dòng)電路。數(shù)字模擬轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),驅(qū)動(dòng)器主要對(duì)模擬信號(hào)或開關(guān)信號(hào)進(jìn)行功率放大,提供足夠的驅(qū)動(dòng)電壓或電流。

3.單元電路

單元電路是對(duì)數(shù)字信號(hào)進(jìn)行算術(shù)運(yùn)算或邏輯運(yùn)算以及數(shù)據(jù)傳輸?shù)裙δ艿碾娐?,每個(gè)單元電路完成一項(xiàng)相對(duì)獨(dú)立的局部功能。

4.控制電路

控制電路是根據(jù)系統(tǒng)功能來收集輸入電路、輸出電路和單元電路的狀態(tài)、分析系統(tǒng)的工作流程、控制輸入電路、輸出電路和單元電路的操作,使整個(gè)系統(tǒng)同步協(xié)調(diào),按照規(guī)定流程有條不紊地工作。

5.時(shí)基電路

時(shí)基電路提供系統(tǒng)工作的時(shí)鐘信號(hào),使整個(gè)系統(tǒng)在時(shí)鐘信號(hào)的作用下完成各種操作。它通常采用頻率合成集成電路和晶體振蕩器產(chǎn)生所需要的時(shí)鐘脈沖,有的集成邏輯電路內(nèi)部集成了頻率合成器和鎖相環(huán)(PLL),可以產(chǎn)生多路任意頻率的時(shí)鐘。

目前數(shù)字電路系統(tǒng)的結(jié)構(gòu)多采用微處理器與可編程邏輯器件組合,將這種組合集成在一個(gè)集成電路中便構(gòu)成片上系統(tǒng)(SystemOnChip,SOC)。圖1-34所示的ZYNQ7000系列的片上系統(tǒng)廣泛應(yīng)用于測(cè)量、通信、控制、人工智能、網(wǎng)絡(luò)計(jì)算等領(lǐng)域。

圖1-34ZYNQ7000系列SOC的基本結(jié)構(gòu)

當(dāng)代數(shù)字系統(tǒng)主要用來進(jìn)行數(shù)據(jù)處理,其設(shè)計(jì)需要遵循如圖1-35所示的四個(gè)階段,即流程描述、數(shù)學(xué)描述、邏輯描述和電路描述。

圖1-35數(shù)字系統(tǒng)的設(shè)計(jì)描述

最后將基本功能單元模塊按照流程進(jìn)行連接即可完成整個(gè)系統(tǒng)的電路設(shè)計(jì)。數(shù)字系統(tǒng)的設(shè)計(jì)描述如圖1-35所示。

基本功能單元模塊既可以采用邏輯門實(shí)現(xiàn),也可以直接采用專用的集成電路實(shí)現(xiàn),還可以采用可編程器件實(shí)現(xiàn)。

采用邏輯門實(shí)現(xiàn)時(shí),需要將功能變成輸入/輸出表,即真值表,再生成邏輯函數(shù),最后采用邏輯門連接構(gòu)成電路。

采用中規(guī)模集成電路實(shí)現(xiàn)時(shí),直接找到相應(yīng)的專用集成電路,必要時(shí)采用邏輯門配合來構(gòu)成電路。

采用大規(guī)模集成電路實(shí)現(xiàn)時(shí),直接采用硬件描述語(yǔ)言構(gòu)建電路即可。第2章邏輯電路2.1邏輯真值表2.2邏輯門2.3邏輯函數(shù)表達(dá)式2.4記憶邏輯電路2.5邏輯電路結(jié)構(gòu)2.6硬件描述語(yǔ)言2.7電路仿真

2.1邏輯真值表

對(duì)于邏輯函數(shù),可以采用表格列出邏輯輸入和邏輯輸出之間的邏輯關(guān)系,這樣能夠直觀地呈現(xiàn)出邏輯函數(shù)的功能。采用一個(gè)表格,將邏輯輸入的所有取值組合按組合值順序排成若干行,并將每個(gè)組合產(chǎn)生的邏輯輸出值也排在同一行中。由邏輯輸入和邏輯輸出的值組成的表格就是邏輯函數(shù)的真值表。

例2.1.1的真值表擴(kuò)展為含原變量和反變量構(gòu)成的新真值表,仍以AB組合的值為序排列,如表2-3所示。

1.輸出1分析

表2-3中每一行都有三個(gè)1,其中兩個(gè)是輸入量為1,1個(gè)是輸出量為1,值為1的輸出量可以看作是兩個(gè)為1的輸入量的與運(yùn)算結(jié)果。在表2-3中的輸出值為1的單元格中填入輸入量與運(yùn)算代數(shù)表達(dá)式,如表2-4所示。

由此可知:

(1)每個(gè)值為1的輸出都可以由值為1的輸入原變量或反變量進(jìn)行與運(yùn)算獲得。通常把單個(gè)邏輯變量(或反變量)進(jìn)行與運(yùn)算構(gòu)成的項(xiàng)稱為與項(xiàng)。

(2)只要輸入的值使某一與項(xiàng)結(jié)果為1,輸出值就為1,輸出是這些與項(xiàng)的或運(yùn)算。通常把由與項(xiàng)相或構(gòu)成的表達(dá)式稱為與或式。

(3)分析輸出原變量或反變量都可以得到相同的邏輯函數(shù)表達(dá)式。

2.輸出0分析

表2-3中每一行都有三個(gè)0,其中兩個(gè)是輸入量為0,1個(gè)是輸出量為0,值為0的輸出量可以看作是兩個(gè)為0的輸入量的或運(yùn)算結(jié)果。在表2-3中的輸出值為0的單元格中填入輸入量或運(yùn)算代數(shù)表達(dá)式,如表2-5所示。

由此可知:

(1)每個(gè)值為0的輸出都可以由值為0的輸入原變量或反變量進(jìn)行或運(yùn)算獲得。通常把單個(gè)邏輯變量(或反變量)進(jìn)行或運(yùn)算構(gòu)成的項(xiàng)稱為或項(xiàng)。

(2)只要輸入的值使某一或項(xiàng)結(jié)果為0,輸出值就為0,輸出是這些或項(xiàng)的與運(yùn)算。通常把由或項(xiàng)相與構(gòu)成的表達(dá)式稱為或與式。

(3)分析輸出原變量或反變量都可以得到相同的邏輯函數(shù)表達(dá)式。

2.2邏

實(shí)現(xiàn)布爾邏輯運(yùn)算的單元電路稱為邏輯門。邏輯門通??梢杂盟姆N方式來描述:第一種方式是采用邏輯變量和邏輯運(yùn)算符構(gòu)成的邏輯代數(shù)表達(dá)式;第二種方式是采用專用圖形來表示邏輯運(yùn)算的電路符號(hào);第三種方式是采用表格列出真值表;第四種方式是采用表征各變量的相應(yīng)信號(hào)電平的對(duì)應(yīng)關(guān)系的波形圖。

2.2.1基本邏輯門

1.與門

實(shí)現(xiàn)與運(yùn)算的電路稱為與門(AND)。只有所有輸入都為1,輸出才為1;只要有一個(gè)輸入為0,輸出就為0。

假定兩個(gè)輸入分別為A

和B,輸出為F,所構(gòu)成與運(yùn)算代數(shù)表達(dá)式為F=A·B。

圖2-1(a)和圖2-1(b)為F=A·B

的兩種符號(hào)表示,圖2-1(c)為真值表,圖2-1(d)為波形圖,圖2-1(e)為集成與門74LS08的內(nèi)部結(jié)構(gòu)圖。

圖2-1與門的描述

與門通常用來實(shí)現(xiàn)所有輸入條件均滿足才工作的控制電路。

例如,某大門門禁閘機(jī)有證件讀卡器和攝像頭,通過系統(tǒng)進(jìn)行證件認(rèn)證和人臉識(shí)別,其系統(tǒng)結(jié)構(gòu)如圖2-2所示。圖2-2門禁閘機(jī)控制系統(tǒng)結(jié)構(gòu)圖

控制器的功能是:只有人臉識(shí)別成功且證件認(rèn)證成功,閘機(jī)門才打開,否則閘機(jī)門保持關(guān)閉。

控制電路的兩個(gè)輸入分別是人臉識(shí)別結(jié)果A

和證件認(rèn)證結(jié)果B,控制電路的一個(gè)控制輸出F是閘機(jī)門開關(guān)控制信號(hào)。

假定人臉識(shí)別成功時(shí)A

為1,失敗時(shí)A

為0;證件認(rèn)證成功時(shí)B

為1,失敗時(shí)B

為0;F為1表示打開,為0時(shí)表示關(guān)閉。

由功能可以列出與與門相同的真值表,故F=A·B,控制器采用一個(gè)與門即可。

2.或門

實(shí)現(xiàn)或運(yùn)算的電路稱為或門(OR)。只要有一個(gè)輸入為1,輸出就為1;只有所有輸入都為0,輸出才為0。

假定兩個(gè)輸入分別為A和B,輸出為F,所構(gòu)成的或運(yùn)算代數(shù)表達(dá)式為F=A+B。

圖2-3(a)和圖23(b)為F=A+B

的兩種符號(hào)表示,圖23(c)為真值表,圖2-3(d)為波形圖,圖2-3(e)為集成或門74LS32的內(nèi)部結(jié)構(gòu)圖。

圖2-3或門的描述

或門通常用來實(shí)現(xiàn)只要所有條件之一滿足就工作的控制電路。

仍以前面的閘機(jī)控制為例,控制器的功能變?yōu)椋褐灰四樧R(shí)別成功或證件認(rèn)證成功,閘機(jī)門就打開,否則閘機(jī)門保持關(guān)閉。由功能可以列出與或門相同的真值表,故F=A+B,控制器采用一個(gè)或門即可。

圖2-4非門的描述

圖2-5節(jié)能臺(tái)燈控制結(jié)構(gòu)圖

圖2-6與非門的描述

圖2-7或非門的描述

圖2-8與或非門的描述

圖2-9異或門的描述

圖2-10同或門的描述

2.3邏輯函數(shù)表達(dá)式

2.3.1常用形式任何一個(gè)邏輯函數(shù)式都可以通過邏輯變換寫成六種形式:與或式、或與式、與非

與非式、或非

或非式、與或非式、或與非式。其中與或式和或與式是函數(shù)表達(dá)式的兩種最基本形式。

這六種表達(dá)方式是可以相互轉(zhuǎn)換的,轉(zhuǎn)換中使用了邏輯代數(shù)的反演律和還原律。例如:

對(duì)于一個(gè)代數(shù)系統(tǒng),若僅用它所定義的一組運(yùn)算符號(hào)就能解決所有的運(yùn)算問題,則稱這一組符號(hào)是一個(gè)完備的集合,簡(jiǎn)稱完備集。

在邏輯代數(shù)中,與、或、非是三種最基本的運(yùn)算,用與、或、非三種運(yùn)算符和邏輯變量可以構(gòu)成任何邏輯函數(shù),因此稱與、或、非邏輯運(yùn)算符是一組完備集。

【例2.3.1】

已知某電路連接關(guān)系如圖2-11所示,給出該電路的與或代數(shù)表達(dá)式、邏輯電路圖、真值表、波形圖。圖2-11例2.3.1的電路圖

解74LS00是與非門集成電路,用于實(shí)現(xiàn)與非運(yùn)算。根據(jù)圖2-11可以畫出采用與非門邏輯符號(hào)的邏輯電路圖,如圖2-12(a)所示。其代數(shù)表達(dá)式為

由此可見,與或運(yùn)算可以只用一種與非邏輯運(yùn)算實(shí)現(xiàn),因?yàn)榕c非運(yùn)算本身是完備的。采用與、或、非三種運(yùn)算構(gòu)成的邏輯電路如圖2-12(b)所示,共需要三種集成邏輯門器件。圖2-12例2.3.1的邏輯電路圖

該電路的真值表如表2-7所示。

該電路的波形如圖2-13所示。圖2-13例2.3.1的波形圖

【例2.3.2】

某邏輯電路有四個(gè)端口,分別記為A、B、C、D,它們之間存在某種邏輯關(guān)系。圖2-14是它們的工作波形圖,試采用一片74LS00實(shí)現(xiàn)該電路。圖2-14例2.3.2的波形圖

根據(jù)圖形列出如表2-8所示的波形真值表。

圖2-15例2.3.2的邏輯電路圖及電路連接圖

【例2.3.3】

已知F的真值表如表2-11所示,試寫出函數(shù)F的最小項(xiàng)表達(dá)式。

【例2.3.5】

已知邏輯電路如圖2-16所示,給出其最小項(xiàng)表達(dá)式。圖2-16例2.3.5的邏輯電路

該電路的邏輯函數(shù)表達(dá)式為

其真值表如表2-13所示。

【例2.3.6】

已知某邏輯電路有三個(gè)輸入

A、B、C

和一個(gè)輸出D,其工作波形如圖2-17所示,試給出該邏輯電路的最小項(xiàng)表達(dá)式。圖2-17例2.3.6的工作波形

根據(jù)波形圖寫出相對(duì)應(yīng)的真值表,如表2-14所示。

根據(jù)真值表可以得出其最小表達(dá)式為

【例2.3.7】

手機(jī)來電控制:通常有振動(dòng)模式和振鈴模式。在振動(dòng)模式下,有電話呼入時(shí)發(fā)生振動(dòng)而無響鈴;在振鈴模式下,有電話呼入時(shí)發(fā)生響鈴而無振動(dòng)。寫出該控制電路的邏輯函數(shù)的最小項(xiàng)表達(dá)式。

將“是否有電話呼入”和“是否置振動(dòng)模式”分別設(shè)為兩個(gè)邏輯量

A

和B

作為電路輸入,將“是否振動(dòng)”和“是否響鈴”分別設(shè)為兩個(gè)邏輯量Y

和Z作為電路輸出。值1表示“是”,值0表示“否”??梢粤谐鋈绫?-15所示的功能真值表。

2.最大項(xiàng)和標(biāo)準(zhǔn)或與式

n

個(gè)變量的最大項(xiàng)是n

個(gè)變量的或項(xiàng),其中每個(gè)變量都以原變量或反變量的形式出現(xiàn)一次。n個(gè)變量可以構(gòu)成2n

個(gè)最大項(xiàng)。與最小項(xiàng)恰好相反,對(duì)于任何一個(gè)最大項(xiàng),只有一組變量取值使它為0,而變量的其余取值均使它為1。最大項(xiàng)用符號(hào)

Mi

表示。表2-16列出了三變量邏輯函數(shù)的所有最小項(xiàng)和最大項(xiàng)。

【例2.3.8】

已知F的真值表如表2-17所示,試寫出函數(shù)F的最大項(xiàng)表達(dá)式。

由真值表2-17可知,當(dāng)A、B、C

取值分別為000、011、101、110時(shí),F(xiàn)為0,因此最大項(xiàng)表達(dá)式由這四種組合所對(duì)應(yīng)的最大項(xiàng)進(jìn)行相與構(gòu)成,表示為

比較例2.3.3的最小項(xiàng)可以看出,一張真值表既可以采用最小項(xiàng)表示,也可以采用最大項(xiàng)表示,兩種表達(dá)式中不會(huì)有相同的序號(hào),且兩種表達(dá)式的項(xiàng)數(shù)之和為2n

2.3.3具有無關(guān)項(xiàng)的邏輯函數(shù)

邏輯問題分為完全描述和非完全描述兩種。如果對(duì)于輸入變量的每一組取值,邏輯函數(shù)都有確定的值,則稱這類函數(shù)為完全描述邏輯函數(shù);如果對(duì)于輸入變量的某些取值組合邏輯函數(shù)值不確定,即函數(shù)值可以為0,也可以為1,那么這類函數(shù)稱為非完全描述的邏輯函數(shù)。對(duì)應(yīng)輸出函數(shù)值不確定的輸入最小項(xiàng)(或最大項(xiàng))稱為無關(guān)項(xiàng),具有無關(guān)項(xiàng)的邏輯函數(shù)就是非完全描述的邏輯函數(shù)。

無關(guān)項(xiàng)發(fā)生在以下兩種情況:

(1)由于某種條件的限制(或約束)使得輸入變量的某些組合不可能出現(xiàn),故而它們所對(duì)應(yīng)的函數(shù)值可以任意假設(shè),可以為1,也可以為0。這些不允許出現(xiàn)的組合所對(duì)應(yīng)的最小項(xiàng)稱為約束項(xiàng)(或禁止項(xiàng))。

(2)在某些輸入變量的取值下,其函數(shù)值為1或0都可以,并不影響整個(gè)系統(tǒng)的功能。這些使函數(shù)不確定的變量取值所對(duì)應(yīng)的最小項(xiàng)稱為任意項(xiàng)(或隨意項(xiàng))。

非完全描述邏輯函數(shù)一般用以下方法表示:

(1)在真值表中填?或×、d,表示函數(shù)值為0或1均可。

(2)在邏輯表達(dá)式中用約束條件來表示。

【例2.3.9】

采用非完全描述方式將表2-18所示的真值表寫成邏輯函數(shù)表達(dá)式。

從表2-18中可以看出,無關(guān)項(xiàng)的特點(diǎn)是三個(gè)變量中至少有兩個(gè)全為1,即

AB+BC+AC=1,所以約束條件為AB+BC+AC=0。

邏輯函數(shù)可以寫成

2.3.4邏輯函數(shù)化簡(jiǎn)

邏輯函數(shù)化簡(jiǎn)通常是將邏輯函數(shù)化簡(jiǎn)為最簡(jiǎn)的與或式或者最簡(jiǎn)或與式。最簡(jiǎn)與或(或與)式是指表達(dá)式中與項(xiàng)(或項(xiàng))的個(gè)數(shù)最少,每個(gè)與項(xiàng)(或項(xiàng))中的變量數(shù)最少?;?jiǎn)法主要有代數(shù)化簡(jiǎn)法和卡諾圖化簡(jiǎn)法。

1.代數(shù)化簡(jiǎn)法

代數(shù)化簡(jiǎn)法主要是采用表2-19所示的邏輯代數(shù)基本公式消去邏輯函數(shù)表達(dá)式中多余的項(xiàng),以求得邏輯函數(shù)的最簡(jiǎn)表達(dá)式,通常采用并項(xiàng)法、吸收法和配項(xiàng)法。

1)并項(xiàng)法

并項(xiàng)法是利用合并律將兩個(gè)相鄰項(xiàng)合并成一項(xiàng),并消去互補(bǔ)因子。例如:

2)吸收法

吸收法是利用吸收律消去多余的乘積項(xiàng)或多余的因子。例如:

3)配項(xiàng)法

配項(xiàng)法是利用重疊律、互補(bǔ)律和吸收律,先配項(xiàng)或添加多余項(xiàng),然后逐步化簡(jiǎn)。例如:

這種方法對(duì)變量數(shù)目無限制,需要熟練應(yīng)用邏輯代數(shù)公式,缺乏規(guī)律性。

2.卡諾圖化簡(jiǎn)法

1)K

圖的構(gòu)成

在邏輯函數(shù)的真值表中,輸入變量的每一種組合都和一個(gè)最小項(xiàng)相對(duì)應(yīng),這種真值表也稱為最小項(xiàng)真值表。卡諾圖就是根據(jù)最小項(xiàng)真值表按一定規(guī)則排列的方格圖。

圖2-18是三變量和四變量的

K

圖,圖中每個(gè)小格對(duì)應(yīng)一個(gè)最小項(xiàng)。

圖2-18三變量和四變量的K圖

2)邏輯函數(shù)的

K

圖表示

K

圖是真值表的一種特殊形式,n

變量的

K

圖包含了n

變量的所有最小項(xiàng),因此,任何一個(gè)n

變量的邏輯函數(shù)都可以用n

變量的

K

圖來表示。

將邏輯函數(shù)真值表中每個(gè)最小項(xiàng)的值填入

K

圖中的相應(yīng)方格即構(gòu)成了該邏輯函數(shù)的K圖。

3)最小項(xiàng)合并

在卡諾圖中,凡是幾何位置相鄰的最小項(xiàng)均可以合并。K

圖中相鄰項(xiàng)表現(xiàn)為相接、相對(duì)(即任一行或列的兩頭)、相重(對(duì)折起來位置重合)。

兩個(gè)相鄰最小項(xiàng)合并為一項(xiàng),消去一個(gè)互補(bǔ)變量。在

K

圖上該合并圈稱為單元圈,它所對(duì)應(yīng)的與項(xiàng)由圈內(nèi)沒有變化的那些變量組成,可以直接從

K

圖中讀出。

任何兩個(gè)相鄰的單元圈也是相鄰項(xiàng),可以合并消去互補(bǔ)量。因此

K

圈越大,消去的變量數(shù)也就越多。

任何一個(gè)合并圈(即

K

圈)所含有的方格數(shù)為2i個(gè)。

任何一個(gè)1格可以多次被圈用。若某個(gè)

K

圈中所有的1格均已被別的

K

圈圈過,則該K

圈是多余圈。為了避免出現(xiàn)多余圈,應(yīng)保證每個(gè)

K圈至少有一個(gè)1格只被圈1次。圖2-19給出了若干采用

K

圖化簡(jiǎn)的示例。

圖2-19K圖化簡(jiǎn)示例

【例2.3.10】

K

圖將以下函數(shù)式化簡(jiǎn)為最簡(jiǎn)與或式。

解(1)畫出F

的K

圖。

給出的F

為一般與或式,將每個(gè)與項(xiàng)所覆蓋的最小項(xiàng)都填1,K

圖如圖2-19所示。

(2)畫

K

圈化簡(jiǎn)函數(shù)。

本例有兩種圈法,如圖2-20所示。

圖2-20例2.3.10的K圖

4)寫出最簡(jiǎn)與或

圖2-20(a)所示圈法的最簡(jiǎn)與或式為

圖2-19(b)所示圈法的最簡(jiǎn)與或式為

該例說明,邏輯函數(shù)的最簡(jiǎn)式并不是唯一的。

5)具有無關(guān)項(xiàng)的邏輯函數(shù)化簡(jiǎn)

在非完全描述邏輯函數(shù)中,由于在無關(guān)項(xiàng)的相應(yīng)取值下,函數(shù)值隨意取成0或1都不影響函數(shù)原有的功能,因此可以充分利用這些無關(guān)項(xiàng)來化簡(jiǎn)邏輯函數(shù),即采用

K

圖化簡(jiǎn)函數(shù)時(shí),可以利用

?(或×)來擴(kuò)大

K

圈。

例如,邏輯函數(shù)為

對(duì)F

的邏輯表達(dá)式進(jìn)行化簡(jiǎn),如圖2-21所示,可得F=A+B.

圖2-21具有無關(guān)項(xiàng)的邏輯函數(shù)化簡(jiǎn)

2.4記憶邏輯電路

圖2-22輸出反饋的邏輯電路

圖2-23邏輯電路和工作波形

這類電路稱為觸發(fā)器(Flip-Flop),常用的觸發(fā)器包括基本RS觸發(fā)器、鐘控觸發(fā)器。鐘控觸發(fā)器僅在時(shí)鐘有效時(shí)狀態(tài)才允許輸出發(fā)生變化,按觸發(fā)類型又可以分為電平觸發(fā)和邊沿觸發(fā)。電平觸發(fā)是指在時(shí)鐘的高電平或低電平階段根據(jù)當(dāng)前狀態(tài)和外部輸入來決定次態(tài);邊沿觸發(fā)是指在時(shí)鐘的上升沿或下降沿階段根據(jù)當(dāng)前狀態(tài)和外部輸入來決定次態(tài)。

在實(shí)際應(yīng)用中通常用觸發(fā)器的保持功能來保存數(shù)據(jù),采用多個(gè)觸發(fā)器構(gòu)成寄存器(鎖存器)。多個(gè)寄存器按照一定順序可以構(gòu)建成更大容量的存儲(chǔ)器。

2.5邏輯電路結(jié)構(gòu)

邏輯電路是一個(gè)因果系統(tǒng),只有輸入發(fā)生變化輸出才可能發(fā)生變化,輸入沒變化,輸出是不可能發(fā)生變化的。根據(jù)輸入與輸出之間的變化關(guān)系,邏輯電路可分為兩類:組合邏輯電路(簡(jiǎn)稱組合電路)和時(shí)序邏輯電路(簡(jiǎn)稱時(shí)序電路)。

2.5.1組合邏輯電路

如果一個(gè)電路的輸入相同時(shí)輸出也相同,那么這個(gè)電路稱為組合電路。電路中任一時(shí)刻的穩(wěn)態(tài)輸出僅僅取決于該時(shí)刻的輸入,而與電路原來的狀態(tài)無關(guān)。組合電路無記憶功能,只有從輸入到輸出的通路。其一般框圖如圖2-24所示,其中

X=(x1,…,xn)表示輸入邏輯量,Z=(z1,…,zm)表示輸出邏輯量。組合電路的邏輯函數(shù)可以表示為Z=F(X),其中F=(f1,…,fm),fi

是zi與X之間的邏輯函數(shù),即

圖2-24組合電路框圖

【例2.5.1】

某電路的工作波形如圖2-25所示,輸入為

A、B、C,輸出是F1、F2,試判定它們是否為組合電路輸出。圖2-25例2.5.1的工作波形

根據(jù)組合電路的特點(diǎn),通過比較相同的A、B、C

組合其輸出是否相同來判定是否為組合邏輯輸出。

列出波形真值表如表2-21所示。

圖2-26邏輯函數(shù)F1

的卡諾圖

2.5.2時(shí)序邏輯電路

如果一個(gè)電路的輸入相同輸出卻不相同,那么這個(gè)電路一定不是組合電路。相同輸入在不同時(shí)刻的輸出不同表明邏輯運(yùn)算與時(shí)間有關(guān),這類電路稱為時(shí)序電路。時(shí)序電路中任一時(shí)刻的輸出不僅與該時(shí)刻的輸入變量有關(guān),而且還與過去時(shí)刻電路的輸入有關(guān),相當(dāng)于該電路具有記憶功能。

具有記憶功能的基本電路是觸發(fā)器,它的輸出就是所要記憶的值,通常稱為狀態(tài)。當(dāng)某輸入信號(hào)發(fā)生某種特定變化時(shí),觸發(fā)器可以從一個(gè)穩(wěn)定狀態(tài)轉(zhuǎn)換到另一個(gè)穩(wěn)定狀態(tài),即

狀態(tài)轉(zhuǎn)移。觸發(fā)器狀態(tài)的改變是在一定條件下觸發(fā)的,這種條件稱為觸發(fā)條件,觸發(fā)條件通常是指產(chǎn)生狀態(tài)轉(zhuǎn)移的輸入信號(hào)的特征,如高電平(值為1)、低電平(值為0)、上升沿(從低電平變?yōu)楦唠娖降乃查g,值用n

表示)、下降沿(從高電平變?yōu)榈碗娖降乃查g,值用↑表示)。只有觸發(fā)條件滿足,狀態(tài)才可能發(fā)生變化,否則狀態(tài)不變,即保持。

為了區(qū)分當(dāng)前的狀態(tài)(也稱為現(xiàn)態(tài))和觸發(fā)后的狀態(tài)(也稱為次態(tài)),用Q或Qn

表示現(xiàn)態(tài),用Qn+1

表示次態(tài)。

采用觸發(fā)器構(gòu)成存儲(chǔ)電路來保存當(dāng)前部分輸出信號(hào)供將來使用,采用組合電路將當(dāng)前輸入和當(dāng)前保存信號(hào)組合產(chǎn)生當(dāng)前輸出信號(hào)。

因此,時(shí)序電路的一般框圖如圖2-27所示,它分為兩部分:組合電路和存儲(chǔ)電路。

圖2-27時(shí)序邏輯電路框圖

【例2.5.2】

圖2-28是一時(shí)序電路的工作波形,試確定輸入、輸出、觸發(fā)條件。圖2-28例2.5.2的工作波形

時(shí)序電路輸出的變化取決于輸入的變化和內(nèi)部狀態(tài)的變化,內(nèi)部狀態(tài)的變化取決于觸發(fā)條件。

分析圖2-8中的A

和B的變化可以發(fā)現(xiàn),B

變化時(shí)A

不一定變化,說明B

一定不是輸出,A

一定不是輸入。A

變化時(shí)B

一定變化,說明B

決定A是否變化,故B

為輸入,A為輸出。在B

的下降沿,A

才發(fā)生變化,所以B

的下降沿是觸發(fā)條件。

【例2.5.3】

圖2-29是一時(shí)序電路的工作波形,試確定輸入、輸出以及觸發(fā)條件。圖2-29例2.5.3的工作波形

分析每個(gè)信號(hào)變化時(shí)與其他信號(hào)之間的關(guān)系。

從圖2-29的波形圖可知,有的時(shí)間內(nèi)A

和C

不變,B

卻變化,故B

不能為輸出,只能是輸入;有的時(shí)間內(nèi)B

和C

不變,A

卻變化,故A

也是輸入。C變化時(shí),A

和B

會(huì)有一個(gè)發(fā)生變化,故C

是輸出。

C變化時(shí),要么A

在從低向高變化,要么B

在從低向高變化,因此A

和B的上升沿是C

變化的觸發(fā)條件。當(dāng)C

為低時(shí),只有A

的上升沿能使C變?yōu)楦?,B

的上升沿?zé)o效;當(dāng)C為高時(shí),只有B

的上升沿能使C

變?yōu)榈停珹

的上升沿?zé)o效。

所以,A

和B

是電路的輸入,C

是電路的輸出,觸發(fā)條件為A

和B的上升沿。

2.6硬件描述語(yǔ)言

2.6.1模塊結(jié)構(gòu)

Verilog是一種非常流行的硬件描述語(yǔ)言。Verilog程序的最基本設(shè)計(jì)單元是模塊。模塊從關(guān)鍵字module開始,到endmodule結(jié)束,其中每條語(yǔ)句以“;”分隔(除了特殊語(yǔ)句)。

一個(gè)完整的模塊由四部分組成:

(1)模塊定義行:定義模塊的名稱和輸入/輸出參數(shù)列表。

(2)說明部分:定義不同的項(xiàng),通常包括端口類型(input、output和inout)、寄存器(reg)、連線(wire)、參數(shù)(parameter)、函數(shù)(function)和任務(wù)(task)。

(3)描述體部分:描述模塊的行為和功能、子模塊的調(diào)用和連接、邏輯門的調(diào)用、用戶自定義部件的調(diào)用、初始態(tài)賦值等。

(4)結(jié)束行:以endmodule結(jié)束。

1.模塊聲明

模塊聲明主要由模塊名稱和模塊輸入/輸出端口列表組成,其定義格式如下:

關(guān)鍵字endmodule表示模塊的結(jié)束。

2.端口定義

3.信號(hào)聲明

對(duì)模塊中用到的所有信號(hào)(包括輸入和輸出信號(hào))都必須進(jìn)行數(shù)據(jù)類型聲明。Verilog共有19種數(shù)據(jù)類型,其中最為常用的類型有wire(連線型)和reg(寄存器型)。

wire類型表示直通,即只要輸入有變化,輸出馬上無條件地反映。

reg類型表示一定要有觸發(fā),輸出才會(huì)反映輸入。

4.邏輯功能定義

模塊最核心部分是邏輯功能定義,通常采用assign持續(xù)賦值語(yǔ)句、always過程賦值塊和調(diào)用元件(元件例化)等方式構(gòu)成邏輯功能。

值得注意的是:所有持續(xù)賦值語(yǔ)句和過程賦值語(yǔ)句都是一個(gè)邏輯電路,它們是并行同時(shí)執(zhí)行的,不是按照書寫先后順序進(jìn)行的。

5.模塊模板

2.6.2運(yùn)算量與運(yùn)算符

1.常量

Verilog常量主要有三種類型:整數(shù)、實(shí)數(shù)和字符串。下面主要介紹整數(shù)。整數(shù)采用4種方式來表示邏輯狀態(tài),即0表示邏輯0(低電平)、1表示邏輯1(高電平)、x表示不確定、

z表示高阻態(tài)。

常量的表示格式如下:

2.變量

變量可以是一位的,也可以是多位的,采用非負(fù)整數(shù)作為下標(biāo)來定義,變量的位數(shù)也稱為位寬。

例如:

3.運(yùn)算符

按功能來分,常用運(yùn)算符主要有算術(shù)運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、縮位運(yùn)算符、條件運(yùn)算符、移位運(yùn)算符和拼接運(yùn)算符等9類。

按運(yùn)算符所帶操作數(shù)的個(gè)數(shù)來分,運(yùn)算符可分為3類,分別為單目運(yùn)算符,可帶一個(gè)操作數(shù);雙目運(yùn)算符,可帶兩個(gè)操作數(shù);三目運(yùn)算符,可帶三個(gè)操作數(shù)。

1)算術(shù)運(yùn)算符

常用算術(shù)運(yùn)算符有五個(gè):+(加)、-(減)、*(乘)、/(除)、%(求模)。求模運(yùn)算也是求余運(yùn)算符。

2)位運(yùn)算符

位運(yùn)算符包括&(按位與)、|(按位或)、~(按位非)、∧(按位異或)、~∧(按位同或),主要應(yīng)用于以位作為運(yùn)算對(duì)象的邏輯運(yùn)算,如4'b1010&4'b1100結(jié)果為4'b1000。

3)邏輯運(yùn)算符

邏輯運(yùn)算符包括&&(邏輯與)、‖(邏輯或)、!(邏輯非),主要用于以邏輯1和邏輯0作為運(yùn)算對(duì)象的邏輯運(yùn)算,多用于關(guān)系運(yùn)算的級(jí)聯(lián)。數(shù)值不為0視為邏輯1,數(shù)值為0視為邏輯0,其運(yùn)算結(jié)果為0或1,如4'b1010&&4'b1100結(jié)果為1,4'b1010&&0結(jié)果為0。

4)關(guān)系運(yùn)算符

關(guān)系運(yùn)算符包括<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、===(全等于)、!=(不等于)、!==(不全等于)。

5)縮位運(yùn)算符

縮位運(yùn)算符包括&(與)、~&(與非)、|(或)、~|(或非)、∧(異或)、~∧(同或),該運(yùn)算為單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論