數(shù)字邏輯與系統(tǒng)設(shè)計(jì) 課件 第2章 邏輯電路_第1頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì) 課件 第2章 邏輯電路_第2頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì) 課件 第2章 邏輯電路_第3頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì) 課件 第2章 邏輯電路_第4頁(yè)
數(shù)字邏輯與系統(tǒng)設(shè)計(jì) 課件 第2章 邏輯電路_第5頁(yè)
已閱讀5頁(yè),還剩146頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章邏輯電路2.1邏輯真值表2.2邏輯門(mén)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)稱(chēng)為與項(xiàng)。

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

(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)稱(chēng)為或項(xiàng)。

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

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

2.2邏

門(mén)

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

2.2.1基本邏輯門(mén)

1.與門(mén)

實(shí)現(xiàn)與運(yùn)算的電路稱(chēng)為與門(mé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)為集成與門(mén)74LS08的內(nèi)部結(jié)構(gòu)圖。

圖2-1與門(mén)的描述

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

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

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

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

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

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

為1,失敗時(shí)A

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

為1,失敗時(shí)B

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

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

2.或門(mén)

實(shí)現(xiàn)或運(yùn)算的電路稱(chēng)為或門(mé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)為集成或門(mén)74LS32的內(nèi)部結(jié)構(gòu)圖。

圖2-3或門(mén)的描述

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

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

圖2-4非門(mén)的描述

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

圖2-6與非門(mén)的描述

圖2-7或非門(mén)的描述

圖2-8與或非門(mén)的描述

圖2-9異或門(mén)的描述

圖2-10同或門(mén)的描述

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

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

與非式、或非

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

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

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

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

【例2.3.1】

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

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

由此可見(jiàn),與或運(yùn)算可以只用一種與非邏輯運(yùn)算實(shí)現(xiàn),因?yàn)榕c非運(yùn)算本身是完備的。采用與、或、非三種運(yùn)算構(gòu)成的邏輯電路如圖2-12(b)所示,共需要三種集成邏輯門(mén)器件。圖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所示,試寫(xiě)出函數(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ù)波形圖寫(xiě)出相對(duì)應(yīng)的真值表,如表2-14所示。

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

【例2.3.7】

手機(jī)來(lái)電控制:通常有振動(dòng)模式和振鈴模式。在振動(dòng)模式下,有電話呼入時(shí)發(fā)生振動(dòng)而無(wú)響鈴;在振鈴模式下,有電話呼入時(shí)發(fā)生響鈴而無(wú)振動(dòng)。寫(xiě)出該控制電路的邏輯函數(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所示,試寫(xiě)出函數(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具有無(wú)關(guān)項(xiàng)的邏輯函數(shù)

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

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

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

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

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

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

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

【例2.3.9】

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

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

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

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

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ù)目無(wú)限制,需要熟練應(yīng)用邏輯代數(shù)公式,缺乏規(guī)律性。

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

1)K

圖的構(gòu)成

在邏輯函數(shù)的真值表中,輸入變量的每一種組合都和一個(gè)最小項(xiàng)相對(duì)應(yīng),這種真值表也稱(chē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

圖來(lái)表示。

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

K

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

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

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

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

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

K

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

K

圖中讀出。

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

K

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

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

K

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

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

K

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

K

圈圈過(guò),則該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)畫(huà)出F

的K

圖。

給出的F

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

圖如圖2-19所示。

(2)畫(huà)

K

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

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

圖2-20例2.3.10的K圖

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

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

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

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

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

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

K

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

?(或×)來(lái)擴(kuò)大

K

圈。

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

對(duì)F

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

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

2.4記憶邏輯電路

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

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

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

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

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

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

2.5.1組合邏輯電路

如果一個(gè)電路的輸入相同時(shí)輸出也相同,那么這個(gè)電路稱(chēng)為組合電路。電路中任一時(shí)刻的穩(wěn)態(tài)輸出僅僅取決于該時(shí)刻的輸入,而與電路原來(lái)的狀態(tài)無(wú)關(guān)。組合電路無(wú)記憶功能,只有從輸入到輸出的通路。其一般框圖如圖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),通過(guò)比較相同的A、B、C

組合其輸出是否相同來(lái)判定是否為組合邏輯輸出。

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

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

的卡諾圖

2.5.2時(shí)序邏輯電路

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

具有記憶功能的基本電路是觸發(fā)器,它的輸出就是所要記憶的值,通常稱(chēng)為狀態(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ā)的,這種條件稱(chēng)為觸發(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)(也稱(chēng)為現(xiàn)態(tài))和觸發(fā)后的狀態(tài)(也稱(chēng)為次態(tài)),用Q或Qn

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

表示次態(tài)。

采用觸發(fā)器構(gòu)成存儲(chǔ)電路來(lái)保存當(dāng)前部分輸出信號(hào)供將來(lái)使用,采用組合電路將當(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

不一定變化,說(shuō)明B

一定不是輸出,A

一定不是輸入。A

變化時(shí)B

一定變化,說(shuō)明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)榈?,A

的上升沿?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開(kāi)始,到endmodule結(jié)束,其中每條語(yǔ)句以“;”分隔(除了特殊語(yǔ)句)。

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

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

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

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

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

1.模塊聲明

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

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

2.端口定義

3.信號(hào)聲明

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

wire類(lèi)型表示直通,即只要輸入有變化,輸出馬上無(wú)條件地反映。

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

4.邏輯功能定義

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

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

5.模塊模板

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

1.常量

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

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

常量的表示格式如下:

2.變量

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

例如:

3.運(yùn)算符

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

按運(yùn)算符所帶操作數(shù)的個(gè)數(shù)來(lái)分,運(yùn)算符可分為3類(lèi),分別為單目運(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)算為單目運(yùn)算,將運(yùn)算量的各位作為邏輯量進(jìn)行運(yùn)算符規(guī)定的操作。如&4'b1010相當(dāng)于該值的四位進(jìn)行與運(yùn)算,其結(jié)果為0;∧4'b1110相當(dāng)于該值的四位進(jìn)行異或運(yùn)算,其結(jié)果為1。

6)移位運(yùn)算符

移位運(yùn)算符包括<<(左移)、>>(右移),該移位是邏輯移位,采用0進(jìn)行補(bǔ)充。

7)條件運(yùn)算符

條件運(yùn)算符為“?:”,它是三目運(yùn)算符,其格式為<條件>?<表達(dá)式1>:<表達(dá)式2>。若條件成立,則取表達(dá)式1的值,否則取表達(dá)式2的值。

8)位拼接運(yùn)算符

位拼接運(yùn)算符為“{}”,它將{}中的變量拼接為一個(gè)多位的變量。如{x,y[2:1]}表示將變量x、變量y的位y[2]和y[1]拼接在一起來(lái)使用。

重復(fù)拼接符為“{n{}}”,它是重復(fù)n次后面的內(nèi)容后將其拼接在一起,如{3{x,y}}等同于{{x,y},{x,y},{x,y}},即{x,y,x,y,x,y}。

這些優(yōu)先級(jí)從高到低依次為(!、~)、(*、/、%)、(+、-)、(<<、>>)、(<、<=、>、>=)、(==、!=、===、!==)、(&、~&)、(∧、~∧)、(|、~|)、&&、‖、?:。

2.6.3行為語(yǔ)句

1.過(guò)程語(yǔ)句

always語(yǔ)句為過(guò)程語(yǔ)句,其表達(dá)式如下:

always@(<觸發(fā)條件列表>)

觸發(fā)條件列表也稱(chēng)為敏感信號(hào)表達(dá)式,觸發(fā)條件寫(xiě)在敏感信號(hào)表達(dá)式之中,當(dāng)觸發(fā)條件滿足時(shí),其后的語(yǔ)句才能被執(zhí)行。

賦值有非阻塞賦值和阻塞賦值兩種方式。

(1)非阻塞賦值。

在整個(gè)過(guò)程塊結(jié)束時(shí)才完成賦值操作,因此非阻塞賦值是并行執(zhí)行。

(2)阻塞賦值。

在整個(gè)過(guò)程塊中逐條語(yǔ)句完成賦值操作,因此阻塞賦值是串行執(zhí)行。

4.條件語(yǔ)句

條件語(yǔ)句有if-else語(yǔ)句和case語(yǔ)句兩種,它們都是順序語(yǔ)句,只能放在always塊內(nèi)。

1)if-else語(yǔ)句

其格式與C語(yǔ)言中的if-else語(yǔ)句類(lèi)似,即

2)case語(yǔ)句

【例2.6.1】

某邏輯電路的真值表如表2-24所示,采用case語(yǔ)句實(shí)現(xiàn)該電路模塊。

【例2.6.2】

表2-25為某電路的功能真值表,給出相應(yīng)的Verilog描述。

該模塊還可以采用“?”來(lái)表示條件選擇,即

2.7電

仿

HDL代碼本身是邏輯關(guān)系的描述,不是FPGA硬件內(nèi)部邏輯電路單元的真實(shí)連接。因此,HDL代碼完成后需要將HDL語(yǔ)句變成硬件電路的連接關(guān)系,這個(gè)過(guò)程稱(chēng)為綜合(Synthesis)。將綜合后的電路在所選取的器件中布線,稱(chēng)為實(shí)現(xiàn)(Implementation)。

常規(guī)的仿真開(kāi)發(fā)步驟通常是:

1.建工程(項(xiàng)目)文件

若開(kāi)發(fā)工具是采用工程(項(xiàng)目)方式來(lái)組織文檔,則先新建工程(項(xiàng)目)文件。

2.新建模塊文件xxx.v

在新建模塊文件中定義模塊,既可以一個(gè)模塊一個(gè)文件,也可以多個(gè)模塊一個(gè)文件,但不能出現(xiàn)多個(gè)相同名稱(chēng)的模塊。

3.新建測(cè)試文件xxx_tb.v

在新建測(cè)試文件中定義一個(gè)測(cè)試模塊,將所用到的模塊進(jìn)行例化,初始化輸入信號(hào)。

1)定義測(cè)試信號(hào)

輸入至待測(cè)模塊的測(cè)試信號(hào),必須定義成寄存器型變量。待測(cè)模塊輸出的測(cè)試信號(hào)定義為線型即可。

寄存器型變量可以在定義時(shí)賦初值。

2)例化

module定義可視為模塊的結(jié)構(gòu)定義,只有例化出一個(gè)實(shí)例后才能按這種結(jié)構(gòu)生成一個(gè)真正工作的電路。

例化語(yǔ)句格式如下:

假定已經(jīng)定義了模塊test(A,B,F(xiàn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論