




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、硬件描述語(yǔ)言與硬件描述語(yǔ)言與FPGAFPGA設(shè)計(jì)技術(shù)第設(shè)計(jì)技術(shù)第7 7章章 狀態(tài)機(jī)設(shè)計(jì)狀態(tài)機(jī)設(shè)計(jì)n數(shù)字系統(tǒng)設(shè)計(jì)中的重要內(nèi)容之一是有限狀態(tài)機(jī)FSMFinite State Machine理論及其設(shè)計(jì)技術(shù)。狀態(tài)機(jī)是實(shí)現(xiàn)高效率高可靠邏輯控制的重要途徑。 7.2 有限狀態(tài)機(jī)的設(shè)計(jì)有限狀態(tài)機(jī)的設(shè)計(jì) n狀態(tài)機(jī)在VHDL設(shè)計(jì)中可以不同表達(dá)方式實(shí)現(xiàn)不同的實(shí)用功能,然而它們都有相對(duì)固定的語(yǔ)句和程序表達(dá)方式,只要掌握了這些固定的語(yǔ)句表達(dá)局部,就能根據(jù)實(shí)際需要設(shè)計(jì)出各種不同風(fēng)格和面向不同實(shí)用目的的VHDL狀態(tài)機(jī)。 n自定義數(shù)據(jù)類型是用類型定義語(yǔ)句TYPE和子類型定義語(yǔ)句SUBTYPE實(shí)現(xiàn)的。TYPE語(yǔ)句的用法如下:
2、nTYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF 根本數(shù)據(jù)類型;n或:TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義;n下面的例子說(shuō)明了兩種不同的定義方式:nTYPE st1 IS ARRAY (0 TO 15) OF STD_LOGIC;nTYPE week IS (sun, mon, tue, wed, thu, fri, sat);nVHDL狀態(tài)機(jī)可以有多種形式,從狀態(tài)機(jī)的信號(hào)輸出方式上分有Mealy型和 Moore型兩種狀態(tài)機(jī);從結(jié)構(gòu)上分,有單進(jìn)程狀態(tài)機(jī)和多進(jìn)程狀態(tài)機(jī);從狀態(tài)表達(dá)方式上分有符號(hào)化狀態(tài)機(jī)和確定狀態(tài)編碼的狀態(tài)機(jī);從編碼方式上分有順序編碼狀態(tài)機(jī)、一位熱碼編碼狀態(tài)機(jī)或其他編碼方式狀態(tài)
3、機(jī)。常用的狀態(tài)機(jī)通常包含數(shù)據(jù)類型定義、時(shí)序進(jìn)程、組合進(jìn)程等局部。1數(shù)據(jù)類型定義: n數(shù)據(jù)類型定義一般放在結(jié)構(gòu)體的ARCHITECTURE和BEGIN之間,例如:nARCHITECTURE . ISnTYPE FSM_ST IS (s0,sl,s2,s3);nSIGNAL current_state, next_state: FSM_ST;n其中新定義的數(shù)據(jù)類型名是“FSM_ST,其類型的元素分別為s0、sl、s2、s3,表達(dá)狀態(tài)機(jī)的四個(gè)狀態(tài)。定義為信號(hào)SIGNAL的狀態(tài)變量是current_state和 next_state,它們的數(shù)據(jù)類型被定義為FSM_ST。 2時(shí)序進(jìn)程: n時(shí)序進(jìn)程是使?fàn)?/p>
4、態(tài)機(jī)運(yùn)轉(zhuǎn)和在時(shí)鐘驅(qū)動(dòng)下進(jìn)行狀態(tài)轉(zhuǎn)換的進(jìn)程。狀態(tài)機(jī)是隨外部時(shí)鐘信號(hào)、以同步時(shí)序方式工作的。因此,狀態(tài)機(jī)中必須包含一個(gè)對(duì)工作時(shí)鐘信號(hào)敏感的進(jìn)程。當(dāng)時(shí)鐘發(fā)生有效跳變時(shí),狀態(tài)機(jī)的狀態(tài)才發(fā)生變化。狀態(tài)機(jī)向下一狀態(tài)包括再次進(jìn)入本狀態(tài)轉(zhuǎn)換的實(shí)現(xiàn)僅僅取決于時(shí)鐘信號(hào)的到來(lái)。 2時(shí)序進(jìn)程: n一般地,時(shí)序進(jìn)程不提供下一狀態(tài)的具體狀態(tài)取值,如s0、si、s2、S3中的某一狀態(tài)值。當(dāng)時(shí)鐘的有效跳變到來(lái)時(shí),時(shí)序進(jìn)程只是機(jī)械地將代表次態(tài)的信號(hào)next_state中的內(nèi)容送入現(xiàn)態(tài)的信號(hào)current_state中,而信號(hào)next_state中的內(nèi)容完全由其他的進(jìn)程根據(jù)實(shí)際情況來(lái)決定,當(dāng)然時(shí)序進(jìn)程中也可以放置一些同步或異步清
5、零或置位方面的控制信號(hào)。 3組合進(jìn)程: n組合進(jìn)程是根據(jù)當(dāng)前狀態(tài)的狀態(tài),或/和外部輸入的控制信號(hào),確定下一狀態(tài)取值內(nèi)容如取next_state=s1等,并確定對(duì)外輸出或?qū)?nèi)部其他組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。這里的外部輸入控制信號(hào)包括來(lái)自狀態(tài)機(jī)外部的信號(hào)和來(lái)自狀態(tài)機(jī)內(nèi)部其他非主控的組合或時(shí)序進(jìn)程的信號(hào)。組合進(jìn)程又稱為狀態(tài)譯碼進(jìn)程。狀態(tài)機(jī)應(yīng)用1:ADC0809采樣控制器設(shè)計(jì)ADC0809器件引腳及時(shí)序圖 ADC0809采樣控制狀態(tài)圖 采樣控制狀態(tài)機(jī)電路結(jié)構(gòu)圖 ADC080采樣控制VHDL程序nlibrary ieee;nuse ieee.std_logic_1164.all;nentity
6、adciny isn port ( data_in : in std_logic_vector(7 downto 0);n clock1:in std_logic;n end_conv : in std_logic;n lock1: out std_logic;n add_lock: out std_logic;n adc_start: out std_logic;n output_en: out std_logic;n add_sel : out std_logic;n data_out : out std_logic_vector(7 downto 0);nstate:out std_lo
7、gic_vector(3 downto 0);nend adciny;narchitecture behav of adciny isntype states is (t0,t1,t2,t3,t4);n signal next_state: states :=t0;n signal regl :std_logic_vector(7 downto 0);n signal data_lock :std_logic;n beginn add_sel = 1; n data_out =regl;lock1 add_lock = 0;adc_start=0; output_en =0;data_lock
8、 = 0;n state=0000;next_state add_lock = 1;adc_start=1; output_en =0;data_lock = 0;n state=0001;next_state add_lock = 0;adc_start=0; output_en =0;data_lock = 0;n if (end_conv=1)then state=0011;next_state = t3;n else state=0010;next_state add_lock=0;adc_start=0;data_lock=0;output_en=1;n state=0100;nex
9、t_state add_lock=0;adc_start=0;data_lock=1;output_en=1;next_state state=0000;next_state = t0;n end case;nend process com;nreg: process(clock1)n beginn if(clock1event and clock1=1) thenn s= next_state;n end if;n end process reg;nreg: process(clock1)n beginn if(clock1event and clock1=1) thenn s= next_
10、state;n end if;n end process reg;采樣控制狀態(tài)機(jī)時(shí)序仿真圖 2. 狀態(tài)機(jī)應(yīng)用2:序列檢測(cè)器設(shè)計(jì) n序列檢測(cè)器可用于檢測(cè)一組或多組由二進(jìn)制碼組成的脈沖序列信號(hào),當(dāng)序列檢測(cè)器連續(xù)收到一組串行二進(jìn)制碼后,如果這組碼與檢測(cè)器中預(yù)先設(shè)置的碼相同,那么輸出C,否那么輸出F由于這種檢測(cè)的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測(cè)器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測(cè)中所收到的每一位碼都與預(yù)置數(shù)的對(duì)應(yīng)碼相同。 序列檢測(cè)器 VHDL程序nlibrary ieee;nuse ieee.std_logic_1164.all;nentity psdet isn por
11、t(din,clk,RST : in std_logic;n c_f : out std_logic_vector(3 downto 0);nend psdet;narchitecture behav of psdet isn type st is (s0,s1,s2,s3,s4,s5,s6,s7,s8);n signal cst,nst : st:=s0;n signal d : std_logic_vector(7 downto 0);nbegin n d if din = d(7) then nst=s1; else nst if din = d(6) then nst=s2; else
12、 nst if din = d(5) then nst=s3; else nst if din = d(4) then nst=s4; else nst if din = d(3) then nst=s5; else nst if din = d(2) then nst=s6; else nst if din = d(1) then nst=s7; else nst if din = d(0) then nst=s8; else nst if din = d(5) then nst=s3; else nst nst = s0;n end case;n end process;nREG: pro
13、cess(clk,RST)n beginn if RST=1 then cst=S0;n elsif clkevent and clk=1 then n cst=nst;n end if;n end process;n c_f = 1100 when cst=s8 else 1111;nend behav;序列檢測(cè)器時(shí)序仿真圖 n用文字符號(hào)定義各狀態(tài)變量的狀態(tài)機(jī)稱為符號(hào)化狀態(tài)機(jī),其狀態(tài)變量,如st0、stl等的具體編碼由VHDL綜合器根據(jù)具體情況確定。狀態(tài)機(jī)的狀態(tài)編碼方式有多種,這要根據(jù)實(shí)際情況來(lái)決定。 n數(shù)字系統(tǒng)中常用的計(jì)數(shù)器就是這類編碼方式最典型的應(yīng)用實(shí)例。計(jì)數(shù)器本質(zhì)上是一個(gè)時(shí)序進(jìn)程與一個(gè)
14、組合進(jìn)程合二為一的狀態(tài)機(jī),它的輸出就是各狀態(tài)的狀態(tài)碼。n將狀態(tài)編碼直接輸出作為控制信號(hào),即output=state,要求對(duì)狀態(tài)機(jī)各狀態(tài)的編碼做特殊的選擇,以適應(yīng)控制時(shí)序的要求。這種狀態(tài)機(jī)稱為狀態(tài)碼直接輸出型狀態(tài)機(jī)。 設(shè)計(jì)控制ADC0809采樣的狀態(tài)機(jī)的狀態(tài)編碼表 n狀態(tài) 狀態(tài)編碼n START ALE OE LOCK BntO 0 0 0 0 0nTl 1 0 0 0 0nT2 0 0 0 0 1nT3 0 0 1 0 0nT4 0 0 1 1 0狀態(tài)碼直接輸出型狀態(tài)機(jī) n以上實(shí)體局部與ADC080采樣控制VHDL程序相同 nARCHITECTURE bhv of adciny isnSign
15、al s,so:STD_LOGIC_VECTOR(4 DOWNTO 0);nCONSTANT t0: STD_LOGIC_VECTOR(4 DOWNTO 0):=00000;nCONSTANT t1: STD_LOGIC_VECTOR(4 DOWNTO 0):=11000;nCONSTANT t2: STD_LOGIC_VECTOR(4 DOWNTO 0):=00001;nCONSTANT t3: STD_LOGIC_VECTOR(4 DOWNTO 0):=00100;nCONSTANT t4: STD_LOGIC_VECTOR(4 DOWNTO 0):=00110;nSignal regl
16、: STD_LOGIC_VECTOR(7 DOWNTO 0);nBEGINn add_sel = 1;ndata_out =regl;nPROCESS(S, end_conv)nBEGINnIF RST=1 THEN s s=t1; so s=t2; so so=t2; IF(end_conv=1) THEN s=t3;n ELSE s s=t4; so s=t0; so=t4; nEND CASE;nEND IF;nEND PROCESS;nPROCESS(so(1), data_in)nBEGINn IF so(1)=1 AND so(1)EVENT THEN regl= data_in;
17、nEND IF;nEND PROCESS;nlock1= so(1); adc_start= so(4); nadd_sel= so(3); output_en= so(2);nEND bhv;n順序編碼方式最為簡(jiǎn)單,且使用的觸發(fā)器數(shù)量最少,剩余的非法狀態(tài)最少,容錯(cuò)技術(shù)最為簡(jiǎn)單。一個(gè)5狀態(tài)機(jī)只需三個(gè)觸發(fā)器,其狀態(tài)編碼可采用表7-2所示的方式。n表7-2順序編碼與一位熱碼編碼:這種順序編碼方式增加了從一種狀態(tài)向另一種狀態(tài)轉(zhuǎn)換的譯碼組合邏輯,這對(duì)于在觸發(fā)器資源豐富而組合邏輯資源相對(duì)較少的FPGA器件中實(shí)現(xiàn)是不利的,這是順序編碼方式的缺乏之處。 表7-2順序編碼與一位熱碼編碼 n狀態(tài)狀態(tài) 順序編碼順序編碼 一位熱碼編碼一位熱碼編碼STATE0 000 100000nSTATE1 001 010000nSTATE2 010 001000nSTATE3 011 000100nSTATE4 100 000010nSTATE5 101 0000017.3.3位熱碼編碼位熱碼編碼 n位熱碼編碼One-Hot Encoding)方式表7-2就是用n個(gè)觸發(fā)器來(lái)實(shí)現(xiàn)具有n個(gè)狀態(tài)的狀態(tài)機(jī),狀態(tài)機(jī)中的每一個(gè)狀態(tài)都由其中一個(gè)觸發(fā)器的狀態(tài)表示。即當(dāng)處于該狀態(tài)時(shí),對(duì)應(yīng)的觸發(fā)器為T,其余的觸發(fā)器都置0。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠區(qū)混凝土道路施工方案
- 6年級(jí)下冊(cè)英語(yǔ)陜旅版第1單元
- 2025年銀行設(shè)計(jì)崗面試題及答案
- 2025年鄉(xiāng)鎮(zhèn)行政管理試題及答案
- 低保工作集中整治群眾身邊不正之風(fēng)和腐敗問(wèn)題整改報(bào)告
- 地質(zhì)災(zāi)害計(jì)價(jià)定額
- 地球核心能量提取議案
- 工程制圖 第2版 教案 上 李茗 1緒論-5. 4看組合體的視圖
- 2025年鄭州財(cái)稅金融職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)必考題
- 2025年伊犁職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)帶答案
- 西北四省(陜西山西青海寧夏)2025屆高三下學(xué)期第一次聯(lián)考生物試題含答案
- 2024年紅河州公安局邊境管理支隊(duì)招聘專職輔警考試真題
- 2023光伏板索支承結(jié)構(gòu)技術(shù)規(guī)程
- 第五章產(chǎn)前檢查及高危妊娠監(jiān)測(cè)90課件
- 專利共有合同范例
- 2025年上半年山西交控集團(tuán)所屬路橋集團(tuán)交投集團(tuán)招聘800人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 同等學(xué)力申碩-H001356法學(xué)學(xué)科綜合知識(shí)考點(diǎn)匯編
- 外周靜脈血管解剖知識(shí)
- JJF1033-2023計(jì)量標(biāo)準(zhǔn)考核規(guī)范
- 《基于舞弊風(fēng)險(xiǎn)因子的輝山乳業(yè)公司財(cái)務(wù)舞弊案例探析》15000字(論文)
- 《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》解讀與培訓(xùn)
評(píng)論
0/150
提交評(píng)論