第4章 用VHDL程序?qū)崿F(xiàn)常用邏輯電路_第1頁
第4章 用VHDL程序?qū)崿F(xiàn)常用邏輯電路_第2頁
第4章 用VHDL程序?qū)崿F(xiàn)常用邏輯電路_第3頁
第4章 用VHDL程序?qū)崿F(xiàn)常用邏輯電路_第4頁
第4章 用VHDL程序?qū)崿F(xiàn)常用邏輯電路_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四章 用VHDL程序?qū)崿F(xiàn)常用邏輯電路4.1 組合邏輯電路設(shè)計組合邏輯電路設(shè)計1 基本邏輯門基本邏輯門 基本邏輯門電路有與門、或門、非門、與非門、異或門和異或非基本邏輯門電路有與門、或門、非門、與非門、異或門和異或非門等,用門等,用VHDL語言來描述十分方便語言來描述十分方便.其源程序如下:其源程序如下: library ieee; use iee.std_logic_1164.all; entity jbm is port(a,b: in bit; f1,f2,f3,f4,f5,f: out bit); end jbm; architecture a of jbm is begin f1=a

2、 and b; -構(gòu)成與門 f2=a or b; -構(gòu)成或門 f=not a; -構(gòu)成非門 f3=a nand b; -構(gòu)成與非門 f4=a nor b; -構(gòu)成異或門 f5=not(a xor b); -構(gòu)成異或非門即同門 end; 2 三態(tài)門三態(tài)門源程序如下:源程序如下: library ieee; use ieee.std_logic_1164.all; entity tri_s is port(enable: in std_logic; datain: in std_logic_vector(7 downto 0); dataout: out std_logic_vector(7 do

3、wnto0); end tri_s; architecture bhv of tri_s is begin process(enable,datain) begin if enable=1 then dataout=datain; else dataout=ZZZZZZZZ; end if; end process; end bhv;8位三態(tài)控制門電路位三態(tài)控制門電路 dataout7.0comb7.0datain7.0enableIO_BUF(TRI)3. 三線八線譯碼器三線八線譯碼器 三線八線譯碼器的輸出有效電平為低電平,譯碼器的使能控制三線八線譯碼器的輸出有效電平為低電平,譯碼器的使能控

4、制輸入端輸入端g1、g2a、g2b有效時,當(dāng)有效時,當(dāng)3線數(shù)據(jù)輸入端線數(shù)據(jù)輸入端: cba=000時,時,y70=11111110(即(即y0= 0);); cba=001時,時,y70=11111101(即(即y1= 0); cba=111時,時,y70=01111111(即(即y7= 0); 三八譯碼器端口圖三八譯碼器端口圖: 源程序如下:源程序如下:-實(shí)體實(shí)體library ieee;use ieee.std_logic_1164.all;entity decoder3_8 is port(a,b,c,g1,g2a,g2b: in std_logic; y: out std_logic_

5、vector(7 downto 0);end decoder3_8; 結(jié)構(gòu)體描述(下頁)結(jié)構(gòu)體描述(下頁)architecture a of decoder3_8 is signal dz:std_logic_vector(2 downto 0);begin dz y y y y y y y yy=XXXXXXXX; end case; else y led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s null; end case; end process

6、; end behave;5.多位加(減)法器多位加(減)法器 以以4位全減器為例來說明。位全減器為例來說明。 程序說明:該例利用行為描述模式描述全減器。兩個數(shù)夠減,高程序說明:該例利用行為描述模式描述全減器。兩個數(shù)夠減,高借位值為借位值為0;兩個數(shù)不夠減,需要向高位借;兩個數(shù)不夠減,需要向高位借1位,這時高借位值為位,這時高借位值為1,由于有借位,所以差值是大于或等于由于有借位,所以差值是大于或等于0的數(shù)的數(shù)。 -實(shí)體描述實(shí)體描述 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity

7、jianfaqi is port(a,b : in std_logic_vector(0 to 3); c0: in std_logic; c1: out std_logic; d : out std_logic_vector(0 to 3); end; -結(jié)構(gòu)體描述:結(jié)構(gòu)體描述:architecture a of jianfaqi is begin process begin if ab+c0 then d=a-(b+c0); c1=0; else c1=1; d=(10000)-(b+c0-a); end if; end process ; end ; 4.2 時序邏輯電路設(shè)計1 觸發(fā)器觸

8、發(fā)器 觸發(fā)器是構(gòu)成時序邏輯電路的基本元件,常用的觸發(fā)器包括觸發(fā)器是構(gòu)成時序邏輯電路的基本元件,常用的觸發(fā)器包括RS觸觸發(fā)器、發(fā)器、D觸發(fā)器、觸發(fā)器、JK觸發(fā)器、觸發(fā)器、T觸發(fā)器等類型。下面僅介紹同步復(fù)位觸發(fā)器等類型。下面僅介紹同步復(fù)位D觸發(fā)器。觸發(fā)器。 源程序如下:源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity syndff is port(d,clk,reset:in std_logic; q,qb:out std_logic); end syndff;-結(jié)構(gòu)體描述

9、:結(jié)構(gòu)體描述:architecture dff_art of syndff is begin process(clk) begin if (clkevent and clk=1) then if (reset=0) then q=0; qb=1; else q=d; qb=not q; end if; end if; end process; end dff_art; 2 計數(shù)器計數(shù)器以以n位二進(jìn)制計數(shù)器設(shè)計為例。位二進(jìn)制計數(shù)器設(shè)計為例。源程序如下:源程序如下:-實(shí)體描述實(shí)體描述 library ieee; use ieee.std_logic_1164.all; use ieee.std_l

10、ogic_unsigned.all; entity cnt4 IS port( clk: in std_logic; q: out std_logic_vector(3 downto 0); end cnt4;改變改變std_logic_vector矢量的位寬,可以很方便地改變二矢量的位寬,可以很方便地改變二進(jìn)制計數(shù)器的模。進(jìn)制計數(shù)器的模。-結(jié)構(gòu)體描述:結(jié)構(gòu)體描述:architecture behave of cnt4 issignal q1: std_logic_vector(3 downto 0);begin process(clk) begin if (clkevent and clk

11、= 1) then q1=q1+1; end if;end process; q=q1;end behave;3 移位寄存器移位寄存器 設(shè)計一個帶有并行預(yù)置功能的設(shè)計一個帶有并行預(yù)置功能的8位右移移位寄存器。位右移移位寄存器。 端口:端口: clk是移位時鐘信號;是移位時鐘信號; din是是8位并行預(yù)置數(shù)據(jù)端口;位并行預(yù)置數(shù)據(jù)端口; load是并行數(shù)據(jù)預(yù)置使能信號;是并行數(shù)據(jù)預(yù)置使能信號; qb是串行輸出端口。是串行輸出端口。 當(dāng)當(dāng)clk的上升沿到來時進(jìn)程被啟動,若的上升沿到來時進(jìn)程被啟動,若load為高電平則將為高電平則將輸入端的輸入端的8位二進(jìn)制數(shù)并行置入移位寄存器中,作為串行右位二進(jìn)制數(shù)

12、并行置入移位寄存器中,作為串行右移輸出的初始值;若移輸出的初始值;若load為低電平,則執(zhí)行為低電平,則執(zhí)行reg8(6 downto 0):=reg8(7 downto 1)。8個脈沖后完成了并個脈沖后完成了并-串轉(zhuǎn)化的功能,并將最低位首先輸出。串轉(zhuǎn)化的功能,并將最低位首先輸出。源程序如下:源程序如下:library ieee;use std_logic_1164.all;entity shfrt is - 8位右移寄存器 port( clk,load: in std_logic; din: in std_logic_vector(7 downto 0); qb: out std_logic

13、);end;architecture one of shfrt isbeginprocess(clk,load) variable reg8: std_logic_vector(7 downto 0); begin if clkevent and clk=1then -檢測時鐘上升沿 if load=1then reg8:=din; -由(load=1)裝載新數(shù)據(jù) else reg8(6 downto 0):=reg8(7 downto 1); end if; end if; qb=reg8(0); -輸出最低位end process;end one;4.3 狀態(tài)機(jī)邏輯電路設(shè)計 狀態(tài)機(jī)設(shè)計是一

14、類重要的時序電路,是許多邏輯電路的核心部件。狀態(tài)機(jī)設(shè)計是一類重要的時序電路,是許多邏輯電路的核心部件。是實(shí)現(xiàn)高效率、高可靠性邏輯控制的重要途徑。是實(shí)現(xiàn)高效率、高可靠性邏輯控制的重要途徑。 一般狀態(tài)機(jī)分類為以下兩種:一般狀態(tài)機(jī)分類為以下兩種: MOORE型狀態(tài)機(jī),它的輸出僅僅取決于現(xiàn)態(tài),與輸入無關(guān)。型狀態(tài)機(jī),它的輸出僅僅取決于現(xiàn)態(tài),與輸入無關(guān)。 MEALY型狀態(tài)機(jī),它的輸出不僅取決于現(xiàn)態(tài),還與輸入有關(guān)。型狀態(tài)機(jī),它的輸出不僅取決于現(xiàn)態(tài),還與輸入有關(guān)。 狀態(tài)機(jī)程序結(jié)構(gòu)主要由四部分組成:狀態(tài)機(jī)程序結(jié)構(gòu)主要由四部分組成: 1)說明部分:定義枚舉型數(shù)據(jù)類型:)說明部分:定義枚舉型數(shù)據(jù)類型:Type st

15、ate is(s1,s2,s3,.);定義現(xiàn)態(tài)和次態(tài)信號:定義現(xiàn)態(tài)和次態(tài)信號:current_state和和next_state。 2)主控時序進(jìn)程:在時鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)換。只是機(jī)械地將代表)主控時序進(jìn)程:在時鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)換。只是機(jī)械地將代表次態(tài)的信號次態(tài)的信號next_state中的內(nèi)容送入現(xiàn)態(tài)的信號中的內(nèi)容送入現(xiàn)態(tài)的信號current_state中。中。 3)主控組合進(jìn)程:根據(jù)外部輸入的控制信號和當(dāng)前狀態(tài)確定下一狀)主控組合進(jìn)程:根據(jù)外部輸入的控制信號和當(dāng)前狀態(tài)確定下一狀態(tài)的取向,以及確定當(dāng)前對外的輸出。態(tài)的取向,以及確定當(dāng)前對外的輸出。 4)輔助進(jìn)程:為了完成某種算法或?yàn)榱溯敵鲈O(shè)

16、置的鎖存器。)輔助進(jìn)程:為了完成某種算法或?yàn)榱溯敵鲈O(shè)置的鎖存器。狀態(tài)機(jī)應(yīng)用舉例:狀態(tài)機(jī)應(yīng)用舉例: 設(shè)計一個循環(huán)彩燈控制器,該控制器控制紅、綠、黃三個發(fā)光管設(shè)計一個循環(huán)彩燈控制器,該控制器控制紅、綠、黃三個發(fā)光管循環(huán)發(fā)亮(紅發(fā)光管亮循環(huán)發(fā)亮(紅發(fā)光管亮2秒,綠發(fā)光管亮秒,綠發(fā)光管亮3秒,黃發(fā)光管亮秒,黃發(fā)光管亮1秒)。秒)。 其源程序如下:其源程序如下: -實(shí)體描述:實(shí)體描述: library ieee; use ieee.std_logic_1164.all; entity asm_led is port(clk,clr : in std_logic; led1,led2,led3:out std_logic); end; 結(jié)構(gòu)體描述見下頁:結(jié)構(gòu)體描述見下頁:architecture a of asm_led is type states is (s0,s1,s2,s3,s4,s5); -對狀態(tài)機(jī)的狀態(tài)聲明對狀態(tài)機(jī)的狀態(tài)聲明 signal q: std_logic_vector( 0 to 2); signal state : states;begin p1: process(clk,clr) -進(jìn)程進(jìn)程1 begin if(clr=0)then state state state state state state state state=s0; end ca

溫馨提示

  • 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

提交評論