




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第7章 CPLDFPGA設計(shj)實踐(1) 7.1 基本組合邏輯建模 7.2 基本時序(sh x)邏輯建模 7.3 常用算法的實現(xiàn)7.4 狀態(tài)機設計共六十頁 常用的組合單元電路主要有譯碼器、 編碼器、 數(shù)據(jù)選擇器、 減法器、 加法器等, 前面我們(w men)已經(jīng)舉過許多例子, 這里再做一些補充和總結。7.1 基本組合(zh)邏輯建模 共六十頁基本(jbn)門電路VHDL描述 基本門電路用VHDL語言來描述(mio sh)十分方便。為方便起見,在下面的兩輸入模塊中,使用VHDL中定義的邏輯運算符,同時實現(xiàn)一個與門、或門、與非門、或非門、異或門及反相器的邏輯。 共六十頁1、模型布爾代數(shù)模型
2、 VHDL描述 b= not a2、程序設計首先確定(qudng)實體(一個輸入信號,一個輸出信號)然后確定結構體由于簡單可直接寫出VHDL文件例7.1 “非”門電路設計共六十頁非門電路建模LIBRARY ieee;use ieee.std_logic_1164.all;entity nota isport(a: in std_logic; b: out std_logic);end;architecture behv of nota is begin b=not a;end;共六十頁3、仿真驗證步驟:綜合編譯源文件波形(b xn)驗證分析功能的正確性 同樣的方法可以(ky)將基本門電路的建模
3、做好與門、與非門、或非門、與或非門、異或門共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GATE ISPORT (A,B : IN STD_LOGIC; YAND,YOR :OUT STD_LOGIC; YNAND,YNOR :OUT STD_LOGIC ; YNOT,YXOR :OUT STD_LOGIC); END ENTITY GATE;【例7.2】基本(jbn)門電路描述共六十頁ARCHITECTURE ART OF GATE IS BEGIN YAND=A AND B; -與門輸出(shch) YOR=A OR B; -或門輸
4、出 YNAND=A NAND B;-與非門輸出 YNOR=A NOR B; -或非門輸出 YNOT=A NOT B; -反相器輸出 YXOR=A XOR B; -異或門輸出 END ARCHITECTURE ART;共六十頁例7.3 半加器的建模1、建模2、程序設計(chn x sh j).So=a xor b;Co=a and b;3、波形仿真共六十頁architecture behv of h_adder is begin so=a xor b; coy,co=x); u2: h_adder port map(cin,y,so=so,co=z); co=x or z;end;LIBRARY
5、 ieee;use ieee.std_logic_1164.all;entity f_adder isport(cin,a,b:in std_logic; so,co:out std_logic);end;共六十頁下面(xi mian)我們分別以四種方法描述一個3-8線譯碼器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DECODER ISPORT(INP:IN STD_LOGIC_VECTOR(2 DOWNTO 0); OUTP:OUT STD_LOGIC_VECTOR (7
6、DOWNTO 0);END ENTITY DECODER;例7.5 3-8線譯碼器共六十頁方法1:使用(shyng)SLL邏輯運算符ARCHITECTURE ART1 OF DECODER IS BEGIN OUTP0); S(CONV_INTEGER(INP):=1; OUTP=S; END PROCESS; END ARCHITECTURE ART2;共六十頁方法3:使用(shyng)WHENELSE語句 ARCHITECTURE ART3 OF DECODER IS BEGIN OUTP(0)=1 WHEN INP=000 ELSE 0; OUTP(1)=1 WHEN INP=001 E
7、LSE 0; OUTP(2)=1 WHEN INP=“010” ELSE “0”; OUTP(3)=1 WHEN INP=011 ELSE 0; OUTP(4)=1 WHEN INP=100 ELSE 0; OUTP(5)=1 WHEN INP=101 ELSE 0; OUTP(6)=1 WHEN INP=110 ELSE 0; OUTP(7)OUTPOUTPOUTPOUTPOUTPOUTPOUTPOUTPOUTP= XXXXXXXX; END CASE; END PROCESS;END ARCHITECTURE ART4;共六十頁下面我們(w men)用三種方法設計8-3線優(yōu)先編碼器。 8-
8、3線優(yōu)先編碼器,輸入信號為A、B、C、D、E、F、G和H,輸出信號為OUT0、OUT1和OUT2。輸入信號中A的優(yōu)先級別最低,依次類推,H的優(yōu)先級別最高。例7.68-3線優(yōu)先(yuxin)編碼器共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENCODER ISPORT (A,B,C,D:IN STD_LOGIC; E,F(xiàn),G,H:IN STD_LOGIC; OUT0,OUT1,OUT2:OUT STD_LOGIC);END ENTITY ENCODER;共六十頁方法1:使用(shyng)條件賦值語句ARCHITECTURE ART1 O
9、F ENCODER IS SIGNAL OUTS:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN OUTS (2 DOWNTO 0)= 111 WHEN H=1 ELSE 110 WHEN G=1 ELSE 101 WHEN F=1 ELSE 100 WHEN E=1 ELSE 011 WHEN D=1 ELSE 010 WHEN C=1 ELSE 001 WHEN B=1 ELSE 000 WHEN A=1 ELSE “XXX”; OUT0=OUTS(0); OUT1=OUTS(1); OUT2=0 AND INPUTS(I)/=1 LOOP -此處的“/=”表示不等
10、于 I:=I-1; END LOOP; (OUT2,OUT1,OUT0)=CONV_STD_LOGIC_VECTOR(I,3); END PROCESS;END ARCHITECTURE ART2;共六十頁方法(fngf)3:使用IF語句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENCODER IS PORT(IN1:IN STD_LOGIC_VECTOR(7 DOWNTO 0); OUT1:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY ENCODER;共六十頁ARCHITECTURE ART3 O
11、F ENCODER ISBEGIN PROCESS(INT1) ISBEGIN IF IN1(7)=1 THEN OUT1=111;ELSIF IN1(6)=1 THEN OUT1=110;ELSIF IN1(5)=1 THEN OUT1=101;ELSIF IN1(4)=1 THEN OUT1=100;ELSIF IN1(3)=1 THEN OUT1=“011”;ELSIF IN1(2)=1 THEN OUT1=010;ELSIF IN1(1)=1 THEN OUT1=001;ELSIF IN1(0)=1 THEN OUT1=000;ELSE OUT1=XXX;END IF ;END PRO
12、CESS;END ARCHITECTURE ART3;共六十頁 比較器可以比較兩個二進制是否相等,下面是一個8位比較器的VHDL描述(mio sh)。有兩個8位二進制數(shù),分別是A和B,輸出為EQ,當A=B時,EQ=1,否則EQ=0。例7.78位比較(bjio)器 共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_VECTOR(7 DOWNTO 0);ENTITY COMPARE IS PORT (A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); EQ:OUT STD_LOGIC);END ENTITY COMPARE;ARCHITECTURE AR
13、T OF COMPARE IS BEGIN EQ =1 WHEN A=B ELSE 0;END ARCHITECTURE ART;共六十頁 選擇器常用于信號(xnho)的切換,四選一選擇器可以用于四路信號(xnho)的切換。四選一選擇器有四個信號(xnho)輸入端INP(0)INP(3),兩個信號(xnho)選擇端A和B和一個信號(xnho)輸出端Y。當A、B輸入不同的選擇信號(xnho)時,就可以使INP(0)INP(3)中某個相應的輸入信號(xnho)與輸出端Y接通。 例7.8四選一選擇器共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY
14、 MUX41 ISPORT ( INP:IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B:IN STD_LOGIC; Y :OUT STD_LOGIC);END ENTITY MUX41;ARCHITECTURE ART OF MUX41 IS SIGNAL SEL :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN 共六十頁SEL=B&A;PROCESS(INP,SEL) IS BEGIN IF (SEL=00)THEN Y=INP(0); ELSIF (SEL=01)THEN Y=INP(1); ELSIF (SEL=11)THEN Y=INP
15、(2); ELSE Y=INP(3); END IF; END PROCESS;END ARCHITECTURE ART;共六十頁下面(xi mian)的程序?qū)斎氩僮鲾?shù)A、B作加、減、乘、除運算。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ARITHMETIC ISPORT (A,B: IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q1:OUT STD_LOGIC_VECTOR(4 DOWNTO 0)
16、; Q2,Q3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); Q4:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY ARITHMETIC;例7.9算術(sunsh)運算共六十頁ARCHITECTURE ART OF ARITHMETIC ISBEGIN PROCESS(A,B) ISBEGIN Q1=(0&A)+(0&B); -ADDITION Q2=A-B; -SUBTRACTION Q3=A/B; -DIVISION Q4=A*B; -MULTIPLICATIONEND PROCESS;END ARCHITECTURE ART
17、;共六十頁三態(tài)門和總線緩沖器是驅(qū)動電路(dinl)經(jīng)常用到的器件。1) 三態(tài)門電路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TRISTATE IS PORT (EN,DIN :IN STD_LOGIC; DOUT :OUT STD_LOGIC);END ENTITY TRISTATE;例7.10三態(tài)門及總線(zn xin)緩沖器共六十頁ARCHITECTURE ART OF TRISTATE IS BEGIN PROCESS(EN,DIN) IS BEGIN IF EN=1 THEN DOUT=DIN; ELSE DOUT=Z; END I
18、F ; END PROCESS;END ARCHITECTURE ART;共六十頁 2) 單向總線驅(qū)動器 在微型計算機的總線驅(qū)動中經(jīng)常要用單向總線緩沖器,它通常由多個三態(tài)門組成(z chn),用來驅(qū)動地址總線和控制總線。一個8位的單向總線緩沖器如下圖所示。共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TRI_BUF8 IS PORT ( DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); EN:IN STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY
19、 TRI_BUF8;共六十頁ARCHITECTURE ART OF TRI_BUF8 IS BEGIN PROCESS(EN,DIN) BEGIN IF(EN=1)THEN DOUT=DIN; ELSE DOUT=ZZZZZZZZ; END IF; END PROCESS;END ARCHITECTURE ART;共六十頁3) 雙向總線緩沖器 雙向總線緩沖器用于數(shù)據(jù)(shj)總線的驅(qū)動和緩沖,典型的雙向總線緩沖器如下圖所示。圖中的雙向總線緩沖器有兩個數(shù)據(jù)(shj)輸入/輸出端A和B,一個方向控制端DIR和一個選通端EN。EN=0時雙向緩沖器選通。若DIR=0,則A=B,反之則B=A。共六十頁L
20、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BIDIR ISPORT(A,B:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0); EN,DIR:IN STD_STD_LOGIC);END ENTITY BIDIR;共六十頁ARCHITECTURE ART OF BIDIR ISSIGNAL AOUT,BOUT: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINPROCESS(A,EN,DIR) -A為輸入(shr) BEGIN IF(EN=0)AND (DIR=1)THEN BOUT=A; ELSE B
21、OUT=ZZZZZZZZ; END IF ; B=BOUT; -B為輸出END PROCESS;共六十頁PROCESS(B,EN,DIR) IS -B為輸入(shr) BEGIN IF(EN=0)AND (DIR=0)THEN AOUT=B; ELSE AOUT=ZZZZZZZZ; END IF ; A=AOUT; -A為輸出 END PROCESS;END ARCHITECTURE ART;共六十頁 本節(jié)的時序電路設計主要有觸發(fā)器、寄存器、計數(shù)器序列(xli)信號發(fā)生器和序列(xli)信號檢測器等的設計實例。7.2 基本時序(sh x)邏輯建模共六十頁1、模型布爾代數(shù)模型 2、程序設計首先確
22、定實體然后確定結構體由于簡單可直接(zhji)寫出VHDL文件例7.11 基本(jbn)D觸發(fā)器電路共六十頁LIBRARY IEEE;USE IEEE.std_logic_1164.all;Entity DFF2 isport (clk, d : in std_logic; q : out std_logic);end DFF2;architecture body of DFF2 isbeginprocess (clk,d)begin if CLKEVENT AND CLK=1 then q = d; end if;end process;end body;LIBRARY IEEE;USE I
23、EEE.std_logic_1164.all;Entity DFF1 isport (clk, d : in std_logic; q : out std_logic);end DFF1;architecture body of DFF1 isbeginprocess (clk,d) begin if rising_edge(clk) then q = d; end if;end process;end body;共六十頁例7.12 T觸發(fā)器1、模型(mxng)布爾代數(shù)模型 LIBRARY IEEE;USE IEEE.std_logic_1164.all;Entity TFFa isport
24、(clk,T: in STD_LOGIC; q: buffer STD_LOGIC);end;architecture bodya of TFFa isbeginprocess (clk,T)begin if CLKEVENT AND CLK=1 then if t=1 then q =not q; else q=q; end if; end if;end process;end;q=t xor q;共六十頁例7.13 JK觸發(fā)器狀態(tài)方程LIBRARY IEEE;USE IEEE.std_logic_1164.all;Entity JKa isport (clk, J,K: in STD_LO
25、GIC;q: buffer STD_LOGIC);end;architecture bodya of JKa isbeginprocess (clk,J,K)begin if clkevent and clk=1 thenq =(J and (not q) or (not K) and q); end if;end process;end;共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY RSF IS PORT(R,S,CLK:IN STD_LOGIC; Q:BUFFER STD_LOGIC);END ENTITY RSF; 【例7.14】
26、 RS觸發(fā)器共六十頁ARCHITECTURE ART OF RSCFQ IS SIGNAL Q_S:STD_LOGIC; BEGIN PROCESS(CLK,R,S) IS BEGIN IF (CLKEVENT AND CLK=1)THEN IF(S=1 AND R=0) THEN Q_S=1; ELSIF (S=0 AND R=1) THEN Q_S=0; ELSIF (S=0 AND R=0) THEN Q_S=Q_S; END IF; END IF ; Q=Q_S; END PROCESS;END ARCHITECTURE ART ;共六十頁 時序電路的初始狀態(tài)一般由復位/置位信號來設置
27、, 有同步復位/置位和異步復位/置位兩種工作方式。 所謂同步復位/置位, 就是在復位/置位信號有效(yuxio)且給定的時鐘邊沿到來時, 時序電路才被復位/置位; 而異步復位/置位則與時鐘無關, 一旦復位/置位信號有效(yuxio), 時序電路就被復位/置位。 觸發(fā)器的同步(tngb)和非同步(tngb)復位共六十頁 在用VHDL語言描述時, 同步復位/置位一定在以時鐘為敏感信號的進程中定義, 且用IF等條件語句來描述必要的復位/置位條件。 其典型格式(g shi)為: PROCESS (時鐘信號名) BEGIN IF 時鐘邊沿表達式 AND 復位/置位條件表達式 THEN 復位/置位語句;
28、ELSE 正常執(zhí)行語句; END IF; END PROCESS; 1) 同步復位(f wi)/置位的描述共六十頁或 PROCESS BEGIN WAIT UNTIL 時鐘邊沿(binyn)表達式 IF 復位/置位條件表達式 THEN 復位/置位語句; ELSE 正常執(zhí)行語句; END IF; END PROCESS ; 共六十頁描述異步復位/置位時, 應將時鐘信號和復位/置位信號同時加入到進程的敏感信號表中或WAIT ON語句后的信號表中, 而且在執(zhí)行時, 需識別進程是由時鐘激活還是(hi shi)由復位/置位信號激活, 并分別執(zhí)行相應的操作。 其常用格式可表示為 : PROCESS (時鐘
29、信號, 復位/置位信號) BEGIN IF 復位/置位信號有效 THEN 復位/置位語句; ELSIF 時鐘邊沿表達式 THEN 正常執(zhí)行語句; END IF ; END PROCESS ; 2) 異步復位(f wi)/置位共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ASDff ISPORT(CLK,D :IN STD_LOGIC; PRESET,CLR:IN STD_LOGIC; Q:OUT STD_LOGIC);END ENTITY ASDff;【例7.15】 異步復位(f wi)/置位的D觸發(fā)器共六十頁ARCHITECTURE
30、ART OF ASDff IS BEGIN PROCESS(CLK,PRESET,CLR) IS BEGIN IF(PRESET=1)THEN -置位信號(xnho)為1,則觸發(fā)器被置位 Q=1; ELSIF(CLR=1)THEN -復位信號為1,則觸發(fā)器被復位 Q=0; ELSIF(CLKEVENT AND CLK=1)THEN Q=D; END IF; END PROCESS;END ARCHITECTURE ART;共六十頁異步復位(f wi)D觸發(fā)器仿真波形共六十頁LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SYDff ISPORT(D, CLK :IN STD_LOGIC; RESET:IN STD_LOGIC; Q:OUT STD_LOGIC);END ENTITY SYDff;【例7.16】 同步(tngb)復位的D觸發(fā)器共六十頁ARCHITECTURE ART OF SYDff IS BEGIN PROCESS(CLK) IS BEGIN IF(CLKEVENT AND CLK=1)THEN IF(RESET=0)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024營養(yǎng)師資格證題庫及答案解析
- 企業(yè)品牌與演出經(jīng)紀人資格證試題及答案
- 2024年營養(yǎng)師考試核心概念試題及答案
- 競爭對手分析演出經(jīng)紀人資格證試題及答案
- 房地產(chǎn)宣傳材料設計試題及答案
- 營養(yǎng)師考試常見試題及答案大全
- 演出經(jīng)紀人考試復習資料:試題及答案
- 演出經(jīng)紀人資格證復習方法探討及試題及答案
- 2024年營養(yǎng)師考試易錯試題及答案
- 附錄營養(yǎng)師資格證試題及答案
- 小紅書種草營銷師(初級)認證考試題庫(附答案)
- GB/T 45089-20240~3歲嬰幼兒居家照護服務規(guī)范
- 2024年資格考試-良好農(nóng)業(yè)規(guī)范認證檢查員考試近5年真題集錦(頻考類試題)帶答案
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術規(guī)程
- 2024年全國版圖知識競賽(小學組)考試題庫大全(含答案)
- 肌肉注射并發(fā)癥預防與處理
- KET詞匯表(英文中文完整版)
- 《淹溺急救》PPT課件(2022版)
- 水表施工組織方案.doc
- 遼寧醫(yī)院明細.xls
- 招標代理機構內(nèi)部管理制度51401
評論
0/150
提交評論