




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章有限狀態(tài)機(jī)的VHDL設(shè)計(jì)主要內(nèi)容有限狀態(tài)機(jī)的基本概念一般有限狀態(tài)機(jī)的設(shè)計(jì)摩爾狀態(tài)機(jī)設(shè)計(jì)米立狀態(tài)機(jī)設(shè)計(jì)無(wú)限狀態(tài)機(jī)用于混沌系統(tǒng)非線性系統(tǒng)本書(shū)不要求8.1有限狀態(tài)機(jī)的基本概念8.1.1有限狀態(tài)機(jī)的基本結(jié)構(gòu)和功能
有限狀態(tài)機(jī)(FiniteStateMachine,簡(jiǎn)稱(chēng)FSM)是數(shù)字邏輯電路以及數(shù)字系統(tǒng)的重要組成部分,尤其應(yīng)用于數(shù)字系統(tǒng)核心部件的設(shè)計(jì),以實(shí)現(xiàn)高效率高可靠性的邏輯控制。有限狀態(tài)機(jī)實(shí)現(xiàn)了以下兩個(gè)基本功能:根據(jù)當(dāng)前狀態(tài)和輸入條件決定狀態(tài)機(jī)的內(nèi)部狀態(tài)轉(zhuǎn)換。根據(jù)當(dāng)前狀態(tài)和輸入條件確定產(chǎn)生輸出信號(hào)序列。8.1有限狀態(tài)機(jī)的基本概念(續(xù))8.1.2狀態(tài)機(jī)的狀態(tài)編碼有限狀態(tài)機(jī)設(shè)計(jì)是基于狀態(tài)描述的,因此首先必須對(duì)系統(tǒng)中的每一個(gè)工作狀態(tài)有一個(gè)合理的表達(dá)。對(duì)于設(shè)計(jì)者而言,為了表達(dá)簡(jiǎn)捷方便通常使用符號(hào)化狀態(tài)機(jī)。二進(jìn)制編碼方案:是用N位二進(jìn)制數(shù),表示M個(gè)工作狀態(tài),當(dāng)然必須滿(mǎn)足2N大于等于M。一位熱碼編碼方案(獨(dú)熱碼編碼):用N位二進(jìn)制數(shù)表示N個(gè)狀態(tài),每一位編碼對(duì)應(yīng)一個(gè)觸發(fā)器,狀態(tài)機(jī)中的每個(gè)狀態(tài)都由其中一個(gè)觸發(fā)器的狀態(tài)來(lái)表示。例:二進(jìn)制101(5)轉(zhuǎn)換為獨(dú)熱碼為11111(5個(gè))1101111118.1.3有限狀態(tài)機(jī)的技術(shù)優(yōu)勢(shì)設(shè)計(jì)方案相對(duì)固定,結(jié)構(gòu)模式簡(jiǎn)單,可定義符號(hào)化枚舉類(lèi)型的狀態(tài)。狀態(tài)機(jī)的VHDL描述層次分明,結(jié)構(gòu)清晰,易讀易懂?;谟邢逘顟B(tài)機(jī)技術(shù)設(shè)計(jì)的控制器其工作速度大大優(yōu)于CPU。基于有限狀態(tài)機(jī)技術(shù)設(shè)計(jì)的控制器其可靠性也優(yōu)于CPU。二進(jìn)制:速度慢,位數(shù)少,節(jié)省資源獨(dú)熱碼:快多浪費(fèi)CASE語(yǔ)句:并行處理,程序最穩(wěn)定,能用則用=:賦值=》:8.2一般有限狀態(tài)機(jī)的設(shè)計(jì)8.2.1一般有限狀態(tài)機(jī)的VHDL組成
說(shuō)明部分:主要是設(shè)計(jì)者使用TYPE語(yǔ)句定義新的數(shù)據(jù)類(lèi)型,如:
TYPEstatesIS(st0,st1,st2,st3,st4,st5);
SIGNALpresent_state,next_state:states;主控時(shí)序邏輯部分:任務(wù)是負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)和在外部時(shí)鐘驅(qū)動(dòng)下實(shí)現(xiàn)內(nèi)部狀態(tài)轉(zhuǎn)換的進(jìn)程。時(shí)序進(jìn)程的實(shí)質(zhì)是一組觸發(fā)器,因此,該進(jìn)程中往往也包括一些清零或置位的輸入控制信號(hào),如Reset信號(hào)。主控組合邏輯部分:任務(wù)是根據(jù)狀態(tài)機(jī)外部輸入的狀態(tài)控制信號(hào)(包括來(lái)自外部的和狀態(tài)機(jī)內(nèi)部的非進(jìn)程的信號(hào))和當(dāng)前的狀態(tài)值current_state來(lái)確定下一狀態(tài)next_state的取值內(nèi)容,以及對(duì)外部或?qū)?nèi)部其他進(jìn)程輸出控制信號(hào)的內(nèi)容。輔助邏輯部分:輔助邏輯部分主要是用于配合狀態(tài)機(jī)的主控組合邏輯和主控時(shí)序邏輯進(jìn)行工作,以完善和提高系統(tǒng)的性能。8.2.2一般有限狀態(tài)機(jī)的設(shè)計(jì)示例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
ENTITYtwo_process_state_machineIS(tpsmIS)
PORT(clk,reset:INSTD_LOGIC; state_inputs:INSTD_LOGIC; comb_outputs:OUTSTD_LOGIC_VECTOR(0TO1));ENDENTITYtwo_process_state_machine;
ARCHITECTURE
behv
OFtwo_process_state_machineIS
TYPEstatesIS(st0,st1,st2,st3);--定義states為枚舉型數(shù)據(jù)類(lèi)型,構(gòu)造符號(hào)化狀態(tài)機(jī) SIGNALcurrent_state,next_state:states;BEGINREG:PROCESS(reset,clk)--時(shí)序邏輯進(jìn)程
BEGIN
IFreset='1'THEN--異步復(fù)位
current_state<=st0;
ELSIF
clk='1'AND
clk'EVENT
THEN--出現(xiàn)時(shí)鐘上升沿時(shí)進(jìn)行狀態(tài)轉(zhuǎn)換
current_state<=next_state;
ENDIF;
ENDPROCESS;例8.1二進(jìn)程一般狀態(tài)機(jī)的描述。8.2.2一般有限狀態(tài)機(jī)的設(shè)計(jì)示例(續(xù)1)COM:PROCESS(current_state,state_inputs)--組合邏輯進(jìn)程 BEGIN
CASEcurrent_stateIS
WHENst0=>comb_outputs<="00";--系統(tǒng)輸出及其初始化
IFstate_inputs='0'THEN--根據(jù)外部輸入條件決定狀態(tài)轉(zhuǎn)換方向
next_state<=st0;
ELSEnext_state<=st1;
ENDIF;
WHENst1=>comb_outputs<="01";
IFstate_inputs=‘0’THEN
next_state<=st1;
ELSEnext_state<=st2;
ENDIF;
WHENst2=>comb_outputs<="10";
IFstate_inputs=‘0’THEN
next_state<=st2;
ELSEnext_state<=st3;
ENDIF;
WHENst3=>comb_outputs<="11";
IFstate_inputs=‘0’THEN
next_state<=st3;
ELSEnext_state<=st0;
ENDIF;
ENDCASE; ENDPROCESS;ENDARCHITECTURE
behv;例8.1二進(jìn)程一般狀態(tài)機(jī)的描述。8.2.2一般有限狀態(tài)機(jī)的設(shè)計(jì)示例(續(xù)2)例8.1二進(jìn)程一般狀態(tài)機(jī)的描述。例8.1的狀態(tài)轉(zhuǎn)換圖例8.1的時(shí)序仿真圖例8.1的RTL圖8.3摩爾狀態(tài)機(jī)設(shè)計(jì)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfour_state_moore_state_machineIS PORT(
Clk:INSTD_LOGIC; Input:INSTD_LOGIC; reset :INSTD_LOGIC; output:OUT STD_LOGIC_VECTOR(1DOWNTO0) );ENDENTITY;
ARCHITECTURErtlOFfour_state_moore_state_machineIS --定義枚舉類(lèi)型的狀態(tài)機(jī)
TYPEstate_typeIS(s0,s1,s2,s3); --定義一個(gè)信號(hào)保存當(dāng)前工作狀態(tài)
SIGNALstate:state_type;
從狀態(tài)機(jī)的信號(hào)輸出方式上看,可以將狀態(tài)機(jī)分為摩爾型(Moore)和米立型(Mealy)狀態(tài)機(jī)。摩爾型有限狀態(tài)機(jī)輸出只與當(dāng)前狀態(tài)有關(guān),而與輸入信號(hào)的當(dāng)前值無(wú)關(guān),是嚴(yán)格的現(xiàn)態(tài)函數(shù)。例8.2四狀態(tài)摩爾型有限狀態(tài)機(jī)的描述。8.3摩爾狀態(tài)機(jī)設(shè)計(jì)(續(xù)1)BEGIN
PROCESS(clk,reset)
--狀態(tài)轉(zhuǎn)換的時(shí)序進(jìn)程
BEGIN
IFreset='1'THEN state<=s0;
ELSIF(clk'EVENTandclk='1')THEN
CASEstateIS
WHENs0=> IFinput='1'THEN state<=s1;
ELSE state<=s0;
ENDIF;
WHENs1=> IFinput='1'THEN state<=s2;
ELSE state<=s1;
ENDIF;
WHENs2=> IFinput='1'THEN state<=s3;
ELSE state<=s2;
ENDIF;
WHENs3=> IFinput='1'THEN state<=s0;
ELSE state<=s3;
ENDIF;
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(state)
--輸出由當(dāng)前狀態(tài)唯一決定的組合邏輯進(jìn)程
BEGIN
CASEstateIS
WHENs0=> output<="00";
WHENs1=> output<="01";
WHENs2=> output<="10";
WHENs3=> output<="11";
ENDCASE;
ENDPROCESS;END
rtl;例8.2四狀態(tài)摩爾型有限狀態(tài)機(jī)的描述。8.3摩爾狀態(tài)機(jī)設(shè)計(jì)(續(xù)2)例8.2四狀態(tài)摩爾型有限狀態(tài)機(jī)的描述。例8.2的時(shí)序仿真圖8.4米立狀態(tài)機(jī)設(shè)計(jì)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfour_state_mealy_state_machineIS
PORT (
clk :INSTD_LOGIC; input :INSTD_LOGIC; reset :INSTD_LOGIC; output :OUTSTD_LOGIC_VECTOR(1DOWNTO0) );ENDENTITY;
ARCHITECTURE
rtl
OFfour_state_mealy_state_machineIS --定義枚舉類(lèi)型的狀態(tài)機(jī)
TYPEstate_typeIS(s0,s1,s2,s3); --定義一個(gè)信號(hào)保存當(dāng)前工作狀態(tài)
SIGNALstate:state_type;
米立狀態(tài)機(jī)的輸出是現(xiàn)態(tài)和所有輸入的函數(shù),輸出隨輸入變化而隨時(shí)發(fā)生變化。因此,從時(shí)序的角度上看,米立狀態(tài)機(jī)屬于異步輸出的狀態(tài)機(jī),輸出不依賴(lài)于系統(tǒng)時(shí)鐘,也不存在摩爾狀態(tài)機(jī)中輸出滯后一個(gè)時(shí)鐘周期來(lái)反映輸入變化的問(wèn)題。例8.3四狀態(tài)米立狀態(tài)機(jī)的描述。8.4米立狀態(tài)機(jī)設(shè)計(jì)(續(xù)1)BEGINREG:PROCESS(clk,reset)
BEGIN
IFreset=‘1’THEN
state<=s0;--高電平有效的系統(tǒng)異步復(fù)位
ELSIF(rising_edge(clk))THEN
CASEstateIS
--依據(jù)當(dāng)前狀態(tài)和輸入信號(hào)同步?jīng)Q定下一個(gè)狀態(tài)
WHENs0=> IFinput='0'THEN state<=s0;
ELSE state<=s1;
ENDIF;
WHENs1=> IFinput='0'THEN state<=s1;
ELSE state<=s2;
ENDIF;
WHENs2=> IFinput='0'THEN state<=s2;
ELSE state<=s3;
ENDIF;
WHENs3=> IFinput='0'THEN state<=s3;
ELSE state<=s0;
ENDIF;
ENDCASE;
ENDIF;
ENDPROCESS;例8.3四狀態(tài)米立狀態(tài)機(jī)的描述。8.4米立狀態(tài)機(jī)設(shè)計(jì)(續(xù)2)COM:PROCESS(state,input)
--依據(jù)當(dāng)前狀態(tài)和輸入信號(hào)決定輸出信號(hào),與時(shí)鐘無(wú)關(guān)
BEGIN
CASEstateIS
WHENs0=> IFinput='0'THEN output<="00";
ELSE output<="01";
ENDIF;
WHENs1=> IFinput='0'THEN
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋住建委合同范本
- 攝影勞動(dòng)合同范本
- 深入了解航空運(yùn)輸合同條款與規(guī)定
- 資產(chǎn)托管代理合同樣本
- 購(gòu)買(mǎi)保險(xiǎn)合同范本
- 合伙餐館協(xié)議合同范本
- 農(nóng)村平房銷(xiāo)售合同范例
- 勞務(wù)派遣員工合同合同范例
- 個(gè)人車(chē)庫(kù)維修合同范例
- 修公路土石方工程合同范例
- 70歲換證三力測(cè)試題附答案
- 內(nèi)蒙古自治區(qū)義務(wù)教育課程設(shè)置計(jì)劃
- 醫(yī)療機(jī)構(gòu)病歷管理規(guī)定()
- 銷(xiāo)售的五大流程
- 初二力學(xué)練習(xí)冊(cè)-題答案
- 【超星爾雅學(xué)習(xí)通】《語(yǔ)言與文化》2020章節(jié)測(cè)試題及答案
- 中國(guó)近代史 馬工程課件09第九章 國(guó)共合作與國(guó)民革命
- GB/T 40802-2021通用鑄造碳鋼和低合金鋼鑄件
- GB/T 25216-2010煤與瓦斯突出危險(xiǎn)性區(qū)域預(yù)測(cè)方法
- GIS數(shù)據(jù)輸入課件
- 《農(nóng)業(yè)保險(xiǎn)學(xué)》第3章國(guó)外農(nóng)業(yè)保險(xiǎn)發(fā)展概況
評(píng)論
0/150
提交評(píng)論