電子設(shè)計(jì)自動(dòng)化第五章.ppt_第1頁
電子設(shè)計(jì)自動(dòng)化第五章.ppt_第2頁
電子設(shè)計(jì)自動(dòng)化第五章.ppt_第3頁
電子設(shè)計(jì)自動(dòng)化第五章.ppt_第4頁
電子設(shè)計(jì)自動(dòng)化第五章.ppt_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第五章 有限狀態(tài)機(jī)設(shè)計(jì),第一節(jié) 一般狀態(tài)機(jī)的設(shè)計(jì),一、 1、數(shù)據(jù)類型定義語句,子類型SUBTYPE的語句格式如下: SUBTYPE 子類型名 IS 基本數(shù)據(jù)類型 RANGE 約束范圍; SUBTYPE digits IS INTEGER RANGE 0 to 9 ;,2、枚舉類型 枚舉類型是用文字符號(hào)來表示一組實(shí)際的二進(jìn)制數(shù)。 TYPE m_state IS (s0,s1,s2,s3); SIGNAL current_state, next_state: m_state ;,二、有限狀態(tài)機(jī)的優(yōu)越性, 有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。 狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單。 狀態(tài)機(jī)容

2、易構(gòu)成性能良好的同步時(shí)序邏輯模塊。 狀態(tài)機(jī)的VHDL表述豐富多樣。 在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢(shì)。 就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的。,三、一般狀態(tài)機(jī)的設(shè)計(jì),最常用的狀態(tài)機(jī)通常包含說明部分、主控時(shí)序進(jìn)程、主控組合進(jìn)程、輔助進(jìn)程幾部分。,(1)說明部分 完成對(duì)新數(shù)據(jù)類型(狀態(tài)類型,即狀態(tài)名)和狀態(tài)變量的定義 TYPE STATE IS (IDLE,DECISION,READ,WRITE) -枚舉狀態(tài)類型 SIGNAL PRESENT_STATE,NEXT_STATE:STATE ; -定義信號(hào),(2)主控時(shí)序進(jìn)程 完成當(dāng)前狀態(tài)向下一個(gè)的躍遷,但不負(fù)責(zé)進(jìn)入下一狀態(tài)的具體狀態(tài)

3、取值,只是在時(shí)鐘沿到來時(shí),當(dāng)前狀態(tài)進(jìn)入下一個(gè)狀態(tài)。 在這一部分也可完成同步或異步清零或置位方面的控制信號(hào)。,(3)主控組合進(jìn)程 根據(jù)外部輸入的控制信號(hào)(包括來自狀態(tài)機(jī)的外部信號(hào)和來自狀態(tài)機(jī)內(nèi)部其它非主控的組合或時(shí)序進(jìn)程的信號(hào))、或(和)當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)的取向,以及確定對(duì)外輸出或?qū)?nèi)部其它組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。,(4)輔助進(jìn)程:用于配合狀態(tài)機(jī)工作的其他組合進(jìn)程和時(shí)序進(jìn)程。,狀態(tài)機(jī)的建立過程,一、利用可枚舉的狀態(tài)類型定義信號(hào) TYPE STATE IS (IDLE,DECISION,READ,WRITE) -枚舉狀態(tài)類型 SIGNAL PRESENT_STATE,NEXT_

4、STATE:STATE TYPE -定義信號(hào),二、建立狀態(tài)機(jī)的主控時(shí)序進(jìn)程和主控組合進(jìn)程,主控時(shí)序進(jìn)程完成進(jìn)程的躍遷,主控組合進(jìn)程定義狀態(tài)的轉(zhuǎn)移方向和輸出。由于次態(tài)是現(xiàn)態(tài)及輸入信號(hào)的函數(shù),所以狀態(tài)均為進(jìn)程的敏感信號(hào)。 STATE_COMB: PROCESS (PRESENT_STATE,READ,WRITE,IDLE) BEGIN END PROCESS STATE_COMB;,三、在主控組合進(jìn)程中定義狀態(tài)的轉(zhuǎn)移,在進(jìn)程中插入CASE WHEN 語句,因?yàn)榭臻e語句是狀態(tài)的起點(diǎn)和終點(diǎn),因此,作為WHEN 之后的第一項(xiàng),再列出狀態(tài)轉(zhuǎn)移到其他狀態(tài)的條件,即可寫出狀態(tài)轉(zhuǎn)移的流程。,第二節(jié) Moore型

5、有限狀態(tài)機(jī)的設(shè)計(jì),從狀態(tài)機(jī)的信號(hào)輸出方式分:Moore型和Mealy型兩類狀態(tài)機(jī)。從輸出時(shí)序上看,前者屬于同步輸出狀態(tài)機(jī),后者屬于異步輸出狀態(tài)機(jī)。 Mealy型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和所有輸入信號(hào)的函數(shù),它的輸出是在輸入變化后立即發(fā)生的,不依賴時(shí)鐘的同步。 Moore型狀態(tài)機(jī)的輸出僅為當(dāng)前狀態(tài)的函數(shù),這類狀態(tài)機(jī)在輸入發(fā)生變化后還必須等待時(shí)鐘的到來,時(shí)鐘使?fàn)顟B(tài)發(fā)生變化時(shí)才導(dǎo)致輸出的變化所以比Mealy型狀態(tài)機(jī)要多等待一個(gè)時(shí)鐘周期。,一、三進(jìn)程有限狀態(tài)機(jī) 以A/D采樣控制器的設(shè)計(jì)為例 1、應(yīng)用狀態(tài)機(jī)設(shè)計(jì)控制器方法簡(jiǎn)述 (1)分析控制器設(shè)計(jì)指標(biāo),建立系統(tǒng)算法模型圖; (2)分析被控對(duì)象的時(shí)序狀態(tài),確

6、定控制器有限狀態(tài)機(jī)的各個(gè)狀態(tài),及輸入/輸出條件; (3)應(yīng)用VHDL語言完成描述。,2、 AD0809采樣控制器的設(shè)計(jì),ADC0809為單極性輸入,8位轉(zhuǎn)換逐次逼近A/D轉(zhuǎn)換器,可對(duì)05V的INT0INT7的8路模擬信號(hào)分時(shí)進(jìn)行轉(zhuǎn)換,完成一次轉(zhuǎn)換的時(shí)間約為100微秒。 其中D7D0為A/D變換數(shù)據(jù)輸出;ADD-CBA為8路通道選擇地址;START信號(hào)是轉(zhuǎn)換啟動(dòng)信號(hào),上升沿有效;EOC為狀態(tài)結(jié)束標(biāo)志,低電平轉(zhuǎn)為高電平時(shí)轉(zhuǎn)換結(jié)束;OE為數(shù)據(jù)輸出允許信號(hào),高電平有效; ALE為地址鎖存允許信號(hào);LOCK為數(shù)據(jù)鎖存信號(hào)。 在轉(zhuǎn)換開始前,ADC0809需要在ALE上升沿控制下,將3位8路通道選擇地址鎖入

7、鎖存器,以確定轉(zhuǎn)換信號(hào)通道;然后在時(shí)鐘的下降沿產(chǎn)生START信號(hào)啟動(dòng)轉(zhuǎn)換,這時(shí)ADC0809的EOC信號(hào)由高電平轉(zhuǎn)為低電平,開始數(shù)據(jù)轉(zhuǎn)換,直到EOC信號(hào)低電平轉(zhuǎn)為高電平時(shí)轉(zhuǎn)換結(jié)束;之后使能OE信號(hào),使轉(zhuǎn)換數(shù)據(jù)輸出。,系統(tǒng)級(jí)的設(shè)計(jì)是控制器設(shè)計(jì)的步驟: 第一步,是將控制器指標(biāo)規(guī)范用自然語言描述,并將其語言描述轉(zhuǎn)換為真值表、狀態(tài)圖或算法模型的過程。 對(duì)于VHDL語言來說,系統(tǒng)級(jí)的設(shè)計(jì)就是用一系列相互關(guān)聯(lián)的進(jìn)程組成硬件算法模型,即將描述系統(tǒng)功能的自然語言翻譯為進(jìn)程,每個(gè)進(jìn)程完成不同的功能,并通過進(jìn)程模型圖來表示。 在ADC0809控制器的設(shè)計(jì)中,可以將其劃分為三個(gè)進(jìn)程,即狀態(tài)生成進(jìn)程、狀態(tài)轉(zhuǎn)換進(jìn)程、狀

8、態(tài)機(jī)輸出進(jìn)程。三部分關(guān)系見圖1所示。,二、狀態(tài)劃分,在進(jìn)行控制部分狀態(tài)機(jī)的設(shè)計(jì)過程中,主要是分析ADC0809的時(shí)序來確定狀態(tài)轉(zhuǎn)換進(jìn)程中的各個(gè)狀態(tài),幾個(gè)狀態(tài)下的控制信號(hào)輸出。,根據(jù)以上設(shè)計(jì)思想和VHDL語言的特點(diǎn),控制器的狀態(tài)生成進(jìn)程以時(shí)鐘信號(hào)為敏感量,當(dāng)時(shí)鐘發(fā)生有效跳變時(shí),狀態(tài)機(jī)的狀態(tài)發(fā)生變化,即產(chǎn)生下一狀態(tài)。而狀態(tài)轉(zhuǎn)換進(jìn)程采用組合邏輯進(jìn)程,使用CASE語句檢查狀態(tài)機(jī)的當(dāng)前狀態(tài),然后使用IF-THEN-ELSE語句決定下一狀態(tài)。這種描述風(fēng)格產(chǎn)生結(jié)構(gòu)化的VHDL代碼,并且可讀性好。,ADC0809,0809將0-5V輸入 模擬電壓通過 FPGA中的狀態(tài)機(jī) 轉(zhuǎn)換輸出為16進(jìn) 制數(shù):“9D”,旋轉(zhuǎn)

9、此電位器 可改變0809的 輸出,注意轉(zhuǎn)換輸出 已改變?yōu)椋?C,3、單進(jìn)程Moore型有限狀態(tài)機(jī),由于輸出信號(hào)由組合進(jìn)程發(fā)出,在特定情況下,難免出現(xiàn)毛刺現(xiàn)象,所以利用單進(jìn)程Moore狀態(tài)機(jī)來避免產(chǎn)生毛刺。,第三節(jié) Mealy型有限狀態(tài)機(jī)的設(shè)計(jì),【例8-6】 MEALY2 LIBRARY IEEE; -MEALY FSM USE 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; AR

10、CHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN COMREG : PROCESS(CLK,RESET) -決定轉(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 I

11、F DATAIN = 1 THEN STX STX = st0; END CASE ;,接下頁,IF CLKEVENT AND CLK = 1 THEN Q1=Q2; END IF; END PROCESS COM1 ; Q = Q1 ; END behav;,接上頁,圖8-11 例8-6狀態(tài)機(jī)工作時(shí)序圖,END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN,CLK) -輸出控制信號(hào)的進(jìn)程 VARIABLE Q2 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN CASE STX IS WHEN st0 = IF

12、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 DATAIN = 0 THEN Q2 := 11011 ; ELSE Q2:=01001 ; END IF ; WHEN st4= IF DATAIN = 1 THEN Q2 :

13、= 11101 ; ELSE Q2:=01101 ; END IF ; WHEN OTHERS = Q2:=00000 ; END CASE ;,接下頁,由CPLD/FPGA中 的狀態(tài)機(jī)來控制 AD574的采樣操作,RAM在此適配 板下面,高速晶振,單片機(jī),適配板下的AD574A,RC,STATUS,D11.0,AD574啟動(dòng)時(shí)序,20us,Z,/CS,圖7-3 AD574工作時(shí)序,圖7-4 AD574工作時(shí)序,圖7-5 采樣狀態(tài)機(jī)結(jié)構(gòu)框圖,【例】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT (D :IN ST

14、D_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC;-狀態(tài)機(jī)時(shí)鐘CLK,AD574狀態(tài)信號(hào)STATUS LOCK0 : OUT STD_LOGIC; -內(nèi)部鎖存信號(hào)LOCK的測(cè)試信號(hào) CS,A0,RC,K12X8 : OUT STD_LOGIC; -AD574控制信號(hào) Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0); -鎖存數(shù)據(jù)輸出 END AD574; ARCHITECTURE behav OF AD574 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNA

15、L current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; BEGIN K12X8 = 1; LOCK0 = LOCK ; COM1: PROCESS(current_state,STATUS) -決定轉(zhuǎn)換狀態(tài)的進(jìn)程 接下頁,BEGIN CASE current_state IS WHEN st0 = next_state next_state IF (STATUS=1) THEN next_state next_state n

16、ext_state next_state CS CS CS CS CSCS=1; A0=1;RC=1;LOCK=0;-其它情況返回初始態(tài) 接下頁,接上頁,END CASE ; END PROCESS COM2 ; REG: PROCESS (CLK) - 時(shí)序進(jìn)程 BEGIN IF ( CLKEVENT AND CLK=1) THEN current_state = next_state; END IF; END PROCESS REG; LATCH1 : PROCESS (LOCK) - 數(shù)據(jù)鎖存器進(jìn)程 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS ; Q = REGL; END behav;,接上頁,圖8-6 AD574采樣狀態(tài)機(jī)工作時(shí)序,第四節(jié) 狀態(tài)編碼,狀態(tài)位直接輸出型編碼,接下頁,接下頁,接上頁,2 順序編碼,3 一位熱碼編碼(One-hot encoding),圖7-13 一位熱碼編碼方式選擇窗,狀態(tài)機(jī)編碼方式設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論