版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第七章
基本邏輯電路設計
第七章基本邏輯電路設計主要內(nèi)容組合邏輯電路和時序邏輯的概念;組合邏輯電路設計實例;時序邏輯電路設計實例。主要內(nèi)容組合邏輯電路和時序邏輯的概念;基本概念數(shù)字邏輯電路主要分為組合邏輯電路與時序邏輯電路兩類;兩者都擁有一個或者多個輸入信號和輸出信號,但是組合邏輯電路的輸出只與當前的輸入相關,而時序邏輯電路的輸出不僅與現(xiàn)在的輸入信號相關,而且與過去的輸入信號相關;兩種邏輯電路都是數(shù)字電路系統(tǒng)的重要基本組成部分,是數(shù)字系統(tǒng)電路的基本元素?;靖拍顢?shù)字邏輯電路主要分為組合邏輯電路與時序邏輯電路兩類7.1組合邏輯電路設計7.7.1、譯碼器
譯碼器通常用來產(chǎn)生存儲器或者外設的片選信號,也就是說將二進制地址碼作為輸入,并產(chǎn)生多個選擇信號輸出。典型的譯碼器有3-8譯碼器和4-16譯碼器。
3-8譯碼器的核心代碼如下:
ENTITYdecoderIS
PORT(A,B,C,Enable:IN
STD_LOGIC;Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdecoder;ARCHITECTUREfunOFdecoderIS
SIGNALinput:STD_LOGIC_VECTOR(2DOWNTO0);BEGIN input<=C&B&A;
PROCESS(input,Enable)
BEGIN
IF(Enable='1')THEN--使能輸入高電平有效
7.1組合邏輯電路設計7.7.1、譯碼器7.7.1譯碼器(續(xù)1)3-8譯碼器的核心代碼:CASEinputIS
WHEN"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"; WHEN"111"=>Y<="01111111";
WHENOTHERS=>NULL;
ENDCASE; ELSE y<="11111111";
ENDIF;
ENDPROCESS;ENDfun;7.7.1譯碼器(續(xù)1)3-8譯碼器的核心代碼:7.7.1譯碼器(續(xù)2)3-8譯碼器的時序仿真波形如下:7.7.1譯碼器(續(xù)2)3-8譯碼器的時序仿真波形如下:7.1.2編碼器編碼器的邏輯功能是將輸入信號的高、低電平信號編成一個對應的二進制碼。在目前經(jīng)常使用的編碼器有普通編碼器和優(yōu)先編碼器兩種。在普通編碼器中,任何時候只允許一個編碼信號出現(xiàn),否則將出現(xiàn)混亂。但在優(yōu)先編碼器中,允許同時輸入兩個以上編碼信號。在設計優(yōu)先編碼器電路時,需要先將所有的輸入信號按優(yōu)先順序排好對,當幾個輸入信號同時出現(xiàn)時,只對優(yōu)先權最高的一個信號進行編碼。7.1.2編碼器編碼器的邏輯功能是將輸入信號的高、低電平7.1.2編碼器(續(xù)1)8-3線優(yōu)先編碼器的核心代碼如下:ENTITYencoderIS
PORT(I:INSTD_LOGIC_VECTOR(7DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(2DOWNTO0);Enable:INSTD_LOGIC);ENDencoder;ARCHITECTUREfunOFencoderISBEGIN
PROCESS(I,Enable)
BEGINIFEnable='1'THEN
IFI(7)='1'THENY<="111";
ELSIFI(6)='1'THENY<="110";ELSIFI(5)='1'THENY<="101";ELSIFI(4)='1'THENY<="100";
ELSIFI(3)='1'THENY<="011";
ELSIFI(2)='1'THENY<="010";
ELSIFI(1)='1'THENY<="001";
ELSIFI(0)='1'THENY<="000";
ELSEY<="111";
ENDIF;
ELSEY<="111";
ENDIF;
ENDPROCESS;ENDfun;7.1.2編碼器(續(xù)1)8-3線優(yōu)先編碼器的核心代碼如下7.1.2編碼器(續(xù)2)8-3線優(yōu)先編碼器時序仿真波形圖如下:7.1.2編碼器(續(xù)2)8-3線優(yōu)先編碼器時序仿真波形圖7.1.3數(shù)據(jù)選擇器
在數(shù)字信號的傳輸中,有時候需要從一組數(shù)據(jù)中選出某一個數(shù)據(jù)來,這就需要用數(shù)據(jù)選擇器。常用的數(shù)據(jù)選擇器有4選1、8選1、16選1等類型。
8選1數(shù)據(jù)選擇器的核心代碼如下:
ENTITYmux4_1IS
PORT(A,B,C,D,E,F,G,H:INSTD_LOGIC_VECTOR(3DOWNTO0);s:INSTD_LOGIC_VECTOR(2DOWNTO0);Y:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDmux8_1;ARCHITECTUREfunOFmux8_1ISBEGINY<=AWHENs="000"ELSEBWHENs="001"ELSECWHENs="010"ELSE
DWHENs="011"ELSEEWHENs="100"ELSEFWHENs="101"ELSEGWHENs="110"ELSEH;ENDfun;7.1.3數(shù)據(jù)選擇器在數(shù)字信號的傳輸中,有時7.1.3數(shù)據(jù)選擇器(續(xù))8選1數(shù)據(jù)選擇器的時序仿真波形圖如下:7.1.3數(shù)據(jù)選擇器(續(xù))8選1數(shù)據(jù)選擇器的時序仿真波形7.1.4數(shù)值比較器
在一些數(shù)字系統(tǒng)中,經(jīng)常需要比較兩個數(shù)字的大小,為完成這一功能所設計的各種邏輯電路統(tǒng)稱為數(shù)值比較器。數(shù)值比較器根據(jù)比較數(shù)據(jù)的位數(shù)不同,可以分為一位數(shù)值比較器和多位數(shù)值比較器。通用多位數(shù)值比較器的核心代碼如下:ENTITYcompIS
GENERIC(X:INTEGER:=4);
PORT(A,B:INSTD_LOGIC_VECTOR(X-1DOWNTO0);Y1,Y2,Y3:OUTSTD_LOGIC);ENDcomp;ARCHITECTUREfunOFcompISBEGINPROCESS(A,B)
BEGIN
IFA>BTHENY1<='1';
ELSEY1<='0';
ENDIF;IFA<BTHENY2<='1';
ELSEY2<='0';
ENDIF;
IFA=BTHEN
Y3<='1';
ELSEY3<='0';
ENDIF;
ENDPROCESS;ENDfun;7.1.4數(shù)值比較器在一些數(shù)字系統(tǒng)中,經(jīng)常需要比7.1.4數(shù)值比較器(續(xù))4位數(shù)值比較器的時序仿真波形圖
7.1.4數(shù)值比較器(續(xù))4位數(shù)值比較器的時序仿真波形圖7.1.5奇偶校驗器
奇偶校驗器經(jīng)常用在數(shù)字電路的檢測中,用來檢測一個二進制數(shù)據(jù)中的0或1的個數(shù)為奇數(shù)還是偶數(shù),然后輸出檢測結果。8位奇偶校驗器的核心代碼如下:ENTITYcheck_NISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);Y:OUTSTD_LOGIC);ENDcheck_N;ARCHITECTUREfunOFcheck_NISBEGINPROCESS(A)
VARIABLEtemp:STD_LOGIC;BEGINtemp:='1';
FORnIN0TO7LOOP
temp:=tempxorA(n);
ENDLOOP;Y<=temp;
ENDPROCESS;ENDfun;
8位奇偶校驗器的時序仿真波形圖如下:7.1.5奇偶校驗器奇偶校驗器經(jīng)常用在數(shù)字7.2時序邏輯電路設計7.2.1觸發(fā)器觸發(fā)器是能夠存儲二值信號的基本單元電路。觸發(fā)器的種類有很多,根據(jù)不同的功能可以分為D觸發(fā)器、T觸發(fā)器、JK觸發(fā)器已經(jīng)RS觸發(fā)器等。JK觸發(fā)器的核心代碼如下ENTITYjk_triggerIS
PORT(J,K,CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDjk_trigger;ARCHITECTUREfunOFjk_triggerISSIGNALtemp:STD_LOGIC;BEGINPROCESS(J,K,CLK)
BEGINIF(CLK'EVENTANDCLK='1')THENtemp<=(JANDNOT(temp))OR((NOTK)ANDtemp);
ENDIF;ENDPROCESS;Q<=temp;ENDfun;7.2時序邏輯電路設計7.2.1觸發(fā)器ENTITY7.2.1觸發(fā)器(續(xù))同步JK觸發(fā)器的時序仿真波形圖如下:
7.2.1觸發(fā)器(續(xù))同步JK觸發(fā)器的時序仿真波形圖如下7.2.2寄存器寄存器用來存儲二進制數(shù)值,其種類有很多中,常用的鎖存器和移位寄存器等。本文中以一個通用寄存器來介紹寄存器的設計,包括清零、所存、左移和右移功能。通用寄存器的核心代碼如下:ENTITYregIS
GENERIC(n:Positive:=8);--寄存器寬度
PORT(CLK,shift_l,shift_r:INSTD_LOGIC;--時鐘信號和左移、右移輸入數(shù)值
mode:INSTD_LOGIC_VECTOR(1DOWNT0);--寄存器模式
datain:INSTD_LOGIC_VECTOR((n-1)DOWNTO0);--并行輸入
dataout:OUT
STD_LOGIC_VECTOR((n-1)DOWNTO0));--并行輸出ENDreg;ARCHITECTUREfunOFregISSIGNALtemp_reg:STD_LOGIC_VECTOR((n-1)DOWNTO0);--定義臨時變量BEGIN7.2.2寄存器寄存器用來存儲二進制數(shù)值,7.2.2寄存器(續(xù))PROCESSBEGIN
IF(CLK'EVENTANDCLK='1')THEN
CASEmodeIS
WHEN"00"=>int_reg<=(OTHERS=>'0');--寄存器清零
WHEN"01"=>int_reg<=datain;--鎖存器
WHEN"10"=>int_reg<=int_reg((n-2)DOWNTO0)&shift_l;--左移
WHEN"11"=>int_reg<=shift_r&int_reg((n-1)DOWNTO1);--右移
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;dataout<=int_reg;ENDfun;通用寄存器的時序仿真波形圖如下:7.2.2寄存器(續(xù))PROCESS7.2.3分頻器分頻電路是非常有用的一種電路,在具體的電路設計中可能需要不同的時鐘頻率,但在實際的電路中往往只有一種單一的外部時鐘輸入,這是可以采用分頻器對時鐘脈沖進行分頻。1、二分頻電路核心代碼如下:ENTITYfenp_2IS
PORT(CLK_IN:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDfenp_2;ARCHITECTUREfunOFfenp_2IS
SIGNALtemp:STD_LOGIC:='0';
BEGIN
PROCESS(CLK_IN,temp)
BEGIN
IF(CLK_IN'EVENTANDCLK_IN='1')THENtemp<=nottemp;
ENDIF;CLK_OUT<=temp;ENDPROCESS;ENDfun;7.2.3分頻器分頻電路是非常有用的一種電7.2.3分頻器(續(xù)1)2、五分頻電路的核心代碼如下:ENTITYfenp_5IS
PORT(CLK_IN:INSTD_LOGIC;CLK_OUT:OUTSTD_LOGIC);ENDfenp_5;ARCHITECTUREfunOFfenp_5IS
SIGNALtemp_A,temp_B:INTEGERRANGE0TO7;BEGIN
PROCESS(CLK_IN,temp_A,temp_B)
BEGIN
IF(CLK_IN'EVENTANDCLK_IN='1')THEN
IFtemp_A=4THENtemp_A<=0;
ELSEtemp_A<=temp_A+1;--對上升沿計數(shù)
ENDIF;
ENDIF;7.2.3分頻器(續(xù)1)2、五分頻電路的核心代碼如下:E7.2.3分頻器(續(xù)2)二分頻電路的時序仿真波形圖如下五分頻電路的時序仿真波形圖如下:7.2.3分頻器(續(xù)2)7.2.4計數(shù)器計數(shù)器是數(shù)字電路中使用的最多的時序電路,它不僅能用于對時鐘脈沖的計數(shù),還可以用于分頻、定時、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進行數(shù)字運算等。BCD碼60進制計數(shù)器的核心代碼如下:ENTITYcounterIS
PORT(CLK,Enable,clr:INSTD_LOGIC;--時鐘信號、計數(shù)使能、清零信號
Cout:OUTSTD_LOGIC;--進位信號
q0,q1:BUFFER
STD_LOGIC_VECTOR(3DOWNTO0));--計數(shù)輸出ENDcounter;7.2.4計數(shù)器計數(shù)器是數(shù)字電路中使用的最7.2.4計數(shù)器(續(xù)1)
BCD碼60進制計數(shù)器的核心代碼:ARCHITECTUREfunOFCOUNTERISSIGNALtemp:STD_LOGIC;--臨時變量,表示個位數(shù)p0的進位
BEGIN
PROCESS(CLK,Enable,clr,q0)--此進程描述個位計數(shù)器
BEGIN
IFclr='1'THEN
q0<="0000";--個位清零
ELSE
IF(CLK'EVENTANDCLK='1')THEN--對時鐘脈沖進行計數(shù)
IFEnable='1'THEN--使能信號搞電平有效
IFq0="1001"THENq0<="0000";temp<='1';--計數(shù)到9置0,輸出進位
ELSEq0<=q0+1;temp<='0';
ENDIF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 球囊擴張椎體成形術的操作要點
- 泰康保險法律事務部經(jīng)理面試題及答案解析
- 深度解析(2026)《GBT 19324-2003涂附磨具 帶除塵孔砂頁》
- OLED液晶顯示模塊項目可行性分析報告范文
- 酒店業(yè)面試技巧及常見問題解析
- 能源企業(yè)福利政策制定面試要點及答案
- 交通運輸行業(yè)安全管理專員的專業(yè)面試題
- 現(xiàn)場改善與問題解決能力提升
- 湖南省懷化市通道縣2025-2026學年七年級上學期期中考試歷史試題解析版
- 行政助理面試全攻略與參考答案
- 國際稅收智慧樹知到期末考試答案章節(jié)答案2024年中央財經(jīng)大學
- 2024工程停工補償協(xié)議
- JB-T 8532-2023 脈沖噴吹類袋式除塵器
- AQ2059-2016 磷石膏庫安全技術規(guī)程
- (正式版)SHT 3045-2024 石油化工管式爐熱效率設計計算方法
- 《婦病行》教師教學
- 《養(yǎng)老護理員》-課件:協(xié)助臥床老年人使用便器排便
- 初三勵志、拼搏主題班會課件
- Cuk斬波完整版本
- GB/T 3521-2023石墨化學分析方法
- 三維動畫及特效制作智慧樹知到課后章節(jié)答案2023年下吉林電子信息職業(yè)技術學院
評論
0/150
提交評論