![課件大三第8章vhdl狀態(tài)機_第1頁](http://file4.renrendoc.com/view/7080881ea8c4df26fa9fead602a2f5c8/7080881ea8c4df26fa9fead602a2f5c81.gif)
![課件大三第8章vhdl狀態(tài)機_第2頁](http://file4.renrendoc.com/view/7080881ea8c4df26fa9fead602a2f5c8/7080881ea8c4df26fa9fead602a2f5c82.gif)
![課件大三第8章vhdl狀態(tài)機_第3頁](http://file4.renrendoc.com/view/7080881ea8c4df26fa9fead602a2f5c8/7080881ea8c4df26fa9fead602a2f5c83.gif)
![課件大三第8章vhdl狀態(tài)機_第4頁](http://file4.renrendoc.com/view/7080881ea8c4df26fa9fead602a2f5c8/7080881ea8c4df26fa9fead602a2f5c84.gif)
![課件大三第8章vhdl狀態(tài)機_第5頁](http://file4.renrendoc.com/view/7080881ea8c4df26fa9fead602a2f5c8/7080881ea8c4df26fa9fead602a2f5c85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、EDA技術與VHDL 第8章VHDL狀態(tài)機 8.1 狀態(tài)機設計相關語句 8.1.1 類型定義語句 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 基本數(shù)據(jù)類型 ;或TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 ; TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ;TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; TYPE BOOLEAN IS
2、(FALSE,TRUE) ; 8.1 狀態(tài)機設計相關語句 8.1.1 類型定義語句 TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; SUBTYPE 子類型名 IS 基本數(shù)據(jù)類型 RANGE 約束范圍; SUBTYPE digits IS INTEGER RANGE 0 to 9 ; 8.1 狀態(tài)機設計相關語句 8.1.2 狀態(tài)機的優(yōu)勢 1狀態(tài)機克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點;2由于狀態(tài)機的結(jié)構(gòu)相對簡單,設計方案相對固定;3、狀態(tài)機容易構(gòu)成性能良好的同步時序邏輯模塊;4、與VHDL的其他描述方式相比
3、,狀態(tài)機的VHDL表述豐富多樣、程序?qū)哟畏置?,結(jié)構(gòu)清晰,易讀易懂;在排錯、修改和模塊移植方面也有其獨到的好處;5、在高速運算和控制方面,狀態(tài)機更有其巨大的優(yōu)勢。 6、高可靠性。 8.1 狀態(tài)機設計相關語句 8.1.3 狀態(tài)機結(jié)構(gòu) 1. 說明部分 ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; . 8.1 狀態(tài)機設計相關語句 8.1.3 狀態(tài)機結(jié)構(gòu) 2. 主控時序進程 圖5-1 一般狀態(tài)機結(jié)構(gòu)框圖 5.1 狀態(tài)機設計相關語句 5.1.3 狀態(tài)機結(jié)構(gòu) 3. 主控組合進程
4、 4. 輔助進程 【例5-1】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 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); -數(shù)據(jù)類型定義,狀態(tài)符號化 SIGNAL c
5、urrent_state, next_state: FSM_ST;-將現(xiàn)態(tài)和次態(tài)定義為新的數(shù)據(jù)類型BEGIN REG: PROCESS (reset,clk) -主控時序進程 BEGIN IF reset = 1 THEN current_state = s0;-檢測異步復位信號 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 THE
6、N next_state=s1; ELSE next_state comb_outputs= 12; IF state_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; 5.1 狀態(tài)機設計相關語句 5.1.3 狀態(tài)機結(jié)構(gòu) 圖5-2 例5-1狀態(tài)機的工作時序 0001001001001000Q3Q2Q
7、1Q01.需要設計一個4進制計數(shù)器-主控時序進程 用以產(chǎn)生系統(tǒng)的穩(wěn)態(tài)。2. 對計數(shù)器的輸出進行譯碼,產(chǎn)生需要的輸出-主控組合進程用以產(chǎn)生需要的輸出二、狀態(tài)機的結(jié)構(gòu) 因此, 狀態(tài)機的基本操作有兩種: (1) 狀態(tài)機內(nèi)部狀態(tài)轉(zhuǎn)換 狀態(tài)機的下一個狀態(tài),由當前狀態(tài)和輸入條件決定。 (2) 產(chǎn)生輸出信號序列 輸出信號由輸出譯碼器根據(jù)當前狀態(tài)和輸入條件決定。 在產(chǎn)生輸出的過程中,由是否使用輸入信號可以確定狀態(tài)機的類型。兩種典型的狀態(tài)機是摩爾(MOORE)狀態(tài)機和米立(MEALY)狀態(tài)機。 另外,還要有說明部分定義枚舉型數(shù)據(jù),用于狀態(tài)的表示輔助進程-用于計算、輸出鎖存等。次態(tài)邏輯 狀 態(tài) 寄 存 器輸出電路
8、輸出輸入反饋MOORE狀態(tài)機次態(tài)現(xiàn)態(tài)次態(tài)邏輯 狀 態(tài) 寄 存 器輸出電路輸出輸入反饋MEALY狀態(tài)機現(xiàn)態(tài)次態(tài)5.2 Moore 狀態(tài)機例、 多進程狀態(tài)機的VHDL設計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 ISPORT(CLK, RESET:IN STD_LOGIC; X:IN STD_LOGIC;Z:OUT STD_LOGIC);END MOORE1;ARCHITECTURE ART OF MOORE1 IS TYPE state IS (s0,s1,s2,s3); SIGNAL current_sate, next_s
9、tate: sate;說明部分s0s2s1s30/01/00/10/00/01/01/01/1x/zBEGINP1:PROCESS (CLK,reset) IS BEGINIF reset=1 THEN current_sate=st0; Elsif (CLK=1AND CLKEVENT) THEN current_satez=“0”; if X=0 then next_state=s1; else next_statez=“0”; if X=0 then next_state=s2; else next_statez=“0”; if X=0 then next_state=s3; else
10、next_statez=“1”; if X=0 then next_state=s0; else next_state=s2; End if;End case;End process P2;END ARCHITECTURE ART; 輸出Z僅與狀態(tài)st1,st1有關,與輸入信號X無關-MOORE型s0s2s1s30/01/00/10/00/01/01/01/1x/z例、 單進程狀態(tài)機的VHDL設計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 ISPORT(CLK,reset:IN STD_LOGIC; X:IN STD_LOGI
11、C;Z:OUT STD_LOGIC);END MOORE1;ARCHITECTURE ART OF MOORE1 IS TYPE state IS (s0,s1,s2,s3); SIGNAL current_sate: sate;BEGINP1:PROCESS (CLK) IS BEGINIF reset=1 THEN current_sate if X=0 then current_state=s1; else current_state=s3; End if; Z if X=0 then current_state=s2; else current_state=s0; End if;Zz=
12、“0”; if X=0 then current_state=s3; else current_state=s1; End if; Zz=“0”; if X=0 then current_state=s0; else current_state=s2; End if; Zcurrent_state=s0; end case;End if;End process;End art; 5.3 Mealy狀態(tài)機1. 與MOORE狀態(tài)機相比,MEALY狀態(tài)機的輸出變化要領先一個周期,即一旦輸入信號或狀態(tài)發(fā)生變化,輸出信號即刻發(fā)生變化。2. MOORE機與MEALY機在設計上基本相同。不同的是,在組合進程
13、中MEALY的輸出信號是 當前狀態(tài)和當前輸入的函數(shù)?!纠?米立狀態(tài)機的VHDL設計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 ISPORT(CLK,reset:IN STD_LOGIC; A:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END MEALY1;ARCHITECTURE ART OF MEALY1 IS TYPE states IS (s0,s1,s2,s3); SIGNAL stx: sates;BEGINP1:PROCESS (CLK) IS BEGINI
14、F reset=1 THEN current_sate if A=0 then states if A=1 then states if A=0 then states if A=1 then statesstx if X=0 then Q=“1000”; else Q if X=0 then Q=“1011”; else Q if X=0 then Q=“1010”; else Q if X=0 then Q=“1101”; else QQ=“0000”;End case;End process P1;END ART; 輸出Q不僅與狀態(tài)st0有關,還與輸入信號X有關-MEALY型【例】狀態(tài)機
15、的VHDL設計模型。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY S_MACHINE IS PORT(CLK,RESET:IN STD_LOGIC; A:IN STD_LOGIC_VECTOR(0 TO 1); Y:OUT STD_LOGIC_VECTOR(0 TO 1);END S_MACHINE;ARCHITECTURE ART OF S_MACHINE ISTYPE STATES IS (ST0,ST1,ST2,ST3); -定義STATES為枚舉型數(shù)據(jù)類型SIGNAL CURRENT_STATE,NEXT_STATE:STATES;BE
16、GINREG:PROCESS (RESET,CLK) IS -時序邏輯進程BEGINIF RESET=1 THEN CURRENT_STATE=ST0; -異步復位ELSIF (CLK=1 AND CLKEVENT) THENCURRENT_STATEY=“00”;-初始態(tài)譯碼輸出“00” IF A=“00” THEN -根據(jù)外部的狀態(tài)控制輸入“00”NEXT_STATE=ST0; -在下一時鐘后,進程REG的狀態(tài)將維持為 ST0ELSENEXT_STATEY=“01”;IF A =“00” THEN NEXT_STATE=ST1; ELSENEXT_STATEY=“10”;IF A=“11”THENNEXT_STATE=ST2;E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級上冊數(shù)學聽評課記錄 《平行四邊形》人教版
- 初中數(shù)學人教版九年級下冊同步聽評課記錄28-2-1 第1課時《 解直角三角形》
- 2025年筒式采煤機合作協(xié)議書
- 北師大版七年級下冊數(shù)學聽評課記錄:第六章《概率初步回顧與思考》
- 部審湘教版七年級數(shù)學下冊3.3 第2課時《利用完全平方公式進行因式分解》聽評課記錄
- 青島版數(shù)學七年級下冊《10.1 認識二元一次方程組》聽評課記錄2
- 人教版道德與法治八年級上冊5.3《善用法律》聽課評課記錄
- 湘教版數(shù)學九年級上冊4.1.2《正弦》聽評課記錄
- 五年級上數(shù)學聽評課記錄
- 土地復墾合同范本
- 交通信號控制系統(tǒng)檢驗批質(zhì)量驗收記錄表
- Bankart損傷的診療進展培訓課件
- 護理部用藥安全質(zhì)量評價標準
- 校園信息化設備管理檢查表
- 新版抗拔樁裂縫及強度驗算計算表格(自動版)
- API SPEC 5DP-2020鉆桿規(guī)范
- 創(chuàng)新思維課件(完整版)
- DB34∕T 4161-2022 全過程工程咨詢服務管理規(guī)程
- 部編版小學生語文教師:統(tǒng)編版語文1-6年級語文要素梳理
- 注塑成型工藝參數(shù)知識講解
- 安全生產(chǎn)專業(yè)化管理
評論
0/150
提交評論