版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
組合邏輯電路分析和設(shè)計2.1集成邏輯門數(shù)字集成電路的集成度分類三類典型的數(shù)字集成電路 TTL、CMOS、ECL2一、集成邏輯門系列 1.CMOS邏輯門最簡單的集成邏輯門——CMOS非門3CMOS與非門和或非門4CMOS邏輯系列4000系列74HC系列74HCT系列
CMOS邏輯電路的特點邏輯擺幅大,電路抗干擾能力強。
靜態(tài)功耗低。
輸入阻抗極大,驅(qū)動同類型邏輯門的能力強。容易因靜電感應(yīng)造成器件擊穿而損壞。CMOS集成電路使用注意事項器件防靜電包裝人員和設(shè)備良好接地正確處理不用的輸入端。
5 2.TTL邏輯門74民品系列、54軍品系列74系列中的子系列74系列的發(fā)展和演變TTL與CMOS的比較電源電壓:典型TTL(+5V),CMOS(3~18V)輸出高電平:TTL(3.6V),CMOS(VDD-0.1)邏輯擺幅和抗干擾能力:CMOS更好靜態(tài)功耗:CMOS的靜態(tài)功耗很低6 3.ECL邏輯門高速邏輯電路系列特點ECL的基本邏輯門是“或/或非門”
早期ECL電路使用的單一負(fù)電源供電,輸出低電平為,高電平為,該電平與TTL和CMOS器件的邏輯電平不兼容。新型ECL電路既可以采用、也可以采用供電,方便了不同系列邏輯器件的互聯(lián)。
強調(diào)高速度的ECL系列存在高功耗的缺點。
ECL邏輯門的“或”輸出端具有“線與”功能、“或非”輸出端具有“線或”功能
7二、集成邏輯門的主要電氣指標(biāo) 1.邏輯電平電壓傳輸特性輸入低電平VIL
關(guān)門電平VOFF
輸入高電平VIH
開門電平VON
輸出低電平VOL
輸出高電平VOH
8 2.噪聲容限低電平輸入時的噪聲容限VNL=VOFF-VOLMAX
高電平輸入時的噪聲容限VNH=VOHMIN-VON
(a)(b)(c)圖2-5輸入、輸出電平和噪聲容限示意圖(a)一般關(guān)系;(b)典型TTL;(c)典型CMOS9 3.輸出驅(qū)動能力高電平輸出電流IOH
低電平輸出電流IOL
扇出系數(shù)NO邏輯電路在正常工作條件下,一個輸出端可以同時驅(qū)動同系列邏輯電路輸入端數(shù)目的最大值。
4.功耗:邏輯電路消耗的電源功率
靜態(tài)功耗:電路的輸出狀態(tài)不變時的功率損耗。動態(tài)功耗:電路狀態(tài)變化時產(chǎn)生的功耗。低速電路的功耗以靜態(tài)功耗為主;高速電路的功耗以動態(tài)功耗為主。10 5.時延時延tpd,就是從輸入信號達(dá)到電路輸入端,到相應(yīng)的輸出信號出現(xiàn)在電路輸出端之間所需要的時間。
上升時延tpLH下降時延tpHL
平均時延tpd
116.不同系列邏輯門的性能比較12三、邏輯電路的其它輸入、輸出結(jié)構(gòu) 1.施密特觸發(fā)器輸入典型邏輯門對輸入電壓在閾值電壓附近的波動敏感,容易造成輸出錯誤。施密特觸發(fā)器輸入結(jié)構(gòu)采用兩個不同的閾值電壓來克服輸入電壓的波動。13 2.三態(tài)輸出結(jié)構(gòu)三態(tài)輸出:邏輯電路的輸出端不僅可以輸出0和1,還可以呈現(xiàn)高阻抗?fàn)顟B(tài)。具有三態(tài)輸出結(jié)構(gòu)的非門的邏輯符號和真值表。三態(tài)輸出是一種獨立于電路邏輯功能的輸出結(jié)構(gòu),不同邏輯功能的電路,可以根據(jù)需要設(shè)置三態(tài)輸出端。
14三態(tài)總線將多個三態(tài)輸出端接在一起就構(gòu)成了三態(tài)總線。三態(tài)門還能用于實現(xiàn)數(shù)據(jù)的雙向傳輸。15 3.漏極(集電極)開路輸出結(jié)構(gòu)
使用漏極開路門時,必須在輸出端Z外接一個負(fù)載電阻RL,上拉到一個正電源VCC。改變上拉電源,可以改變輸出電平,使之適用于邏輯電平不同的器件系列的互聯(lián)。多個漏極開路邏輯門的輸出端可以直接連在一起,實現(xiàn)所謂的“線與邏輯”。16 4.CMOS模擬信號傳輸門結(jié)構(gòu)
當(dāng)使能信號EN=1時,MOS管導(dǎo)通,A、B之間呈現(xiàn)低阻通道,模擬信號(或數(shù)字信號)可以沿任意方向傳輸(A→B或B→A)。當(dāng)使能信號EN=0時,MOS管截止,溝道消失,A、B之間只有極低的漏電流,相當(dāng)于開關(guān)斷開。17一、加法器加法器是用于實現(xiàn)兩個二進(jìn)制數(shù)加法運算的電路。加法器分類:不考慮低位進(jìn)位的2個一位二進(jìn)制數(shù)相加的半加器考慮低位進(jìn)位的2個一位二進(jìn)制數(shù)相加的全加器實現(xiàn)2個多位二進(jìn)制數(shù)相加的加法器實現(xiàn)兩個十進(jìn)制數(shù)相加的BCD碼加法器帶符號數(shù)加法器等。2.2常用MSI組合邏輯模塊181.半加器實現(xiàn)兩個1位二進(jìn)制數(shù)相加的電路稱為半加器
192.全加器帶有低位進(jìn)位輸入的一位加法器
20 3.串行加法器串行加法器:將n個一位全加器級聯(lián),得到兩個n位二進(jìn)制數(shù)的加法電路。串行加法器時延較大,電路的工作速度較慢。21 4.先行進(jìn)位4位二進(jìn)制全加器7483/283227483/283的級聯(lián)擴展23二、比較器數(shù)值比較器用于比較兩個數(shù)的大小,并給出“大于”、“等于”和“小于”三種比較結(jié)果。兩個多位二進(jìn)制數(shù)比較大小的方法:從高位開始,逐位比較。高位不同,結(jié)果立現(xiàn)。高位相等,比較結(jié)果由低位的比較結(jié)果決定。當(dāng)各位都對應(yīng)相等時,則兩個數(shù)完全相等。
比較器分類:半比較器:只能比較2個一位二進(jìn)制數(shù)的比較器。全比較器:比較2個一位二進(jìn)制數(shù)。當(dāng)它們相等時,全比較器的比較結(jié)果由低位送來的比較結(jié)果決定。24 1.4位二進(jìn)制數(shù)比較器74857485是采用并行比較結(jié)構(gòu)的4位二進(jìn)制數(shù)比較器25功能表用于描述芯片功能。26 2.7485的級聯(lián)擴展7485的三個級聯(lián)輸入端用于連接低位芯片的三個比較輸出端,實現(xiàn)比較位數(shù)的擴展。27三、編碼器編碼:將一組字符或信號用二進(jìn)制代碼加以表示。編碼器:實現(xiàn)編碼的數(shù)字電路,對于每一個有效的輸入信號,編碼器輸出與之對應(yīng)的一組二進(jìn)制代碼。編碼器分類:2n線-n線編碼器(二進(jìn)制編碼器)BCD碼編碼器(十進(jìn)制編碼器)28 1.2n線-n線編碼器
以基本的8線-3線編碼器為例存在問題:沒有鍵被按下(即編碼輸入全為0)時,編碼輸出為“000”,無法與I0=1的編碼輸入相區(qū)別。若同時有多個鍵被按下(即有多個編碼輸入端同時為1),編碼輸出將出現(xiàn)混亂。輸出函數(shù)表達(dá)式29 2.8線-3線優(yōu)先編碼器74148優(yōu)先編碼器:當(dāng)多個編碼輸入信號同時有效時,編碼器僅對其中優(yōu)先級最高的信號進(jìn)行編碼。低電平有效:就是信號有效時為低電平。30會看MSI的功能表編碼輸入編碼輸出使能輸入使能輸出組選擇輸出3174148的級聯(lián)擴展 3.BCD碼編碼器圖2-22可以用于實現(xiàn)各種BCD碼編碼器。32四、譯碼器譯碼器執(zhí)行與編碼器相反的操作。譯碼器分類:全譯碼器:譯碼器輸入的n位二進(jìn)制代碼有2n種不同的取值,稱為2n種不同的編碼值。若將每種編碼分別譯出,則譯碼器有個2n譯碼輸出端,這種譯碼器稱為全譯碼器。部分譯碼器:若譯碼器輸入的編碼是一位BCD碼,則不是輸入取值的所有組合都有意義,此時只需要與輸入BCD碼相對應(yīng)的十個譯碼輸出端,這種譯碼器稱為部分譯碼器。33 1.3線-8線譯碼器7413874138是3位自然二進(jìn)制編碼的全譯碼器。使能輸入:只有當(dāng)時,該譯碼器才使能。74138的譯碼輸出信號低電平有效。74138輸出了編碼輸入變量的所有最大項。34 2.4線-16線譯碼器74154和BCD碼譯碼器74154是輸出低電平有效的4線-16線全譯碼器。利用74154可以實現(xiàn)各種BCD碼譯碼器。35 3.七段顯示譯碼器LED七段顯示器通過七個發(fā)光段的亮/滅組合,實現(xiàn)十進(jìn)制字符0~9的顯示,各段按a~g命名。共陰極七段顯示器的段驅(qū)動為高電平有效,共陽極七段顯示器的段驅(qū)動是低電平有效。36七段顯示譯碼器7448功能:將8421BCD碼變換為七段顯示碼,輸出高電平有效。37387448的四種工作模式:字符顯示、滅燈、滅0和試燈。字符顯示模式(功能表第一列為0~15對應(yīng)的16行)顯示16種字符,其中輸入為0000~1001時輸出8421BCD碼對應(yīng)的字符0~9;輸入1010~1111時輸出特殊字符。滅燈模式就是強行熄滅所有LED。滅0模式用于多位顯示時關(guān)閉有效位之外多余的0的顯示。試燈模式檢驗LED是否正常,各段全亮,與數(shù)據(jù)輸入無關(guān)。利用實現(xiàn)多位十進(jìn)制數(shù)碼顯示器中熄滅多余0的電路39 4.譯碼器的擴展和應(yīng)用譯碼器的擴展譯碼器用于計算機中的地址譯碼40五、數(shù)據(jù)選擇器和數(shù)據(jù)分配器數(shù)據(jù)選擇器用于從多路輸入信號中選擇一路信號輸出。數(shù)據(jù)分配器用于將一路輸入信號分配到不同的輸出通道。41 1.8選1數(shù)據(jù)選擇器7415142 2.?dāng)?shù)據(jù)選擇器的擴展 3.?dāng)?shù)據(jù)分配器
4344可編程邏輯器件中集成了大量的邏輯門、連線、記憶單元等電路資源,這些電路資源的使用由用戶通過計算機編程方式加以確定。本節(jié)介紹PLD的基本結(jié)構(gòu)和表示方法,以及PLD在組合邏輯電路中的簡單應(yīng)用。2.3組合型可編程邏輯器件45一、PLD的一般結(jié)構(gòu)與電路畫法PLD的基本結(jié)構(gòu)中,包括輸入/輸出緩沖電路、與陣列和或陣列。與-或陣列是其主體,任何邏輯函數(shù)都可以寫成與-或表達(dá)式的形式,通過與-或陣列實現(xiàn)函數(shù)功能。46 1.PLD中連接的表示方法47 2.基本邏輯門的PLD表示法48 3.與-或陣列圖PLD中的與門被組織成與陣列結(jié)構(gòu),或門被組織成或陣列結(jié)構(gòu),與門輸出的乘積項在或陣列中求和。圖2-38是一個用與-或陣列表示的電路圖,與陣列是固定的,四個與門實現(xiàn)了A、B兩個變量的四個最小項;或陣列是可以編程的。函數(shù)F1和F2的表達(dá)式為
49二、組合型PLDPLD的分類:可編程只讀存儲器(PROM)可編程邏輯陣列(PLA)可編程陣列邏輯(PAL)通用陣列邏輯(GAL)復(fù)雜可編程邏輯器件(CPLD)現(xiàn)場可編程門陣列(FPGA)簡單PLD(SPCD)復(fù)雜PLD50只讀存儲器(ROM)是計算機中用于存儲確定信息的存儲器。其中的數(shù)據(jù)由ROM生產(chǎn)廠家在制造ROM時“寫入”,出廠后,用戶無法修改。ROM中的數(shù)據(jù)通常按字節(jié)(8比特)尋址,每個地址對應(yīng)一字節(jié)數(shù)據(jù)。 1.可編程只讀存儲器PROM和EPROM51從邏輯函數(shù)發(fā)生器的角度來看,ROM的地址譯碼器可以實現(xiàn)n個輸入變量An-1~A0的全部2n個最小項,其地址譯碼器就是固定連接的與陣列。數(shù)據(jù)輸出線Di的函數(shù)表達(dá)式為
從實現(xiàn)邏輯函數(shù)的角度來看,存儲矩陣的結(jié)構(gòu)就像多輸出函數(shù)的真值表,存儲矩陣中的每一列的取值就是多輸出函數(shù)的真值表中各函數(shù)的取值。存儲矩陣就是一個連接關(guān)系可以編程的或陣列。該ROM可以等效為一個與或陣列,可以實現(xiàn)8個n變量的邏輯函數(shù)??删幊蘎OM可以分為:熔絲型PROM、EPROM、EEPROM。52PROM結(jié)構(gòu)的缺點:采用固定的與陣列和可編程的或陣列,當(dāng)輸入變量個數(shù)增加時,與陣列的規(guī)模成倍增加,這種結(jié)構(gòu)限制了PROM作為函數(shù)發(fā)生器的應(yīng)用??删幊踢壿嬯嚵蠵LA:采用與、或陣列都可編程的結(jié)構(gòu),使乘積項不必是最小項,從而為實現(xiàn)邏輯函數(shù)提供了較大的靈活性。PLA的問題:由于器件制造中的困難和相關(guān)應(yīng)用軟件的開發(fā)沒有跟上,PLA很快被隨后出現(xiàn)的PAL取代。 2.可編程邏輯陣列PLA53PAL中與或陣列的特點:與陣列可編程、或陣列固定。PAL16L8:輸入、輸出:10個專用輸入端,2個專用三態(tài)輸出端和6個輸入/三態(tài)輸出(I/O)端。與陣列:可編程與陣列包括64個與門,每個與門有32個輸入端。或陣列:或陣列包含8個7輸入或門,這些或門和與門的連接關(guān)系是固定的,可以同時實現(xiàn)8個輸出邏輯函數(shù)。輸出由三態(tài)非門控制。函數(shù)形式:用PAL16L8實現(xiàn)的邏輯函數(shù)的基本表達(dá)式是與或非式。 3.可編程陣列邏輯PAL5455用PAL16L8實現(xiàn)8421BCD碼→余3循環(huán)碼的轉(zhuǎn)換電路 4.通用陣列邏輯GALGAL在芯片中增加了存儲元件,并采用輸出邏輯宏單元OLMC結(jié)構(gòu),改善了內(nèi)部資源使用的靈活性,成為低密度可編程邏輯器件的首選。GAL的原理與應(yīng)用在第4章介紹。56組合電路的分析,就是分析組合電路輸入變量和輸出變量的取值關(guān)系和函數(shù)關(guān)系,進(jìn)而確定電路的功能。一、基本分析方法(步驟)①
據(jù)給定的組合電路,寫出輸出函數(shù)表達(dá)式②
據(jù)表達(dá)式,列出真值表③
說明電路的邏輯功能2.4組合邏輯電路分析57例2-1分析圖2-41所示電路。解:表達(dá)式為真值表如上所示。邏輯功能:少數(shù)服從多數(shù)的三人表決電路。58二、分析實例例2-2分析圖2-41所示電路。 邏輯功能:一位全加器。其中,J是進(jìn)位輸出,S是本位和輸出。解:表達(dá)式為59例2-3分析圖2-43所示電路,已知輸入信號B3B2B1B0是5421BCD碼。解:由真值表可以看出,該電路實現(xiàn)了5421碼到8421碼的轉(zhuǎn)換。
60組合邏輯電路設(shè)計就是根據(jù)功能要求設(shè)計相應(yīng)的邏輯電路。設(shè)計的基本要求是功能正確,電路盡可能簡化。
一、基本設(shè)計方法(步驟)
①
據(jù)功能要求,確定輸入、輸出變量,列出相應(yīng)的真值表。
②
據(jù)設(shè)計要求,采用適當(dāng)?shù)幕喎椒ㄇ蟪雠c所要求的邏輯門相適應(yīng)的輸出函數(shù)的最簡表達(dá)式。
③
畫出與最簡表達(dá)式相對應(yīng)的邏輯電路圖。2.5組合邏輯電路設(shè)計61組合電路的設(shè)計方法:(1)邏輯抽象;①確定輸入、輸出變量;②定義邏輯狀態(tài)的含義;③根據(jù)給輸出與輸入之間的邏輯關(guān)系列真值表。(2)根據(jù)真值表寫出邏輯函數(shù)表達(dá)式;(3)選定器件的類型;(4)將邏輯函數(shù)化簡或變換成適當(dāng)?shù)男问剑唬?)畫出邏輯電路圖。
62例2-4設(shè)計一個組合電路,該電路能夠判斷一位BCD碼是否8421碼。若是8421碼,則當(dāng)該碼能被4或5整除時,輸出有所指示。要求分別用與非門、或非門、與或非門實現(xiàn)該電路(允許反變量輸入)。解:①定義輸入、輸出變量,列出真值表用輸入變量ABCD的取值表示一位8421BCD碼,定義輸出變量F1=1表示輸入的是8421碼,F(xiàn)2=1表示輸入8421碼可以被4或5整除。列出真值表。63②用卡諾圖化簡法求最簡式:用與非門實現(xiàn)時,應(yīng)圈1得最簡與或式,再轉(zhuǎn)換為最簡與非式。用或非門實現(xiàn)時,應(yīng)圈0得最簡或與式,再轉(zhuǎn)換為最簡或非式。用與或非門實現(xiàn)時,應(yīng)圈0得最簡或與式,再轉(zhuǎn)換為最簡與或非式。64輸出函數(shù)的最簡與或式和最簡與非式為輸出函數(shù)的最簡或與式、最簡或非式和最簡與或非式為65③
畫出實現(xiàn)該邏輯功能的三種不同門電路形式。66二、設(shè)計實例(基于MSI的組合電路設(shè)計)例2-5試用4位全加器7483實現(xiàn)5421BCD碼到8421BCD碼的轉(zhuǎn)換。解:67例2-6試用4位全加器芯片7483實現(xiàn)一位8421BCD碼加法器。解:兩個一位十進(jìn)制數(shù)相加時,和的取值范圍是0~18,將該范圍內(nèi)二進(jìn)制數(shù)和8421BCD碼的取值列表,尋找將二進(jìn)制結(jié)果轉(zhuǎn)換為8421BCD碼的規(guī)律。68N10≤9時,二進(jìn)制數(shù)與8421碼相同N10≥10時,8421碼比相應(yīng)的二進(jìn)制數(shù)大6。判斷N10≥10的電路就用表中的DC。當(dāng)C4=1時,或S3=1且S2和S1中至少有一個為1時,DC=1。DC的表達(dá)式為69由真值表直接寫出輸出函數(shù)的最小項表達(dá)式。并變換為與74138低電平有效的輸出端相符的形式。畫出電路圖例2-7試用3線-8線譯碼器74138實現(xiàn)一位二進(jìn)制全減器。解:一位二進(jìn)制數(shù)全減器就是兩個一位二進(jìn)制數(shù)的帶借位的減法運算。定義變量:設(shè)被減數(shù)、減數(shù)和低位的借位輸入分別為X、Y、Bi,運算結(jié)果為本位的差D和向高位的借位輸出Bo
列出真值表70例2-8試用輸出高電平有效的3線-8線譯碼器實現(xiàn)邏輯函數(shù)解:輸出高電平有效的譯碼器的輸出函數(shù)就是輸入變量的最小項。直接實現(xiàn)該最小項表達(dá)式需要外接一個6輸入的或門。對函數(shù)表達(dá)式稍加變換,就可以使電路更簡單,如圖2-49所示。71例2-9試用8選1數(shù)據(jù)選擇器實現(xiàn)邏輯函數(shù)
解:首先將函數(shù)F寫成最小項表達(dá)式的變量形式,然后從四個自變量中選擇三個作為MUX的地址變量(本例選ABC),并將表達(dá)式寫成MUX輸出函數(shù)表達(dá)式形式。
當(dāng)MUX的地址變量A2A1A0=ABC時,輸入數(shù)據(jù)端72例2-10試用4選1數(shù)據(jù)選擇器實現(xiàn)例2-9中的邏輯函數(shù)。解:選AB作為MUX的地址變量,按AB兩個變量的最小項形式變換函數(shù)F的表達(dá)式
當(dāng)4選1MUX的地址變量A1A0=AB時,MUX的數(shù)據(jù)輸入端實現(xiàn)D0和D2需要附加兩個與門。73例2-11試用8選1數(shù)據(jù)選擇器實現(xiàn)邏輯函數(shù)
解:采用降維卡諾圖法選擇MUX的地址變量A2A1A0=BCD,將BCD作為卡諾圖中的一組變量,函數(shù)F中的其它變量作為另一組變量,畫出降維卡諾圖。
74數(shù)字電路的描述方法真值表、表達(dá)式、電路圖。硬件描述語言:VHDL、VerilogHDL等。一、VHDL源程序的基本結(jié)構(gòu)
VHDL源程序5個組成部分:實體說明、結(jié)構(gòu)體、庫、程序包和配置。實體說明和結(jié)構(gòu)體組成設(shè)計實體,簡稱實體。通常,將實體理解為一個邏輯模塊,實體說明用來描述該模塊的端口。結(jié)構(gòu)體用來描述該模塊的內(nèi)部功能。2.6組合邏輯電路的VHDL描述75實體說明實體說明用于描述邏輯模塊的輸入/輸出信號,其語法如下:例2-12用實體說明語句描述2輸入與非門的輸入輸出端口。76端口說明 語句格式:
port(端口名:端口模式數(shù)據(jù)類型;...); 端口模式指端口的數(shù)據(jù)傳輸方向,共有以下4種:
in:輸入端口,該引腳接收外部信號
out:輸出端口,該引腳向外輸出信號
inout:雙向端口,可以雙向傳輸信號
buffer:緩沖端口,工作于緩沖模式 數(shù)據(jù)類型是端口信號的取值類型,VHDL有著豐富的數(shù)據(jù)類型。 工業(yè)標(biāo)準(zhǔn)邏輯型是最常用的數(shù)據(jù)類型,該類型的數(shù)據(jù)有0、1、X(未知)、Z(高阻)等9種取值。類屬說明:類屬說明語句用于指定參數(shù),其格式為generic(常數(shù)名:數(shù)據(jù)類型:=設(shè)定值;...);77
例2-13用類屬說明語句定義總線寬度。類屬說明語句也常用來定義仿真時需要的時間參數(shù),例如: 實體說明只是指出了輸入、輸出信號的名稱、方向、類型。 而電路的邏輯功能,即函數(shù)關(guān)系,是模塊的內(nèi)部信息,由相應(yīng)的結(jié)構(gòu)體定義。
78結(jié)構(gòu)體結(jié)構(gòu)體的關(guān)鍵字是architecture,結(jié)構(gòu)體用于具體描述實體的邏輯功能,其語法如下:例2-14與例2-12中實體說明對應(yīng)的一種結(jié)構(gòu)體。79配置一個實體可以用不同的結(jié)構(gòu)體來描述,配置語句用于確定一個具體的實體和結(jié)構(gòu)體對。配置語句的關(guān)鍵字是configuration,語句的一般格式如下例如,將例2-14的結(jié)構(gòu)體配置給實體說明,其配置語句如下80庫和程序包
庫和程序包結(jié)構(gòu)用于實現(xiàn)數(shù)據(jù)類型、常量和子程序在不同實體中的共享。
程序包用來存放各個設(shè)計都能共享的數(shù)據(jù)類型、子程序說明、屬性說明和元件說明。程序包由程序包說明和程序包體兩部分組成,其語法格式為
數(shù)據(jù)類型、常量,以及子程序和元件等首先在程序包說明中定義,然后在程序包體中描述各項的具體內(nèi)容。
81例2-15庫是已編譯數(shù)據(jù)的集合,它存放包集合定義、實體定義、結(jié)構(gòu)定義和配置定義。庫以VHDL源文件形式存在,主要包括:
STD庫、WORK庫、IEEE庫、ASIC庫、用戶自定義庫等
vhdl的庫說明語句格式為:82二、VHDL的基本語法
VHDL的語言要素:數(shù)據(jù)對象、數(shù)據(jù)類型和運算操作符數(shù)據(jù)對象:包括變量、信號和常數(shù)。①變量:VHDL的變量是局部量,只能用于進(jìn)程和子程序中,變量的使用包括變量定義語句和變量賦值語句。變量定義語句的語法格式為
variable變量名:數(shù)據(jù)類型:=初始值;例2-16變量定義語句舉例。83 變量賦值語句的格式為 變量名:=表達(dá)式;例2-17變量賦值語句舉例②信號:其概念類似于硬件電路中的連接線,與之相關(guān)的信號賦值、延時等語句適合于描述硬件電路的一些基本特征。信號的適用范圍是實體、結(jié)構(gòu)體和程序包,信號不能用于進(jìn)程和子程序。信號語句包括信號定義語句和信號賦值語句。84 信號定義語句的格式為 signal信號名:數(shù)據(jù)類型:=初始值;例2-18信號定義語句舉例。信號賦值語句的格式為信號名<=表達(dá)式;例2-19信號賦值語句舉例。信號定義語句用來說明電路內(nèi)部使用的信號,這些信號并不送往外部端口,所以在結(jié)構(gòu)體中說明,而不是在實體說明語句中說明。85例2-20用信號定義與賦值語句說明圖2-55所示電路。③常數(shù):可以使程序容易閱讀和修改。定義常數(shù)后,程序中所有用到該常數(shù)值的地方都用定義的常數(shù)名表示,需要修改該常數(shù)時,只要在該常數(shù)名定義處修改即可。常數(shù)定義的語法格式為constant常數(shù)名:數(shù)據(jù)類型:=表達(dá)式;
86例2-21常數(shù)定義語句舉例。
VHDL的數(shù)據(jù)類型:標(biāo)準(zhǔn)數(shù)據(jù)類型和用戶自定義數(shù)據(jù)類型標(biāo)準(zhǔn)數(shù)據(jù)類型:VHDL的STD庫中STANDARD程序包中定義了十種數(shù)據(jù)類型,稱為標(biāo)準(zhǔn)數(shù)據(jù)類型或預(yù)定義數(shù)據(jù)類型。
bit(位型數(shù)據(jù))、bit_vector(位矢量型)、integer(整型數(shù)據(jù))、boolean(布爾型數(shù)據(jù))、real(實型數(shù)據(jù))、character(字符型數(shù)據(jù))、string(字符串)、time(時間型數(shù)據(jù))、severitylevel(錯誤等級類型)、natural(自然數(shù)類型)和positive(正整數(shù)類型)
IEEE庫的STD_LOGIC_1164程序包中還定義了兩種應(yīng)用十分廣泛的數(shù)據(jù)類型:std_logic(工業(yè)標(biāo)準(zhǔn)邏輯型)和std_logic_vector(標(biāo)準(zhǔn)邏輯矢量型)。用戶自定義數(shù)據(jù)類型:用戶可以選擇VHDL標(biāo)準(zhǔn)數(shù)據(jù)類型的一個子集,作為自定義數(shù)據(jù)類型。87
VHDL的運算操作符
常用的運算操作符包括邏輯運算符、算術(shù)運算符和關(guān)系運算符。邏輯運算符用于對邏輯型數(shù)據(jù)bit和std_logic、邏輯型數(shù)組bit_vector和std_logic_vector、以及布爾型數(shù)據(jù)boolean的邏輯運算。邏輯運算經(jīng)VHDL綜合器綜合后通常直接產(chǎn)生組合電路。
算術(shù)運算符包括對整型數(shù)的加、減運算符,對整型或?qū)嵭停ê↑c數(shù))的乘、除運算符,對整型數(shù)的取模和取余運算符,對單操作數(shù)添加符號的符號操作符“+”和“-”,以及指數(shù)運算符“**”和取絕對值運算符“ABS”。
并置運算符“&”用于將位或數(shù)組組合起來,形成新的數(shù)組,例如,“VH”&“DL”的結(jié)果是“VHDL”,”01”&”00”的結(jié)果是”0100”。
關(guān)系運算符的作用是比較相同類型的數(shù)據(jù),并將結(jié)果表示為boolean型數(shù)據(jù)的ture或false。關(guān)系運算符包括等于(=)、不等于(/=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。
88
VHDL的語句:并行執(zhí)行語句和順序執(zhí)行語句并行語句:并行語句主要用來描述模塊之間的連接關(guān)系。并行語句之間是并行關(guān)系,當(dāng)某個信號發(fā)生變化時,受此信號觸發(fā)的所有語句同時執(zhí)行。常用的并行語句包括信號賦值語句、條件賦值語句和元件例化語句。①條件賦值語句:包括when_else和with_select_when
when_else語句的語法格式為
89例2-22采用when_else語句描述表2-19所示的2-4線譯碼器。
with_select_when語句的語法格式為90例2-23采用with_select_when語句描述表2-20所示的4-2線編碼器。元件例化語句 元件例化就是引入一種連接關(guān)系,將預(yù)先設(shè)計好的實體定義為一個元件,然后通過關(guān)聯(lián)將實際信號與當(dāng)前實體中指定的端口相連接。91
元件例化分為兩部分:元件定義語句:將一個已有的設(shè)計實體定義為一個元件,實現(xiàn)封裝,使之只保留對外的端口,可以被其它模塊調(diào)用。元件例化語句:就是元件的調(diào)用,方法是將元件端口(輸入輸出信號、即引腳)映射到需要連接的位置上。語句格式92例2-24采用元件例化的方式實現(xiàn)圖2-56所示電路。解:首先用VHDL描述一個兩輸入與非門,然后把該與非門當(dāng)作一個已有元件,用元件例化語句結(jié)構(gòu)實現(xiàn)圖2-56所示的連接關(guān)系。9394順序語句:順序語句按照程序書寫順序執(zhí)行,順序語句只能出現(xiàn)在進(jìn)程和子程序中。 順序語句包括賦值語句、流程控制語句、子程序調(diào)用語句和等待語句等類別,這里只介紹流程控制語句中的if和case語句。①if語句:分為三種,if_then_endif、if_then_else_endif和if_elsif_else_endif。if_then_endif語句的語法格式是當(dāng)條件成立時,執(zhí)行順序語句,否則跳過該語句。例2-25if_then_endif語句舉例
95
if_then_else_endif語句的語法格式是若條件成立,就執(zhí)行順序語句1;否則,就執(zhí)行順序語句2。例2-26用if語句描述一個表2-21所示的三態(tài)非門。96
if_elsif_else_endif語句的語法格式是若條件成立,就執(zhí)行then后的順序語句;否則,檢測后面的條件,并在條件滿足時,執(zhí)行相應(yīng)的順序語句。if語句至少有一個條件句,條件句必須是boolean表達(dá)式,當(dāng)條件句的值為ture時(即條件成立),執(zhí)行then后的順序語句。方括號中的內(nèi)容是可選項,用于多個條件的情形。97case語句
case語句根據(jù)表達(dá)式的取值直接從多組順序語句中選擇一組執(zhí)行。語句格式為例2-27用case語句描述一個表2-22所示的1線-4線分配器。
98結(jié)構(gòu)體功能描述語句的結(jié)構(gòu)類型 用結(jié)構(gòu)體進(jìn)行功能描述可以采用五種不同類型的語句結(jié)構(gòu),如圖所示。塊語句塊語句將結(jié)構(gòu)體中的并行描述語句組成一個模塊,類似于電路圖中的模塊劃分,用于改善并行語句的結(jié)構(gòu),增加可讀性,或用來限制某些信號的使用范圍。
block語句的格式為
99例2-28由半加器和或門構(gòu)成的一位二進(jìn)制全加器電路如圖所示,試采用block語句結(jié)構(gòu)描述該電路。解:在VHDL描述時,采用block語句結(jié)構(gòu)將兩個半加器H_ADDER和或門OR2分別實現(xiàn),可以使VHDL源程序更加清晰易懂。100101進(jìn)程語句進(jìn)程語句結(jié)構(gòu)采用順序語句描述事件,其語法結(jié)構(gòu)為例2-29一個2選1多路選擇器MUX2的進(jìn)程描述語句。
102子程序調(diào)用語句在被主程序調(diào)用后,子程序可以將處理結(jié)果返回主程序。子程序中只能使用順序語句。VHDL中的子程序有兩種類型:過程和函數(shù)。①函數(shù) 函數(shù)的語句格式為
在VHDL中,function語句只能計算數(shù)值,不能改變其參數(shù)的值,所以其參數(shù)的模式只能是in,常省略不寫。通常,各種功能的函數(shù)語句的程序都被集中放置在包集合中,并且可以在結(jié)構(gòu)體中直接調(diào)用。
103例2-30函數(shù)MIN的功能是比較兩個變量X、Y的大小,并返回兩數(shù)中較小的一個。在VHDL中,function語句只能計算數(shù)值,不能改變其參數(shù)的值,所以其參數(shù)的模式只能是in,常省略不寫。通常,各種功能的函數(shù)語句的程序都被集中放置在包集合中,并且可以在結(jié)構(gòu)體中直接調(diào)用。104②過程過程的語句格式為例2-31用過程語句結(jié)構(gòu)實現(xiàn)2-4線譯碼器105106三、用VHDL描述組合邏輯電路
VHDL結(jié)構(gòu)體的功能描述有三種方式:行為描述方式、數(shù)據(jù)流描述方式(RTL描述)、結(jié)構(gòu)化描述方式。
行為描述方式屬于高級描述方式,通過對電路行為的描述實現(xiàn)設(shè)計。這種描述方式不包含與硬件結(jié)構(gòu)有關(guān)的信息,易于實現(xiàn)系統(tǒng)優(yōu)化,易于維護(hù)。數(shù)據(jù)流描述方式的特點是采用邏輯函數(shù)表達(dá)式形式表示信號關(guān)系。結(jié)構(gòu)化描述方式通過元件例化來實現(xiàn),這種方法類似電路圖的描述方式,將電路的邏輯功能分解為功能單元,每個功能單元都被定義為一個元件,通過元件說明和元件調(diào)用的方式,構(gòu)成電路中各元件的連接關(guān)系。107例2-32分別用數(shù)據(jù)流描述、結(jié)構(gòu)化描述和行為描述方式設(shè)計一個三人表決電路。解:三人表決電路的電路圖和真值表如下面的圖表所示。108109110例2-33用VHDL描述一個三態(tài)輸出總線電路,總線寬度BUS_WIDTH為8位,數(shù)據(jù)輸入和輸出分別用D_IN和D_OUT表示,使能輸入信號OE高電平有效。111例2-34用VHDL描述一個8線-3線優(yōu)先編碼器,該編碼器的編碼輸入端是I(7)~I(0),編碼優(yōu)先順序由高到低是I(7)到I(0),編碼輸出端是A(2)~A(0),該電路還有一個高電平有效的編碼有效輸出端GS。
112例2-35用VHDL描述一個將一位8421BCD碼轉(zhuǎn)換為高電平有效的七段顯示碼的七段顯示譯碼器。1131142.7組合邏輯電路中的險象邏輯門的傳輸時延、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ISO22000培訓(xùn)教學(xué)課件
- 第九版新冠疫情培訓(xùn)課件
- 口罩生產(chǎn)供應(yīng)協(xié)議2025年合規(guī)性條款
- 超級建造師考試題及答案
- 醫(yī)師年度考核試題及答案
- 2025-2026二年級音樂學(xué)期末考卷
- 肝衰竭患者人工肝治療的心理干預(yù)策略
- 衛(wèi)生院醫(yī)療違法制度
- 衛(wèi)生社區(qū)服務(wù)站規(guī)章制度
- 一次性使用衛(wèi)生材料制度
- 泰康入職測評題庫及答案
- 天津市河?xùn)|區(qū)2026屆高一上數(shù)學(xué)期末考試試題含解析
- DB37-T6005-2026人為水土流失風(fēng)險分級評價技術(shù)規(guī)范
- 彈性工作制度規(guī)范
- 仁愛科普版(2024)八年級上冊英語Unit1~Unit6補全對話練習(xí)題(含答案)
- 腎寶膠囊產(chǎn)品課件
- 2026河南安陽市兵役登記參考考試試題及答案解析
- 買車背戶協(xié)議書
- 護(hù)理投訴糾紛防范及處理
- 煙囪技術(shù)在血管腔內(nèi)修復(fù)術(shù)中的應(yīng)用教案
- 檢驗科甲流實驗室檢測流程
評論
0/150
提交評論