![VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8_第1頁(yè)](http://file4.renrendoc.com/view/8c55be90fea9ee171bc30f59fb737fbf/8c55be90fea9ee171bc30f59fb737fbf1.gif)
![VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8_第2頁(yè)](http://file4.renrendoc.com/view/8c55be90fea9ee171bc30f59fb737fbf/8c55be90fea9ee171bc30f59fb737fbf2.gif)
![VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8_第3頁(yè)](http://file4.renrendoc.com/view/8c55be90fea9ee171bc30f59fb737fbf/8c55be90fea9ee171bc30f59fb737fbf3.gif)
![VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8_第4頁(yè)](http://file4.renrendoc.com/view/8c55be90fea9ee171bc30f59fb737fbf/8c55be90fea9ee171bc30f59fb737fbf4.gif)
![VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8_第5頁(yè)](http://file4.renrendoc.com/view/8c55be90fea9ee171bc30f59fb737fbf/8c55be90fea9ee171bc30f59fb737fbf5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章基本邏輯電路設(shè)計(jì)8.1組合邏輯電路設(shè)計(jì)8.2時(shí)序電路設(shè)計(jì)習(xí)題與思考題第8章基本邏輯電路設(shè)計(jì)8.1組合邏輯電路設(shè)計(jì)
8.1組合邏輯電路設(shè)計(jì)
8.1.1簡(jiǎn)單門電路簡(jiǎn)單門電路包括2輸入“與非”門、集電極開(kāi)路的2輸入“與非”門、2輸入“或非”門、反相器、集電極開(kāi)路的反相器、3輸入“與”門、3輸入“與非”門、2輸入“或”門和2輸入“異或”門等,它們是構(gòu)成所有邏輯電路的基本電路。
8.1組合邏輯電路設(shè)計(jì)
8.1.1簡(jiǎn)單門電路
1.2輸入“與非”門電路
2輸入“與非”門電路的邏輯表達(dá)式為
y?=???(a∧b)
其邏輯電路圖如圖8-1所示。
利用VHDL描述2輸入“與非”門有多種形式,現(xiàn)舉兩個(gè)例子加以說(shuō)明。
1.2輸入“與非”門電路
2輸入“與非”門電路的邏圖8-1
2輸入“與非”門電路圖8-12輸入“與非”門電路
【例8-1】用VHDL描述2輸入“與非”門電路示例一。
【例8-1】用VHDL描述2輸入“與非”門電路示例一
【例8-2】用VHDL描述2輸入“與非”門電路示例二。
【例8-2】用VHDL描述2輸入“與非”門電路示例二VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
從上面兩個(gè)例子中可以看出,例8-1的描述更簡(jiǎn)潔,更接近于2輸入“與非”門的行為描述,因此也更易于閱讀;例8-2的描述是以2輸入“與非”門的真值表為依據(jù)來(lái)編寫(xiě)的,羅列了2輸入“與非”門的每種輸入狀態(tài)及其對(duì)應(yīng)的輸出結(jié)果。
從上面兩個(gè)例子中可以看出,例8-1的描述更簡(jiǎn)潔,更接近
集電極開(kāi)路的2輸入“與非”門和一般的2輸入“與非”門在VHDL的描述上沒(méi)有什么差異,所不同的只是從不同元件庫(kù)中提取相應(yīng)的電路而已。例如:
集電極開(kāi)路的2輸入“與非”門和一般的2輸入“與非”門在
在第一個(gè)例子中要生成的是一般TTL的2輸入“與非”門,而在第二個(gè)例子中要生成的是TTL集電極開(kāi)路的2輸入“與非”門。這里所敘述的情況對(duì)其他門電路同樣適用。因此,對(duì)不同類型門電路的集電極開(kāi)路輸出門,本節(jié)將不再贅述。
在第一個(gè)例子中要生成的是一般TTL的2輸入“與非”門,
2.2輸入“或非”門電路
2輸入“或非”門電路的邏輯表達(dá)式為
y?=???(a∨b)
其邏輯電路圖如圖8-2所示。
現(xiàn)舉兩個(gè)用VHDL描述2輸入“或非”門電路的例子。
2.2輸入“或非”門電路
2輸入“或非”門電路的邏圖8-2
2輸入“或非”門電路圖8-22輸入“或非”門電路
【例8-3】用VHDL描述2輸入“或非”門電路示例一。
【例8-3】用VHDL描述2輸入“或非”門電路示例一
【例8-4】用VHDL描述2輸入“或非”門電路示例二。
【例8-4】用VHDL描述2輸入“或非”門電路示例二VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
3.反相器
反相器電路的邏輯表達(dá)式為
y
=???a
其邏輯電路圖如圖8-3所示。
VHDL對(duì)反相器的描述如例8-5和例8-6所示。
3.反相器
反相器電路的邏輯表達(dá)式為
圖8-3反相器電路圖8-3反相器電路
【例8-5】VHDL對(duì)反相器的描述一。
【例8-5】VHDL對(duì)反相器的描述一。
【例8-6】
VHDL對(duì)反相器的描述二。
【例8-6】VHDL對(duì)反相器的描述二。
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
4.3輸入“與非”門電路
3輸入“與非”門電路的邏輯表達(dá)式為
y
=??
(a∧b∧c)
其邏輯電路如圖8-4所示。
3輸入“與非”門和2輸入“與非”門的差異僅在于多了一個(gè)輸入引腳,在用VHDL編程時(shí),在端口說(shuō)明中應(yīng)加一個(gè)輸入端口。例如,原來(lái)的輸入端口為a、b兩個(gè),現(xiàn)在應(yīng)變?yōu)閍、b、c三個(gè)。當(dāng)然,根據(jù)邏輯表達(dá)式,該輸入端口的信號(hào)c應(yīng)與a、b一樣,一起參與邏輯運(yùn)算,以得到最后的輸出y。用VHDL描述3輸入“與非”門電路示例如例8-7和例8-8所示。
4.3輸入“與非”門電路
3輸入“與非”門電路的圖8-43輸入“與非”門電路圖8-43輸入“與非”門電路
【例8-7】用VHDL描述3輸入“與非”門電路示例一。
【例8-7】用VHDL描述3輸入“與非”門電路示例一
【例8-8】用VHDL描述3輸入“與非”門電路示例二。
【例8-8】用VHDL描述3輸入“與非”門電路示例二VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
5.2輸入“異或”門電路
2輸入“異或”門電路的邏輯表達(dá)式為
其邏輯電路如圖8-5所示。
用VHDL描述2輸入“異或”門電路示例如例8-9和例8-10所示。
5.2輸入“異或”門電路
2輸入“異或”門電路的邏圖8-52輸入“異或”門電路圖8-52輸入“異或”門電路
【例8-9】用VHDL描述2輸入“異或”門電路示例一。
【例8-9】用VHDL描述2輸入“異或”門電路示例一
【例8-10】用VHDL描述2輸入“異或”門電路示例二。
【例8-10】用VHDL描述2輸入“異或”門電路示例VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
上述簡(jiǎn)單的門電路大多用兩種不同形式的VHDL程序來(lái)描述,其行為和功能是完全一樣的。事實(shí)上還可以運(yùn)用VHDL中所給出的語(yǔ)句來(lái)描述這些門電路,這就給編程人員提供了較大的編程靈活性。但是,一般來(lái)說(shuō),無(wú)論是編程人員還是閱讀這些程序的人員,都希望程序能一目了然,因此盡可能采用VHDL中所提供的語(yǔ)言和符號(hào),用簡(jiǎn)潔的語(yǔ)句描述其行為,這總是首選的描述方式。
上述簡(jiǎn)單的門電路大多用兩種不同形式的VHDL程序來(lái)描述
8.1.2編、譯碼器與選擇器
編、譯碼器和選擇器是組合電路中較簡(jiǎn)單的3種通用電路。它們可以由簡(jiǎn)單的門電路組合連接構(gòu)成。例如,圖8-6所示是一個(gè)3-8譯碼器電路(74LS138)。由有關(guān)手冊(cè)可知,該譯碼器由8個(gè)3輸入“與非”門、4個(gè)反相器和一個(gè)3輸入“或非”門構(gòu)成。如果事先不作說(shuō)明,只給出電路,讓讀者來(lái)判讀該電路的功能,那么毋庸置疑,要看懂該電路就要花較多的時(shí)間。如果采用VHDL,從行為、功能來(lái)對(duì)3-8譯碼器進(jìn)行描述,則不僅邏輯設(shè)計(jì)變得非常容易,而且閱讀也會(huì)很方便。
8.1.2編、譯碼器與選擇器
編、譯碼器和選擇器是圖8-63-8譯碼器電路圖8-63-8譯碼器電路
1.3-8譯碼器
3-8譯碼器是最常用的一種小規(guī)模集成電路,它有3個(gè)二進(jìn)制輸入端a、b、c和8個(gè)譯碼輸出端y0~y7。對(duì)輸入a、b、c的值進(jìn)行譯碼,就可以確定輸出端y0~y7的哪一個(gè)輸出端變?yōu)橛行?低電平),從而達(dá)到譯碼的目的。3-8譯碼器的真值表如表8-1所示。
1.3-8譯碼器
3-8譯碼器是最常用的一種小規(guī)模VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
3-8譯碼器還有3個(gè)選通輸入端g1、g2a和g2b。只有在g1?=?1,g2a?=?0,g2b?=?0時(shí),3-8譯碼器才進(jìn)行正常譯碼,否則y0~y7輸出均為高電平。
3-8譯碼器還有3個(gè)選通輸入端g1、g2a和g2b。只
【例8-11】3-8譯碼器用VHDL描述如下:
【例8-11】3-8譯碼器用VHDL描述如下:
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.優(yōu)先級(jí)編碼器
優(yōu)先級(jí)編碼器常用于中斷的優(yōu)先級(jí)控制。例如,74LS148是一個(gè)8輸入、3位二進(jìn)制碼輸出的優(yōu)先級(jí)編碼器。當(dāng)其某一個(gè)輸入有效時(shí),就可以輸出一個(gè)對(duì)應(yīng)的3位二進(jìn)制編碼。另外,當(dāng)同時(shí)有幾個(gè)輸入有效時(shí),將輸出優(yōu)先級(jí)最高的那個(gè)輸入所對(duì)應(yīng)的二進(jìn)制編碼。
圖8-7是優(yōu)先級(jí)編碼器的引腳圖,它有8個(gè)輸入input(0)~input(7)和3位二進(jìn)制碼輸出y0~y2。
2.優(yōu)先級(jí)編碼器
優(yōu)先級(jí)編碼器常用于中斷的優(yōu)先級(jí)控圖8-7優(yōu)先級(jí)編碼器圖8-7優(yōu)先級(jí)編碼器
該優(yōu)先級(jí)編碼器的真值表如表8-2所示。表中,“X”表示任意項(xiàng),它可以是“0”,也可以是“1”。input(0)的優(yōu)先級(jí)最高,input(7)的優(yōu)先級(jí)最低。
該優(yōu)先級(jí)編碼器的真值表如表8-2所示。表中,“X”表示VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-12】用VHDL描述優(yōu)先級(jí)編碼器的程序如下:
【例8-12】用VHDL描述優(yōu)先級(jí)編碼器的程序如下:
因?yàn)閂HDL中目前還不能描述任意項(xiàng),所以不能用前面一貫采用的CASE語(yǔ)句來(lái)描述,而采用了IF語(yǔ)句。
因?yàn)閂HDL中目前還不能描述任意項(xiàng),所
3.四選一選擇器
選擇器常用于信號(hào)的切換。四選一選擇器可以用于4路信號(hào)的切換。四選一選擇器有4個(gè)信號(hào)輸入端input(0)~input(3)、2個(gè)信號(hào)選擇端a和b及一個(gè)信號(hào)輸出端y。當(dāng)a、b輸入不同的選擇信號(hào)時(shí),就可以使input(0)~input(3)中某個(gè)相應(yīng)的輸入信號(hào)與輸出y端接通。例如,當(dāng)a?=?b?=“0”時(shí),input(0)就與y接通。其邏輯電路如圖8-8所示。
3.四選一選擇器
選擇器常用于信號(hào)的切換。四選一選圖8-8四選一電路圖8-8四選一電路
四選一電路的真值表如表8-3所示。
四選一電路的真值表如表8-3所示。
【例8-13】用VHDL對(duì)四選一電路進(jìn)行描述的程序如下:
【例8-13】用VHDL對(duì)四選一電路進(jìn)行描述的程序VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
例8-13中的四選一選擇器是用IF語(yǔ)句描述的,程序中的ELSE項(xiàng)作為余下的條件,將選擇input(3)從y端輸出,這種描述比較安全。當(dāng)然,不用ELSE項(xiàng)也可以,這時(shí)必須列出sel所有可能出現(xiàn)的情況,加以一一確認(rèn)。
例8-13中的四選一選擇器是用IF語(yǔ)句描述的,程序中的
8.1.3加法器與求補(bǔ)器
1.加法器
加法器有全加器和半加器之分,全加器可以用兩個(gè)半加器構(gòu)成,因此下面先以半加器為例加以說(shuō)明。
半加器有兩個(gè)二進(jìn)制一位的輸入端a和b、一位和的輸出端s、一位進(jìn)位位的輸出端co。半加器的真值表如表8-4所示,其電路符號(hào)如圖8-9所示。
8.1.3加法器與求補(bǔ)器
1.加法器
加法器有圖8-9半加器圖8-9半加器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-14】用VHDL描述半加器的程序如下:
【例8-14】用VHDL描述半加器的程序如下:
用兩個(gè)半加器可以構(gòu)成一個(gè)全加器。全加器的電路如圖8-10所示。
圖8-10用兩個(gè)半加器構(gòu)成的全加器
用兩個(gè)半加器可以構(gòu)成一個(gè)全加器。全加器的電路如圖8-1
【例8-15】采用COMPONENT語(yǔ)句和PORTMAP語(yǔ)句描述全加器。
【例8-15】采用COMPONENT語(yǔ)句和PORTVHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.求補(bǔ)器
二進(jìn)制運(yùn)算經(jīng)常要用到求補(bǔ)操作。8位二進(jìn)制數(shù)的求補(bǔ)電路符號(hào)如圖8-11所示。
求補(bǔ)電路的輸入為a(0)~a(7),補(bǔ)碼輸出為b(0)~b(7),其中a(7)和b(7)為符號(hào)位。該電路較復(fù)雜,如果像半加器那樣對(duì)每個(gè)門進(jìn)行描述和連接是可以做到的,但是那樣做太繁瑣。這里采用RTL描述更加簡(jiǎn)潔、清楚。
2.求補(bǔ)器
二進(jìn)制運(yùn)算經(jīng)常要用到求補(bǔ)操作。8位二進(jìn)圖8-11
8位二進(jìn)制數(shù)的求補(bǔ)電路符號(hào)圖8-118位二進(jìn)制數(shù)的求補(bǔ)電路符號(hào)
【例8-16】用RTL描述求補(bǔ)器。
【例8-16】用RTL描述求補(bǔ)器。
8.1.4三態(tài)門與總線緩沖器
三態(tài)門與雙向總線緩沖器是接口電路和總線驅(qū)動(dòng)電路經(jīng)常用到的器件。它們雖然不屬于組合電路,為簡(jiǎn)化章節(jié),也列于此處進(jìn)行介紹。
1.三態(tài)門電路
三態(tài)門電路如圖8-12所示。它具有一個(gè)數(shù)據(jù)輸入端din、一個(gè)數(shù)據(jù)輸出端dout和一個(gè)控制端en。當(dāng)en?=?'1'?時(shí),dout?=?din;當(dāng)en?=?'0'?時(shí),dout?=?′Z′(高阻)。三態(tài)門的真值表如表8-5所示。
8.1.4三態(tài)門與總線緩沖器
三態(tài)門與雙向總線緩沖圖8-12三態(tài)門電路圖8-12三態(tài)門電路VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-17】用VHDL描述三態(tài)門的程序如下:
【例8-17】用VHDL描述三態(tài)門的程序如下:
在第3章中讀者已經(jīng)知道,一個(gè)實(shí)體可以對(duì)應(yīng)多種構(gòu)造體。例8-18和例8-19就是用不同的VHDL描述的三態(tài)門的結(jié)構(gòu)。
在第3章中讀者已經(jīng)知道,一個(gè)實(shí)體可以對(duì)應(yīng)多種
【例8-18】用VHDL描述三態(tài)門的結(jié)構(gòu)示例一。
【例8-18】用VHDL描述三態(tài)門的結(jié)構(gòu)示例一。
該例中采用衛(wèi)式塊語(yǔ)句結(jié)構(gòu)來(lái)表示三態(tài)門。衛(wèi)式塊語(yǔ)句結(jié)構(gòu)的特點(diǎn)是:只有塊語(yǔ)句的條件滿足時(shí),塊中所含的語(yǔ)句才會(huì)被執(zhí)行。在這里只有en?=?'1'?的條件滿足時(shí),dout<=GUARDEDdin語(yǔ)句才會(huì)被執(zhí)行。
該例中采用衛(wèi)式塊語(yǔ)句結(jié)構(gòu)來(lái)表示三態(tài)門。衛(wèi)式塊語(yǔ)句結(jié)構(gòu)的VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.單向總線緩沖器
在微型計(jì)算機(jī)的總線驅(qū)動(dòng)中經(jīng)常要用單向總線緩沖器,它通常由多個(gè)三態(tài)門組成,用來(lái)驅(qū)動(dòng)地址總線和控制總線。
一個(gè)8位的單向總線緩沖器如圖8-13所示。8位的單向總線緩沖器由8個(gè)三態(tài)門組成,具有8個(gè)輸入和8個(gè)輸出端。所有三態(tài)門的控制端連在一起,由一個(gè)控制輸入端en控制。
用VHDL描述的8位單向總線緩沖器的程序?qū)嵗缋?-20、例8-21和例8-22所示。
2.單向總線緩沖器
在微型計(jì)算機(jī)的總線驅(qū)動(dòng)中經(jīng)常要圖8-13單向總線緩沖器圖8-13單向總線緩沖器
【例8-20】用VHDL描述的8位單向總線緩沖器的程序?qū)嵗弧?/p>
【例8-20】用VHDL描述的8位單向總線緩沖器的程VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-21】用VHDL描述的8位單向總線緩沖器的程序?qū)嵗?/p>
【例8-21】用VHDL描述的8位單向總線緩沖器的程
【例8-22】用VHDL描述的8位單向總線緩沖器的程序?qū)嵗?/p>
【例8-22】用VHDL描述的8位單向總線緩沖器的程
在編寫(xiě)上述程序時(shí)應(yīng)注意,不能將“Z”值賦予變量,否則就不能進(jìn)行邏輯綜合。另外,對(duì)信號(hào)賦值時(shí)“Z”和“0”或“1”不能混合使用,例如:
dout<=″Z001ZZZZ″;
這樣的語(yǔ)句是不允許出現(xiàn)的。但是變換賦值表達(dá)式時(shí),分開(kāi)賦值是可以的。例如:
dout(7)<="Z";
dout(6DOWNTO4)
<="001";
dout(3DOWNTO0)
<="ZZZZ";
在編寫(xiě)上述程序時(shí)應(yīng)注意,不能將“Z”值賦予變量,否則就
3.雙向總線緩沖器
雙向總線緩沖器用于對(duì)數(shù)據(jù)總線進(jìn)行驅(qū)動(dòng)和緩沖。典型的雙向總線緩沖器的電路圖如圖8-14所示。圖中,雙向緩沖器有兩個(gè)數(shù)據(jù)輸入輸出端a和b、一個(gè)方向控制端dr和一個(gè)選通端en。當(dāng)en?=?1時(shí),雙向總線緩沖器未被選通,a和b都呈現(xiàn)高阻;當(dāng)en?=?0時(shí),雙向總線緩沖器被選通,如果dr?=?0,那么a?=?b,如果dr?=?1,那么b?=?a。雙向總線緩沖器的真值表如表8-6所示。
3.雙向總線緩沖器
雙向總線緩沖器用于對(duì)數(shù)據(jù)總線進(jìn)圖8-14雙向總線緩沖器圖8-14雙向總線緩沖器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-23】用VHDL描述雙向總線緩沖器實(shí)例。
【例8-23】用VHDL描述雙向總線緩沖器實(shí)例。
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
從例8-23中可以看出,雙向總線緩沖器由兩組三態(tài)門組成,利用信號(hào)aout和bout將兩組三態(tài)門連接起來(lái)。由于在實(shí)際工作過(guò)程中a和b都不可能同時(shí)出現(xiàn)“0”和“1”,因此在這里沒(méi)有使用判決函數(shù)。
從例8-23中可以看出,雙向總線緩沖器由兩
8.2時(shí)序電路設(shè)計(jì)
8.2.1時(shí)鐘信號(hào)和復(fù)位信號(hào)
1.時(shí)鐘信號(hào)的描述眾所周知,任何時(shí)序電路都以時(shí)鐘信號(hào)為驅(qū)動(dòng)信號(hào),時(shí)序電路只是在時(shí)鐘信號(hào)的邊沿到來(lái)時(shí),其狀態(tài)才發(fā)生改變。因此,時(shí)鐘信號(hào)通常描述時(shí)序電路程序的執(zhí)行條件。另外,時(shí)序電路也總是以時(shí)鐘進(jìn)程的形式來(lái)進(jìn)行描述的,其描述方式一般有兩種。
8.2時(shí)序電路設(shè)計(jì)
8.2.1時(shí)鐘信號(hào)和復(fù)位信號(hào)
(1)進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)。在這種情況下,時(shí)鐘信號(hào)應(yīng)作為敏感信號(hào),顯式地出現(xiàn)在PROCESS語(yǔ)句后跟的括號(hào)中,例如PROCESS(clock_signal)。時(shí)鐘信號(hào)邊沿的到來(lái)將作為時(shí)序電路語(yǔ)句執(zhí)行的條件。
(1)進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)。在這種情況下,時(shí)鐘信
【例8-24】進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)實(shí)例。
【例8-24】進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)實(shí)例。
(2)用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘。在這種情況下,描述時(shí)序電路的進(jìn)程將沒(méi)有敏感信號(hào),而是用WAITON語(yǔ)句來(lái)控制進(jìn)程的執(zhí)行。也就是說(shuō),進(jìn)程通常停留在WAITON語(yǔ)句上,只有在時(shí)鐘信號(hào)到來(lái)且滿足邊沿條件時(shí),其余的語(yǔ)句才能執(zhí)行。
(2)用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘。在這種情
【例8-25】用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘實(shí)例。
【例8-25】用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘實(shí)
在編寫(xiě)上述程序時(shí)應(yīng)注意:
·無(wú)論IF語(yǔ)句還是WAITON語(yǔ)句,在對(duì)時(shí)鐘邊沿進(jìn)行說(shuō)明時(shí),一定要注明是上升沿還是下降沿(前沿還是后沿),只說(shuō)明是邊沿是不行的。
·當(dāng)時(shí)鐘信號(hào)作為進(jìn)程的敏感信號(hào)時(shí),在敏感信號(hào)的表中不能出現(xiàn)一個(gè)以上的時(shí)鐘信號(hào),除時(shí)鐘信號(hào)以外,復(fù)位信號(hào)等是可以和時(shí)鐘信號(hào)一起出現(xiàn)在敏感表中的。
·WAITON語(yǔ)句只能放在進(jìn)程的最前面或者最后面。
在編寫(xiě)上述程序時(shí)應(yīng)注意:
·無(wú)論IF語(yǔ)句還是WA
(3)時(shí)鐘邊沿的描述。為了描述時(shí)鐘邊沿,一定要指定是上升沿還是下降沿,這一點(diǎn)可以使用時(shí)鐘信號(hào)的屬性描述來(lái)進(jìn)行。也就是說(shuō),要指定時(shí)鐘信號(hào)的值是從“0”到“1”變化,還是從“1”到“0”變化,由此可以得知是時(shí)鐘脈沖信號(hào)的上升沿還是下降沿。
(3)時(shí)鐘邊沿的描述。為了描述時(shí)鐘邊沿,一定要指定是
①時(shí)鐘脈沖上升沿的描述。時(shí)鐘脈沖上升沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖8-15所示。從圖8-15中可以看到,時(shí)鐘信號(hào)的起始值為“0”,故其屬性值clk‘LAST_VALUE='0';上升沿的到來(lái)表示發(fā)生了一個(gè)事件,故用clk?'EVENT表示;上升沿以后,時(shí)鐘信號(hào)的值為“1”,故其當(dāng)前值為clk='1'。這樣,表示上升沿到來(lái)的條件可寫(xiě)為
IFclk='1'ANDclk'LAST_VAULE='0'ANDclk'EVENT
①時(shí)鐘脈沖上升沿的描述。時(shí)鐘脈沖上升沿波形與時(shí)鐘信號(hào)
②時(shí)鐘脈沖下降沿的描述。時(shí)鐘脈沖下降沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖8-16所示。其關(guān)系與圖8-15類同,此時(shí)clk'LAST_VALUE?=?'1';時(shí)鐘信號(hào)當(dāng)前值為clk='0';下降沿到來(lái)的事件為clk'EVENT。這樣表示下降沿到來(lái)的條件可寫(xiě)為
IFclk='0'ANDclk'LAST_VALUE=?'1'ANDclk'EVENT
②時(shí)鐘脈沖下降沿的描述。時(shí)鐘脈沖下降沿波形與時(shí)鐘信號(hào)圖8-15時(shí)鐘脈沖上升沿波形和時(shí)鐘信號(hào)屬性的描述關(guān)系圖8-15時(shí)鐘脈沖上升沿波形和時(shí)鐘信號(hào)屬性的描述關(guān)系圖8-16時(shí)鐘脈沖下降沿波形和時(shí)鐘信號(hào)屬性的描述關(guān)系圖8-16時(shí)鐘脈沖下降沿波形和時(shí)鐘信號(hào)屬性的描述關(guān)系
根據(jù)上面關(guān)于上升沿和下降沿的描述,時(shí)鐘信號(hào)邊沿檢出條件可以統(tǒng)一描述如下:
IFclock_signal=current_valueAND
clock_signal‘LAST_VALUEANDclock_signal’EVENT
在某些書(shū)刊中邊沿檢出條件也可簡(jiǎn)寫(xiě)為
IFclock_signal=clock_signal'EVENTANDcurrent_value
根據(jù)上面關(guān)于上升沿和下降沿的描述,時(shí)鐘信號(hào)邊沿檢出條件
③由于在STD_LOGIC的數(shù)據(jù)類型中,其值除“0”和“1”以外,還可以取“2”、“X”等9種狀態(tài)值。這樣在綜合時(shí)有可能出現(xiàn)問(wèn)題。為避免類似情況發(fā)生,建議盡可能用IEEE中的現(xiàn)成邊沿描述函數(shù)。例如:
上升沿可描述為
IFvising_edge(cp)THEN
下降沿可描述為
IFfalling_edge(cp)THEN
③由于在STD_LOGIC的數(shù)據(jù)類型中,其值除“0”
2.觸發(fā)器的同步和非同步復(fù)位
觸發(fā)器的初始狀態(tài)應(yīng)由復(fù)位信號(hào)來(lái)設(shè)置。復(fù)位信號(hào)對(duì)觸發(fā)器復(fù)位的操作不同,使其可以分為同步復(fù)位和非同步復(fù)位兩種。所謂同步復(fù)位,就是復(fù)位信號(hào)有效且在給定的時(shí)鐘邊沿到來(lái)時(shí),觸發(fā)器才被復(fù)位;非同步復(fù)位則是指一旦復(fù)位信號(hào)有效,觸發(fā)器就被復(fù)位。
2.觸發(fā)器的同步和非同步復(fù)位
觸發(fā)器的初始狀態(tài)應(yīng)由
1)同步復(fù)位
在用VHDL描述時(shí),同步復(fù)位一定要在以時(shí)鐘為敏感信號(hào)的進(jìn)程中定義,且用IF語(yǔ)句來(lái)描述必要的復(fù)位條件。下面兩個(gè)例子就是同步復(fù)位方式的描述實(shí)例。
1)同步復(fù)位
在用VHDL描述時(shí),同步復(fù)位一定要
【例8-26】同步復(fù)位方式的描述實(shí)例一。
【例8-26】同步復(fù)位方式的描述實(shí)例一。
【例8-27】同步復(fù)位方式的描述實(shí)例二。
【例8-27】同步復(fù)位方式的描述實(shí)例二。
2)非同步復(fù)位
非同步復(fù)位又稱異步復(fù)位,在描述時(shí)與同步方式不同:首先在進(jìn)程的敏感信號(hào)中除時(shí)鐘信號(hào)以外,還應(yīng)加上復(fù)位信號(hào);其次是用IF語(yǔ)句描述復(fù)位條件;最后在ELSIF段描述時(shí)鐘信號(hào)邊沿的條件,并加上EVENT屬性。非同步復(fù)位描述方式如例8-28所示。
2)非同步復(fù)位
非同步復(fù)位又稱異步復(fù)位,在描述時(shí)
【例8-28】非同步復(fù)位方式的描述實(shí)例。
【例8-28】非同步復(fù)位方式的描述實(shí)例。
從例8-28中可以看到,非同步復(fù)位的信號(hào)和變量的代入與賦值必須在時(shí)鐘信號(hào)邊沿有效的范圍內(nèi)進(jìn)行,如例8-28中ELSIF后進(jìn)行的那樣。
另外,添加clock_event是為了防止沒(méi)有時(shí)鐘事件發(fā)生時(shí)的誤操作。譬如,現(xiàn)在時(shí)鐘事件沒(méi)有發(fā)生而是發(fā)生了復(fù)位事件,這樣該進(jìn)程就得到了啟動(dòng)。在此情況下,若復(fù)位條件沒(méi)有滿足,而時(shí)鐘邊沿條件卻是滿足的,那么與時(shí)鐘信號(hào)有關(guān)的那一段程序(ELSIF段)就會(huì)得到執(zhí)行,從而造成錯(cuò)誤操作。
從例8-28中可以看到,非同步復(fù)位的信號(hào)和變量的代入與
8.2.2觸發(fā)器
觸發(fā)器的種類很多,這里僅舉常用的幾種加以說(shuō)明。
1.鎖存器
根據(jù)觸發(fā)邊沿、復(fù)位和預(yù)置的方式以及輸出端不同可以將鎖存器分為多種不同形式。
8.2.2觸發(fā)器
觸發(fā)器的種類很多,這里僅舉常用的
1)
D鎖存器
正沿觸發(fā)的D鎖存器的電路符號(hào)如圖8-17所示。它是一個(gè)正沿(上升沿)觸發(fā)的D觸發(fā)器,有一個(gè)數(shù)據(jù)輸入端d、一個(gè)時(shí)鐘輸入端clk和一個(gè)數(shù)據(jù)輸出端q。D鎖存器的真值表如表8-7所示。從表中可以看到,D鎖存器的輸出端只有在正沿脈沖過(guò)后,輸入端d的數(shù)據(jù)才傳遞到輸出端q。用VHDL描述D鎖存器的程序?qū)嵗缋?-29和例8-30所示。
1)?D鎖存器
正沿觸發(fā)的D鎖存器的電路符號(hào)如圖圖8-17
D鎖存器圖8-17D鎖存器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-29】用VHDL描述D鎖存器的程序?qū)嵗弧?/p>
【例8-29】用VHDL描述D鎖存器的程序?qū)嵗弧?/p>
【例8-30】用VHDL描述D鎖存器的程序?qū)嵗?/p>
【例8-30】用VHDL描述D鎖存器的程序?qū)嵗?/p>
2)非同步復(fù)位的D鎖存器
非同步復(fù)位的D鎖存器的電路符號(hào)如圖8-18所示。它和一般的D鎖存器的區(qū)別是多了一個(gè)復(fù)位輸入端clr。當(dāng)clr='0'?時(shí),其q端輸出被強(qiáng)迫置為“0”。clr又稱清零輸入端。
2)非同步復(fù)位的D鎖存器
非同步復(fù)位的D鎖存器的圖8-18非同步復(fù)位的D鎖存器圖8-18非同步復(fù)位的D鎖存器
【例8-31】用VHDL描述的非同步復(fù)位的D鎖存器的程序?qū)嵗缦拢?/p>
【例8-31】用VHDL描述的非同步復(fù)位的D鎖存器的
3)非同步復(fù)位/置位D鎖存器
非同步復(fù)位/置位D鎖存器的電路符號(hào)如圖8-19所示。除了前述的d、clk和q端外,還有clr和pset的復(fù)位、置位端。當(dāng)clr='0'?時(shí)復(fù)位,使q='0';當(dāng)pset='0'?時(shí)置位,使q=
'1'。
圖8-19非同步復(fù)位/置位D鎖存器
3)非同步復(fù)位/置位D鎖存器
非同步復(fù)位/置位D
【例8-32】用VHDL描述的非同步復(fù)位/置位鎖存器的程序?qū)嵗缦拢?/p>
【例8-32】用VHDL描述的非同步復(fù)位/置位鎖存器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
4)同步復(fù)位的D鎖存器
同步復(fù)位的D鎖存器的電路如圖8-20所示。與非同步方式不同的是,當(dāng)復(fù)位信號(hào)clr有效(clr?=?'1')以后,只是在有效時(shí)鐘邊沿到來(lái)時(shí)才能進(jìn)行復(fù)位操作。圖中clr='1'?以后,在clk的上升沿到來(lái)時(shí),q輸出才變?yōu)椤?”。
另外,從圖中還可以看出,復(fù)位信號(hào)的優(yōu)先級(jí)比d端數(shù)據(jù)輸入的優(yōu)先級(jí)高。也就是說(shuō),當(dāng)clr='1'?時(shí),無(wú)論d端輸入什么信號(hào),在clk的上升沿到來(lái)時(shí),q輸出總為“0”。
4)同步復(fù)位的D鎖存器
同步復(fù)位的D鎖存器的電路圖8-20同步復(fù)位的D鎖存器圖8-20同步復(fù)位的D鎖存器
【例8-33】用VHDL描述的同步復(fù)位D鎖存器的程序?qū)嵗缦拢?/p>
【例8-33】用VHDL描述的同步復(fù)位D鎖存器的程序VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.JK觸發(fā)器
帶有復(fù)位/置位功能的JK觸發(fā)器的電路符號(hào)如圖8-21所示。JK觸發(fā)器的輸入端有置位輸入pset、復(fù)位輸入clr、控制輸入j和k、時(shí)鐘信號(hào)輸入clk,輸出端有正向輸出端q和反向輸出端qb。JK觸發(fā)器的真值表如表8-8所示。表中,q0表示原狀態(tài)不變,翻轉(zhuǎn)表示改變?cè)瓉?lái)的狀態(tài),如原來(lái)為“0”則變成“1”,原來(lái)為“1”則變成“0”。
2.JK觸發(fā)器
帶有復(fù)位/置位功能的JK觸發(fā)器的電圖8-21JK觸發(fā)器圖8-21JK觸發(fā)器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-34】用VHDL描述JK觸發(fā)器的程序?qū)嵗缦拢?/p>
【例8-34】用VHDL描述JK觸發(fā)器的程序?qū)嵗缦耉HDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
例8-34中的復(fù)位和置位顯然也是非同步的,且pset的優(yōu)先級(jí)比clr高。也就是說(shuō),當(dāng)pset?=?'0'?且clr?=?'0'?時(shí),q將輸出“1”,qb輸出“0”。這種結(jié)果和表8-8所示的真值表是不一致的。為了避免這種情況,程序可以改寫(xiě)成例8-35所示。
例8-34中的復(fù)位和置位顯然也是非同步的,且
【例8-35】例8-34改寫(xiě)以后的程序。
【例8-35】例8-34改寫(xiě)以后的程序。
在例8-35中,pset='0',clr='0'?這種情況未加以考慮,那么在邏輯綜合時(shí),其輸出是未知的。
在例8-35中,pset='0',
8.2.3寄存器
寄存器一般由多位觸發(fā)器連接而成,通常有鎖存寄存器和移位寄存器等。下面主要介紹移位寄存器。
1.串行輸入、串行輸出移位寄存器
串行輸入、串行輸出移位寄存器的電原理圖如圖8-22所示。它具有兩個(gè)輸入端(數(shù)據(jù)輸入端a和時(shí)鐘輸入端clk)與一個(gè)數(shù)據(jù)輸出端b。圖中所示為8位的串行移位寄存器,在時(shí)鐘信號(hào)的作用下,前級(jí)的數(shù)據(jù)向后級(jí)移動(dòng)。該8位移位寄存器由8個(gè)D觸發(fā)器構(gòu)成。
8.2.3寄存器
寄存器一般由多位觸發(fā)器連接而成,圖8-22串行輸入、串行輸出的8位移位寄存器圖8-22串行輸入、串行輸出的8位移位寄存器
【例8-36】利用GENERATE語(yǔ)句和D觸發(fā)器的描述寫(xiě)出的8位移位寄存器的VHDL程序如下:
【例8-36】利用GENERATE語(yǔ)句和D觸發(fā)器的描
例8-36中把dff看作已經(jīng)生成的元件,然后利用GENERATE來(lái)循環(huán)生成串行連接的8個(gè)D觸發(fā)器。
例8-36中把dff看作已經(jīng)生成的元件,然后
【例8-37】8位移位寄存器直接利用信號(hào)來(lái)連接的描述如下:
【例8-37】8位移位寄存器直接利用信號(hào)來(lái)連接的描述VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.循環(huán)移位寄存器
在計(jì)算機(jī)的運(yùn)算操作中經(jīng)常用到循環(huán)移位,它可以用硬件電路來(lái)實(shí)現(xiàn)。一個(gè)8位循環(huán)左移的寄存器的電路符號(hào)如圖8-23所示。該電路有8個(gè)數(shù)據(jù)輸入端din(0)~din(7)、移位和數(shù)據(jù)輸出控制端enb、時(shí)鐘信號(hào)輸入端clk、移位位數(shù)控制輸入端s(0)~s(2)、8位數(shù)據(jù)輸出端dout(0)~dout(7)。循環(huán)左移操作的示意圖如圖8-24所示。
當(dāng)enb?=?1時(shí),根據(jù)s(0)~s(2)輸入的數(shù),確定在時(shí)鐘脈沖作用下,循環(huán)左移幾位。圖8-24所示是循環(huán)左移了3位。當(dāng)enb?=?0時(shí),din直接輸出至dout。
2.循環(huán)移位寄存器
在計(jì)算機(jī)的運(yùn)算操作中經(jīng)常用到循圖8-23
8位循環(huán)移位寄存器圖8-238位循環(huán)移位寄存器圖8-24循環(huán)左移操作的示意圖圖8-24循環(huán)左移操作的示意圖
【例8-38】在CPAC中循環(huán)左移函數(shù)的描述如下:
【例8-38】在CPAC中循環(huán)左移函數(shù)的描述如下:
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-39】利用CPAC中循環(huán)左移函數(shù)描述8位循環(huán)左移寄存器的程序如下:
【例8-39】利用CPAC中循環(huán)左移函數(shù)描述8位循環(huán)VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
3.帶清零端的8位并行裝載移位寄存器
該移位寄存器就是TTL手冊(cè)中的74166,其引腳圖如圖8-25所示。
圖中各引腳的名稱及功能如下:
a~h——8位并行數(shù)據(jù)輸入端;
se——串行數(shù)據(jù)輸入端;
q——串行數(shù)據(jù)輸出端;
clk——時(shí)鐘信號(hào)輸入端;
fe——時(shí)鐘信號(hào)禁止端;
s/l——移位/裝載控制端;
clr——清零端。
3.帶清零端的8位并行裝載移位寄存器
該移位寄存器圖8-25帶清零端的8位并行裝載移位寄存器圖8-25帶清零端的8位并行裝載移位寄存器
其真值表如表8-9所示。
其真值表如表8-9所示。
從表8-9中可以看到,當(dāng)清零輸入端clr為“0”時(shí),8位寄存器的輸出均為“0”,從而使q輸出也為“0”。fe是時(shí)鐘禁止端,當(dāng)它為“1”時(shí)將禁止時(shí)鐘,即不管時(shí)鐘信號(hào)如何變化,移位寄存器的狀態(tài)不發(fā)生改變。另外,時(shí)鐘信號(hào)只在上升沿時(shí)才有效,此時(shí)fe?=?0。如果時(shí)鐘信號(hào)的上升沿未到來(lái),則移位寄存器的狀態(tài)仍不會(huì)發(fā)生變化。s/l是移位/裝載控制信號(hào)。當(dāng)s/l?=?1時(shí)是移位狀態(tài),在時(shí)鐘信號(hào)上升沿的控制下,向右移一位,串行輸入端se的信號(hào)將移入qa位,而q的輸出將是移位前的內(nèi)部qg輸出;當(dāng)s/l?=?0時(shí)是裝載狀態(tài),在時(shí)鐘脈沖上升沿的作用下,數(shù)據(jù)輸入端a~h的信號(hào)就裝載到移位寄存器的qa~qh。
從表8-9中可以看到,當(dāng)清零輸入端clr為“0”時(shí),8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
8.2.4計(jì)數(shù)器
計(jì)數(shù)器分為同步計(jì)數(shù)器和異步計(jì)數(shù)器兩種。計(jì)數(shù)器是一個(gè)典型的時(shí)序電路,分析計(jì)數(shù)器就能更好地了解時(shí)序電路的特性。
1.同步計(jì)數(shù)器
所謂同步計(jì)數(shù)器,就是在時(shí)鐘脈沖(計(jì)數(shù)脈沖)的控制下,構(gòu)成計(jì)數(shù)器的各觸發(fā)器狀態(tài)同時(shí)發(fā)生變化。
8.2.4計(jì)數(shù)器
計(jì)數(shù)器分為同步計(jì)數(shù)器和異步計(jì)
1)帶允許端的十二進(jìn)制計(jì)數(shù)器
該計(jì)數(shù)器由4個(gè)觸發(fā)器構(gòu)成,clr輸入端用于清零,en端用于控制計(jì)數(shù)器工作,clk為時(shí)鐘脈沖(計(jì)數(shù)脈沖)輸入端,qa、qb、qc、qd為計(jì)數(shù)器的4位二進(jìn)制計(jì)數(shù)值輸出端。該計(jì)數(shù)器的真值表如表8-10所示。
1)帶允許端的十二進(jìn)制計(jì)數(shù)器
該計(jì)數(shù)器由4個(gè)觸發(fā)器構(gòu)VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
該程序?qū)?yīng)電路的引腳圖如圖8-26所示。
圖8-26帶允許端的十二進(jìn)制計(jì)數(shù)器電路
該程序?qū)?yīng)電路的引腳圖如圖8-26所示。
圖8-26
2)可逆計(jì)數(shù)器
所謂可逆計(jì)數(shù)器,就是根據(jù)計(jì)數(shù)控制信號(hào)的不同,在時(shí)鐘脈沖作用下,計(jì)數(shù)器可以進(jìn)行加1操作或者減1操作。
可逆計(jì)數(shù)器有一個(gè)特殊的控制端,即updn端。當(dāng)updn?=?'1'?時(shí),計(jì)數(shù)器進(jìn)行加1操作;當(dāng)updn?=?'0'?時(shí),計(jì)數(shù)器進(jìn)行減1操作。一種6位二進(jìn)制可逆計(jì)數(shù)器的真值表如表8-11所示。
2)可逆計(jì)數(shù)器
所謂可逆計(jì)數(shù)器,就是根據(jù)計(jì)數(shù)控制VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
該程序?qū)?yīng)電路的引腳圖如圖8-27所示。
圖8-27
6位二進(jìn)制可逆計(jì)數(shù)器電路
該程序?qū)?yīng)電路的引腳圖如圖8-27所示。
圖8-27
3)六十進(jìn)制計(jì)數(shù)器
眾所周知,用一個(gè)4位二進(jìn)制計(jì)數(shù)器可以構(gòu)成1位十進(jìn)制計(jì)數(shù)器,即可以構(gòu)成1位BCD計(jì)數(shù)器,而2位十進(jìn)制計(jì)數(shù)器連接起來(lái)可以構(gòu)成一個(gè)六十進(jìn)制計(jì)數(shù)器。六十進(jìn)制計(jì)數(shù)器常用于時(shí)鐘計(jì)數(shù)。
一個(gè)六十進(jìn)制計(jì)數(shù)器的電路引腳圖如圖8-28所示。
3)六十進(jìn)制計(jì)數(shù)器
眾所周知,用一個(gè)4位二進(jìn)制計(jì)圖8-28六十進(jìn)制計(jì)數(shù)器電路圖8-28六十進(jìn)制計(jì)數(shù)器電路
六十進(jìn)制計(jì)數(shù)器的輸入和輸出端的名稱及功能說(shuō)明如下:
clk——時(shí)鐘輸入端;
bcd1wr——個(gè)位寫(xiě)控制端;
bcd10wr——十位寫(xiě)控制端;
cin——進(jìn)位輸入端;
co——進(jìn)位輸出端;
datain——數(shù)據(jù)輸入端,共有4條輸入線datain(0)~datain(3);
bcd1——計(jì)數(shù)值個(gè)位輸出,共有4條輸出線bcd1(0)~bcd1(3);
bcd10——計(jì)數(shù)值十位輸出,共有3條輸出線bcd10(0)~bcd10(2)。
六十進(jìn)制計(jì)數(shù)器的輸入和輸出端的名稱及功能說(shuō)明如下:
在該六十進(jìn)制計(jì)數(shù)器的電路中,bcd1wr和bcd10wr與datain配合,以實(shí)現(xiàn)對(duì)六十進(jìn)制計(jì)數(shù)器的個(gè)位和十位的裝載操作,即可以實(shí)現(xiàn)對(duì)個(gè)位和十位值的預(yù)置操作。應(yīng)注意,在對(duì)個(gè)位和十位進(jìn)行預(yù)置操作時(shí),datain輸入端是公用的,因而個(gè)位和十位的預(yù)置操作必定要串行進(jìn)行。
在該六十進(jìn)制計(jì)數(shù)器的電路中,bcd1wr和bcd10wVHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
在例8-43中,第一個(gè)進(jìn)程處理個(gè)位計(jì)數(shù),第二個(gè)進(jìn)程處理十位計(jì)數(shù),第三個(gè)進(jìn)程處理進(jìn)位輸出co的輸出值。應(yīng)注意,個(gè)位和十位的計(jì)數(shù)條件是不一樣的。
在例8-43中,第一個(gè)進(jìn)程處理個(gè)位計(jì)數(shù),第
2.異步計(jì)數(shù)器
異步計(jì)數(shù)器又稱行波計(jì)數(shù)器,它的下一位計(jì)數(shù)器的輸出作為上一位計(jì)數(shù)器的時(shí)鐘信號(hào),這樣一級(jí)一級(jí)串行連接起來(lái)就構(gòu)成了一個(gè)異步計(jì)數(shù)器。
異步計(jì)數(shù)器與同步計(jì)數(shù)器的不同之處就在于時(shí)鐘脈沖的提供方式,異步計(jì)數(shù)器同樣可以構(gòu)成各種各樣的計(jì)數(shù)器。但是,由于異步計(jì)數(shù)器采用行波計(jì)數(shù),因而使計(jì)數(shù)延遲增加,在要求延遲小的領(lǐng)域受到了很大限制。盡管如此,由于它的電路簡(jiǎn)單,故仍有廣泛的應(yīng)用。
2.異步計(jì)數(shù)器
異步計(jì)數(shù)器又稱行波計(jì)數(shù)器,它的下一
用VHDL描述異步計(jì)數(shù)器與上述同步計(jì)數(shù)器的不同之處主要表現(xiàn)在對(duì)各級(jí)時(shí)鐘脈沖的描述上,這一點(diǎn)請(qǐng)讀者在閱讀例程時(shí)多加注意。
用VHDL描述異步計(jì)數(shù)器與上述同步計(jì)數(shù)器的不同之處主要VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
8位行波計(jì)數(shù)器的電原理圖如圖8-29所示。
圖8-29
8位行波計(jì)數(shù)器的電原理圖
8位行波計(jì)數(shù)器的電原理圖如圖8-29所示。
圖8-2
習(xí)題與思考題
8.1試設(shè)計(jì)一個(gè)2位二進(jìn)制的加法器。
8.2試設(shè)計(jì)一個(gè)2位的BCD計(jì)數(shù)器。
8.3同步計(jì)數(shù)器和異步計(jì)數(shù)器在設(shè)計(jì)時(shí)有哪些區(qū)別?試用一個(gè)六進(jìn)制計(jì)數(shù)器和一個(gè)十進(jìn)制計(jì)數(shù)器構(gòu)成一個(gè)六十進(jìn)制同步計(jì)數(shù)器。
習(xí)題與思考題
8.1試設(shè)計(jì)一個(gè)2位二進(jìn)制的加法器
8.4某一輸入/輸出接口電路的引腳如圖8-30所示。
圖8-30某一輸入/輸出接口電路的引腳圖
8.4某一輸入/輸出接口電路的引腳如圖8-30所示感謝感謝173謝謝,精品課件資料搜集謝謝,精品課件資料搜集174第8章基本邏輯電路設(shè)計(jì)8.1組合邏輯電路設(shè)計(jì)8.2時(shí)序電路設(shè)計(jì)習(xí)題與思考題第8章基本邏輯電路設(shè)計(jì)8.1組合邏輯電路設(shè)計(jì)
8.1組合邏輯電路設(shè)計(jì)
8.1.1簡(jiǎn)單門電路簡(jiǎn)單門電路包括2輸入“與非”門、集電極開(kāi)路的2輸入“與非”門、2輸入“或非”門、反相器、集電極開(kāi)路的反相器、3輸入“與”門、3輸入“與非”門、2輸入“或”門和2輸入“異或”門等,它們是構(gòu)成所有邏輯電路的基本電路。
8.1組合邏輯電路設(shè)計(jì)
8.1.1簡(jiǎn)單門電路
1.2輸入“與非”門電路
2輸入“與非”門電路的邏輯表達(dá)式為
y?=???(a∧b)
其邏輯電路圖如圖8-1所示。
利用VHDL描述2輸入“與非”門有多種形式,現(xiàn)舉兩個(gè)例子加以說(shuō)明。
1.2輸入“與非”門電路
2輸入“與非”門電路的邏圖8-1
2輸入“與非”門電路圖8-12輸入“與非”門電路
【例8-1】用VHDL描述2輸入“與非”門電路示例一。
【例8-1】用VHDL描述2輸入“與非”門電路示例一
【例8-2】用VHDL描述2輸入“與非”門電路示例二。
【例8-2】用VHDL描述2輸入“與非”門電路示例二VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
從上面兩個(gè)例子中可以看出,例8-1的描述更簡(jiǎn)潔,更接近于2輸入“與非”門的行為描述,因此也更易于閱讀;例8-2的描述是以2輸入“與非”門的真值表為依據(jù)來(lái)編寫(xiě)的,羅列了2輸入“與非”門的每種輸入狀態(tài)及其對(duì)應(yīng)的輸出結(jié)果。
從上面兩個(gè)例子中可以看出,例8-1的描述更簡(jiǎn)潔,更接近
集電極開(kāi)路的2輸入“與非”門和一般的2輸入“與非”門在VHDL的描述上沒(méi)有什么差異,所不同的只是從不同元件庫(kù)中提取相應(yīng)的電路而已。例如:
集電極開(kāi)路的2輸入“與非”門和一般的2輸入“與非”門在
在第一個(gè)例子中要生成的是一般TTL的2輸入“與非”門,而在第二個(gè)例子中要生成的是TTL集電極開(kāi)路的2輸入“與非”門。這里所敘述的情況對(duì)其他門電路同樣適用。因此,對(duì)不同類型門電路的集電極開(kāi)路輸出門,本節(jié)將不再贅述。
在第一個(gè)例子中要生成的是一般TTL的2輸入“與非”門,
2.2輸入“或非”門電路
2輸入“或非”門電路的邏輯表達(dá)式為
y?=???(a∨b)
其邏輯電路圖如圖8-2所示。
現(xiàn)舉兩個(gè)用VHDL描述2輸入“或非”門電路的例子。
2.2輸入“或非”門電路
2輸入“或非”門電路的邏圖8-2
2輸入“或非”門電路圖8-22輸入“或非”門電路
【例8-3】用VHDL描述2輸入“或非”門電路示例一。
【例8-3】用VHDL描述2輸入“或非”門電路示例一
【例8-4】用VHDL描述2輸入“或非”門電路示例二。
【例8-4】用VHDL描述2輸入“或非”門電路示例二VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
3.反相器
反相器電路的邏輯表達(dá)式為
y
=???a
其邏輯電路圖如圖8-3所示。
VHDL對(duì)反相器的描述如例8-5和例8-6所示。
3.反相器
反相器電路的邏輯表達(dá)式為
圖8-3反相器電路圖8-3反相器電路
【例8-5】VHDL對(duì)反相器的描述一。
【例8-5】VHDL對(duì)反相器的描述一。
【例8-6】
VHDL對(duì)反相器的描述二。
【例8-6】VHDL對(duì)反相器的描述二。
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
4.3輸入“與非”門電路
3輸入“與非”門電路的邏輯表達(dá)式為
y
=??
(a∧b∧c)
其邏輯電路如圖8-4所示。
3輸入“與非”門和2輸入“與非”門的差異僅在于多了一個(gè)輸入引腳,在用VHDL編程時(shí),在端口說(shuō)明中應(yīng)加一個(gè)輸入端口。例如,原來(lái)的輸入端口為a、b兩個(gè),現(xiàn)在應(yīng)變?yōu)閍、b、c三個(gè)。當(dāng)然,根據(jù)邏輯表達(dá)式,該輸入端口的信號(hào)c應(yīng)與a、b一樣,一起參與邏輯運(yùn)算,以得到最后的輸出y。用VHDL描述3輸入“與非”門電路示例如例8-7和例8-8所示。
4.3輸入“與非”門電路
3輸入“與非”門電路的圖8-43輸入“與非”門電路圖8-43輸入“與非”門電路
【例8-7】用VHDL描述3輸入“與非”門電路示例一。
【例8-7】用VHDL描述3輸入“與非”門電路示例一
【例8-8】用VHDL描述3輸入“與非”門電路示例二。
【例8-8】用VHDL描述3輸入“與非”門電路示例二VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
5.2輸入“異或”門電路
2輸入“異或”門電路的邏輯表達(dá)式為
其邏輯電路如圖8-5所示。
用VHDL描述2輸入“異或”門電路示例如例8-9和例8-10所示。
5.2輸入“異或”門電路
2輸入“異或”門電路的邏圖8-52輸入“異或”門電路圖8-52輸入“異或”門電路
【例8-9】用VHDL描述2輸入“異或”門電路示例一。
【例8-9】用VHDL描述2輸入“異或”門電路示例一
【例8-10】用VHDL描述2輸入“異或”門電路示例二。
【例8-10】用VHDL描述2輸入“異或”門電路示例VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
上述簡(jiǎn)單的門電路大多用兩種不同形式的VHDL程序來(lái)描述,其行為和功能是完全一樣的。事實(shí)上還可以運(yùn)用VHDL中所給出的語(yǔ)句來(lái)描述這些門電路,這就給編程人員提供了較大的編程靈活性。但是,一般來(lái)說(shuō),無(wú)論是編程人員還是閱讀這些程序的人員,都希望程序能一目了然,因此盡可能采用VHDL中所提供的語(yǔ)言和符號(hào),用簡(jiǎn)潔的語(yǔ)句描述其行為,這總是首選的描述方式。
上述簡(jiǎn)單的門電路大多用兩種不同形式的VHDL程序來(lái)描述
8.1.2編、譯碼器與選擇器
編、譯碼器和選擇器是組合電路中較簡(jiǎn)單的3種通用電路。它們可以由簡(jiǎn)單的門電路組合連接構(gòu)成。例如,圖8-6所示是一個(gè)3-8譯碼器電路(74LS138)。由有關(guān)手冊(cè)可知,該譯碼器由8個(gè)3輸入“與非”門、4個(gè)反相器和一個(gè)3輸入“或非”門構(gòu)成。如果事先不作說(shuō)明,只給出電路,讓讀者來(lái)判讀該電路的功能,那么毋庸置疑,要看懂該電路就要花較多的時(shí)間。如果采用VHDL,從行為、功能來(lái)對(duì)3-8譯碼器進(jìn)行描述,則不僅邏輯設(shè)計(jì)變得非常容易,而且閱讀也會(huì)很方便。
8.1.2編、譯碼器與選擇器
編、譯碼器和選擇器是圖8-63-8譯碼器電路圖8-63-8譯碼器電路
1.3-8譯碼器
3-8譯碼器是最常用的一種小規(guī)模集成電路,它有3個(gè)二進(jìn)制輸入端a、b、c和8個(gè)譯碼輸出端y0~y7。對(duì)輸入a、b、c的值進(jìn)行譯碼,就可以確定輸出端y0~y7的哪一個(gè)輸出端變?yōu)橛行?低電平),從而達(dá)到譯碼的目的。3-8譯碼器的真值表如表8-1所示。
1.3-8譯碼器
3-8譯碼器是最常用的一種小規(guī)模VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
3-8譯碼器還有3個(gè)選通輸入端g1、g2a和g2b。只有在g1?=?1,g2a?=?0,g2b?=?0時(shí),3-8譯碼器才進(jìn)行正常譯碼,否則y0~y7輸出均為高電平。
3-8譯碼器還有3個(gè)選通輸入端g1、g2a和g2b。只
【例8-11】3-8譯碼器用VHDL描述如下:
【例8-11】3-8譯碼器用VHDL描述如下:
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.優(yōu)先級(jí)編碼器
優(yōu)先級(jí)編碼器常用于中斷的優(yōu)先級(jí)控制。例如,74LS148是一個(gè)8輸入、3位二進(jìn)制碼輸出的優(yōu)先級(jí)編碼器。當(dāng)其某一個(gè)輸入有效時(shí),就可以輸出一個(gè)對(duì)應(yīng)的3位二進(jìn)制編碼。另外,當(dāng)同時(shí)有幾個(gè)輸入有效時(shí),將輸出優(yōu)先級(jí)最高的那個(gè)輸入所對(duì)應(yīng)的二進(jìn)制編碼。
圖8-7是優(yōu)先級(jí)編碼器的引腳圖,它有8個(gè)輸入input(0)~input(7)和3位二進(jìn)制碼輸出y0~y2。
2.優(yōu)先級(jí)編碼器
優(yōu)先級(jí)編碼器常用于中斷的優(yōu)先級(jí)控圖8-7優(yōu)先級(jí)編碼器圖8-7優(yōu)先級(jí)編碼器
該優(yōu)先級(jí)編碼器的真值表如表8-2所示。表中,“X”表示任意項(xiàng),它可以是“0”,也可以是“1”。input(0)的優(yōu)先級(jí)最高,input(7)的優(yōu)先級(jí)最低。
該優(yōu)先級(jí)編碼器的真值表如表8-2所示。表中,“X”表示VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-12】用VHDL描述優(yōu)先級(jí)編碼器的程序如下:
【例8-12】用VHDL描述優(yōu)先級(jí)編碼器的程序如下:
因?yàn)閂HDL中目前還不能描述任意項(xiàng),所以不能用前面一貫采用的CASE語(yǔ)句來(lái)描述,而采用了IF語(yǔ)句。
因?yàn)閂HDL中目前還不能描述任意項(xiàng),所
3.四選一選擇器
選擇器常用于信號(hào)的切換。四選一選擇器可以用于4路信號(hào)的切換。四選一選擇器有4個(gè)信號(hào)輸入端input(0)~input(3)、2個(gè)信號(hào)選擇端a和b及一個(gè)信號(hào)輸出端y。當(dāng)a、b輸入不同的選擇信號(hào)時(shí),就可以使input(0)~input(3)中某個(gè)相應(yīng)的輸入信號(hào)與輸出y端接通。例如,當(dāng)a?=?b?=“0”時(shí),input(0)就與y接通。其邏輯電路如圖8-8所示。
3.四選一選擇器
選擇器常用于信號(hào)的切換。四選一選圖8-8四選一電路圖8-8四選一電路
四選一電路的真值表如表8-3所示。
四選一電路的真值表如表8-3所示。
【例8-13】用VHDL對(duì)四選一電路進(jìn)行描述的程序如下:
【例8-13】用VHDL對(duì)四選一電路進(jìn)行描述的程序VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
例8-13中的四選一選擇器是用IF語(yǔ)句描述的,程序中的ELSE項(xiàng)作為余下的條件,將選擇input(3)從y端輸出,這種描述比較安全。當(dāng)然,不用ELSE項(xiàng)也可以,這時(shí)必須列出sel所有可能出現(xiàn)的情況,加以一一確認(rèn)。
例8-13中的四選一選擇器是用IF語(yǔ)句描述的,程序中的
8.1.3加法器與求補(bǔ)器
1.加法器
加法器有全加器和半加器之分,全加器可以用兩個(gè)半加器構(gòu)成,因此下面先以半加器為例加以說(shuō)明。
半加器有兩個(gè)二進(jìn)制一位的輸入端a和b、一位和的輸出端s、一位進(jìn)位位的輸出端co。半加器的真值表如表8-4所示,其電路符號(hào)如圖8-9所示。
8.1.3加法器與求補(bǔ)器
1.加法器
加法器有圖8-9半加器圖8-9半加器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-14】用VHDL描述半加器的程序如下:
【例8-14】用VHDL描述半加器的程序如下:
用兩個(gè)半加器可以構(gòu)成一個(gè)全加器。全加器的電路如圖8-10所示。
圖8-10用兩個(gè)半加器構(gòu)成的全加器
用兩個(gè)半加器可以構(gòu)成一個(gè)全加器。全加器的電路如圖8-1
【例8-15】采用COMPONENT語(yǔ)句和PORTMAP語(yǔ)句描述全加器。
【例8-15】采用COMPONENT語(yǔ)句和PORTVHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.求補(bǔ)器
二進(jìn)制運(yùn)算經(jīng)常要用到求補(bǔ)操作。8位二進(jìn)制數(shù)的求補(bǔ)電路符號(hào)如圖8-11所示。
求補(bǔ)電路的輸入為a(0)~a(7),補(bǔ)碼輸出為b(0)~b(7),其中a(7)和b(7)為符號(hào)位。該電路較復(fù)雜,如果像半加器那樣對(duì)每個(gè)門進(jìn)行描述和連接是可以做到的,但是那樣做太繁瑣。這里采用RTL描述更加簡(jiǎn)潔、清楚。
2.求補(bǔ)器
二進(jìn)制運(yùn)算經(jīng)常要用到求補(bǔ)操作。8位二進(jìn)圖8-11
8位二進(jìn)制數(shù)的求補(bǔ)電路符號(hào)圖8-118位二進(jìn)制數(shù)的求補(bǔ)電路符號(hào)
【例8-16】用RTL描述求補(bǔ)器。
【例8-16】用RTL描述求補(bǔ)器。
8.1.4三態(tài)門與總線緩沖器
三態(tài)門與雙向總線緩沖器是接口電路和總線驅(qū)動(dòng)電路經(jīng)常用到的器件。它們雖然不屬于組合電路,為簡(jiǎn)化章節(jié),也列于此處進(jìn)行介紹。
1.三態(tài)門電路
三態(tài)門電路如圖8-12所示。它具有一個(gè)數(shù)據(jù)輸入端din、一個(gè)數(shù)據(jù)輸出端dout和一個(gè)控制端en。當(dāng)en?=?'1'?時(shí),dout?=?din;當(dāng)en?=?'0'?時(shí),dout?=?′Z′(高阻)。三態(tài)門的真值表如表8-5所示。
8.1.4三態(tài)門與總線緩沖器
三態(tài)門與雙向總線緩沖圖8-12三態(tài)門電路圖8-12三態(tài)門電路VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-17】用VHDL描述三態(tài)門的程序如下:
【例8-17】用VHDL描述三態(tài)門的程序如下:
在第3章中讀者已經(jīng)知道,一個(gè)實(shí)體可以對(duì)應(yīng)多種構(gòu)造體。例8-18和例8-19就是用不同的VHDL描述的三態(tài)門的結(jié)構(gòu)。
在第3章中讀者已經(jīng)知道,一個(gè)實(shí)體可以對(duì)應(yīng)多種
【例8-18】用VHDL描述三態(tài)門的結(jié)構(gòu)示例一。
【例8-18】用VHDL描述三態(tài)門的結(jié)構(gòu)示例一。
該例中采用衛(wèi)式塊語(yǔ)句結(jié)構(gòu)來(lái)表示三態(tài)門。衛(wèi)式塊語(yǔ)句結(jié)構(gòu)的特點(diǎn)是:只有塊語(yǔ)句的條件滿足時(shí),塊中所含的語(yǔ)句才會(huì)被執(zhí)行。在這里只有en?=?'1'?的條件滿足時(shí),dout<=GUARDEDdin語(yǔ)句才會(huì)被執(zhí)行。
該例中采用衛(wèi)式塊語(yǔ)句結(jié)構(gòu)來(lái)表示三態(tài)門。衛(wèi)式塊語(yǔ)句結(jié)構(gòu)的VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
2.單向總線緩沖器
在微型計(jì)算機(jī)的總線驅(qū)動(dòng)中經(jīng)常要用單向總線緩沖器,它通常由多個(gè)三態(tài)門組成,用來(lái)驅(qū)動(dòng)地址總線和控制總線。
一個(gè)8位的單向總線緩沖器如圖8-13所示。8位的單向總線緩沖器由8個(gè)三態(tài)門組成,具有8個(gè)輸入和8個(gè)輸出端。所有三態(tài)門的控制端連在一起,由一個(gè)控制輸入端en控制。
用VHDL描述的8位單向總線緩沖器的程序?qū)嵗缋?-20、例8-21和例8-22所示。
2.單向總線緩沖器
在微型計(jì)算機(jī)的總線驅(qū)動(dòng)中經(jīng)常要圖8-13單向總線緩沖器圖8-13單向總線緩沖器
【例8-20】用VHDL描述的8位單向總線緩沖器的程序?qū)嵗弧?/p>
【例8-20】用VHDL描述的8位單向總線緩沖器的程VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-21】用VHDL描述的8位單向總線緩沖器的程序?qū)嵗?/p>
【例8-21】用VHDL描述的8位單向總線緩沖器的程
【例8-22】用VHDL描述的8位單向總線緩沖器的程序?qū)嵗?/p>
【例8-22】用VHDL描述的8位單向總線緩沖器的程
在編寫(xiě)上述程序時(shí)應(yīng)注意,不能將“Z”值賦予變量,否則就不能進(jìn)行邏輯綜合。另外,對(duì)信號(hào)賦值時(shí)“Z”和“0”或“1”不能混合使用,例如:
dout<=″Z001ZZZZ″;
這樣的語(yǔ)句是不允許出現(xiàn)的。但是變換賦值表達(dá)式時(shí),分開(kāi)賦值是可以的。例如:
dout(7)<="Z";
dout(6DOWNTO4)
<="001";
dout(3DOWNTO0)
<="ZZZZ";
在編寫(xiě)上述程序時(shí)應(yīng)注意,不能將“Z”值賦予變量,否則就
3.雙向總線緩沖器
雙向總線緩沖器用于對(duì)數(shù)據(jù)總線進(jìn)行驅(qū)動(dòng)和緩沖。典型的雙向總線緩沖器的電路圖如圖8-14所示。圖中,雙向緩沖器有兩個(gè)數(shù)據(jù)輸入輸出端a和b、一個(gè)方向控制端dr和一個(gè)選通端en。當(dāng)en?=?1時(shí),雙向總線緩沖器未被選通,a和b都呈現(xiàn)高阻;當(dāng)en?=?0時(shí),雙向總線緩沖器被選通,如果dr?=?0,那么a?=?b,如果dr?=?1,那么b?=?a。雙向總線緩沖器的真值表如表8-6所示。
3.雙向總線緩沖器
雙向總線緩沖器用于對(duì)數(shù)據(jù)總線進(jìn)圖8-14雙向總線緩沖器圖8-14雙向總線緩沖器VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
【例8-23】用VHDL描述雙向總線緩沖器實(shí)例。
【例8-23】用VHDL描述雙向總線緩沖器實(shí)例。
VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)(第五版)侯伯亨章課件8
從例8-23中可以看出,雙向總線緩沖器由兩組三態(tài)門組成,利用信號(hào)aout和bout將兩組三態(tài)門連接起來(lái)。由于在實(shí)際工作過(guò)程中a和b都不可能同時(shí)出現(xiàn)“0”和“1”,因此在這里沒(méi)有使用判決函數(shù)。
從例8-23中可以看出,雙向總線緩沖器由兩
8.2時(shí)序電路設(shè)計(jì)
8.2.1時(shí)鐘信號(hào)和復(fù)位信號(hào)
1.時(shí)鐘信號(hào)的描述眾所周知,任何時(shí)序電路都以時(shí)鐘信號(hào)為驅(qū)動(dòng)信號(hào),時(shí)序電路只是在時(shí)鐘信號(hào)的邊沿到來(lái)時(shí),其狀態(tài)才發(fā)生改變。因此,時(shí)鐘信號(hào)通常描述時(shí)序電路程序的執(zhí)行條件。另外,時(shí)序電路也總是以時(shí)鐘進(jìn)程的形式來(lái)進(jìn)行描述的,其描述方式一般有兩種。
8.2時(shí)序電路設(shè)計(jì)
8.2.1時(shí)鐘信號(hào)和復(fù)位信號(hào)
(1)進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)。在這種情況下,時(shí)鐘信號(hào)應(yīng)作為敏感信號(hào),顯式地出現(xiàn)在PROCESS語(yǔ)句后跟的括號(hào)中,例如PROCESS(clock_signal)。時(shí)鐘信號(hào)邊沿的到來(lái)將作為時(shí)序電路語(yǔ)句執(zhí)行的條件。
(1)進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)。在這種情況下,時(shí)鐘信
【例8-24】進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)實(shí)例。
【例8-24】進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)實(shí)例。
(2)用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘。在這種情況下,描述時(shí)序電路的進(jìn)程將沒(méi)有敏感信號(hào),而是用WAITON語(yǔ)句來(lái)控制進(jìn)程的執(zhí)行。也就是說(shuō),進(jìn)程通常停留在WAITON語(yǔ)句上,只有在時(shí)鐘信號(hào)到來(lái)且滿足邊沿條件時(shí),其余的語(yǔ)句才能執(zhí)行。
(2)用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘。在這種情
【例8-25】用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘實(shí)例。
【例8-25】用進(jìn)程中的WAITON語(yǔ)句等待時(shí)鐘實(shí)
在編寫(xiě)上述程序時(shí)應(yīng)注意:
·無(wú)論IF語(yǔ)句還是WAITON語(yǔ)句,在對(duì)時(shí)鐘邊沿進(jìn)行說(shuō)明時(shí),一定要注明是上升沿還是下降沿(前沿還是后沿),只說(shuō)明是邊沿是不行的。
·當(dāng)時(shí)鐘信號(hào)作為進(jìn)程的敏感信號(hào)時(shí),在敏感信號(hào)的表中不能出現(xiàn)一個(gè)以上的時(shí)鐘信號(hào),除時(shí)鐘信號(hào)以外,復(fù)位信號(hào)等是可以和時(shí)鐘信號(hào)一起出現(xiàn)在敏感表中的。
·WAITON語(yǔ)句只能放在進(jìn)程的最前面或者最后面。
在編寫(xiě)上述程序時(shí)應(yīng)注意:
·無(wú)論IF語(yǔ)句還是WA
(3)時(shí)鐘邊沿的描述。為了描述時(shí)鐘邊沿,一定要指定是上升沿還是下降沿,這一點(diǎn)可以使用時(shí)鐘信號(hào)的屬性描述來(lái)進(jìn)行。也就是說(shuō),要指定時(shí)鐘信號(hào)的值是從“0”到“1”變化,還是從“1”到“0”變化,由此可以得知是時(shí)鐘脈沖信號(hào)的上升沿還是下降沿。
(3)時(shí)鐘邊沿的描述。為了描述時(shí)鐘邊沿,一定要指定是
①時(shí)鐘脈沖上升沿的描述。時(shí)鐘脈沖上升沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖8-15所示。從圖8-15中可以看到,時(shí)鐘信號(hào)的起始值為“0”,故其屬性值clk‘LAST_VALUE='0';上升沿的到來(lái)表示發(fā)生了一個(gè)事件,故用clk?'EVENT表示;上升沿以后,時(shí)鐘信號(hào)的值為“1”,故其當(dāng)前值為clk='1'。這樣,表示上升沿到來(lái)的條件可寫(xiě)為
IFclk='1'ANDclk'LAST_VAULE='0'AND
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中秋禮盒銷售合同范本
- 中國(guó)抗感染類藥物行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資方向研究報(bào)告
- 住宅供暖改造合同范本
- 出口紙張采購(gòu)合同范本
- 淺析單片機(jī)的應(yīng)用
- 勞務(wù)攬承合同范本
- 加工糾紛合同范本
- 公司簽訂私人合同范例
- 勞務(wù)及材料合同范本
- 務(wù)工勞動(dòng)合同范例
- 避孕藥具知識(shí)培訓(xùn)
- 醫(yī)保違規(guī)檢討書(shū)
- 鋼結(jié)構(gòu)實(shí)習(xí)報(bào)告
- 2024年建房四鄰協(xié)議范本
- FTTR-H 全光組網(wǎng)解決方案裝維理論考試復(fù)習(xí)試題
- 2024年廣東佛山市中醫(yī)院三水醫(yī)院招聘61人歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 測(cè)繪保密協(xié)議書(shū)保密協(xié)議(2024版)
- 原發(fā)性血小板減少性紫癜患者的生活質(zhì)量
- HG20202-2014 脫脂工程施工及驗(yàn)收規(guī)范
- 基層醫(yī)療機(jī)構(gòu)公共衛(wèi)生健康教育工作手冊(cè)(各類表格模板)
- 2024年內(nèi)蒙古中考地理生物試卷(含答案)
評(píng)論
0/150
提交評(píng)論