答疑與有限狀態(tài)機(jī)設(shè)計(jì)_第1頁
答疑與有限狀態(tài)機(jī)設(shè)計(jì)_第2頁
答疑與有限狀態(tài)機(jī)設(shè)計(jì)_第3頁
答疑與有限狀態(tài)機(jī)設(shè)計(jì)_第4頁
答疑與有限狀態(tài)機(jī)設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1問題探討全成斌存在的問題nSignal vs variablen對LE認(rèn)識n資源是有限的240個(gè)LEn狀態(tài)機(jī)23硬件描述與軟件不同之處n信號n硬件連線的抽象n連接電路中元件n并行語句n多個(gè)語句同時(shí)執(zhí)行n對應(yīng)于電路中的不同部分ab4FPGA的基本單元Out D Q Clock Select 觸發(fā)器In1 In2 In3 LUT 組合邏輯塊組合邏輯塊5有限狀態(tài)機(jī)設(shè)計(jì) 61 一般有限狀態(tài)機(jī)1.1 類型定義語句TYPEnTYPE語句用法nTYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 ;nTYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 ;n舉例1. TYPE st1 IS ARRAY ( 0

2、 TO 15 ) OF STD_LOGIC ;2. TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; n子類型Subtype是原數(shù)據(jù)類型的一個(gè)子集 Subtype 子類型名 Is 基本數(shù)據(jù)類型 Range 約束范圍; Subtype Digits Is Integer Range 0 To 9 ; 7枚舉數(shù)據(jù)類型n屬于自定義數(shù)據(jù)類型n枚舉數(shù)據(jù)類型常用于狀態(tài)機(jī)描述type stats is (S0, S1, S2, S3); - 定義狀態(tài)機(jī)的四個(gè)狀態(tài)Signal current_state,next_state:stats81.2 為什么要使用狀態(tài)機(jī) 1、

3、狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。、狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。2、狀態(tài)機(jī)的結(jié)構(gòu)相對簡單,設(shè)計(jì)方案相對固定。、狀態(tài)機(jī)的結(jié)構(gòu)相對簡單,設(shè)計(jì)方案相對固定。3、狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。、狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。4、狀態(tài)機(jī)的、狀態(tài)機(jī)的VHDL表述豐富多樣、有其獨(dú)到的好處。表述豐富多樣、有其獨(dú)到的好處。5、在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢。、在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢。6、高可靠性。、高可靠性。9狀態(tài)機(jī)實(shí)例狀態(tài)機(jī)實(shí)例 ADC0809采樣狀態(tài)機(jī)采樣狀態(tài)機(jī)10簡單計(jì)算器狀態(tài)機(jī)111.3 一般狀態(tài)機(jī)的結(jié)

4、構(gòu) 1. 說明部分說明部分 說明部分一般放在結(jié)構(gòu)體的說明部分一般放在結(jié)構(gòu)體的ARCHITECTURE 和和BEGIN之之間,例如:間,例如:ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 一般用枚舉數(shù)據(jù)類型描述狀態(tài)機(jī)的狀態(tài);一般用枚舉數(shù)據(jù)類型描述狀態(tài)機(jī)的狀態(tài); 用一個(gè)信號存儲當(dāng)前狀態(tài)。用一個(gè)信號存儲當(dāng)前狀態(tài)。121.3 一般狀態(tài)機(jī)的結(jié)構(gòu)2. 主控時(shí)序進(jìn)程主控時(shí)序進(jìn)程 描述在時(shí)鐘的驅(qū)動(dòng)下,狀態(tài)轉(zhuǎn)換的進(jìn)程描述在時(shí)鐘的驅(qū)動(dòng)下,狀態(tài)轉(zhuǎn)換的進(jìn)程comb_outputsst

5、ate_inputsresetclkFSM:s_machineCOMnext_statecurrent_statePROCESSREGPROCESS圖圖1 一般狀態(tài)機(jī)結(jié)構(gòu)框圖一般狀態(tài)機(jī)結(jié)構(gòu)框圖 131.3 一般狀態(tài)機(jī)的結(jié)構(gòu)3. 主控組合進(jìn)程主控組合進(jìn)程n給出狀態(tài)機(jī)輸出給出狀態(tài)機(jī)輸出n確定下一狀態(tài)的走向確定下一狀態(tài)的走向4. 輔助進(jìn)程輔助進(jìn)程 輔助狀態(tài)機(jī)工作的進(jìn)程,比如數(shù)據(jù)鎖存輔助狀態(tài)機(jī)工作的進(jìn)程,比如數(shù)據(jù)鎖存14【例例1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT ( clk,reset : IN STD_

6、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); -數(shù)據(jù)類型定義,狀態(tài)符號化數(shù)據(jù)類型定義,狀態(tài)符號化 SIGNAL current_state, next_state: FSM_ST;-將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型接下頁接下頁BEGIN REG: PROCESS (

7、reset,clk) -主控時(shí)序進(jìn)程主控時(shí)序進(jìn)程 BEGIN IF reset = 1 THEN current_state = s0;-檢測異步復(fù)位信號檢測異步復(fù)位信號 ELSIF clk=1 AND clkEVENT THEN current_state comb_outputs= 5; IF state_inputs = 00 THEN next_state=s0; ELSE next_state comb_outputs= 8; IF state_inputs = 00 THEN next_state=s1; ELSE next_state comb_outputs= 12; IF s

8、tate_inputs = 11 THEN next_state = s0; ELSE next_state comb_outputs = 14; IF state_inputs = 11 THEN next_state = s3; ELSE next_state = s0; END IF; END case; END PROCESS; END behv; 16兩種狀態(tài)機(jī)nMoore型狀態(tài)機(jī)n輸出信號僅與當(dāng)前狀態(tài)有關(guān)nMealy型狀態(tài)機(jī)n輸出信號由當(dāng)前狀態(tài)與輸入共同決定。172 Moore2 Moore狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 2.1 MooreMoore狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 圖圖2 ADC080

9、9工作時(shí)序工作時(shí)序 182 Moore2 Moore狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 2.1 MooreMoore狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 圖圖3 控制控制ADC0809采樣狀態(tài)圖采樣狀態(tài)圖 【例例2】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -來自來自0809轉(zhuǎn)換好的轉(zhuǎn)換好的8位數(shù)據(jù)位數(shù)據(jù)CLK : IN STD_LOGIC; -狀態(tài)機(jī)工作時(shí)鐘狀態(tài)機(jī)工作時(shí)鐘EOC : IN STD_LOGIC; -轉(zhuǎn)換狀態(tài)指示,低電平表示正在轉(zhuǎn)換轉(zhuǎn)換狀態(tài)指示,低電平表

10、示正在轉(zhuǎn)換ALE : OUT STD_LOGIC; -8個(gè)模擬信號通道地址鎖存信號個(gè)模擬信號通道地址鎖存信號START : OUT STD_LOGIC; -轉(zhuǎn)換開始信號轉(zhuǎn)換開始信號OE : OUT STD_LOGIC; -數(shù)據(jù)輸出數(shù)據(jù)輸出3態(tài)控制信號態(tài)控制信號ADDA : OUT STD_LOGIC; -信號通道最低位控制信號信號通道最低位控制信號LOCK0 : OUT STD_LOGIC; -觀察數(shù)據(jù)鎖存時(shí)鐘觀察數(shù)據(jù)鎖存時(shí)鐘Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位數(shù)據(jù)輸出位數(shù)據(jù)輸出END ADCINT;ARCHITECTURE behav OF AD

11、CINT ISTYPE states IS (st0, st1, st2, st3,st4) ; -定義各狀態(tài)子類型定義各狀態(tài)子類型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時(shí)鐘信號轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時(shí)鐘信號 接下頁接下頁20BEGINADDA = 1;-當(dāng)當(dāng)ADDA=0,模擬信號進(jìn)入通道,模擬信號進(jìn)入通道IN0;當(dāng);當(dāng)ADDA=1,則進(jìn)入通道,則進(jìn)入通道IN1Q = REGL;

12、 LOCK0 ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0;OE=0; IF (EOC=1) THEN next_state = st3; -EOC=1表明轉(zhuǎn)換結(jié)束表明轉(zhuǎn)換結(jié)束 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = st0; END CASE ; END PROCESS COM

13、; REG: PROCESS (CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN current_state=next_state; END IF; END PROCESS REG ; - 由信號由信號current_state將當(dāng)前狀態(tài)值帶出此進(jìn)程將當(dāng)前狀態(tài)值帶出此進(jìn)程:REG LATCH1: PROCESS (LOCK) - 此進(jìn)程中,在此進(jìn)程中,在LOCK的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入的上升沿,將轉(zhuǎn)換好的數(shù)據(jù)鎖入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS LATCH1 ;

14、 END behav; 212 Moore2 Moore狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 2.1 MooreMoore狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 圖圖4 ADC0809采樣狀態(tài)機(jī)工作時(shí)序采樣狀態(tài)機(jī)工作時(shí)序 【例例4】 Mealy狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY1;ARCHITECTURE behav OF MEALY1 IS TYPE

15、states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -決定轉(zhuǎn)換狀態(tài)的進(jìn)程決定轉(zhuǎn)換狀態(tài)的進(jìn)程 IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN = 1 THEN Q = 10000 ; ELSE Q IF D

16、ATAIN = 0 THEN Q = 10111 ; ELSE Q IF DATAIN = 1 THEN Q = 10101 ; ELSE Q IF DATAIN = 0 THEN Q = 11011 ; ELSE Q IF DATAIN = 1 THEN Q = 11101 ; ELSE Q Q=00000 ; END CASE ; END PROCESS COM1 ;END behav; 3 Mealy狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 233 Mealy3 Mealy狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì) 圖圖5 例例4狀態(tài)機(jī)工作時(shí)序圖狀態(tài)機(jī)工作時(shí)序圖 24【例例5】將將Q鎖存后再輸出,改善毛刺現(xiàn)象。鎖存后再輸出,改善

17、毛刺現(xiàn)象。LIBRARY IEEE; -MEALY FSMUSE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);END MEALY2;ARCHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0);

18、BEGIN COMREG : PROCESS(CLK,RESET) -決定轉(zhuǎn)換狀態(tài)的進(jìn)程決定轉(zhuǎn)換狀態(tài)的進(jìn)程 BEGIN IF RESET =1 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX IF DATAIN = 0 THEN STX IF DATAIN = 1 THEN STX STX IF DATAIN=1 THEN Q2 :=10000; ELSE Q2:=01010; END IF; WHEN st1= IF DATAIN=0 THEN Q2 :=10111; ELSE Q2:=10100; END IF; WHEN st2= IF DATAIN=1 THEN Q2 :=10101; ELSE Q2:=10011; END IF; WHEN st3= IF DATAI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論