數(shù)字電子技術(shù)基礎(chǔ)(第3章)-組合邏輯分析與設(shè)計(jì)_第1頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)(第3章)-組合邏輯分析與設(shè)計(jì)_第2頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)(第3章)-組合邏輯分析與設(shè)計(jì)_第3頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)(第3章)-組合邏輯分析與設(shè)計(jì)_第4頁(yè)
數(shù)字電子技術(shù)基礎(chǔ)(第3章)-組合邏輯分析與設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩188頁(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)介

第3章組合邏輯分析與設(shè)計(jì)3.1

邏輯代數(shù)基礎(chǔ)3.2邏輯函數(shù)的化簡(jiǎn)3.3組合邏輯電路的分析3.4組合邏輯電路的設(shè)計(jì)3.5VHDL硬件描述語(yǔ)言3.6基本組合邏輯電路的設(shè)計(jì)舉例3.7組合邏輯電路中的競(jìng)爭(zhēng)-險(xiǎn)象3.1邏輯代數(shù)基礎(chǔ)

邏輯代數(shù)(LogicAlgebra)是由英國(guó)數(shù)學(xué)家喬治·布爾(GeorgeBoole)于1847年首先提出的,因此也稱為布爾代數(shù)(BooleanAlgebra)。邏輯代數(shù)研究邏輯變量間的相互關(guān)系,是分析和設(shè)計(jì)邏輯電路不可缺少的數(shù)學(xué)工具。1938年,克勞德·香農(nóng)(C.E.Shannon)將布爾代數(shù)應(yīng)用于電話繼電器的開(kāi)關(guān)電路,提出了“開(kāi)關(guān)代數(shù)”。邏輯代數(shù)已成為研究數(shù)字系統(tǒng)邏輯設(shè)計(jì)的基礎(chǔ)理論,必須掌握邏輯代數(shù)這一重要數(shù)學(xué)工具。

3.1.1

邏輯變量及基本邏輯運(yùn)算

所謂邏輯變量,是指只有兩種取值的變量:1或0。邏輯代數(shù)中定義了“與”、“或”、“非”三種基本運(yùn)算。

1.

“與”運(yùn)算決定某一事件發(fā)生的多個(gè)條件必須同時(shí)具備,事件才能發(fā)生,則這種因果關(guān)系稱之“與”邏輯。又稱為邏輯乘(LogicMultiplication)。

F=A·B或者F=A∧B

111001010000FBA+VABF邏輯符號(hào)真值表

2.“或”運(yùn)算決定某一事件發(fā)生的多個(gè)條件中,只要有一個(gè)或一個(gè)以上條件成立,事件便可發(fā)生,則這種因果關(guān)系稱之為“或”邏輯。又稱邏輯加(LogicAddition)F=A+B或者F=A∨B

011100011011FA

BFAB+V實(shí)現(xiàn)或邏輯的電路稱為或門。或門的邏輯符號(hào):真值表功能表Y=A+B邏輯符號(hào)3.“非”運(yùn)算如果某一事件的發(fā)生取決于條件的否定,則這種因果關(guān)系不稱為“非”邏輯。

+VAF1001FAF=AY=A邏輯符號(hào)真值表4、常用的邏輯運(yùn)算(1)與非運(yùn)算:邏輯表達(dá)式為:(2)或非運(yùn)算:邏輯表達(dá)式為:(3)異或運(yùn)算:邏輯表達(dá)式為:(4)與或非運(yùn)算:邏輯表達(dá)式為:邏輯代數(shù)的公式、定理和規(guī)則1、邏輯代數(shù)的公式和定理(1)常量之間的關(guān)系(2)基本公式分別令A(yù)=0及A=1代入這些公式,即可證明它們的正確性。

3.1.2

邏輯代數(shù)的基本公式、定理與規(guī)則

1.基本公式

1)交換律

A+B=B+AA·B=B·A2)結(jié)合律

(A+B)+C=A+(B+C)(A·B)·C=A·(B·C)

3)分配律

A·(B+C)=A·B+A·CA+B·C=(A+B)(A+C)

(A+B)(A+C)=AA+AB+AC+BC分配率A(B+C)=AB+AC=A+AB+AC+BC等冪率AA=A=A(1+B+C)+BC分配率A(B+C)=AB+AC=A+BC0-1率A+1=1證明分配率:A+BC=(A+B)(A+C)證明:

6)吸收律

A+AB=AA+AB=A+BA(A+B)=AA(A+B)=AB7)重迭律

A+A=AA·A=A8)對(duì)合律

A=A

9)反演律

A+B=A·BAB=A+B10)包含律

AB+AC+BC=AB+AC(A+B)(A+C)(B+C)=(A+B)(A+C)

分配率A+BC=(A+B)(A+C)互補(bǔ)率A+A=10-1率A·1=1互補(bǔ)率A+A=1分配率A(B+C)=AB+AC0-1率A+1=1

2.邏輯代數(shù)的主要定理

定理2

香農(nóng)(Shannon)定理

定理1德·摩根(DeMorgan)定理:

例3.1已知函數(shù)求其反函數(shù)

解利用香農(nóng)定理,可以直接寫出定理3

展開(kāi)定理:

3.邏輯代數(shù)的重要規(guī)則

(1)代入規(guī)則在一個(gè)邏輯等式兩邊出現(xiàn)某個(gè)變量(或表示式)的所有位置都代入另一個(gè)變量(或表達(dá)式),則等式仍然成立。

例如:已知,在等式兩邊出現(xiàn)B的所有位置都代入BC,則等式仍然成立,即

(2)對(duì)偶規(guī)則對(duì)一個(gè)邏輯函數(shù)F進(jìn)行如下變換:將所有的“·”換成“+”,“+”換成“·”,“0”換成“1”,“1”換成“0”,則得到函數(shù)F的對(duì)偶函數(shù)Fd。例如:F1=A·(B+C),F(xiàn)1d=A+B·CF2=A·B+A·C,F(xiàn)2d=(A+B)·(A+C)P48例子

注意:必須按照先“與”后“或”的順序,“與”項(xiàng)變?yōu)椤盎颉表?xiàng)時(shí),應(yīng)加括號(hào)。

如果兩個(gè)函數(shù)相等,則它們的對(duì)偶函數(shù)亦相等。這就是對(duì)偶規(guī)則。例如:已知

A·(B+C)=A·B+A·C

則A+B·C=(A+B)·(A+C)

(3)反演規(guī)則對(duì)一個(gè)邏輯函數(shù)F進(jìn)行如下變換:將所有的“·”換成“+”,“+”換成“·”,“0”換成“1”,“1”換成“0”,原變量換成反變量,反變量換成原變量,則得到函數(shù)F的反函數(shù)。例如:則

使用反演規(guī)則時(shí),要注意以下兩點(diǎn):保持原函數(shù)中邏輯運(yùn)算的優(yōu)先順序;不是單個(gè)變量上的反號(hào)保持不變。P49例子

4.幾個(gè)常用公式

(異或)

(同或)

3.1.3邏輯函數(shù)及其表達(dá)式

邏輯函數(shù)的表示法

(1)邏輯表達(dá)式

由邏輯變量和邏輯運(yùn)算符號(hào)組成,用于表示變量之間邏輯關(guān)系的式子,稱為邏輯表達(dá)式。常用的邏輯表達(dá)式有與或式、標(biāo)準(zhǔn)與或式、或與式、標(biāo)準(zhǔn)或與式、與非-與非式、或非-或非式、與或非式等。

(2)真值表

用來(lái)反映變量所有取值組合及對(duì)應(yīng)函數(shù)值的表格,稱為真值表。例如,在一個(gè)判奇電路中,當(dāng)A、B、C三個(gè)變量中有奇數(shù)個(gè)1時(shí),輸出F為1;否則,輸出F為0。可列出下表所示的真值表。ABCF00000101001110010111011101101001(3)卡諾圖將邏輯變量分成兩組,分別在橫豎兩個(gè)方向用Gray碼形式排列出各組變量的所有取值組合,構(gòu)成一個(gè)有2n個(gè)方格的圖形,其中,每一個(gè)方格對(duì)應(yīng)變量的一個(gè)取值組合,這種圖形叫做卡諾圖。卡諾圖將在后面結(jié)合函數(shù)化簡(jiǎn)問(wèn)題進(jìn)行詳細(xì)介紹。3.2邏輯函數(shù)的化簡(jiǎn)

函數(shù)表達(dá)式越簡(jiǎn)單,則邏輯電路越簡(jiǎn)單

同一功能的函數(shù)可以有多種形式

“與或”形式

“或與”形式

“與非”形式

“或非”形式

“與或非”形式最簡(jiǎn)“與或”式應(yīng)同時(shí)滿足兩個(gè)條件

(1)該式中的與項(xiàng)最少;(2)該式中的每個(gè)與項(xiàng)的變量最少。

最簡(jiǎn)“或與”式必須滿足的條件有:(1)或項(xiàng)個(gè)數(shù)最少。(2)或項(xiàng)中變量的個(gè)數(shù)最少。3.2.1代數(shù)化簡(jiǎn)法

3.2.2卡諾圖化簡(jiǎn)法3.2.3列表化簡(jiǎn)法3.2.4邏輯函數(shù)化簡(jiǎn)中兩個(gè)實(shí)際問(wèn)題

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

代數(shù)法化簡(jiǎn)邏輯函數(shù),就是通過(guò)利用邏輯代數(shù)的基本公式、定理和規(guī)則,對(duì)函數(shù)進(jìn)行消項(xiàng)、消因子等,以求得函數(shù)的最簡(jiǎn)表達(dá)式。常用方法有以下四種。(1)并項(xiàng)法利用公式,將兩個(gè)與項(xiàng)合并為一個(gè),消去其中的一個(gè)變量。AB+AB=A

【例】求函數(shù)的最簡(jiǎn)與或表達(dá)式。解:

(2)吸收法利用公式,吸收多余的與項(xiàng)。例如:

【例】求函數(shù)的最簡(jiǎn)與或表達(dá)式。

解:F=(A+AB+ABC)(A+B+C)=A(A+B+C)=A

3.消去法

利用公式,消去與項(xiàng)多余的因子。例如:

4、消去冗余項(xiàng)法利用冗余律5.配項(xiàng)消項(xiàng)法利用公式及或,或利用包含律加上多余的與項(xiàng),再進(jìn)行配項(xiàng),以消去更多的與項(xiàng)。

5.配項(xiàng)消項(xiàng)法請(qǐng)與P55例3.6比較例3.4化簡(jiǎn)

--分配律

--消去法

--分配律

--互補(bǔ)律

--分配律

--吸收法

例3.5化簡(jiǎn)

--并項(xiàng)法

--吸收法--消去法--包含律例3.7化簡(jiǎn)或與表達(dá)式

解可以利用對(duì)偶規(guī)則,先求出F的對(duì)偶式:

然后利用與或式的化簡(jiǎn)方法化簡(jiǎn)得最后再對(duì)Fd求對(duì)偶式,則得3.2.2卡諾圖化簡(jiǎn)法

1)卡諾圖的構(gòu)成

將邏輯變量分成兩組,分別在橫豎兩個(gè)方向按Gray碼順序排列出各組變量的所有取值組合,構(gòu)成一個(gè)有2n個(gè)方格的圖形,其中,每一個(gè)方格對(duì)應(yīng)變量的一個(gè)取值組合(即最小項(xiàng)),這種圖形叫做卡諾圖。1、邏輯函數(shù)的最小項(xiàng)及其性質(zhì)(1)最小項(xiàng):如果一個(gè)函數(shù)的某個(gè)乘積項(xiàng)包含了函數(shù)的全部變量,其中每個(gè)變量都以原變量或反變量的形式出現(xiàn),且僅出現(xiàn)一次,則這個(gè)乘積項(xiàng)稱為該函數(shù)的一個(gè)標(biāo)準(zhǔn)積項(xiàng),通常稱為最小項(xiàng)。

3個(gè)變量A、B、C可組成8個(gè)最小項(xiàng):1、邏輯函數(shù)的最小項(xiàng)及其性質(zhì)(2)最小項(xiàng)的表示方法:通常用符號(hào)mi來(lái)表示最小項(xiàng)。下標(biāo)i的確定:把最小項(xiàng)中的原變量記為1,反變量記為0,當(dāng)變量順序確定后,可以按順序排列成一個(gè)二進(jìn)制數(shù),則與這個(gè)二進(jìn)制數(shù)相對(duì)應(yīng)的十進(jìn)制數(shù),就是這個(gè)最小項(xiàng)的下標(biāo)i。

3個(gè)變量A、B、C的8個(gè)最小項(xiàng)可以分別表示為:2、邏輯函數(shù)的最小項(xiàng)表達(dá)式

任何一個(gè)邏輯函數(shù)都可以表示成唯一的一組最小項(xiàng)之和,稱為標(biāo)準(zhǔn)與或表達(dá)式,也稱為最小項(xiàng)表達(dá)式對(duì)于不是最小項(xiàng)表達(dá)式的與或表達(dá)式,可利用公式A+A=1和A(B+C)=AB+BC來(lái)配項(xiàng)展開(kāi)成最小項(xiàng)表達(dá)式。如果列出了函數(shù)的真值表,則只要將函數(shù)值為1的那些最小項(xiàng)相加,便是函數(shù)的最小項(xiàng)表達(dá)式。m1=ABCm5=ABCm3=ABCm1=ABC將真值表中函數(shù)值為0的那些最小項(xiàng)相加,便可得到反函數(shù)的最小項(xiàng)表達(dá)式。

邏輯函數(shù)的圖形化簡(jiǎn)法1、卡諾圖的構(gòu)成邏輯函數(shù)的圖形化簡(jiǎn)法是將邏輯函數(shù)用卡諾圖來(lái)表示,利用卡諾圖來(lái)化簡(jiǎn)邏輯函數(shù)。將邏輯函數(shù)真值表中的最小項(xiàng)重新排列成矩陣形式,并且使矩陣的橫方向和縱方向的邏輯變量的取值按照格雷碼的順序排列,這樣構(gòu)成的圖形就是卡諾圖。卡諾圖法化簡(jiǎn)卡諾圖的特點(diǎn)是任意兩個(gè)相鄰的最小項(xiàng)在圖中也是相鄰的。(相鄰項(xiàng)是指兩個(gè)最小項(xiàng)只有一個(gè)因子互為反變量,其余因子均相同,又稱為邏輯相鄰項(xiàng))。

每個(gè)2變量的最小項(xiàng)有兩個(gè)最小項(xiàng)與它相鄰

每個(gè)3變量的最小項(xiàng)有3個(gè)最小項(xiàng)與它相鄰每個(gè)變量的最小項(xiàng)有4個(gè)最小項(xiàng)與它相鄰最左列的最小項(xiàng)與最右列的相應(yīng)最小項(xiàng)也是相鄰的最上面一行的最小項(xiàng)與最下面一行的相應(yīng)最小項(xiàng)也是相鄰的兩個(gè)相鄰最小項(xiàng)可以合并消去一個(gè)變量邏輯函數(shù)化簡(jiǎn)的實(shí)質(zhì)就是相鄰最小項(xiàng)的合并2、邏輯函數(shù)在卡諾圖中的表示(1)邏輯函數(shù)是以真值表或者以最小項(xiàng)表達(dá)式給出:在卡諾圖上那些與給定邏輯函數(shù)的最小項(xiàng)相對(duì)應(yīng)的方格內(nèi)填入1,其余的方格內(nèi)填入0。m6m1m3m4m7m11m15m14(2)邏輯函數(shù)以一般的邏輯表達(dá)式給出:先將函數(shù)變換為與或表達(dá)式(不必變換為最小項(xiàng)之和的形式),然后在卡諾圖上與每一個(gè)乘積項(xiàng)所包含的那些最小項(xiàng)相對(duì)應(yīng)的方格內(nèi)填入1,其余的方格內(nèi)填入0。變換為與或表達(dá)式AD的公因子BC的公因子

說(shuō)明:如果求得了函數(shù)Y的反函數(shù)Y,則對(duì)Y中所包含的各個(gè)最小項(xiàng),在卡諾圖相應(yīng)方格內(nèi)填入0,其余方格內(nèi)填入1。3、卡諾圖的性質(zhì)(1)任何兩個(gè)(21個(gè))標(biāo)1的相鄰最小項(xiàng),可以合并為一項(xiàng),并消去一個(gè)變量(消去互為反變量的因子,保留公因子)。(2)任何4個(gè)(22個(gè))標(biāo)1的相鄰最小項(xiàng),可以合并為一項(xiàng),并消去2個(gè)變量。BDBDBDBD(3)任何8個(gè)(23個(gè))標(biāo)1的相鄰最小項(xiàng),可以合并為一項(xiàng),并消去3個(gè)變量。DB圖1-16四個(gè)最小項(xiàng)合并

3)卡諾圖化簡(jiǎn)法的步驟和原則用卡諾圖化簡(jiǎn)邏輯函數(shù)時(shí),一般先畫出函數(shù)的卡諾圖,然后將卡諾圖中的1方格按邏輯相鄰特性進(jìn)行分組畫圈。每個(gè)圈得到一個(gè)簡(jiǎn)化的與項(xiàng),與項(xiàng)中只包含在圈中取值沒(méi)有變化過(guò)的變量,值為1的以原變量出現(xiàn),值為0的以反變量出現(xiàn)。再將所得各個(gè)與項(xiàng)相或,即得到該函數(shù)的最簡(jiǎn)與或表達(dá)式。

用卡諾圖化簡(jiǎn)法求函數(shù)最簡(jiǎn)與或表達(dá)式的原則如下:(1)每個(gè)值為1的方格至少被圈一次。(2)圈越大越好。圈越大,消去的變量越多,所得與項(xiàng)包含的因子就越少。每個(gè)圈中包含的1方格的個(gè)數(shù)必須是2的整數(shù)次方。(3)圈的個(gè)數(shù)越少越好。圈的個(gè)數(shù)越少,得到的與項(xiàng)就越少。(4)每個(gè)圈內(nèi)至少有一個(gè)最小項(xiàng)只被圈過(guò)一次。4、圖形法化簡(jiǎn)的基本步驟邏輯表達(dá)式或真值表卡諾圖11合并最小項(xiàng)最簡(jiǎn)與或表達(dá)式BDCDACD冗余項(xiàng)2233將代表每個(gè)圈的乘積項(xiàng)相加①圈越大越好,但每個(gè)圈中標(biāo)1的方格數(shù)目必須為2i個(gè)。②同一個(gè)方格可同時(shí)畫在幾個(gè)圈內(nèi),但每個(gè)圈都要有新的方格,否則它就是多余的。③不能漏掉任何一個(gè)標(biāo)1的方格。【例】用卡諾圖法化簡(jiǎn)函數(shù)寫出其最簡(jiǎn)與或表達(dá)式。解:首先將函數(shù)F轉(zhuǎn)換為一般與或表達(dá)式:

并畫出函數(shù)F的卡諾圖。111ABCD00010001111110111110111DCB寫出函數(shù)的最簡(jiǎn)與或表達(dá)式

【例】用卡諾圖化簡(jiǎn)函數(shù)F=∑m(0,1,2,5,6,7,8,10,11,12,13,15),寫出其最簡(jiǎn)與或表達(dá)式。解:畫出函數(shù)F的卡諾圖1ABCD000111110110001111011111111(a)D

BBCAACDCABDC

A1ABCD000111110110001111011111111(b)DCABDD

CAC

B

ACBA3.2.4邏輯函數(shù)化簡(jiǎn)中兩個(gè)實(shí)際問(wèn)題1.包含無(wú)關(guān)最小項(xiàng)的邏輯函數(shù)化簡(jiǎn)

實(shí)際問(wèn)題中,往往存在這樣兩種情況:(1)由于某種特殊限制,使得輸入變量的某些取值組合根本不會(huì)出現(xiàn)。

(2)雖然每種輸入組合都可能出現(xiàn),但對(duì)其中的某些輸入取值為1還是為0,對(duì)輸出沒(méi)有影響。

稱這部分輸入組合為無(wú)關(guān)最小項(xiàng),簡(jiǎn)稱無(wú)關(guān)項(xiàng),用“d(或×)”表示。包含無(wú)關(guān)項(xiàng)的邏輯函數(shù)稱不完全確定的邏輯函數(shù)。

化簡(jiǎn)原則:對(duì)化簡(jiǎn)有利的當(dāng)“1”,無(wú)利的當(dāng)“0”。隨意項(xiàng):函數(shù)可以隨意取值(可以為0,也可以為1)或不會(huì)出現(xiàn)的變量取值所對(duì)應(yīng)的最小項(xiàng)稱為隨意項(xiàng),也叫做約束項(xiàng)或無(wú)關(guān)項(xiàng)。1、含隨意項(xiàng)的邏輯函數(shù)例如:判斷一位十進(jìn)制數(shù)是否為偶數(shù)。不會(huì)出現(xiàn)不會(huì)出現(xiàn)不會(huì)出現(xiàn)不會(huì)出現(xiàn)不會(huì)出現(xiàn)不會(huì)出現(xiàn)

說(shuō)明×111100111×111010110×110100101×110010100×101100011×10101001001001000011100010000YABCDYABCD輸入變量A,B,C,D取值為0000~1001時(shí),邏輯函數(shù)Y有確定的值,根據(jù)題意,偶數(shù)時(shí)為1,奇數(shù)時(shí)為0。

A,B,C,D取值為1010~1111的情況不會(huì)出現(xiàn)或不允許出現(xiàn),對(duì)應(yīng)的最小項(xiàng)屬于隨意項(xiàng)。用符號(hào)“φ”、“×”或“d”表示。

隨意項(xiàng)之和構(gòu)成的邏輯表達(dá)式叫做隨意條件或約束條件,用一個(gè)值恒為0的條件等式表示。含有隨意條件的邏輯函數(shù)可以表示成如下形式:2、含隨意項(xiàng)的邏輯函數(shù)的化簡(jiǎn)在邏輯函數(shù)的化簡(jiǎn)中,充分利用隨意項(xiàng)可以得到更加簡(jiǎn)單的邏輯表達(dá)式,因而其相應(yīng)的邏輯電路也更簡(jiǎn)單。在化簡(jiǎn)過(guò)程中,隨意項(xiàng)的取值可視具體情況取0或取1。具體地講,如果隨意項(xiàng)對(duì)化簡(jiǎn)有利,則取1;如果隨意項(xiàng)對(duì)化簡(jiǎn)不利,則取0。利用隨意項(xiàng)的化簡(jiǎn)結(jié)果為:例3.12

用卡諾圖化簡(jiǎn)邏輯函數(shù)

F(A,B,C,D)=∑m(3,4,5,10,11,12)+∑d(0,1,2,13,14,15)

CDAB00011111000011110dd1d1d111dd3.3組合邏輯電路的分析

邏輯電路可以分為兩大類:組合邏輯電路和時(shí)序邏輯電路。組合邏輯電路是比較簡(jiǎn)單的一類邏輯電路,它具有以下特點(diǎn):(1)從電路結(jié)構(gòu)上看,不存在反饋,不包含記憶元件。

(2)從邏輯功能上看,任一時(shí)刻的輸出僅僅與該時(shí)刻的輸入有關(guān),與該時(shí)刻之前電路的狀態(tài)無(wú)關(guān)。組合邏輯電路……x1x2xmyny1y2輸入/輸出表達(dá)式描述為y1=F1(x1,x2,…,xm)y2=F2(x1,x2,…,xm)…yn=Fn(x1,x2,…,xm)3.3.1組合邏輯電路分析的一般方法

分析組合邏輯電路一般是根據(jù)給出的邏輯電路圖,通過(guò)分析總結(jié)出它的邏輯功能。具體的步驟通常如下:

(1)根據(jù)邏輯電路圖,寫出輸出邏輯表達(dá)式。(2)對(duì)(1)中的輸出邏輯表達(dá)式化簡(jiǎn)。(3)利用所得到的邏輯表達(dá)式,列出真值表。(4)總結(jié)出電路的邏輯功能。3.1.1組合邏輯電路的分析方法邏輯圖邏輯表達(dá)式11最簡(jiǎn)與或表達(dá)式化簡(jiǎn)22從輸入到輸出逐級(jí)寫出最簡(jiǎn)與或表達(dá)式3真值表34電路的邏輯功能當(dāng)輸入A、B、C中有2個(gè)或3個(gè)為1時(shí),輸出Y為1,否則輸出Y為0。所以這個(gè)電路實(shí)際上是一種3人表決用的組合電路:只要有2票或3票同意,表決就通過(guò)。4

3.4組合邏輯電路的設(shè)計(jì)

組合邏輯電路的設(shè)計(jì)是根據(jù)給定的邏輯功能要求,選用適當(dāng)?shù)拈T電路畫出實(shí)現(xiàn)該功能的邏輯電路圖。(1)根據(jù)邏輯功能要求,進(jìn)行邏輯約定并列出真值表

(2)根據(jù)真值表寫出邏輯函數(shù)的“最小項(xiàng)之和”表達(dá)式

(3)化成最簡(jiǎn)“與-或”式,并進(jìn)行適當(dāng)變換

(4)畫出邏輯電路圖

3.4.1組合邏輯電路設(shè)計(jì)的一般方法

設(shè)計(jì)過(guò)程是其分析過(guò)程的逆過(guò)程,一般可分為以下四步:真值表電路功能描述例:用與非門設(shè)計(jì)一個(gè)舉重裁判表決電路。設(shè)舉重比賽有3個(gè)裁判,一個(gè)主裁判和兩個(gè)副裁判。杠鈴?fù)耆e上的裁決由每一個(gè)裁判按一下自己面前的按鈕來(lái)確定。只有當(dāng)兩個(gè)或兩個(gè)以上裁判判明成功,并且其中有一個(gè)為主裁判時(shí),表明成功的燈才亮。設(shè)主裁判為變量A,副裁判分別為B和C;表示成功與否的燈為Y,根據(jù)邏輯要求列出真值表。1窮舉法122邏輯表達(dá)式3卡諾圖最簡(jiǎn)與或表達(dá)式化簡(jiǎn)45邏輯變換6邏輯電路圖3化簡(jiǎn)4111Y=AB+AC563.2.1半加器和全加器3.2.2加法器3.2.3加法器的應(yīng)用3.2加法器1、半加器3.2.1半加器和全加器

能對(duì)兩個(gè)1位二進(jìn)制數(shù)進(jìn)行相加而求得和及進(jìn)位的邏輯電路稱為半加器。加數(shù)本位的和向高位的進(jìn)位2、全加器

能對(duì)兩個(gè)1位二進(jìn)制數(shù)進(jìn)行相加并考慮低位來(lái)的進(jìn)位,求得和及進(jìn)位的邏輯電路稱為全加器。Ai、Bi:加數(shù),Ci-1:低位來(lái)的進(jìn)位,Si:本位的和,Ci:向高位的進(jìn)位。全加器的邏輯圖和邏輯符號(hào)

用與門和或門實(shí)現(xiàn)實(shí)現(xiàn)多位二進(jìn)制數(shù)相加的電路稱為加法器。1、串行進(jìn)位加法器3.2.2加法器構(gòu)成:把n位全加器串聯(lián)起來(lái),低位全加器的進(jìn)位輸出連接到相鄰的高位全加器的進(jìn)位輸入。特點(diǎn):進(jìn)位信號(hào)是由低位向高位逐級(jí)傳遞的,速度不高。2、并行進(jìn)位加法器(超前進(jìn)位加法器)進(jìn)位生成項(xiàng)進(jìn)位傳遞條件進(jìn)位表達(dá)式和表達(dá)式4位超前進(jìn)位加法器遞推公式超前進(jìn)位發(fā)生器加法器的級(jí)連集成二進(jìn)制4位超前進(jìn)位加法器3.3.11位數(shù)值比較器3.3.24位數(shù)值比較器3.3數(shù)值比較器

用來(lái)完成兩個(gè)二進(jìn)制數(shù)的大小比較的邏輯電路稱為數(shù)值比較器,簡(jiǎn)稱比較器。3.3.11位數(shù)值比較器

設(shè)A>B時(shí)L1=1;A<B時(shí)L2=1;A=B時(shí)L3=1。得1位數(shù)值比較器的真值表。邏輯表達(dá)式邏輯圖3.3.24位數(shù)值比較器真值表中的輸入變量包括A3與B3、A2與B2、A1與B1

、A0與B0和A'與B'的比較結(jié)果,A'>B'、A'<B'和A'=B'。A'與B'是另外兩個(gè)低位數(shù),設(shè)置低位數(shù)比較結(jié)果輸入端,是為了能與其它數(shù)值比較器連接,以便組成更多位數(shù)的數(shù)值比較器;3個(gè)輸出信號(hào)L1(A>B)、L2(A<B)、和L3(A=B)分別表示本級(jí)的比較結(jié)果。邏輯圖3.3.3比較器的級(jí)聯(lián)集成數(shù)值比較器串聯(lián)擴(kuò)展TTL電路:最低4位的級(jí)聯(lián)輸入端A'>B'、

A'<B'和A'=B'必須預(yù)先分別預(yù)置為0、0、1。3.4.1二進(jìn)制編碼器3.4.2二-十進(jìn)制編碼器3.4編碼器

I0I1I2I3I4I5I6I7000001010011100101110111輸入輸出Y2Y1Y0實(shí)現(xiàn)編碼操作的電路稱為編碼器。3.4.1二進(jìn)制編碼器1、3位二進(jìn)制編碼器輸入8個(gè)互斥的信號(hào)輸出3位二進(jìn)制代碼真值表邏輯表達(dá)式邏輯圖2、3位二進(jìn)制優(yōu)先編碼器

在優(yōu)先編碼器中優(yōu)先級(jí)別高的信號(hào)排斥級(jí)別低的,即具有單方面排斥的特性。設(shè)I7的優(yōu)先級(jí)別最高,I6次之,依此類推,I0最低。真值表邏輯表達(dá)式邏輯圖8線-3線優(yōu)先編碼器

如果要求輸出、輸入均為反變量,則只要在圖中的每一個(gè)輸出端和輸入端都加上反相器就可以了。2、集成3位二進(jìn)制優(yōu)先編碼器ST為使能輸入端,低電平有效。YS為使能輸出端,通常接至低位芯片的端。YS和ST配合可以實(shí)現(xiàn)多級(jí)編碼器之間的優(yōu)先級(jí)別的控制。YEX為擴(kuò)展輸出端,是控制標(biāo)志。YEX

=0表示是編碼輸出;YEX

=1表示不是編碼輸出。集成3位二進(jìn)制優(yōu)先編碼器74LS1483.5.1二進(jìn)制譯碼器3.5.2二-十進(jìn)制譯碼器3.5.3顯示譯碼器3.5.4譯碼器的應(yīng)用3.5譯碼器

把代碼狀態(tài)的特定含義翻譯出來(lái)的過(guò)程稱為譯碼,實(shí)現(xiàn)譯碼操作的電路稱為譯碼器。3.5.1二進(jìn)制譯碼器

設(shè)二進(jìn)制譯碼器的輸入端為n個(gè),則輸出端為2n個(gè),且對(duì)應(yīng)于輸入代碼的每一種狀態(tài),2n個(gè)輸出中只有一個(gè)為1(或?yàn)?),其余全為0(或?yàn)?)。

二進(jìn)制譯碼器可以譯出輸入變量的全部狀態(tài),故又稱為變量譯碼器。1、3位二進(jìn)制譯碼器真值表輸入:3位二進(jìn)制代碼輸出:8個(gè)互斥的信號(hào)邏輯表達(dá)式邏輯圖電路特點(diǎn):與門組成的陣列2、集成二進(jìn)制譯碼器74LS138A2、A1、A0為二進(jìn)制譯碼輸入端,為譯碼輸出端(低電平有效),G1、、為選通控制端。當(dāng)G1=1、時(shí),譯碼器處于工作狀態(tài);當(dāng)G1=0、時(shí),譯碼器處于禁止?fàn)顟B(tài)。3.5.3顯示譯碼器1、數(shù)碼顯示器

用來(lái)驅(qū)動(dòng)各種顯示器件,從而將用二進(jìn)制代碼表示的數(shù)字、文字、符號(hào)翻譯成人們習(xí)慣的形式直觀地顯示出來(lái)的電路,稱為顯示譯碼器。b=c=f=g=1,a=d=e=0時(shí)c=d=e=f=g=1,a=b=0時(shí)共陰極2、顯示譯碼器真值表僅適用于共陰極LED真值表a的卡諾圖b的卡諾圖c的卡諾圖d的卡諾圖e的卡諾圖f的卡諾圖g的卡諾圖邏輯表達(dá)式邏輯圖3.5.4譯碼器的應(yīng)用1、用二進(jìn)制譯碼器實(shí)現(xiàn)邏輯函數(shù)②畫出用二進(jìn)制譯碼器和與非門實(shí)現(xiàn)這些函數(shù)的接線圖。①寫出函數(shù)的標(biāo)準(zhǔn)與或表達(dá)式,并變換為與非-與非形式。3.6.14選1數(shù)據(jù)選擇器3.6.2集成數(shù)據(jù)選擇器3.6.3用數(shù)據(jù)選擇器實(shí)現(xiàn)組合邏輯函數(shù)3.6數(shù)據(jù)選擇器四選一數(shù)據(jù)選擇器Y3.6.14選1數(shù)據(jù)選擇器真值表邏輯表達(dá)式地址變量輸入數(shù)據(jù)由地址碼決定從4路輸入中選擇哪1路輸出。邏輯圖3.6.2集成數(shù)據(jù)選擇器集成雙4選1數(shù)據(jù)選擇器74LS153

選通控制端S為低電平有效,即S=0時(shí)芯片被選中,處于工作狀態(tài);S=1時(shí)芯片被禁止,Y≡0。3.6.3用數(shù)據(jù)選擇器實(shí)現(xiàn)邏輯函數(shù)基本原理數(shù)據(jù)選擇器的主要特點(diǎn):(1)具有標(biāo)準(zhǔn)與或表達(dá)式的形式。即:(2)提供了地址變量的全部最小項(xiàng)。(3)一般情況下,Di可以當(dāng)作一個(gè)變量處理。因?yàn)槿魏谓M合邏輯函數(shù)總可以用最小項(xiàng)之和的標(biāo)準(zhǔn)形式構(gòu)成。所以,利用數(shù)據(jù)選擇器的輸入Di來(lái)選擇地址變量組成的最小項(xiàng)mi,可以實(shí)現(xiàn)任何所需的組合邏輯函數(shù)?;静襟E確定數(shù)據(jù)選擇器確定地址變量21n個(gè)地址變量的數(shù)據(jù)選擇器,不需要增加門電路,最多可實(shí)現(xiàn)n+1個(gè)變量的函數(shù)。3個(gè)變量,選用4選1數(shù)據(jù)選擇器。A1=A、A0=B邏輯函數(shù)1選用74LS153274LS153有兩個(gè)地址變量。求Di3(1)公式法函數(shù)的標(biāo)準(zhǔn)與或表達(dá)式:4選1數(shù)據(jù)選擇器輸出信號(hào)的表達(dá)式:比較L和Y,得:344VHDL的基本特點(diǎn)VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)原來(lái)只是美國(guó)國(guó)防部的一種標(biāo)準(zhǔn),1987年被IEEE協(xié)會(huì)接受為硬件描述語(yǔ)言標(biāo)準(zhǔn),即VHDL-87,1993年又被IEEE進(jìn)一步修改,即VHDL-93?;咎攸c(diǎn):1、可以在各個(gè)不同設(shè)計(jì)階段對(duì)系統(tǒng)進(jìn)行描述。比較抽象的系統(tǒng)行為描述、比較具體的數(shù)據(jù)流描述、更加具體的邏輯結(jié)構(gòu)描述。2、支持層次化設(shè)計(jì)方法3、支持各種不同類型的數(shù)字電路和系統(tǒng)的設(shè)計(jì)。同步、異步;TTL、CMOS、CPLD、FPGA……4、具有很好的時(shí)間性能描述機(jī)制。3.6VHDL硬件描述語(yǔ)言

一個(gè)完整的VHDL語(yǔ)言程序通常包含實(shí)體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、包集合(Package)和庫(kù)(Library)5個(gè)部分,如圖3-33所示。

VHDL文件庫(kù),程序包實(shí)體結(jié)構(gòu)體配置說(shuō)明語(yǔ)句功能描述語(yǔ)句圖3-33VHDL程序基本結(jié)構(gòu)VHDL的基本結(jié)構(gòu)例:2輸入與非門的VHDL描述(數(shù)據(jù)流描述)ENTITY

nand2

IS--實(shí)體描述

PORT(i1,i2:IN

BIT;--輸入信號(hào)名

o1:OUT

BIT);--輸出信號(hào)名END

nand2;ARCHITECTURE

delayed

OF

nand2

IS--結(jié)構(gòu)體描述BEGIN

o1<=i1NANDi2AFTER5NS;--電路的數(shù)據(jù)流描述END

delayed;實(shí)體:也稱接口,描述硬件模塊的I/O接口,包括I/O信號(hào)的名稱、類型等。VHDL描述結(jié)構(gòu)體:對(duì)硬件內(nèi)部結(jié)構(gòu)或性能的具體描述實(shí)體描述格式:ENTITY實(shí)體名ISPORT(信號(hào)名:類別信號(hào)類型;

…..;

信號(hào)名:類別信號(hào)類型);END實(shí)體名類別:

INOUTBUFFER,可反饋

INOUT信號(hào)類型:

BIT、BIT_VECTORSTD_LOGIC、

STD_LOGIC_VECTORBOOLEANINTEGERCHARACTER結(jié)構(gòu)體描述格式:ARCHITECTURE結(jié)構(gòu)體名OF實(shí)體名IS<聲明部分>BEGIN<描述部分>END結(jié)構(gòu)體名;例:2輸入與非門的另一種描述(行為描述)ARCHITECTUREanotherOFnand2ISBEGINPROCESS(i1,i2)--行為描述一定要有該語(yǔ)句

BEGINIFi1=‘1’ANDi2=‘1’THENo1<=‘0’AFTER5NS;ELSEo1<=‘1’AFTER5NS;ENDIF;ENDPROCESS;ENDanother;VHDL自定義數(shù)據(jù)類型1、枚舉類型

格式:

TYPE類型名IS(值列表);舉例:

TYPEqit_logicIS(‘0’,’1’,’Z’,’X’);TYPEtraffic_lightIS(red,green,yellow);2、數(shù)組類型

格式:

TYPE數(shù)組名ISARRAY(范圍)OF基類型;舉例:

TYPEregisterISARRAY(0TO7)OFBIT;TYPEregister_1ISARRAY(7DOWNTO0)OFBIT;TYPEromISARRAY(0TO7)OFregister;TYPEromISARRAY(0TO7,0TO7)OFBIT;TYPElight_delayISARRAY(traffic_light)OFINTEGER;

允許整體賦值和部分賦值,如:

SIGNALarr_1,arr_2:regist_1;arr_1<=“10110110”;arr_1<=(‘1’,’0’,’1’,’1’,’0’,’1’,’1’,’0’);arr_2<=arr_1;arr_2(0TO3)<=“1011”;VHDL運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符連接運(yùn)算符+(加)=(等于)AND(與)&(連接)-(減)/=(不等于)OR(或)連接符將多個(gè)對(duì)象或矢量連接成維數(shù)更大的矢量*(乘)<(小于)NAND(與非)/(除)<=(小于等于)NOR(或非)**(乘方)>(大于)XOR(異或)MOD(求模)>=(大于等于)XNOR(同或)REM(求余)其中‘<=’也用于表示信號(hào)的賦值操作NOT(非)ABS(求絕對(duì)值)

注意:邏輯運(yùn)算符的優(yōu)先級(jí):NOT、(高優(yōu)先級(jí))

XOR、NOR、NAND、OR、AND(同級(jí))NAND、NOR不滿足結(jié)合率(aNANDb)NANDc與

aNAND(bNANDC)不同&可以連接任意數(shù)組:

TYPEregisterISARRAY(7DOWNTO0)OFBIT;SIGNALreg_1,reg_2:register;reg_1<=reg_1(6DOWNTO0)®_1(7);--左環(huán)移

reg_1®_2;--形成16位數(shù)組標(biāo)識(shí)符(Identifier)

1)

VHDL不區(qū)分大小寫;

2)

標(biāo)識(shí)符一定要以字母開(kāi)頭;

3)

下劃線不能放在結(jié)尾;

4)

下劃線不能連用。

由英文字母“a”~“z”、“A”~“Z”、數(shù)字“0”~“9”以及下劃線“_”組成。使用時(shí)應(yīng)注意以下幾點(diǎn):

如a_h_1、show_new_state、COUNTER_A有效。a%h_1、show-new-state、COUNTER_、T__1非法。常量定義:格式:CONSTANT常量名:類型名:=常量值;CONSTANTarray_size:INTEGER:=16;CONSTANTgate_delay:TIME:=50ns;--時(shí)間類型VHDL表達(dá)式:可以使用變量和信號(hào),但定義方式有區(qū)別VARIABLE變量名:類型名[:=初值];變量用:=賦值,表示立即起作用SIGNAL信號(hào)名:類型名[<=初值];信號(hào)用<=賦值,表示有延遲,進(jìn)程結(jié)束時(shí)起作用信號(hào)聲明在子程序、進(jìn)程外部,變量聲明在內(nèi)部同一個(gè)表達(dá)式中數(shù)據(jù)類型應(yīng)相同。

在所有的并行語(yǔ)句中,兩個(gè)以上的并行賦值語(yǔ)句在字面上的順序并不表明它們的執(zhí)行順序,例如下面的兩個(gè)結(jié)構(gòu)體在功能上是等價(jià)的。ENTITYexeIS

PORT(a1,a2:INBIT;

b1,b2:OUTBIT);

ENDexe;ARCHITECTUREexe_arc1OFexeIS

BEGIN

b1<=a1ANDa2;

b2<=NOTa1ORa2;

ENDexe_arc1;ARCHITECTUREexe_arc2OFexeIS

BEGIN

b2<=NOTa1ORa2;

b1<=a1ANDb2;

ENDexe_arc2; VHDL庫(kù)和包一、庫(kù)包括系統(tǒng)庫(kù)、IEEE庫(kù)和用戶庫(kù)系統(tǒng)庫(kù)是VHDL本身預(yù)定義的庫(kù),包括STD庫(kù)和WORK庫(kù)。

STD庫(kù)是系統(tǒng)的標(biāo)準(zhǔn)庫(kù),包括系統(tǒng)本身預(yù)定義的類型和操作,如BIT、BIT_VECTOR等。WORK庫(kù)是用戶的工作庫(kù)。

STD、WORK庫(kù)對(duì)用戶透明,不需要說(shuō)明。

IEEE庫(kù)是IEEE認(rèn)可的標(biāo)準(zhǔn)庫(kù),包括STD_LOGIC類型以及有關(guān)函數(shù)的定義。封裝在STD_LOGIC_1164包中。用戶庫(kù)是VHDL軟件廠商開(kāi)發(fā)的庫(kù)。如Altera庫(kù)、LPM庫(kù)等。 STD_LOGIC類型(9值邏輯)TYPEstd_logicIS(‘0’,--強(qiáng)0‘1’,--強(qiáng)1‘X’,--強(qiáng)未知的‘Z’,--高阻態(tài)‘U’,--未初始化的‘W’,--弱未知的‘L’,--若0‘H’,--弱1‘-’,--忽略)前4有實(shí)際物理意義,其他是為與模擬環(huán)境相容保留的VHDL庫(kù)中可以包含很多內(nèi)容,以程序包的形式組織在一起,如,IEEE庫(kù)中有標(biāo)準(zhǔn)邏輯包STD_LOGIC_1164。 包是VHDL對(duì)預(yù)定義類型、函數(shù)、部件進(jìn)行封裝的一種形式。一般將相似特性的部件、類型、函數(shù)封裝在一個(gè)包中。結(jié)構(gòu):

PACKAGE程序包名IS

程序包說(shuō)明部分

END程序包名

PACKAGEBODY程序包名IS

程序包體描述

END程序包名常量、信號(hào)、類型、函數(shù)或過(guò)程、部件說(shuō)明函數(shù)、過(guò)程、結(jié)構(gòu)體的具體描述二、包

聲明庫(kù),如LIBRARYIEEE; 聲明使用庫(kù)中的哪個(gè)包,如果使用全部?jī)?nèi)容則用ALL聲明,否則要聲明具體內(nèi)容。格式:USE庫(kù)名.程序包名.ALL(或子程序名);如:LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;注:STD和WORK庫(kù)不用聲明三、庫(kù)和包的引用函數(shù)和過(guò)程(子程序)FUNCTION函數(shù)名(參數(shù)表)RETURN類型IS[定義語(yǔ)句]BEGIN

函數(shù)體

END函數(shù)名;PROCEDURE過(guò)程名(參數(shù)表)IS[定義語(yǔ)句]BEGIN

過(guò)程體

END過(guò)程名;必須包含RETURN語(yǔ)句區(qū)別:1、返回值(有、無(wú))2、參數(shù)傳遞方向(單向、可雙向)P95例題并行處理語(yǔ)句ENTITYhalf_adderISPORT(a,b:INBIT;--輸入信號(hào)

s,c:OUTBIT);--輸出信號(hào)ENDhalf_adder;ARCHITECTUREh_adderOFhalf_adderISSINGALc0,d:BIT;--中間信號(hào)BEGINc0<=aORb;d<=aNANDb;c<=NOTd;s<=c0ANDd;ENDh_adder;一、并行賦制值語(yǔ)句格式:信號(hào)名<=表達(dá)式[AFTER延遲時(shí)間]

例:半加器數(shù)據(jù)流描述(S=AB(A+B),C=AB)注:執(zhí)行順序與書寫順序無(wú)關(guān),是一種信號(hào)激勵(lì)和傳送關(guān)系半加器LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;ENTITYhalf_adderISPORT(a,b:INBIT;--輸入信號(hào)

s,c:OUTBIT);--輸出信號(hào)ENDhalf_adder;ARCHITECTUREh_adderOFhalf_adderISBEGINs<=axorb;c<=aandb;END

h_adder;二、條件賦值語(yǔ)句

格式:信號(hào)名<=表達(dá)式1WHEN布爾表達(dá)式1ELSE

表達(dá)式2WHEN布爾表達(dá)式2ELSE……

表達(dá)式nWHEN布爾表達(dá)式nELSE

表達(dá)式n+1;例:用條件賦值語(yǔ)句描述4路數(shù)據(jù)選擇器ENTITYmux4_to_1ISPORT(d0,d1,d2,d3,a,b:INBIT;y:OUTBIT);ENDmux4_to_1;ARCHITECTUREsample_1OFmux4_to_1ISBEGINy<=d0WHENa=‘0’ANDb=‘0’ELSEd1WHENa=‘0’ANDb=‘1’ELSEd2WHENa=‘1’ANDb=‘0’ELSEd3WHENa=‘1’ANDb=‘1’;ENDsample_1;如果信號(hào)類型定義為STD_LOGIC,信號(hào)就有9種可能取值,最后應(yīng)加ELSE‘X’;三、選擇信號(hào)賦值語(yǔ)句

格式:WITH表達(dá)式SELECT

信號(hào)名<=信號(hào)值1WHEN表達(dá)式值1,

信號(hào)值2WHEN表達(dá)式值2,

……

信號(hào)值nWHENOTHERS;例:用選擇信號(hào)賦值語(yǔ)句描述4路數(shù)據(jù)選擇器ARCHITECTUREsample_2OFmux4_to_1SIGNALS:BIT_VECTOR(1DOWNTO0);BEGINS<=a&b;WITHSSELECTy<=d0WHEN“00”,

d1WHEN“01”,

d2WHEN“10”,

d3WHEN“11”;ENDsample_2;順序描述語(yǔ)句格式:PROCESS(信號(hào)1,……信號(hào)k)變量說(shuō)明(定義);--不能定義信號(hào)其它說(shuō)明;--常量、類型說(shuō)明等等BEGIN

順序語(yǔ)句;

……

順序語(yǔ)句;ENDPROCESS;一、PROCESS語(yǔ)句

PROCESS本身是并行描述語(yǔ)句,但順序語(yǔ)句一般都要包含在PROCESS語(yǔ)句中。敏感表二、信號(hào)和變量賦值語(yǔ)句信號(hào)名<=表達(dá)式;--同并行賦值語(yǔ)句,不立即起作用變量名:=表達(dá)式;--立即起作用三、分支語(yǔ)句1、IF語(yǔ)句1)IF布爾表達(dá)式THEN

順序語(yǔ)句

[ELSE

順序語(yǔ)句]ENDIF;2)IF布爾表達(dá)式THEN

順序語(yǔ)句

ELSIF

布爾表達(dá)THEN

順序語(yǔ)句

ELSE

順序語(yǔ)句

ENDIF;四選一數(shù)據(jù)選擇器的行為描述:Libraryieee;Useieee.std_logic_1164.all;entitymux4isport(s:instd_logic_vector(3downto0);en:instd_logic_vector(1downto0);y:outstd_logic);endmux4;

architecturemuxe4ofmux4isbeginprocess(en,s)beginifen=“00”theny<=s(0);elsifen=“01”theny<=s(1);elsifen=“10”theny<=s(2);elsifen=“11”theny<=s(3);elsey<='0';endif;endprocess;endmux4;2、CASE語(yǔ)句

格式:CASE表達(dá)式ISWHEN值1=>順序語(yǔ)句1……WHEN值k=>順序語(yǔ)句kWHENOTHERS=>順序語(yǔ)句k+1ENDCASE;例:4選1數(shù)據(jù)選擇器的順序描述ENTITYmux4_1ISPORT(a,b,i0,i1,i2,i3:INBIT;y:OUTBIT);ENDmux4_1;ARCHITECTUREbehaveOFmux4_1ISSIGNALsel:bit_vector(1DOWNTO0);BEGIN

sel<=b&a;

PROCESS(sel)BEGINCASEselISWHEN“00”=>y<=i0;WHEN“01”=>y<=i1;WHEN“10”=>y<=i2;WHEN“11”=>y<=i3;ENDCASE;ENDPROCESS;ENDbehave;在PROCESS外傳送,其變化激勵(lì)PROCESS的執(zhí)行四、循環(huán)語(yǔ)句

1、FOR循環(huán)

格式:標(biāo)號(hào):FOR變量IN范圍LOOP

順序語(yǔ)句

……

順序語(yǔ)句

ENDLOOP標(biāo)號(hào);用NEXT語(yǔ)句可以結(jié)束本次循環(huán),EXIT語(yǔ)句可以跳出循環(huán),格式:NEXT標(biāo)號(hào)WHEN條件;EXIT標(biāo)號(hào)WHEN條件;2、WHILE循環(huán)

格式:標(biāo)號(hào):WHILE布爾表達(dá)式LOOP

順序語(yǔ)句

……

順序語(yǔ)句

ENDLOOP標(biāo)號(hào);P92、P93例1)FOR語(yǔ)句<循環(huán)標(biāo)號(hào)>:FOR<循環(huán)變量>IN<范圍>LOOP<語(yǔ)句>ENDLOOP<循環(huán)標(biāo)號(hào)>;s:=0;L1:foriin1to100loops:=s+i;

Endloopl1;3、循環(huán)語(yǔ)句2)WHILE語(yǔ)句<循環(huán)標(biāo)號(hào)>:WHILE<條件>LOOP<語(yǔ)句>ENDLOOP<循環(huán)標(biāo)號(hào)>;s:=0;i:=1;L1:whilei<=100loops:=s+i;i:=i+1;Endloopl1;3、循環(huán)語(yǔ)句結(jié)構(gòu)描述語(yǔ)句一、部件(元件)聲明語(yǔ)句格式:COMPONENT部件名

PORT(信號(hào)名:類別信號(hào)類型;

……

信號(hào)名:類別信號(hào)類型);

ENDCOMPONENT;實(shí)際上只是將相應(yīng)ENTITY描述中的PORT部分復(fù)制過(guò)來(lái)。二、部件描述語(yǔ)句

COMPONENT語(yǔ)句屬于并行語(yǔ)句。也稱為實(shí)例化語(yǔ)句。使用一次,就在電路中“安裝”了一個(gè)部件

格式1:標(biāo)號(hào):部件名PORTMAP(信號(hào)名1,信號(hào)名2…,信號(hào)名n);

標(biāo)號(hào)可以理解為部件在電路中的名稱。

PORTMAP說(shuō)明實(shí)際部件上的信號(hào)與部件聲明中的信號(hào)的對(duì)應(yīng)關(guān)系。格式1按位置順序?qū)?yīng)。

格式2:標(biāo)號(hào):部件名PORTMAP(接口信號(hào)1=>信號(hào)名1,…,接口信號(hào)n=>信號(hào)名n);

接口信號(hào)是ENTITY描述中PORT部分使用的信號(hào)名。

信號(hào)名是加到當(dāng)前部件的實(shí)際信號(hào)名。例:使用前面定義的半加器half_adder描述全加器半加器半加器≥1xycincarrysumh1_sh1_ch2_c原理圖ENTITYfull_adderISPORT(x,y,cin:INBIT;--輸入信號(hào)

sum,carry:OUTBIT);--輸出信號(hào)ENDfull_adder;ARCHITECTUREf_adderOFfull_adderISCOMPONENThalf_adder--半加器部件聲明

PORT(a,b:INBIT;s,c:OUTBIT);ENDCOMPONENT;SINGALh1_s,h1_c,h2_c:BIT;--內(nèi)部信號(hào),與半加器接口信號(hào)對(duì)應(yīng)BEGIN

h1:half_adderPORTMAP(x,y,h1_s,h1_c);--信號(hào)映射

h2:half_adderPORTMAP(h1_s,cin,sum,h2_c);carry<=h2_cORh1_c;ENDf_adder;三、重復(fù)部件的描述前面的方法是每使用一次部件就使用一次實(shí)例化語(yǔ)句。VHDL還有一種類似FOR循環(huán)的簡(jiǎn)單方法。即GENERATE語(yǔ)句。格式:標(biāo)號(hào):FOR標(biāo)識(shí)符IN范圍GENERATECOMPONENT語(yǔ)句

ENDGENERATE;

標(biāo)識(shí)符相當(dāng)于循環(huán)變量。例:8位反相器的結(jié)構(gòu)描述。ENTITYinv_8_bitISPORT(x:INSTD_LOGIC_VECTOR(1TO8);y:OUTSTD_LOGIC_VECTOR(1TO8));ENDinv_8_bit;ARCHITECTUREstructOFinv_8_bitISCOMPONENTinvPORT(i:INSTD_LOGIC;o:OUTSTD_LOGIC);ENDCOMPONENT;BEGIN

u:FORnIN1TO8GENERATEv:invPORTMAP(x(n),y(n));ENDGENERATE;ENDstruct;3.7基本組合邏輯電路的設(shè)計(jì)舉例3.7.1半加器和全加器的設(shè)計(jì)

半加器的設(shè)計(jì)

邏輯符號(hào)

A、B:加數(shù)、被加數(shù)S、C:和、進(jìn)位半加器的設(shè)計(jì)步驟:

(1)列真值表:(3)化簡(jiǎn):已經(jīng)最簡(jiǎn)(4)電路圖:方案1:(2)寫出最小項(xiàng)之和表達(dá)式:方案2:方案3:

ENTITYhalf_adderISPORT(a,b:INBIT;--輸入信號(hào)

s,c:OUTBIT);--輸出信號(hào)ENDhalf_adder;ARCHITECTUREh_adderOFhalf_adderISSINGALc0,d:BIT;--中間信號(hào)BEGINc0<=aORb;d<=aNANDb;c<=NOTd;s<=c0ANDd;ENDh_adder;并行語(yǔ)句依據(jù)表達(dá)式:半加器的一種VHDL數(shù)據(jù)流描述:2.全加器的設(shè)計(jì)

將加數(shù)、被加數(shù)、低位向該位的進(jìn)位相加,產(chǎn)生和、向高位的進(jìn)位的加法器,稱全加器(FullAdder,FA)

Ai、Bi、

Ci-1

:加數(shù)、被加數(shù)、低位向該位的進(jìn)位;

Si、Ci:和、向高位的進(jìn)位。

全加器的設(shè)計(jì)過(guò)程:

(1)列真值表:(2)“最小項(xiàng)之和”表達(dá)式:

Si=∑m(1,2,4,7)Ci=∑m(3,5,6,7)

(3)化簡(jiǎn)成最簡(jiǎn)“與-或”式:

(4)電路圖:方案一:用“與非”門實(shí)現(xiàn)全加器:方案二:用半加器實(shí)現(xiàn)全加器:只用一個(gè)構(gòu)造體的邏輯描述一位全加器。

libraryieee;useieee.std_logic_1164.all;entityfull_adderisport(a,b,cin:instd_logic;sum,cout:outstd_logic);endfull_adder;architecturea_adderoffull_adderissignals:std_logic;begins<=axorb;sum<=sxorcin;cout<=(sandcin)or(xandy);enda_adder;全加器的一種VHDL語(yǔ)言結(jié)構(gòu)描述

:ENTITYfull_adderISPORT(x,y,cin:INBIT;--輸入信號(hào)

sum,carry:OUTBIT);

溫馨提示

  • 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)論