可編程邏輯器件與應(yīng)用復(fù)習(xí)_第1頁
可編程邏輯器件與應(yīng)用復(fù)習(xí)_第2頁
可編程邏輯器件與應(yīng)用復(fù)習(xí)_第3頁
可編程邏輯器件與應(yīng)用復(fù)習(xí)_第4頁
可編程邏輯器件與應(yīng)用復(fù)習(xí)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、可編程邏輯器件與應(yīng)用復(fù)習(xí)可編程邏輯器件與應(yīng)用復(fù)習(xí)主要考查對可編程邏輯器件的認(rèn)識,對主要考查對可編程邏輯器件的認(rèn)識,對VHDL語言的掌握語言的掌握情況,以及對采用情況,以及對采用VHDL實(shí)現(xiàn)實(shí)現(xiàn)FPGA控制的方法。控制的方法。1. 單項(xiàng)選擇題單項(xiàng)選擇題 2. 填空題填空題3. 程序判斷題程序判斷題 4. 程序填空題程序填空題 5. 簡答題簡答題 6. 作圖題作圖題 7. 綜合題綜合題復(fù)習(xí)提綱中提及的內(nèi)復(fù)習(xí)提綱中提及的內(nèi)容約占考試分值的容約占考試分值的60%,但是考試內(nèi)容,但是考試內(nèi)容并不局限于提綱范圍,并不局限于提綱范圍,請大家全面復(fù)習(xí)。請大家全面復(fù)習(xí)。第一章第一章 概述概述EDA:電子設(shè)計(jì)自動

2、化:電子設(shè)計(jì)自動化FPGA:現(xiàn)場可編程門陣列:現(xiàn)場可編程門陣列CPLD:復(fù)雜可編程邏輯器件:復(fù)雜可編程邏輯器件ASIC:專用集成電路:專用集成電路SOC:單片電子系統(tǒng):單片電子系統(tǒng)HDL:硬件描述語言:硬件描述語言 EDA技術(shù)實(shí)現(xiàn)目標(biāo)技術(shù)實(shí)現(xiàn)目標(biāo) 硬件描述語言(組成、設(shè)計(jì)方法)硬件描述語言(組成、設(shè)計(jì)方法) EDA的設(shè)計(jì)流程的設(shè)計(jì)流程1. 設(shè)計(jì)輸入(圖形輸入、文本輸入)設(shè)計(jì)輸入(圖形輸入、文本輸入)2. 綜合綜合3. 適配適配4. 時(shí)序仿真與功能仿真時(shí)序仿真與功能仿真5. 編程下載編程下載6. 硬件測試硬件測試第二章第二章 FPGA/CPLD結(jié)構(gòu)原理結(jié)構(gòu)原理 了解可編程邏輯器件的分類了解可編程

3、邏輯器件的分類 了解簡單了解簡單PLD結(jié)構(gòu)原理結(jié)構(gòu)原理 了解了解FPGA的結(jié)構(gòu)和工作原理的結(jié)構(gòu)和工作原理 了解硬件測試了解硬件測試 課后習(xí)題課后習(xí)題第三章第三章 VHDL設(shè)計(jì)初步設(shè)計(jì)初步 掌握組合電路的掌握組合電路的VHDL描述描述 掌握基本時(shí)序電路的掌握基本時(shí)序電路的VHDL描述描述 掌握計(jì)數(shù)器的掌握計(jì)數(shù)器的VHDL設(shè)計(jì)設(shè)計(jì) 課后習(xí)題課后習(xí)題3.1 組合電路的組合電路的VHDL描述描述 3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述 圖圖3-1 mux21a電路模型電路模型 2選選1多路選擇器(多路選擇器(mux21a)A、b是是2個(gè)數(shù)據(jù)的輸入端口個(gè)數(shù)據(jù)的輸入端口S是通道選擇控

4、制信號端是通道選擇控制信號端Y是數(shù)據(jù)輸出端是數(shù)據(jù)輸出端S取值分別是取值分別是0、1時(shí),輸出端分別輸時(shí),輸出端分別輸出出a、b的數(shù)據(jù)。的數(shù)據(jù)。 圖圖3-2 mux21a元件圖元件圖 3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述 【例例3-1】ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 了解情景了

5、解情景VHDL描述描述Mux21a邏輯結(jié)構(gòu)圖邏輯結(jié)構(gòu)圖3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述-2 【例例3-2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21a IS PORT ( a, b : IN STD_LOGIC; s : IN STD_LOGIC; y : OUT STD_LOGIC );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL e: STD_LOGIC; SIGNAL d: STD_LOGIC; BEGIN d = a AND (NO

6、T S) ; e = b AND s ; y = d OR e ;END ARCHITECTURE one ; 【例例3-1】ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 3.1.1 2選選1多路選擇器的多路選擇器的VHDL描述描述3【例例3-3】LIBRARY IEEE;USE IEEE.STD_LOGIC_

7、1164.ALL;ENTITY mux21a IS PORT ( a,b,s : IN STD_LOGIC; y : OUT STD_LOGIC );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; 實(shí)體表達(dá)實(shí)體表達(dá) 實(shí)體名實(shí)體名 端口語句和端口信號名端口語句和端口信號名 端口模式:端口模式:IN、OUT、INOUT、BUFFER 數(shù)據(jù)類型

8、:數(shù)據(jù)類型:INTEGER、BOOLEAN、STD_LOGIC、BIT 結(jié)構(gòu)體結(jié)構(gòu)體 賦值符號和數(shù)據(jù)比較符號賦值符號和數(shù)據(jù)比較符號 關(guān)鍵字關(guān)鍵字 WHEN_ELSE語句,并行賦值語句語句,并行賦值語句 IF_THEN_ELSE語句,順序語句語句,順序語句 進(jìn)程語句和順序語句(進(jìn)程語句和順序語句(P71)進(jìn)程語句的執(zhí)行依賴于敏感信號的變化,進(jìn)程語句執(zhí)行一進(jìn)程語句的執(zhí)行依賴于敏感信號的變化,進(jìn)程語句執(zhí)行一遍后就返回到程序的起始端,進(jìn)入等待狀態(tài),直到下一遍后就返回到程序的起始端,進(jìn)入等待狀態(tài),直到下一次敏感信號變化再進(jìn)行運(yùn)行。次敏感信號變化再進(jìn)行運(yùn)行。 CASE語句,半加器描述(語句,半加器描述(P

9、73) 例化語句,全加器描述(例化語句,全加器描述(P75)1. 1. CASECASE語句語句 CASE ISWhen = ; . ; ;When = ; . ; ;.WHEN OTHERS = ;END CASE ; 執(zhí)行執(zhí)行CASE語句時(shí),首先計(jì)算語句時(shí),首先計(jì)算“表達(dá)式表達(dá)式”語句,然后根據(jù)語句,然后根據(jù)WHEN條件語句中相同的條件語句中相同的“選擇值或標(biāo)識符選擇值或標(biāo)識符”,執(zhí)行對應(yīng)的順,執(zhí)行對應(yīng)的順序語句,最后結(jié)束序語句,最后結(jié)束CASE語句。語句。CASE abc IS WHEN 00 = so=0; co so=1; co so=1; co so=0; co NULL ; EN

10、D CASE;【例例3-5】LIBRARY IEEE; -半加器描述半加器描述(2):真值表描述方法:真值表描述方法USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; -定義標(biāo)準(zhǔn)邏輯位矢量定義標(biāo)準(zhǔn)邏輯位矢量BEGIN 數(shù)據(jù)類型數(shù)據(jù)類型 abc so=0; co s

11、o=1; co so=1; co so=0; co NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ; 圖圖3-11 全加器全加器f_adder電路圖及其實(shí)體模塊電路圖及其實(shí)體模塊 3.1.5 1位二進(jìn)制全加器的位二進(jìn)制全加器的VHDL描述描述 I113aincoutcoutainbinsumcinbinsumcinf_adderor2afedu3u2u1baccosoBcosoBh_adderAh_adderA1位全加器可以由兩個(gè)半加器和一個(gè)或門連接而成。位全加器可以由兩個(gè)半加器和一個(gè)或門連接而成。半加器的電路原理圖半加器的電路原理圖半加

12、器的半加器的VHDL描述描述全加器的頂層描述全加器的頂層描述X康芯科技康芯科技【例例3-19】 LIBRARY IEEE; -1位二進(jìn)制全加器頂層設(shè)計(jì)描述位二進(jìn)制全加器頂層設(shè)計(jì)描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY f_adder; ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder -調(diào)用半加器聲明語句調(diào)用半加器聲明語句 PORT ( a,b

13、: IN STD_LOGIC; co,so : OUT STD_LOGIC); END COMPONENT ; COMPONENT or2a PORT (a,b : IN STD_LOGIC; c : OUT STD_LOGIC); END COMPONENT;SIGNAL d,e,f : STD_LOGIC; -定義定義3個(gè)信號作為內(nèi)部的連接線。個(gè)信號作為內(nèi)部的連接線。 BEGIN u1 : h_adder PORT MAP(a=ain,b=bin,co=d,so=e);-例化語句例化語句 u2 : h_adder PORT MAP(a=e, b=cin, co=f,so=sum); u3

14、: or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECTURE fd1; I113aincoutcoutainbinsumcinbinsumcinf_adderor2afedu3u2u1baccosoBcosoBh_adderAh_adderA3.2 基本時(shí)序電路的基本時(shí)序電路的VHDL描述描述 3.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述描述 X康芯科技康芯科技【例例3-6】LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : I

15、N STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; -類似于在芯片內(nèi)部定義一個(gè)數(shù)據(jù)的暫存節(jié)點(diǎn)類似于在芯片內(nèi)部定義一個(gè)數(shù)據(jù)的暫存節(jié)點(diǎn) BEGIN PROCESS (CLK,Q1) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; -將內(nèi)部的暫存數(shù)據(jù)向端口輸出(雙橫線將內(nèi)部的暫存數(shù)據(jù)向端口輸出(雙橫線-是注釋符號)是注釋符號) END bhv; 圖3-4 D觸發(fā)器圖圖

16、3-6 D觸發(fā)器觸發(fā)器3.2.1 D觸發(fā)器的描述觸發(fā)器的描述圖3-4 D觸發(fā)器1. 1.上升沿檢測表式和信號屬性函數(shù)上升沿檢測表式和信號屬性函數(shù)EVENT “CLKEVENT AND CLK=1” EVENT EVENT 上述條件語句的判斷表達(dá)式用于檢測時(shí)鐘信號上述條件語句的判斷表達(dá)式用于檢測時(shí)鐘信號CLK的上升沿,的上升沿,若檢測到若檢測到CLK的上升沿,表達(dá)式將輸出的上升沿,表達(dá)式將輸出TRUEEVENT是信號屬性函數(shù),用于獲得信號行為的信息的函數(shù)是信號屬性函數(shù),用于獲得信號行為的信息的函數(shù)CLKEVENT 是對時(shí)鐘信號是對時(shí)鐘信號CLK(標(biāo)識符)在當(dāng)前的一個(gè)極(標(biāo)識符)在當(dāng)前的一個(gè)極小的

17、時(shí)間段內(nèi)發(fā)生時(shí)間的情況進(jìn)行檢測。小的時(shí)間段內(nèi)發(fā)生時(shí)間的情況進(jìn)行檢測。發(fā)生事件,就是發(fā)生事件,就是CLK在其數(shù)據(jù)類型的取值范圍內(nèi)發(fā)生變化,從在其數(shù)據(jù)類型的取值范圍內(nèi)發(fā)生變化,從一種取值轉(zhuǎn)變到另一種取值。一種取值轉(zhuǎn)變到另一種取值。注意注意CLK的數(shù)據(jù)類型定義,的數(shù)據(jù)類型定義,BIT STD_LOGIC是不一樣的。而是不一樣的。而且需要考慮跳變前、跳變后的邏輯輸出值。且需要考慮跳變前、跳變后的邏輯輸出值。CLKEVENT改成改成 CLKEVENT AND CLK=1,表示,表示CLK時(shí)間時(shí)間在時(shí)間內(nèi)發(fā)生跳變,而且之后保持高電平狀態(tài)。在時(shí)間內(nèi)發(fā)生跳變,而且之后保持高電平狀態(tài)。兩種情況相與后,滿足上述條

18、件,輸出兩種情況相與后,滿足上述條件,輸出TRUE,得到一個(gè)綜合,得到一個(gè)綜合判斷,對信號判斷,對信號CLK的上升沿進(jìn)行檢測。的上升沿進(jìn)行檢測。CLKEVENT AND CLK=1成為上升沿測試語句。成為上升沿測試語句。PROCESS (CLK,Q1) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;2. 2. 不完整條件語句與時(shí)序電路不完整條件語句與時(shí)序電路 在在D觸發(fā)器中,完成觸發(fā)器保持原有信號功能的語句提示觸發(fā)器中,完成觸發(fā)器保持原有信號功能的語句提示當(dāng)當(dāng)CLK被觸發(fā)啟動時(shí),被觸發(fā)啟動時(shí),IF語句將測定表達(dá)

19、式語句將測定表達(dá)式“CLKEVENT AND CLK = 1 ”是否滿足條件。是否滿足條件。若若CLK為上升沿,滿足條件表達(dá)式的檢測,執(zhí)行賦值為上升沿,滿足條件表達(dá)式的檢測,執(zhí)行賦值Q1 = D ,Q1更新,在結(jié)束更新,在結(jié)束IF語句是,語句是,Q1向向Q輸出賦值。輸出賦值。若若CLK沒有發(fā)生上升沿方式的變化,沒有發(fā)生上升沿方式的變化,IF語句不滿足表達(dá)式條件,語句不滿足表達(dá)式條件,程序?qū)⑻^下面的賦值語句。由于此時(shí)程序?qū)⑻^下面的賦值語句。由于此時(shí)IF語句中沒有使用語句中沒有使用ELSE語句指出不滿足條件時(shí)的處理方式,綜合器將此種情況理解為,語句指出不滿足條件時(shí)的處理方式,綜合器將此種情況理

20、解為,對于不滿足條件的情況,則意味保持原有狀態(tài)不發(fā)生改變。因此對于不滿足條件的情況,則意味保持原有狀態(tài)不發(fā)生改變。因此需要使用存儲原件來保存信號原有值。需要使用存儲原件來保存信號原有值。時(shí)序電路構(gòu)建的關(guān)鍵(依據(jù))在于時(shí)序電路構(gòu)建的關(guān)鍵(依據(jù))在于利用不完整的條件語句的描利用不完整的條件語句的描述述?!癈LKEVENT AND CLK = 1 ”的時(shí)鐘邊沿語句并不是時(shí)序的時(shí)鐘邊沿語句并不是時(shí)序電路的組成要素。電路的組成要素。完整的條件語句只能構(gòu)成組合邏輯電路,反之則構(gòu)成時(shí)序電路。完整的條件語句只能構(gòu)成組合邏輯電路,反之則構(gòu)成時(shí)序電路。注意:注意:利用不完整的條件語句所具有的獨(dú)特功能可構(gòu)成時(shí)序電利

21、用不完整的條件語句所具有的獨(dú)特功能可構(gòu)成時(shí)序電路,但是,在設(shè)計(jì)純組合邏輯電路時(shí),沒有充分考慮電路中的路,但是,在設(shè)計(jì)純組合邏輯電路時(shí),沒有充分考慮電路中的組合邏輯條件,沒有列全條件,其后果將導(dǎo)致不完整的條件語組合邏輯條件,沒有列全條件,其后果將導(dǎo)致不完整的條件語句的出現(xiàn),從而得到組合與時(shí)序電路的混合體。句的出現(xiàn),從而得到組合與時(shí)序電路的混合體。1. CLKEVENT AND CLK = 1 2. CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0)3. CLK=1 AND CLKLAST_VALUE=04. IF rising_edge(CLK) - 必須打開必

22、須打開STD_LOGIC_1164程序包程序包 【例例3-14】.PROCESS BEGIN wait until CLK = 1 ; -利用利用wait語句語句 Q = D ;END PROCESS; 3.2.3 實(shí)現(xiàn)時(shí)序電路的實(shí)現(xiàn)時(shí)序電路的VHDL不同表述不同表述 3.3 計(jì)計(jì)數(shù)器的數(shù)器的VHDL設(shè)計(jì)設(shè)計(jì) 【例例3-18】ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER RANGE 15 DOWNTO 0 ) ; END ; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGI

23、N IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ;END bhv; X康芯科技康芯科技3.3.3 計(jì)數(shù)器設(shè)計(jì)的其他表述方法計(jì)數(shù)器設(shè)計(jì)的其他表述方法 【例例3-21】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ; ARCHITECT

24、URE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; END IF; END PROCESS ; Q = Q1 ; END bhv; 端口的數(shù)據(jù)類型定義為標(biāo)準(zhǔn)邏輯端口的數(shù)據(jù)類型定義為標(biāo)準(zhǔn)邏輯位或位矢量位或位矢量3.4 多功能計(jì)數(shù)器的多功能計(jì)數(shù)器的VHDL設(shè)計(jì)設(shè)計(jì) 帶有帶有異步復(fù)位異步復(fù)位、同步加載同步加載及及時(shí)鐘使能時(shí)鐘使能的的十進(jìn)制十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)計(jì)數(shù)器的設(shè)計(jì) 已知模計(jì)數(shù)器的實(shí)現(xiàn)(如十進(jìn)

25、制、已知模計(jì)數(shù)器的實(shí)現(xiàn)(如十進(jìn)制、12進(jìn)制、進(jìn)制、30進(jìn)制等等)進(jìn)制等等)SIGNAL Q : STD_LOGIC_VECTOR(3 DOWNTO 0):=“0000”;-可設(shè)置可設(shè)置16進(jìn)制計(jì)數(shù)器進(jìn)制計(jì)數(shù)器IF CLKEVENT AND CLK=1 THEN IF Q9 THEN Q=Q+1;-檢測檢測Q在當(dāng)前時(shí)鐘周期數(shù)值,若小于在當(dāng)前時(shí)鐘周期數(shù)值,若小于9,自賦值,自賦值 ELSE Q=“0000”;-若大于等于若大于等于9,清零,完成一次計(jì)數(shù)周期,清零,完成一次計(jì)數(shù)周期 END IF; 第四章第四章 Quartus II 掌握掌握Quartus II的基本設(shè)計(jì)流程的基本設(shè)計(jì)流程 掌握引腳

26、設(shè)置與硬件驗(yàn)證掌握引腳設(shè)置與硬件驗(yàn)證 掌握掌握SIGNALTAP II、嵌入式邏輯分析儀使用方法、嵌入式邏輯分析儀使用方法 掌握原理圖輸入的設(shè)計(jì)方法掌握原理圖輸入的設(shè)計(jì)方法 課后習(xí)題課后習(xí)題 掌握數(shù)據(jù)對象掌握數(shù)據(jù)對象 掌握信號、變量、常量的異同掌握信號、變量、常量的異同 順序語句和并行語句的歸納順序語句和并行語句的歸納 掌握整數(shù)分頻電路的設(shè)計(jì)掌握整數(shù)分頻電路的設(shè)計(jì)第五章第五章 VHDL設(shè)計(jì)進(jìn)階設(shè)計(jì)進(jìn)階5.1 數(shù)據(jù)對象數(shù)據(jù)對象 在在VHDL中,數(shù)據(jù)對象有三類,變量(中,數(shù)據(jù)對象有三類,變量(variable)、常量)、常量(constant)和信號()和信號(signal)。)。數(shù)據(jù)對象類似于一

27、種容器,用于接受不同數(shù)據(jù)類型的賦值。數(shù)據(jù)對象類似于一種容器,用于接受不同數(shù)據(jù)類型的賦值。注意:注意:信號的表現(xiàn)比較特殊,具有更多的硬件特征,是信號的表現(xiàn)比較特殊,具有更多的硬件特征,是VHDL中最有特色的語言要素之一,在學(xué)習(xí)中需要進(jìn)行熟練把握。中最有特色的語言要素之一,在學(xué)習(xí)中需要進(jìn)行熟練把握。5.1.2 變量變量 定義變量的一般表述如下:定義變量的一般表述如下: VARIABLE 變量名變量名 : 數(shù)據(jù)類型數(shù)據(jù)類型 := 初始值初始值 ; VARIABLE a : INTEGER RANGE 0 TO 15 ;-變量變量a定義為常數(shù),取值范圍是定義為常數(shù),取值范圍是0到到15 VARIABL

28、E d : STD_LOGIC := 1 ;-變量變量d定義為標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型定義為標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型, 初始值是初始值是1 用途:用途:只能在進(jìn)程和子程序中使用。變量不能將信息帶出對它作出定義的結(jié)只能在進(jìn)程和子程序中使用。變量不能將信息帶出對它作出定義的結(jié)構(gòu)。構(gòu)。特點(diǎn):特點(diǎn):變量的賦值是一種理想化的數(shù)據(jù)傳輸,是立即發(fā)生的不存在任何延時(shí)變量的賦值是一種理想化的數(shù)據(jù)傳輸,是立即發(fā)生的不存在任何延時(shí)行為。行為。主要作用:主要作用:在進(jìn)程中作為臨時(shí)的數(shù)據(jù)存儲單元。在進(jìn)程中作為臨時(shí)的數(shù)據(jù)存儲單元。5.1.3 信號信號 SIGNAL 信號名:信號名: 數(shù)據(jù)類型數(shù)據(jù)類型 := 初始值初始值 ;SIGNA

29、L A : STD_LOGIC := 0; 信號與實(shí)體的端口(信號與實(shí)體的端口(PORT)概念是一致的,只是信號沒有方向說明。)概念是一致的,只是信號沒有方向說明。 對于端口,區(qū)別只是輸出端口不能讀入數(shù)據(jù),輸入端口不能被賦值;對于端口,區(qū)別只是輸出端口不能讀入數(shù)據(jù),輸入端口不能被賦值; 信號可看成實(shí)體內(nèi)部的端口;信號可看成實(shí)體內(nèi)部的端口; 實(shí)體的端口只是一種隱形的信號,在實(shí)體中對端口的定義實(shí)質(zhì)上是作了實(shí)體的端口只是一種隱形的信號,在實(shí)體中對端口的定義實(shí)質(zhì)上是作了隱式的信號定義,并規(guī)定了數(shù)據(jù)的流向;隱式的信號定義,并規(guī)定了數(shù)據(jù)的流向; 信號本身的定義是顯式的定義。在實(shí)體中定義的端口都可以看作是一

30、個(gè)信號本身的定義是顯式的定義。在實(shí)體中定義的端口都可以看作是一個(gè)信號,在結(jié)構(gòu)體中直接加以使用。信號,在結(jié)構(gòu)體中直接加以使用。5.1.4 進(jìn)程中的信號與變量賦值進(jìn)程中的信號與變量賦值 信號信號SIGNAL變量變量VARIABLE基本用法基本用法用于作為電路中的信號連線用于作為電路中的信號連線用于作為進(jìn)程中局部數(shù)據(jù)存儲用于作為進(jìn)程中局部數(shù)據(jù)存儲單元單元適用范圍適用范圍在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都能適用能適用只能在所定義的進(jìn)程中使用只能在所定義的進(jìn)程中使用行為特性行為特性在進(jìn)程的最后才對信號賦值在進(jìn)程的最后才對信號賦值立即賦值立即賦值表表5-1 5-1 信號與變量賦值語句功能

31、的比較信號與變量賦值語句功能的比較 5.1.4 進(jìn)程中的信號與變量賦值進(jìn)程中的信號與變量賦值 從硬件電路系統(tǒng)來看,從硬件電路系統(tǒng)來看,信號與變量相當(dāng)于邏輯電路系統(tǒng)中的連線和連線上的信號與變量相當(dāng)于邏輯電路系統(tǒng)中的連線和連線上的信號值。信號值。從行為仿真和從行為仿真和VHDL語句功能上看,語句功能上看,信號與變量具有明顯區(qū)別,其差異主要信號與變量具有明顯區(qū)別,其差異主要表現(xiàn)為表現(xiàn)為接受和保持信號的方式接受和保持信號的方式和和信息保存與傳遞的區(qū)域大小信息保存與傳遞的區(qū)域大小上。上。1. 信號可設(shè)置延時(shí)量,變量不能。信號可設(shè)置延時(shí)量,變量不能。2. 變量只能作為局部信息載體,只能在所定義的進(jìn)程中有效

32、,不能將信息變量只能作為局部信息載體,只能在所定義的進(jìn)程中有效,不能將信息帶出進(jìn)程;信號可作為模塊間的信息載體,在結(jié)構(gòu)體中的各進(jìn)程傳遞信帶出進(jìn)程;信號可作為模塊間的信息載體,在結(jié)構(gòu)體中的各進(jìn)程傳遞信息必須使用信號完成。息必須使用信號完成。3. 變量的設(shè)置有時(shí)是過渡,最后信息傳輸和界面的通信仍然需要靠信號來變量的設(shè)置有時(shí)是過渡,最后信息傳輸和界面的通信仍然需要靠信號來完成。完成。4. 除卻上述內(nèi)容,兩者在很多情況下沒有什么區(qū)別,原因在于其兩者均可除卻上述內(nèi)容,兩者在很多情況下沒有什么區(qū)別,原因在于其兩者均可接受賦值。接受賦值。5.1.4 進(jìn)程中的信號與變量賦值(存在范圍)進(jìn)程中的信號與變量賦值(

33、存在范圍) 【例例5-1】ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; Q1 = QQ; END PROCESS ; END bhv; 【例例5-2】ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN QQ = D1 ; END

34、 IF; END PROCESS ; Q1 = QQ; END bhv; D觸發(fā)器的觸發(fā)器的VHDL描述,兩者綜描述,兩者綜合后的電路均相同合后的電路均相同DQDQDQDQD1Q1D1Q1CLKCLK圖圖5-2 D觸發(fā)器電路觸發(fā)器電路不完整的條件語句中,單獨(dú)的變量賦值語句與信號賦值語句都能綜合出相不完整的條件語句中,單獨(dú)的變量賦值語句與信號賦值語句都能綜合出相同的時(shí)序電路。同的時(shí)序電路。5.1.4 進(jìn)程中的信號與變量賦值進(jìn)程中的信號與變量賦值 (賦值時(shí)序)(賦值時(shí)序)【例例5-3】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3

35、 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1: OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL A,B : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN A = D1 ; B = A ; Q1 = B ; END IF; END PROCESS ; END ; 【例例5-4】LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT(CLK,

36、D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC ) ; END ; ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) V A R I A B L E A , B : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN A := D1 ; B := A ; Q1 = B ; END IF; END PROCESS ; END ; 不同賦值源的賦值對比(賦值傳遞)不同賦值源的賦值對比(賦值傳遞)從例從例5-3和例和例5-4中的延時(shí)特性的差別進(jìn)行理解中的延時(shí)特性的差別進(jìn)行理解1. 信

37、號的賦值需要有一個(gè)信號的賦值需要有一個(gè) 延時(shí)。延時(shí)。 如當(dāng)執(zhí)行的到如當(dāng)執(zhí)行的到5-3中中A=D1,D1向向A賦值是在一個(gè)賦值是在一個(gè) 延時(shí)后發(fā)延時(shí)后發(fā)生,此時(shí)生,此時(shí)A并未得到更新,即并未得到更新,即A還未獲得還未獲得D1的值。的值。 啟動賦值:啟動賦值:啟動了一個(gè)延時(shí)為啟動了一個(gè)延時(shí)為 的模擬定時(shí)器。的模擬定時(shí)器。 執(zhí)行賦值:執(zhí)行賦值:只有在延時(shí)為只有在延時(shí)為 后,后,A才能被更新,獲得才能被更新,獲得D1的賦的賦值。值。A=D1 延時(shí)延時(shí)經(jīng)時(shí)間經(jīng)時(shí)間 后后0 1A=D11 1兩個(gè)對象的關(guān)系兩個(gè)對象的關(guān)系 延時(shí)延時(shí)A為為0A為為1A在時(shí)序在時(shí)序上的變化上的變化2. 進(jìn)程中賦值的延時(shí)特點(diǎn)進(jìn)程中

38、賦值的延時(shí)特點(diǎn) 進(jìn)程中,所有的賦值語句(包括信號與變量賦值),均進(jìn)程中,所有的賦值語句(包括信號與變量賦值),均必須在一個(gè)必須在一個(gè) 延延時(shí)內(nèi)完成時(shí)內(nèi)完成。一個(gè)進(jìn)程的運(yùn)行時(shí)間固定為一個(gè)。一個(gè)進(jìn)程的運(yùn)行時(shí)間固定為一個(gè) 延時(shí)。延時(shí)。 進(jìn)程中所有的信號賦值語句在進(jìn)程中所有的信號賦值語句在進(jìn)程啟動的瞬間進(jìn)程啟動的瞬間順序啟動各自的延時(shí)為順序啟動各自的延時(shí)為 的定時(shí)器,在定時(shí)結(jié)束后分別進(jìn)行賦值操作。的定時(shí)器,在定時(shí)結(jié)束后分別進(jìn)行賦值操作。 注意,順序啟動的間隔幾乎為注意,順序啟動的間隔幾乎為0,順序執(zhí)行到,順序執(zhí)行到END PROCESS語句,語句, 延時(shí)結(jié)束,此時(shí)進(jìn)程中所有信號賦值操作幾乎同時(shí)完成,可

39、看作是并行延時(shí)結(jié)束,此時(shí)進(jìn)程中所有信號賦值操作幾乎同時(shí)完成,可看作是并行方式完成賦值。方式完成賦值。 因此因此“執(zhí)行操作賦值執(zhí)行操作賦值”和和“完成賦值完成賦值”是兩個(gè)不同的概念。是兩個(gè)不同的概念。 “執(zhí)行賦值執(zhí)行賦值”只是一個(gè)過程,具有順序的特征;只是一個(gè)過程,具有順序的特征;“完成賦值完成賦值”是結(jié)果,是結(jié)果,具有具有VHDL最本質(zhì)的并行的特征。最本質(zhì)的并行的特征。A為為1B為為0C為為1 延時(shí)延時(shí)A=D1B=D2C=D3PROCESS3. 進(jìn)程中多賦值源的延時(shí)和時(shí)序判定問題進(jìn)程中多賦值源的延時(shí)和時(shí)序判定問題 當(dāng)進(jìn)程中存在當(dāng)進(jìn)程中存在同一信號有多個(gè)賦值源同一信號有多個(gè)賦值源時(shí),即對同一信號

40、發(fā)生多次賦值,時(shí),即對同一信號發(fā)生多次賦值,實(shí)際完成賦值,賦值對象的信號更新是最接近實(shí)際完成賦值,賦值對象的信號更新是最接近END PROCESS語句的信語句的信號。號。 進(jìn)程中的順序賦值部分沒有時(shí)間的流逝。因此在順序語句部分,無論有進(jìn)程中的順序賦值部分沒有時(shí)間的流逝。因此在順序語句部分,無論有多少語句,都必須到達(dá)多少語句,都必須到達(dá)END PROCESS語句時(shí),語句時(shí), 延遲才能發(fā)生。延遲才能發(fā)生?!纠?-5】 SIGNAL in1,in2,e1, . : STD_LOGIC ; . PROCESS(in1,in2, . . .) VARIABLE c1,. . . : STD_LOGIC

41、_VECTOR(3 DOWNTO 0) ; BEGIN IF in1 = 1 THEN . - 第第 1 行行 e1 = 1010 ; - 第第 2 行行 . IF in2 = 0 THEN . . . - 第第 15+n 行行 . c1 := 0011 ; - 第第 30+m 行行 . END IF; END PROCESS; 5.3 順序語句歸納順序語句歸納基于進(jìn)程語句結(jié)構(gòu)的順序語句的使用特點(diǎn)的歸納基于進(jìn)程語句結(jié)構(gòu)的順序語句的使用特點(diǎn)的歸納 在一個(gè)結(jié)構(gòu)體中,允許放置任意多個(gè)進(jìn)程語句結(jié)構(gòu),每一進(jìn)在一個(gè)結(jié)構(gòu)體中,允許放置任意多個(gè)進(jìn)程語句結(jié)構(gòu),每一進(jìn)程的內(nèi)部由一系列順序語句來構(gòu)成。程的內(nèi)部由一系

42、列順序語句來構(gòu)成。 PROCESS語句結(jié)構(gòu)包含了一個(gè)代表著設(shè)計(jì)實(shí)體中部分邏輯語句結(jié)構(gòu)包含了一個(gè)代表著設(shè)計(jì)實(shí)體中部分邏輯行為的、獨(dú)立的順序語句描述的進(jìn)程。行為的、獨(dú)立的順序語句描述的進(jìn)程。 與并行語句的同時(shí)執(zhí)行方式不同,順序語句可以根據(jù)設(shè)計(jì)者與并行語句的同時(shí)執(zhí)行方式不同,順序語句可以根據(jù)設(shè)計(jì)者的要求,利用順序可控的語句完成逐條執(zhí)行的功能。的要求,利用順序可控的語句完成逐條執(zhí)行的功能?;谶M(jìn)程語句結(jié)構(gòu)的順序語句的使用特點(diǎn)的歸納基于進(jìn)程語句結(jié)構(gòu)的順序語句的使用特點(diǎn)的歸納 在在VHDL中,所謂順序僅是指語句按序執(zhí)行上的順序性,但中,所謂順序僅是指語句按序執(zhí)行上的順序性,但不意味著不意味著PROCESS

43、語句結(jié)構(gòu)在綜合后所對應(yīng)的硬件邏輯行語句結(jié)構(gòu)在綜合后所對應(yīng)的硬件邏輯行為也具有相同的順序性。為也具有相同的順序性。 PROCESS結(jié)構(gòu)中的順序語句,及其所謂的順序執(zhí)行過程只結(jié)構(gòu)中的順序語句,及其所謂的順序執(zhí)行過程只是相對于計(jì)算機(jī)中的是相對于計(jì)算機(jī)中的HDL行為仿真的模擬過程而言的。行為仿真的模擬過程而言的。 PROCESS過程與硬件結(jié)構(gòu)中實(shí)現(xiàn)的對應(yīng)的邏輯行為是不完過程與硬件結(jié)構(gòu)中實(shí)現(xiàn)的對應(yīng)的邏輯行為是不完全相同的。全相同的。語言順序語言順序硬件順序硬件順序5.4 并行賦值語句討論并行賦值語句討論進(jìn)程語句和并行賦值語句的執(zhí)行和實(shí)現(xiàn)并非同時(shí)發(fā)生。兩者啟進(jìn)程語句和并行賦值語句的執(zhí)行和實(shí)現(xiàn)并非同時(shí)發(fā)生。

44、兩者啟動和執(zhí)行的情況與敏感信號(信號)的變化密切相關(guān)。動和執(zhí)行的情況與敏感信號(信號)的變化密切相關(guān)。任何一條信號的并行賦值語句是縮略的進(jìn)程語句。在絕大多數(shù)任何一條信號的并行賦值語句是縮略的進(jìn)程語句。在絕大多數(shù)情況下不能同時(shí)執(zhí)行。情況下不能同時(shí)執(zhí)行。DATA1= A AND B;DATA2= C; 執(zhí)行賦值需要信號變化,并行賦值語句非同時(shí)執(zhí)行。執(zhí)行賦值需要信號變化,并行賦值語句非同時(shí)執(zhí)行。5.5 IF語句概述語句概述 (1) IF 條件句條件句 Then 順序語句順序語句 END IF ; (2) IF 條件句條件句 Then 順序語句順序語句 ELSE 順序語句順序語句 END IF ; (

45、3) IF 條件句條件句 Then IF 條件句條件句 Then . END IF END IF (4) IF 條件句條件句 Then 順序語句順序語句ELSIF 條件句條件句 Then順序語句順序語句.ELSE 順序語句順序語句END IF 5.6 整數(shù)分頻電路設(shè)計(jì)整數(shù)分頻電路設(shè)計(jì)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DIV2 ISPORT (CLK_IN : IN STD_LOGIC; CLK_OUT : OUT STD_LOGIC);END ENTITY DIV2;偶

46、數(shù)分頻(偶數(shù)分頻(2分頻)電路設(shè)計(jì)分頻)電路設(shè)計(jì)ARCHITECTURE BEH OF DIV2 ISSIGNAL A : STD_LOGIC :=0;SIGNAL B : STD_LOGIC_VECTOR(3 DOWNTO 0) :=0000; BEGIN PROCESS(CLK_IN) BEGIN IF (CLK_INEVENT AND CLK_IN=1) THEN IF (B1) THEN B=B+1; ELSE A=NOT A; B0); END IF; END IF; END PROCESS; CLK_OUT=A;END BEH;【例例5-21】LIBRARY IEEE;USE IE

47、EE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DIV5 ISPORT (CLK : IN STD_LOGIC; K_OR,K1,K2 : OUT STD_LOGIC);END ENTITY DIV5;ARCHITECTURE BEH OF DIV5 IS SIGNAL C1,C2 : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL M1,M2 : STD_LOGIC; BEGIN U1: PROCESS(CLK,C1) BEGIN IF RISING_EDGE(CLK) THEN IF (C1

48、=100) THEN C1=000;ELSE C1=C1+1;END IF; IF (C1=001) THEN M1=NOT M1; ELSIF (C1=011) THEN M1=NOT M1; END IF; END IF; END PROCESS;奇數(shù)分頻(奇數(shù)分頻(5分頻)電路設(shè)計(jì)分頻)電路設(shè)計(jì)U2: PROCESS (CLK,C2) BEGIN IF FALLING_EDGE(CLK) THEN IF (C2=100) THEN C2=000; ELSE C2=C2+1; END IF; IF (C2=001) THEN M2=NOT M2; ELSIF (C2=011) THEN M

49、2=NOT M2; END IF; END IF; END PROCESS; K1=M1; K2=M2; K_ORnext_state,狀態(tài)機(jī)向下一狀態(tài)轉(zhuǎn)換的實(shí)現(xiàn),狀態(tài)機(jī)向下一狀態(tài)轉(zhuǎn)換的實(shí)現(xiàn)僅取決于時(shí)鐘信號的到來。僅取決于時(shí)鐘信號的到來。u下一狀態(tài)下一狀態(tài)next_state的具體取值(即的具體取值(即s0、s1、s2、s3),由其),由其他過程根據(jù)實(shí)際情況(輸入信號)來決定。他過程根據(jù)實(shí)際情況(輸入信號)來決定。主控時(shí)序過程:負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時(shí)鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)主控時(shí)序過程:負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在時(shí)鐘驅(qū)動下負(fù)責(zé)狀態(tài)轉(zhuǎn)換的過程。換的過程。comb_outputsstate_inputsreset

50、clkFSM:s_machineCOMnext_statecurrent_statePROCESSREGPROCESS3. 主控組合進(jìn)程(控制)主控組合進(jìn)程(控制) u 各進(jìn)程關(guān)系:若狀態(tài)機(jī)是一臺機(jī)床,主控時(shí)序進(jìn)程就是驅(qū)各進(jìn)程關(guān)系:若狀態(tài)機(jī)是一臺機(jī)床,主控時(shí)序進(jìn)程就是驅(qū)動電機(jī),動電機(jī),CLK信號為電機(jī)的功率導(dǎo)線,主控組合進(jìn)程則為信號為電機(jī)的功率導(dǎo)線,主控組合進(jìn)程則為機(jī)械加工部分。機(jī)械加工部分。u 主控組合進(jìn)程通過信號主控組合進(jìn)程通過信號current_state中的狀態(tài)值,進(jìn)入相中的狀態(tài)值,進(jìn)入相應(yīng)的狀態(tài),并在此狀態(tài)中根據(jù)外部的信號,向內(nèi)或者向外應(yīng)的狀態(tài),并在此狀態(tài)中根據(jù)外部的信號,向內(nèi)或者向

51、外發(fā)出控制信號,同時(shí)確定下一狀態(tài)的走向,即向發(fā)出控制信號,同時(shí)確定下一狀態(tài)的走向,即向next_state中賦入相應(yīng)的狀態(tài)值。中賦入相應(yīng)的狀態(tài)值。u 主控組合進(jìn)程也稱狀態(tài)主控組合進(jìn)程也稱狀態(tài)譯碼進(jìn)程譯碼進(jìn)程,根據(jù),根據(jù)外部輸入外部輸入的控制信的控制信號,包括來自狀態(tài)機(jī)外部的信號和來自狀態(tài)機(jī)內(nèi)部其他非號,包括來自狀態(tài)機(jī)外部的信號和來自狀態(tài)機(jī)內(nèi)部其他非主控的組合或時(shí)序進(jìn)程的信號,主控的組合或時(shí)序進(jìn)程的信號,或或/和當(dāng)前狀態(tài)的狀態(tài)值和當(dāng)前狀態(tài)的狀態(tài)值確確定下一狀態(tài)的取向,以定下一狀態(tài)的取向,以確定對外輸出或?qū)?nèi)部其他組合或確定對外輸出或?qū)?nèi)部其他組合或時(shí)序進(jìn)程輸出控制信號的內(nèi)容時(shí)序進(jìn)程輸出控制信號的

52、內(nèi)容comb_outputsstate_inputsresetclkFSM:s_machineCOMnext_statecurrent_statePROCESSREGPROCESS4. 輔助進(jìn)程輔助進(jìn)程 輔助進(jìn)程用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時(shí)序進(jìn)程。輔助進(jìn)程用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時(shí)序進(jìn)程。例如:例如:1. 為了完成某種算法的進(jìn)程為了完成某種算法的進(jìn)程2. 用于配合狀態(tài)機(jī)工作的其他時(shí)序進(jìn)程用于配合狀態(tài)機(jī)工作的其他時(shí)序進(jìn)程3. 為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存等。為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存等。【例例7-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENT

53、ITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT INTEGER RANGE 0 TO 15 );END s_machine;ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS (s0,s1,s2,s3,s4); -數(shù)據(jù)類型定義,狀態(tài)符號化數(shù)據(jù)類型定義,狀態(tài)符號化 SIGNAL c_st, next_state: FSM_ST;-將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型將現(xiàn)態(tài)和次態(tài)定

54、義為新的數(shù)據(jù)類型 BEGIN REG: PROCESS (reset,clk) -主控時(shí)序進(jìn)程主控時(shí)序進(jìn)程 BEGIN IF reset = 0 THEN c_st = s0;-檢測異步復(fù)位信號檢測異步復(fù)位信號 ELSIF clk=1 AND clkEVENT THEN c_st comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 01 THEN next_state=s1; ELSE next_state comb_output

55、s= 12; IF state_inputs = 10 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state COMB_OUTPUTS =9;NEXT_STATE NEXT_STATE =S0 END case; END PROCESS; END behv; 7.2 Moore型有限狀態(tài)機(jī)的設(shè)計(jì)型有限狀態(tài)機(jī)的設(shè)計(jì)從狀態(tài)機(jī)的信號輸出方式上分,從狀態(tài)機(jī)的信號輸出方式上分,Moore型和型和Mealy型兩類。型兩類。u 從輸

56、出時(shí)序上看,從輸出時(shí)序上看,Moore型屬于型屬于同步輸出狀態(tài)機(jī)同步輸出狀態(tài)機(jī),Mealy型型屬于屬于異步輸出狀態(tài)機(jī)異步輸出狀態(tài)機(jī)。u Moore型狀態(tài)機(jī)的輸出僅為當(dāng)前狀態(tài)的函數(shù),往往在輸入發(fā)型狀態(tài)機(jī)的輸出僅為當(dāng)前狀態(tài)的函數(shù),往往在輸入發(fā)生變化時(shí)還必須等待時(shí)鐘的到來,時(shí)鐘使?fàn)顟B(tài)發(fā)生變化時(shí)才生變化時(shí)還必須等待時(shí)鐘的到來,時(shí)鐘使?fàn)顟B(tài)發(fā)生變化時(shí)才導(dǎo)致輸出變化,比導(dǎo)致輸出變化,比Mealy機(jī)要多等一個(gè)周期。機(jī)要多等一個(gè)周期。u Mealy型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),它的輸出是在輸入變化后立即發(fā)生,不依賴時(shí)鐘的同步。它的輸出是在輸入變化后立

57、即發(fā)生,不依賴時(shí)鐘的同步。7.2.1 ADC采樣控制設(shè)計(jì)及采樣控制設(shè)計(jì)及多進(jìn)程有限狀態(tài)機(jī)多進(jìn)程有限狀態(tài)機(jī) u ADC采樣控制,傳統(tǒng)方法為單片機(jī)完成,其特點(diǎn)為編程簡采樣控制,傳統(tǒng)方法為單片機(jī)完成,其特點(diǎn)為編程簡單,控制靈活,但缺點(diǎn)是采樣控制需時(shí)較長。單,控制靈活,但缺點(diǎn)是采樣控制需時(shí)較長。u 采樣速度由采樣速度由ADC器件采樣轉(zhuǎn)換時(shí)間和采樣控制時(shí)間兩部分器件采樣轉(zhuǎn)換時(shí)間和采樣控制時(shí)間兩部分組成,僅采用轉(zhuǎn)換時(shí)間短的組成,僅采用轉(zhuǎn)換時(shí)間短的ADC器件并未能提高采樣速度,器件并未能提高采樣速度,還需要從采樣控制入手。還需要從采樣控制入手。u 基于基于FPGA的狀態(tài)機(jī)采樣控制設(shè)計(jì),由于控制狀態(tài)少,而且的

58、狀態(tài)機(jī)采樣控制設(shè)計(jì),由于控制狀態(tài)少,而且輸入時(shí)鐘信號可達(dá)輸入時(shí)鐘信號可達(dá)100MHz以上,可實(shí)現(xiàn)高速采樣控制。若以上,可實(shí)現(xiàn)高速采樣控制。若搭配高速搭配高速ADC采樣器件,可實(shí)現(xiàn)高速的數(shù)字信號處理。采樣器件,可實(shí)現(xiàn)高速的數(shù)字信號處理。例(例(P241242)AD674(15 s)和)和TLC5540(25 ns)7.2.1 ADC采樣控制設(shè)計(jì)及采樣控制設(shè)計(jì)及多進(jìn)程有限狀態(tài)機(jī)多進(jìn)程有限狀態(tài)機(jī) 圖圖7-3 ADC0809工作時(shí)序工作時(shí)序 7.2.1 ADC采樣控制設(shè)計(jì)及采樣控制設(shè)計(jì)及多進(jìn)程有限狀態(tài)機(jī)多進(jìn)程有限狀態(tài)機(jī) 1. START為轉(zhuǎn)換啟動控制信號,為轉(zhuǎn)換啟動控制信號,高電平有效。高電平有效。2

59、. ALE為模擬信號輸入選通端口為模擬信號輸入選通端口地址鎖存信號,上升沿有效。地址鎖存信號,上升沿有效。3. START有效后,狀態(tài)信號有效后,狀態(tài)信號EOC即變?yōu)榈碗娖?,表示進(jìn)入即變?yōu)榈碗娖?,表示進(jìn)入轉(zhuǎn)換狀態(tài),轉(zhuǎn)換時(shí)間約轉(zhuǎn)換狀態(tài),轉(zhuǎn)換時(shí)間約100s,轉(zhuǎn)換結(jié)束后,轉(zhuǎn)換結(jié)束后,EOC變?yōu)楦唠娖阶優(yōu)楦唠娖?. 外部控制使外部控制使OE從低電平變?yōu)閺牡碗娖阶優(yōu)楦唠娖?,此時(shí)輸出數(shù)據(jù)。高電平,此時(shí)輸出數(shù)據(jù)。7.2.1 ADC0809采樣控制采樣控制圖圖7-4 控制控制ADC0809采樣狀態(tài)圖采樣狀態(tài)圖 7.2 Moore型有限狀態(tài)機(jī)的設(shè)計(jì)型有限狀態(tài)機(jī)的設(shè)計(jì)1. 狀態(tài)狀態(tài)st2中需要對中需要對0809工

60、作工作狀態(tài)信號狀態(tài)信號EOC進(jìn)行監(jiān)測。進(jìn)行監(jiān)測。2. 低電平為轉(zhuǎn)換未結(jié)束,仍需低電平為轉(zhuǎn)換未結(jié)束,仍需在在st2中等待;高電平后說中等待;高電平后說明轉(zhuǎn)換結(jié)束,下一時(shí)鐘時(shí)轉(zhuǎn)明轉(zhuǎn)換結(jié)束,下一時(shí)鐘時(shí)轉(zhuǎn)換為換為st3。3. St3,由狀態(tài)機(jī)向,由狀態(tài)機(jī)向0809發(fā)出發(fā)出轉(zhuǎn)換好的轉(zhuǎn)換好的8位數(shù)據(jù)輸出允許位數(shù)據(jù)輸出允許指令,同時(shí)可作為數(shù)據(jù)輸出指令,同時(shí)可作為數(shù)據(jù)輸出穩(wěn)定周期,以便穩(wěn)定周期,以便st4中向鎖中向鎖存器鎖入數(shù)據(jù)。存器鎖入數(shù)據(jù)。4. St4,狀態(tài)機(jī)向鎖存器發(fā)出,狀態(tài)機(jī)向鎖存器發(fā)出鎖存信號,將鎖存信號,將0809輸出的數(shù)輸出的數(shù)據(jù)鎖存。據(jù)鎖存。圖圖7-5 采樣狀態(tài)機(jī)結(jié)構(gòu)框圖采樣狀態(tài)機(jī)結(jié)構(gòu)框圖 7

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論