硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)VHDL:第7章 基本邏輯電路設(shè)計(jì)_第1頁
硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)VHDL:第7章 基本邏輯電路設(shè)計(jì)_第2頁
硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)VHDL:第7章 基本邏輯電路設(shè)計(jì)_第3頁
硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)VHDL:第7章 基本邏輯電路設(shè)計(jì)_第4頁
硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)VHDL:第7章 基本邏輯電路設(shè)計(jì)_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基本邏輯電路設(shè)計(jì)第7章VHDL71第7章 基本邏輯電路設(shè)計(jì) 前面幾章中,對VHDL語言的語句、語法及利用VHDL語言設(shè)計(jì)邏輯電路的基本方法作了詳細(xì)介紹。 本章介紹基本邏輯電路的設(shè)計(jì)和VHDL語言描述基本邏輯電路的方法。VHDL7271 組合邏輯電路設(shè)計(jì)什么是組合邏輯電路?組合邏輯電路,可以有干若個輸入變量和若干個輸出變量。每個輸出變量是其輸入的邏輯函數(shù),其每個時刻的輸出變量的狀態(tài)僅與當(dāng)時的輸入變量的狀態(tài)有關(guān),與本輸出的原來狀態(tài)及輸入的原狀態(tài)無關(guān),也就是輸入狀態(tài)的變化立即反映出輸出狀態(tài)的變化。VHDL7371 組合邏輯電路設(shè)計(jì)組合邏輯電路模型:Yi=Fi(X1,X2,X3,Xn) i=1,2,3

2、,mVHDL7471 組合邏輯電路設(shè)計(jì)組合邏輯電路主要包括:簡單門電路、選擇電路、譯碼器、三態(tài)門。描述方式:功能描述或寄存器一一對應(yīng)描述。主要是第一種。VHDL757.1.1 簡單門電路簡單門電路包括:2輸入與非門、或非門等。見課本P134VHDL76例7-1LIBRARY IEEE;USE IEEE.STD_LOGIE_1164.ALL;ENTITY nand2 ISPORT(a,b:IN STD_LOGIC; y:0UT STD_LOGIC); END nand2;ARCHITECTURE nand2_l OF nand2 ISBEGEN ya NAND b;END nand2_l; VH

3、DL77例7-2LIBRARY IEEE;USE IEEE.STD_LOGIE_1164.ALL;ENTITY nand2 ISPORT(a,b:IN STD_LOGIC; y:0UT STD_LOGIC); END nand2;ARCHITECTURE nand2_2 OF nand2 ISBEGEN t1: PROCESS(a,b) VARIABLE comb:STD_LOGIC_VECTOR (1 DOWNT 0); BEGEN comb:=a&b; CASE comb IS WHEN”00”y1; WHEN”01”y1; WHEN”10”y1; WHEN”11”y0; WHEN OTH

4、ERSyX END CASE; END PROCESS t1; END nand 2_2;VHDL78 從上面兩個例子可以看出,例7-1的描述更簡潔,更接近于2輸入“與非”門的行為描述,因此也更易于閱讀。例7-2的描述是以2輸入“與非”門的真值表為依據(jù)來編寫的,它羅列了2輸入“與非”門的每種輸入狀態(tài)及其對應(yīng)的輸出結(jié)果。VHDL79 集電極開路的2輸入“與非”門和一般2輸入的“與非”門在VHDL語言的描述上沒有什么差異,所不同的只是從不同元件庫中提取相應(yīng)的電路而已。例如:LIBRARY STD;USE STDSTD_LOGICALL;USE STDSTD_ttlALL;ENTITY nand2

5、ISEND nand2;LIBRARY STD;USE STDSTD_LOGICALLUSE STDSTD _ttlocALL;ENTITY nand2 ISEND nand2;VHDL710例7-3LIBRARY IEEE;USE IEEE.STD_LOGIE_1164.ALL;ENTITY nand2 ISPORT(a,b:IN STD_LOGIC; y:0UT STD_LOGIC); END nor2;ARCHITECTURE nor2 _l OF nor2 2 ISBEGEN ya NOR b;END nor2_l; VHDL711例7-4LIBRARY IEEE;USE IEEE.S

6、TD_LOGIE_1164.ALL;ENTITY nor2 ISPORT(a,b:IN STD_LOGIC; y:0UT STD_LOGIC); END nor2;ARCHITECTURE nor2_2 OF nor2 ISBEGEN t2: PROCESS(a,b) VARIABLE comb:STD_LOGIC_VECTOR (1 DOWNT 0); BEGEN comb:=a&b; CASE comb IS WHEN”00”y1; WHEN”01”y0; WHEN”10”y0; WHEN”11”y0; WHEN OTHERSyX END CASE; END PROCESS t2; END

7、 nor 2_2;VHDL712例7-5LIBRARY IEEE;USE IEEE.STD_LOGIE_1164.ALL;ENTITY inverter ISPORT(a,:IN STD_LOGIC; y:0UT STD_LOGIC); END inverter;ARCHITECTURE inverter_l OF inverter ISBEGEN y NOT a;END inverter_l; VHDL713例7-6LIBRARY IEEE;USE IEEE.STD_LOGIE_1164.ALL;ENTITY inverter ISPORT(a,b:IN STD_LOGIC; y:0UT S

8、TD_LOGIC); END inverter;ARCHITECTURE inverter_2 OF inverter ISBEGEN t3: PROCESS(a) BEGEN IF(a1)THEN y=0 ELSE y=1 END PROCESS; END inverter_2;VHDL714VHDL715VHDL716VHDL717VHDL718VHDL719VHDL7207.1.2 編、譯碼器和選擇器包括:3_8譯碼器、優(yōu)先級編碼器和四選一選擇器VHDL7213_8譯碼器VHDL722VHDL723VHDL724優(yōu)先級編碼器VHDL725優(yōu)先級編碼器VHDL726 優(yōu)先級編碼器常用于中斷

9、的優(yōu)先級控制,例如,74L5148是一個8輸入,3值二進(jìn)制碼輸出的優(yōu)先級編碼器。當(dāng)其某一個輸入有效時,就可以輸出一個對應(yīng)的3位二進(jìn)制編碼。另外,當(dāng)同時有幾個輸入有效時,將輸出優(yōu)先級最高的那個輸入所對應(yīng)的二進(jìn)制編碼。VHDL727VHDL728VHDL729四選一選擇器VHDL730四選一選擇器VHDL731VHDL732VHDL733 加法器 加法器有全加器和半加器之分,全加器可以用兩個半加器構(gòu)成,因此下面先以半加器為例加以說明。VHDL734VHDL735全加器真值表VHDL736用兩個半加器可以構(gòu)成一個全加器,全加器的電路如圖所示VHDL737VHDL738求補(bǔ)器 該電路較復(fù)雜如果像半加器

10、那樣,對每個門進(jìn)行描述和連接是可以做到的,但是那樣做就大繁鎖了。這里采用RTL描述就顯得更加簡潔、清楚。VHDL739例7-16LIBRARY IEEE;USE IEEE.STD_LOGIE_1164.ALL;ENTITY hosuu ISPORT(a:IN STD_LOGIC_ VLCTOR (7 DOWNTO 0); b:OUT STD_LOGIC_ VLCTOR (7 DOWNTO 0); END hosuu;ARCHITECTURE rtl OF hosuu ISBEGEN bNOT a + 1;END rtl;VHDL740三態(tài)門電路VHDL741VHDL742VHDL743單向總線

11、緩沖器 在微型計(jì)算機(jī)的總線驅(qū)動中經(jīng)常要用單向總線緩沖器來驅(qū)動地址總線和控制總線。一個8位的單向總線緩沖器如圖所示。8位的單向總線緩沖器由8個三態(tài)門組成,具有8個輸入和8個輸出端。所有三態(tài)門的控制端連在一起,由一個控制輸入端en控制。VHDL744VHDL745VHDL746雙向總線緩沖器雙向總線緩沖器用于對數(shù)據(jù)總線的驅(qū)動和緩沖。 雙向總線緩沖器的電路圖如圖所示。雙向緩沖器有兩個數(shù)據(jù)輸入輸出端:a和b;一個方向控制端dr和一個選通端en。當(dāng)en1時 雙向總線緩沖器未被選通,a和b都呈現(xiàn)高阻;en0時 雙向總線緩沖器被選通,如果dr0,那么a=b;如果dr1,那么b=a。 例7-23 (源程序不能

12、很好實(shí)現(xiàn)) VHDL747VHDL748VHDL749VHDL75072 時序邏輯電路設(shè)計(jì)時序邏輯電路概念:如果電路在某一時刻的輸出狀態(tài)不僅取決于電路在這一時刻的輸入狀態(tài),而且與電路過去的狀態(tài)有關(guān),也就是說電路具有了記憶功能,這種電路就叫作時序邏輯電路。VHDL75172 時序邏輯電路設(shè)計(jì) 時序邏輯電路中能夠完成記憶功能的電路叫做觸發(fā)器,它是最重要、最基本的時序單元電路,所以首先介紹常用觸發(fā)器的邏輯功能、電路結(jié)構(gòu)、工作原理、特性及其描述方法。觸發(fā)器和組合電路可以組成多種時序邏輯單元電路,如計(jì)數(shù)器、移位寄存器、隨機(jī)存儲器等。VHDL75272 時序邏輯電路設(shè)計(jì) 時序邏輯電路由哪幾部分組成?它和組

13、合電路的區(qū)別是什么? 組合邏輯電路由門電路構(gòu)成;時序邏輯電路由組合電路和存儲電路(觸發(fā)器)兩部分組成。 組合邏輯電路在任一時刻的輸出信號僅與當(dāng)時的輸入信號有關(guān);而時序邏輯電路還與電路原來的狀態(tài)有關(guān)。 VHDL753典型的時序邏輯電路串行加法器101101011110011100111010一位全加器D觸發(fā)器CPQCICO1DC1BSAVHDL754 輸出方程: 狀態(tài)方程:Qn+1=F3 ( Z, Qn ) 驅(qū)動方程:Z=F2 ( X, Qn )時序電路的模型Y=F1 ( X, Qn )Z組合電路觸發(fā)器CPXYQ輸入信號輸出信號狀態(tài)信號驅(qū)動信號VHDL755時序邏輯電路的分類按控制時序狀態(tài)的脈沖

14、源來分:同步時序電路:異步時序電路:所有觸發(fā)器由同一時鐘脈沖源控制沒有統(tǒng)一的時鐘脈沖Q0FF0Q1CPFF2Q2FF11DC11DC11DC1“1”Q0FF0Q1CPFF2Q2FF11DC11DC11DC1VHDL756時序邏輯電路的分類(續(xù))按輸出Y與現(xiàn)態(tài)Qn及輸入X 的關(guān)系分:穆爾型(Moore):輸出只和現(xiàn)態(tài)有關(guān),與輸入無關(guān)。米納型(Mealy):輸出不僅和現(xiàn)態(tài)有關(guān),還和輸入有關(guān)。Z組合電路觸發(fā)器CPXYQZ組合電路觸發(fā)器CPYQVHDL7577.2.1 時鐘信號與復(fù)位信號時鐘信號:時序電路都以時鐘信號為驅(qū)動信號,時序電路只是在時鐘信號的邊沿到來時,其狀態(tài)才發(fā)生改變,因此時序電路通常以時

15、鐘進(jìn)程形式來描述時序電路的執(zhí)行條件。VHDL7587.2.1 時鐘信號與復(fù)位信號時鐘邊沿的描述信號:上升沿if clk =1 and clklast_value =0 and clkevent then下降沿if clk =0 and clklast_value =1 and clkevent thenVHDL7597.2.1 時鐘信號與復(fù)位信號觸發(fā)器的同步與非同步復(fù)位:同步復(fù)位:當(dāng)復(fù)位信號有效且給定的時鐘邊沿到來時,觸發(fā)器才被復(fù)位。非同步復(fù)位:一旦復(fù)位信號有效,觸發(fā)器就被復(fù)位。VHDL7607.2.1 時鐘信號與復(fù)位信號VHDL761觸發(fā)器的同步復(fù)位同步復(fù)位:首先在進(jìn)程的敏感信號中只有時鐘信

16、號且用if語句描述必要的復(fù)位條件。見例726 ,727 P153VHDL762觸發(fā)器的同步復(fù)位VHDL763觸發(fā)器的同步復(fù)位VHDL764觸發(fā)器的非同步復(fù)位非同步復(fù)位又稱異步復(fù)位:首先在進(jìn)程的敏感信號中除時鐘信號以外,還應(yīng)加上復(fù)位信號;其次是用IF語句描述復(fù)位條件;最后在ELSIf段描述時鐘信號邊沿的條件,并加上EVENT屬性。其描述方式如例7-28所示。VHDL765觸發(fā)器的非同步復(fù)位VHDL7667.2.2 觸發(fā)器包括: 鎖存器(D鎖存器和非同步復(fù)位D鎖存器) JK觸發(fā)器VHDL7677.2.2 觸發(fā)器鎖存器包括:D鎖存器非同步復(fù)位D鎖存器非同步復(fù)位/置位D鎖存器同步復(fù)位D鎖存器VHDL7

17、687.2.2 觸發(fā)器1、 D鎖存器VHDL7691、 D鎖存器VHDL7707.2.2 觸發(fā)器2、非同步復(fù)位D鎖存器 非同步夏位的D鋇存器和一般的D鎖存器的區(qū)別是多了一個復(fù)位輸入端clr。當(dāng)clr0時,其q端輸出被強(qiáng)迫置為“0”。clr又稱清零輸入端VHDL7712、非同步復(fù)位D鎖存器VHDL7727.2.2 觸發(fā)器3、非同步復(fù)位/置位D鎖存器 非同步復(fù)位/置位D鎖存器的電路符號如圖7-19所示,clr和pset位為復(fù)位、置位端。當(dāng)clr0時復(fù)位,使q0;當(dāng)pset0時置位,使q1。VHDL7733、非同步復(fù)位/置位D鎖存器VHDL7747.2.2 觸發(fā)器4、同步復(fù)位D鎖存器VHDL7754

18、、同步復(fù)位D鎖存器VHDL7767.2.2 觸發(fā)器JK觸發(fā)器VHDL777JK觸發(fā)器VHDL778JK觸發(fā)器VHDL779JK觸發(fā)器VHDL7807.2.3 寄存器1、串行輸入、串行輸出移位寄存器VHDL7811、串行輸入、串行輸出移位寄存器VHDL7821、串行輸入、串行輸出移位寄存器VHDL783 dfo_2=dfo_1; dfo_3=dfo_2; dfo_4=dfo_3; dfo_5=dfo_4; dfo_6=dfo_5; dfo_7=dfo_6; dfo_8=dfo_7; end if; b=dfo_8; end process;end rtl 注意變量賦值與信號代入的區(qū)別。信號代入語

19、句即使執(zhí)行了,其值在當(dāng)時也沒被代入,直到進(jìn)程結(jié)束,代入過程才發(fā)生。所以這樣描述是正確的。如改為變量賦值,則不能實(shí)現(xiàn)移位寄存器功能VHDL7841、循環(huán)移位寄存器 8個數(shù)據(jù)輸入端din(0)din(7);8位數(shù)據(jù)輸出端dout(0)dout(7);移位和數(shù)據(jù)輸出控制端enb;時鐘信號輸入端clk;移位位數(shù)控制端s(0)s(2)。當(dāng)enb=1時,根據(jù)s(0)s(2)確定左移位數(shù);當(dāng)enb=0時,din直接輸出到dout端。VHDL785例7-38library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;package cpac is procedure shift( din,s:in std_logic_vector; signal dout:out std_logic_vector);end cpac;package body cpac is p

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論