版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第七章
組合邏輯電路設(shè)計定義:任一時刻的輸出僅僅取決于當(dāng)時的輸入,與電路原來的狀態(tài)無關(guān),這樣的數(shù)字電路叫做組合邏輯電路。常用組合邏輯電路有以下幾種:
概述1、各種基本門電路(與門、或門、非門、異或門…)2、多選器(二選一、四選一、八選一、…)3、編碼器4、譯碼器5、奇偶校驗器6、三態(tài)門7、緩沖器
基本的門電路包括有“與”門、“或”門、“非”門、“與非”門、“或非”門、“異或”門等等,它門是構(gòu)成邏輯電路的基礎(chǔ)。7.1簡單門電路設(shè)計實例1:2輸入“與非”門電路設(shè)計aby
輸入輸出aby001011101110&設(shè)計方案1:LIBRARYieee;USEieee.std_logic_1164.all;ENTITYnand2_1IS PORT(a,b:INSTD_LOGIC; y:OUTSTD_LOGIC);ENDnand2_1;ARCHITECTUREnandOFnand2_1ISBEGINy<=aNANDb;ENDnand;此設(shè)計方案,描述很簡潔,接近于2輸入與非門的行為描述,易于閱讀。NAND是邏輯運算符“與非”。LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;ENTITYnand2_2ISPORT(a,b :INSTD_LOGIC; y :OUTSTD_LOGIC);ENDnand2_2;ARCHITECTUREnandOFnand2_2ISBEGINPROCESS(a,b)VARIABLEcomb:STD_LOGIC_VECTOR(1DOWNTO0);BEGINcomb:=a&b;CASEcombISWHEN"00"=>y<='1';WHEN"01"=>y<='1';WHEN"10"=>y<='1';WHEN"11"=>y<=‘0';WHENOTHER=>y<=‘X';ENDCASE;ENDPROCESS;ENDnand;
設(shè)計方案2:此設(shè)計方案,以2輸入與非門的真值表為依據(jù)來編寫的,羅列了2輸入與非門的每種輸入狀態(tài)及其對應(yīng)的輸出結(jié)果。CASE語句從許多不同的語句的序列中選擇其中之一執(zhí)行。case表達(dá)式iswhen分支條件=>順序處理語句;
when分支條件=>順序處理語句;
when分支條件=>順序處理語句;
endcase;┇并置運算符“&”用于位的連接,構(gòu)成了兩位長度位矢量設(shè)計實例2:基本門電路此設(shè)計中采用邏輯運算符簡便地描述了各門電路的行為。
在數(shù)字系統(tǒng)中,譯碼器的功能是將一種數(shù)碼變換成另一種數(shù)碼。譯碼器的輸出狀態(tài)是其輸入變量各種組合的結(jié)果。譯碼器的輸出既可以用于驅(qū)動或控制系統(tǒng)其他部分,也可驅(qū)動顯示器,實現(xiàn)數(shù)字、符號的顯示。碼器是一種組合電路,工作狀態(tài)的改變無需依賴時序脈沖。譯碼器可分為數(shù)碼譯碼和顯示譯碼兩大類。7.2譯碼器3-8譯碼器設(shè)計3個二進制輸入端A0、A1、A2,8個譯碼輸出端Y0-Y7。對輸入值進行譯碼,就可以確定哪個輸出端為有效電平,從而達(dá)到譯碼目的。G1、G2A、G2B是3個選通輸入端,只有在G1=1,G2A=0,G2B=0時,譯碼器正常譯碼,否則Y0-Y7均為高電平。
輸入輸出G1
G2A
G2B
A2
A1
A0
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
×1××××11111111××1×××111111110×××××1111111110000001111111100001101111111000101101111110001111101111100100111101111001011111101110011011111101100111111111103線—8線譯碼器74138真值表
按數(shù)據(jù)流描述方式編寫的3線—8線譯碼器74138LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdecoder138ISPORT(G1,G2A,G2B:INSTD_LOGIC;A:INSTD_LOGIC_VECTOR(2DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdecoder138;ARCHITECTUREdataflowOFdecoder138ISBEGINPROCESS(G1,G2A,G2B,A)BEGINIF(G1='1'ANDG2A='0'ANDG2B='0')THEN
CASEAISWHEN"000"=>Y<="11111110";WHEN"001"=>Y<="11111101";WHEN"010"=>Y<="11111011";WHEN"011"=>Y<="11110111";WHEN"100"=>Y<="11101111";WHEN"101"=>Y<="11011111";WHEN"110"=>Y<="10111111";WHENOTHERS=>Y<="01111111";ENDCASE;ELSEY<="11111111";ENDIF;ENDPROCESS;ENDdataflow;case表達(dá)式iswhen分支條件=>順序處理語句;
when分支條件=>順序處理語句;
when分支條件=>順序處理語句;
endcase;┇7.2編碼器
用一組二進制代碼按一定規(guī)則表示給定字母、數(shù)字、符號等信息的方法稱為編碼,能夠?qū)崿F(xiàn)這種編碼功能的邏輯電路稱為編碼器。
輸入輸出I0
I1
I2
I3I4
I5I6I7
A2
A1
A0
10000000000010000000010010000001000010000011000010001000000010010100000010110000000011118線—3線編碼器真值表
A2=I4+I5+I6+I7A1=I2+I3+I6+I7A0=I1+I3+I5+I7
邏輯表達(dá)式:例:采用行為描述方式的8線—3線編碼器VHDL源代碼
(依據(jù)邏輯表達(dá)式)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcoder83_v1ISPORT(I0,I1,I2,I3,I4,I5,I6,I7:INSTD_LOGIC;A0,A1,A2:OUTSTD_LOGIC);ENDcoder83_v1;ARCHITECTUREbehaveOFcoder83_v1ISBEGINA2<=I4ORI5ORI6ORI7;A1<=I2ORI3ORI6ORI7;A0<=I1ORI3ORI5ORI7;ENDbehave;例:采用數(shù)據(jù)流描述方式的8線—3線編碼器VHDL源代碼(依據(jù)真值表)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcoder83_v2ISPORT(I:INSTD_LOGIC_VECTOR(7DOWNTO0);A:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDcoder83_v2;ARCHITECTUREdataflowOFcoder83_v2ISBEGINPROCESS(I)BEGINCASEIISWHEN"10000000"=>A<="111";WHEN"01000000"=>A<="110";WHEN"00100000"=>A<="101";WHEN"00010000"=>A<="100";WHEN"00001000"=>A<="011";WHEN"00000100"=>A<="010";WHEN"00000010"=>A<="001";WHENOTHERS=>A<="000";ENDCASE;ENDPROCESS;ENDdataflow;優(yōu)先編碼器優(yōu)先編碼器常用于中斷的優(yōu)先控制。當(dāng)其某一個輸入有效時,就可以輸出一個對應(yīng)的3位二進制碼。另外,當(dāng)同時有幾個輸入有效時,將輸出優(yōu)先級最高的那個輸入所對應(yīng)的二進制碼。低電平有效input(0)優(yōu)先級最高,input(1)優(yōu)先級次之,如此類推,input(7)優(yōu)先級最低LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYpriorityencoderISPORT(input:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDpriorityencoder;ARCHITECTURErtlOFpriorityencoderIS
BEGINPROCESS(input)BEGINIF(input(0)=‘0’)THENy<=“111”;ELSIF(input(1)=‘0’)THEN
y<=“110”;按行為數(shù)據(jù)流方式編寫優(yōu)先編碼器的VHDL源代碼如下:方法1:利用if多選擇語句自頂向下的優(yōu)先特性input(0)優(yōu)先級最高,input(1)優(yōu)先級次之,如此類推,input(7)優(yōu)先級最低
ELSIF(input(2)=‘0’)THEN
y<=“101”;
ELSIF(input(3)=‘0’)THEN
y<=“100”;
ELSIF(input(4)=‘0’)THEN
y<=“011”;
ELSIF(input(5)=‘0’)THEN
y<=“010”;
ELSIF(input(6)=‘0’)THEN
y<=“001”;ELSE
y<=“000”;ENDIF;ENDPROCESS;ENDrtl;利用IF多選擇語句,自頂向下的優(yōu)先特性。注意:采用數(shù)據(jù)流編寫優(yōu)先編碼器時,因為VHDL語言目前還不能描述任意項,即下面的語句形式是非法的:WHEN“0XXXXXXX”=>A<=“000”;
因此不能用CASE語句來描述74148,而采用IF語句對74148進行了邏輯描述。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYpriorityencoderISPORT(input:INSTD_LOGIC_VECTOR(7DOWNTO0);y:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDpriorityencoder;ARCHITECTURErtlOFpriorityencoderIS
BEGINPROCESS(input)BEGINIF(input(7)=‘0’)THENy<=“000”;ENDIF;IF(input(6)=‘0’)THENy<=“001”;ENDIF;
IF(input(5)=‘0’)THENy<=“010”;ENDIF;方法2:進程內(nèi)為順序語句,最先描述優(yōu)先級最低,最后描述優(yōu)先級最高,可實現(xiàn)優(yōu)先級編碼。input(0)優(yōu)先級最高,input(1)優(yōu)先級次之,如此類推,input(7)優(yōu)先級最低
IF(input(4)=‘0’)THENy<=“011”;ENDIF;IF(input(3)=‘0’)THENy<=“100”;ENDIF;
IF(input(2)=‘0’)THENy<=“101”;ENDIF;IF(input(1)=‘0’)THENy<=“110”;ENDIF;IF(input(0)=‘0’)THENy<=“111”;ENDIF;ENDPROCESS;ENDrtl;7.3選擇器在多路數(shù)據(jù)傳送過程中,能夠根據(jù)需要將其中任意一路選出來的電路,叫做數(shù)據(jù)選擇器,也稱多路選擇器或多路開關(guān)。
8選1數(shù)據(jù)選擇器設(shè)計YbD7D71110D6D60110D5D51010D4D40010D3D31100D2D20100D1D11000D0D0000010XXX1A0A1A2GY地址選擇使能輸出輸入741518選1數(shù)據(jù)選擇器真值表
參考74151的真值表,采用IF語句結(jié)構(gòu)編寫的VHDL源代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux8ISPORT(A:INSTD_LOGIC_VECTOR(2DOWNTO0);D0,D1,D2,D3,D4,D5,D6,D7:INSTD_LOGIC;G:INSTD_LOGIC;Y:OUTSTD_LOGIC;YB:OUTSTD_LOGIC);ENDmux8;ARCHITECTUREdataflowOFmux8ISBEGINPROCESS(A,D0,D1,D2,D3,D4,D5,D6,D7,G)用IF語句設(shè)計8選1選擇器BEGINIF(G='1')THENY<='0';YB<='1';ELSIF(G='0'ANDA="000")THENY<=D0;YB<=NOTD0;
ELSIF(G='0'ANDA="001")THENY<=D1;YB<=NOTD1; ELSIF(G='0'ANDA="010")THENY<=D2;YB<=NOTD2;
ELSIF(G='0'ANDA="011")THENY<=D3;YB<=NOTD3;用IF語句設(shè)計8選1選擇器(續(xù))多選擇控制的IF語句格式:
IF
條件
THEN
順序處理語句;
ELSIF
條件
THEN
順序處理語句;
┄
ELSIF
條件
THEN
順序處理語句;
ELSE
順序處理語句;
END
IF;
ELSIF(G='0'ANDA="100")THENY<=D4;YB<=NOTD4;
ELSIF(G='0'ANDA="101")THENY<=D5;YB<=NOTD5;ELSIF(G='0'ANDA="110")THENY<=D6;YB<=NOTD6;ELSEY<=D7;YB<=NOTD7;ENDIF;ENDPROCESS;ENDdataflow;用IF語句設(shè)計8選1選擇器(續(xù))
參考74151的真值表,采用CASE語句結(jié)構(gòu)編寫的VHDL源代碼如下LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux8ISPORT(A2,A1,A0:INSTD_LOGIC;D0,D1,D2,D3,D4,D5,D6,D7:INSTD_LOGIC;G:INSTD_LOGIC;Y:OUTSTD_LOGIC;YB:OUTSTD_LOGIC);ENDmux8;ARCHITECTUREdataflowOFmux8ISSIGNALcomb:STD_LOGIC_VECTOR(3DOWNTO0);BEGINcomb<=G&A2&A1&A0;用CASE語句設(shè)計8選1選擇器并置運算符“&”用于位的連接,構(gòu)成了四位長度位矢量PROCESS(comb,D0,D1,D2,D3,D4,D5,D6,D7,G)BEGINCASEcombISWHEN"0000"=>Y<=D0;YB<=NOTD0;WHEN"0001"=>Y<=D1;YB<=NOTD1;
WHEN"0010"=>Y<=D2; YB<=NOTD2;WHEN"0011"=>Y<=D3; YB<=NOTD3; WHEN"0100"=>Y<=D4; YB<=NOTD4;WHEN"0101"=>Y<=D5; YB<=NOTD5;用CASE語句設(shè)計8選1選擇器(續(xù))Case語句使用注意:
1)分支條件的值必須在表達(dá)式的取值范圍內(nèi)。
2)兩個分支條件不能重疊。
3)CASE語句執(zhí)行時必須選中,且只能選中一個分支條件。
4)如果沒有others分支條件存在,則分支條件必須覆蓋表達(dá)式所有可能的值。
std_logc,std_logic_vector數(shù)據(jù)類型要特別注意使用others分支條件。WHEN"0110"=>Y<=D6; YB<=NOTD6;WHEN"0111"=>Y<=D7; YB<=NOTD7;WHENOTHERS=>Y<='0'; YB<='1';ENDCASE;ENDPROCESS;ENDdataflow;用CASE語句設(shè)計8選1選擇器(續(xù))
其中:A和B是兩個相加的8位二進制數(shù);Cin是低位進位位;S是A、B相加之和;Co是A、B相加之后的進位位。7.4
加法器
加法器是數(shù)字電路中的基本運算單元,下例是直接利用VHDL運算符“+”實現(xiàn)加法運算的8位加法器源代碼。
輸入
輸出CIABSCO0000000110010100110110010101011100111111全加器真值表LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYadder8ISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);B:INSTD_LOGIC_VECTOR(7DOWNTO0);Cin:INSTD_LOGIC;Co:OUTSTD_LOGIC;S:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDadder8;聲明了IEEE庫中的包集合STD_LOGIC_UNSIGNED,才能對STD_LOGIC_VECTOR類型數(shù)據(jù)進行加減運算把兩位輸入A,B分別定義成8位二進制數(shù),輸出S也定義成8位二進制數(shù),低位進位和高位進位定義為1位邏輯位
ARCHITECTUREbehaveOFadder8ISSIGNALSint:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALAA,BB:STD_LOGIC_VECTOR(8DOWNTO0);BEG
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度技術(shù)開發(fā)合作合同標(biāo)的詳細(xì)規(guī)定3篇
- 二零二五年度智能交通系統(tǒng)建設(shè)合同條款與交通管理規(guī)范3篇
- 二零二五年度新能源發(fā)電項目特許經(jīng)營合同3篇
- 二零二五年度建委出臺的15項建筑工程施工質(zhì)量保證金合同2篇
- 二零二五年度施工安全責(zé)任合同書模板下載大全2篇
- 二零二五年度建材行業(yè)展會策劃與組織合同3篇
- 二零二五年度房產(chǎn)出售附帶物業(yè)管理合同3篇
- 二零二五年度HBDSCZ項目合作協(xié)議書3篇
- 二零二五年度文化娛樂產(chǎn)業(yè)項目標(biāo)準(zhǔn)保證擔(dān)保合同2篇
- 2025年度城市安全規(guī)劃與評價合同2篇
- 建井施工方案
- YMO青少年數(shù)學(xué)思維28屆五年級全國總決賽試卷
- 烘干廠股東合作協(xié)議書
- 個人業(yè)績相關(guān)信息采集表
- 過敏性紫癜課件PPT
- 大學(xué)生暑期社會實踐證明模板(20篇)
- 自來水維修員年度工作總結(jié)
- ASTMB117-2023年鹽霧試驗標(biāo)準(zhǔn)中文
- 國際海上避碰規(guī)則(中英版)課件
- 小學(xué)思政課《愛國主義教育》
- 批量訂購車輛合同范本
評論
0/150
提交評論