在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

狀態(tài)機(jī)常見的3種類型 狀態(tài)機(jī)案例設(shè)計(jì)

西西 ? 來源:博客園 ? 作者:中國的孩子 ? 2020-08-08 10:57 ? 次閱讀

1、狀態(tài)機(jī)設(shè)計(jì)

Mealy 機(jī)方框圖

狀態(tài)寄存器輸出當(dāng)前的信號(hào),用來控制下一個(gè)狀態(tài)是什么,和當(dāng)前狀態(tài)下的輸出是什么。

Moore機(jī)方框圖

2、狀態(tài)機(jī)---3種類型

二元的:(CPLD與陣列扇入比較多,寄存器比較少)

S1 = 001, S2 = 010, S3 = 011, S3 = 100,etc。。。

枚舉的:

S1 = 100, S2 = 110, S3 = 101, S4 = 111,etc。。。

One Hot:每1 個(gè)狀態(tài)機(jī)只有1個(gè)寄存器(FPGA觸發(fā)器比較多)

S1 = 00000001, S2 =00000010,S3 = 00000100,etc。。。

3、對(duì)生剩余狀態(tài)的處理

1、在CASE 語句中增加語句,對(duì)每個(gè)非法狀態(tài)明確地給出狀態(tài)輪換的指示;

2、用OTHERS語句來對(duì)未提及的狀態(tài)做統(tǒng)一處理。

Moore 型狀態(tài)機(jī)設(shè)計(jì)

摩爾型的有限狀態(tài)機(jī)的輸出只與當(dāng)前狀態(tài)有關(guān),而與輸入信號(hào)的當(dāng)前值無關(guān),且僅豐時(shí)鐘信號(hào)邊沿到來時(shí)才發(fā)生變化。

要實(shí)現(xiàn)這種結(jié)構(gòu),必須使用暫存信號(hào)(如 temp)來存儲(chǔ)電路的輸出值,當(dāng)今信號(hào)在時(shí)鐘邊沿出現(xiàn)時(shí)才能夠更新輸出。

例:

library ieee;

use ieee.std_logic_1164.all;

entity s_machine2 is

port(

clk, reset : in std_logic;

x : in std_logic;

z : out std_logic

);

architecture behav of s_machine2 is

type m_state is(s0, s1, s2);

signal present_state, next_state : m_state;

signal temp : std_logic;

begin

-----------------------時(shí)序進(jìn)程---------------------------

reg : process(reset, clk)

begin

if reset = ‘1’ then present_state 《= s0;

elsif clk = ‘1’ and clk‘event then

z 《=temp; --只有在時(shí)鐘的上升沿時(shí),輸出才會(huì)發(fā)生變化。是同步輸出。

prsent_state 《=nxet_state;

end if;

end process;

-------------------------組合進(jìn)程-----------------------------

com : process(present_state, x)

begin

case prsent_state is

when s0 =》

if x = ’0‘ then next_state 《= s0;

else next_state 《= s1;

end if;

temp 《= ’0‘;

when s1 =》

if x = ’0‘ then next_state 《= s0;

else next_state 《= s2;

end if;

temp 《= ’0‘;

when s2 =》

if x = ’0‘; then next_state 《= s0; temp 《= ’1‘;

else next_state 《= s2; temp 《= ’0‘;

end if

end case;

end process;

end behv;

Mearly 型的有限狀態(tài)機(jī)設(shè)計(jì)

米立狀態(tài)機(jī)的輸出信號(hào)是當(dāng)前狀態(tài)和輸出信號(hào)的函數(shù),它的輸出在輸入變化后立即發(fā)生變化,

不依賴時(shí)鐘信號(hào)的同步。是異步輸出。

例:

library ieee;

use ieee.std_logic_1164.all;

entity s_machine1 is

port(

clk, reset : in std_logic;

x : in std_logic;

z : out std_logic

);

end s_machine1;

architecture behav of s_machine2 is

type m_state is(s0, s1, s2);

signal present_state, next_state : m_state;

begin

-----------------------時(shí)序進(jìn)程---------------------------

reg : process(reset, clk)

begin

if reset = ’1‘ then present_state 《= s0;

elsif clk = ’1‘ and clk’event then

prsent_state 《=nxet_state;

end if;

end process;

-------------------------組合進(jìn)程-----------------------------

com : process(present_state, x)

begin

case prsent_state is

when s0 =》

if x = ‘0’ then next_state 《= s0;

else next_state 《= s1;

end if;

z 《= ‘0’;

when s1 =》

if x = ‘0’ then next_state 《= s0;

else next_state 《= s2;

end if;

z 《= ‘0’;

when s2 =》

if x = ‘0’; then next_state 《= s0; z 《= ‘1’;

else next_state 《= s2; z《= ‘0’;

end if

end case;

end process;

end behv;

可以看到在該程序中,只要輸入有變化,輸出z就會(huì)有變化,它并不依賴于時(shí)鐘的上升沿。

怎樣確保一個(gè)進(jìn)程是組合進(jìn)程:

1、不出現(xiàn)帶沿的語句,即組合進(jìn)程中決不能出現(xiàn)用時(shí)鐘沿控制的敏感信號(hào);

2、在組合電路的進(jìn)程中,給出輸出端口的缺省值,這樣可以防止鎖存器的生成;

3、在敏感清單中包含所有的輸入量,防止鎖存器的生成。

敏感清單不全的話綜合時(shí)可能出現(xiàn)敬告。

例:下例敏感清單中輸入端口不全,可能出現(xiàn)鎖存器

p0 : process (a)

begin

q 《= a and b;

end process p0;

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

下面是一個(gè)實(shí)例,洗衣機(jī)的工作過程:

TYPE state_type IS(idle, fill, heat_w, wash, drain);

entity wm is

port(

clk, reset, door_closed, full : in std_logic;

heat_demand, done, empty : in std_logic;

water, spin, heat, pump : out std_logic

);

end wm;

architecture behave of wm is

------------------------說明部分--------------------------

--說明部分用枚舉數(shù)據(jù)類型來字義狀態(tài)機(jī)中的狀態(tài);并把狀態(tài)變量(如現(xiàn)態(tài)和次態(tài))定義為信號(hào)。

type state_type is (

idle, fill, heat_w, wash, drain);

signal state : state_type;

begin

process (clk, reset)

begin

if reset = ‘1’ then

state 《= idle;

elsif clk‘event and clk= ’1‘ then

case state is

when idle =》

if door_closed = ’1‘ then

state 《= fill;

else

state 《= idle;

end if

when fill =》

if full =’1‘; then

state 《= neat_w;

else

state 《= fill;

when others =》

state 《= idle;

end case

end if;

end process;

----------------------------------------------

利用兩個(gè)進(jìn)程(純組合邏輯措施一)

--------------時(shí)序進(jìn)程----------------------------

--時(shí)序進(jìn)程是指在時(shí)鐘驅(qū)動(dòng)下負(fù)責(zé)狀態(tài)轉(zhuǎn)換的進(jìn)程,只表示次態(tài)和現(xiàn)態(tài)的關(guān)系

process(clk, reset)

begin

if reset =’1‘ then

state 《= idle;

elsif clk’event and clk = ‘1’ then

state 《= next_state;

end if;

end process;

------------------組合進(jìn)程---------------------

組合進(jìn)程的任務(wù)是根據(jù)輸入信號(hào)和現(xiàn)態(tài)對(duì)輸出端口賦值以及確定狀態(tài)機(jī)的下一個(gè)狀態(tài),由于沒有任何信號(hào)

的賦值是通過其他某個(gè)信號(hào)的跳變來觸發(fā)的,所以不會(huì)產(chǎn)生寄存器。一般用CASE 或IF語句來實(shí)現(xiàn)

process(state, door_closed, full,

heat_demand, done, empty)

begin

case state is

when idle =》

if door_closed =‘1’ then

next_state 《= fill;

else

next_state 《= idle;

end if;

when fill =》

if full = ‘1’ then

next_state 《= heat_w;

else

next_state 《= fill;

end case;

end if;

end process;

process(state)

begin

water_i 《= ‘0’;

spin_i 《= ‘0’;

heat_i 《= ‘0’;

pump_i 《= ‘0’;

case state is

when idle =》

when fill =》

water_i 《= ‘1’;

when heat_w =》

spin_i 《=‘1’;

heat_i 《= ‘1’;

when wash =》

spin_i 《= ‘1’;

when drain =》

spin_i 《= ‘1’;

pump_i 《= ‘i’;

end case;

end process;

--------------寄存輸出---------------------

process (clk)

begin

if rising_edge(clk) then

water 《= water_i;

spin 《= spin_i;

heat 《= heat_i;

pump 《= pump_i;

end if;

end process

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5397

    瀏覽量

    122674
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    27961
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SaberRD狀態(tài)機(jī)建模工具介紹(一)什么是狀態(tài)機(jī)建模

    狀態(tài)機(jī)建模是使用狀態(tài)圖和方程式的手段,創(chuàng)建基于混合信號(hào)的有限狀態(tài)機(jī)模型的一建模工具。
    的頭像 發(fā)表于 12-05 09:51 ?2106次閱讀
    SaberRD<b class='flag-5'>狀態(tài)機(jī)</b>建模工具介紹(一)什么是<b class='flag-5'>狀態(tài)機(jī)</b>建模

    Verilog狀態(tài)機(jī)+設(shè)計(jì)實(shí)例

    在verilog中狀態(tài)機(jī)的一很常用的邏輯結(jié)構(gòu),學(xué)習(xí)和理解狀態(tài)機(jī)的運(yùn)行規(guī)律能夠幫助我們更好地書寫代碼,同時(shí)作為一思想方法,在別的代碼設(shè)計(jì)中也會(huì)有所幫助。 一、簡介 在使用過程中我們常
    的頭像 發(fā)表于 02-12 19:07 ?4895次閱讀
    Verilog<b class='flag-5'>狀態(tài)機(jī)</b>+設(shè)計(jì)實(shí)例

    玩轉(zhuǎn)Spring狀態(tài)機(jī)

    說起Spring狀態(tài)機(jī),大家很容易聯(lián)想到這個(gè)狀態(tài)機(jī)和設(shè)計(jì)模式中狀態(tài)模式的區(qū)別是啥呢?沒錯(cuò),Spring狀態(tài)機(jī)就是狀態(tài)模式的一
    的頭像 發(fā)表于 06-25 14:21 ?1191次閱讀
    玩轉(zhuǎn)Spring<b class='flag-5'>狀態(tài)機(jī)</b>

    有限狀態(tài)機(jī)有什么類型

    在實(shí)際的應(yīng)用中,根據(jù)有限狀態(tài)機(jī)是否使用輸入信號(hào),設(shè)計(jì)人員經(jīng)常將其分為Moore型有限狀態(tài)機(jī)和Mealy型有限狀態(tài)機(jī)種類型
    發(fā)表于 04-06 09:00

    狀態(tài)機(jī)是什么?什么是消息觸發(fā)類型狀態(tài)機(jī)

    狀態(tài)機(jī)可歸納為哪幾個(gè)要素?狀態(tài)機(jī)可分為哪幾種?什么是消息觸發(fā)類型狀態(tài)機(jī)
    發(fā)表于 04-19 06:02

    狀態(tài)機(jī)舉例

    狀態(tài)機(jī)舉例 你可以指定狀態(tài)寄存器和狀態(tài)機(jī)狀態(tài)。以下是一個(gè)有四狀態(tài)的普通
    發(fā)表于 03-28 15:18 ?1056次閱讀

    狀態(tài)機(jī)代碼生成工具

    狀態(tài)機(jī)代碼生成工具狀態(tài)機(jī)代碼生成工具狀態(tài)機(jī)代碼生成工具狀態(tài)機(jī)代碼生成工具
    發(fā)表于 11-19 15:12 ?9次下載

    狀態(tài)機(jī)原理及用法

    狀態(tài)機(jī)原理及用法狀態(tài)機(jī)原理及用法狀態(tài)機(jī)原理及用法
    發(fā)表于 03-15 15:25 ?0次下載

    狀態(tài)機(jī)概述 如何理解狀態(tài)機(jī)

    本篇文章包括狀態(tài)機(jī)的基本概述以及通過簡單的實(shí)例理解狀態(tài)機(jī)
    的頭像 發(fā)表于 01-02 18:03 ?1.1w次閱讀
    <b class='flag-5'>狀態(tài)機(jī)</b>概述  如何理解<b class='flag-5'>狀態(tài)機(jī)</b>

    什么是狀態(tài)機(jī) 狀態(tài)機(jī)的描述三方法

    狀態(tài)機(jī) 1、狀態(tài)機(jī)是許多數(shù)字系統(tǒng)的核心部件,是一類重要的時(shí)序邏輯電路。通常包括三個(gè)部分:一是下一個(gè)狀態(tài)的邏輯電路,二是存儲(chǔ)狀態(tài)機(jī)當(dāng)前狀態(tài)的時(shí)
    的頭像 發(fā)表于 11-16 17:39 ?2.7w次閱讀

    FPGA:狀態(tài)機(jī)簡述

    是FPGA設(shè)計(jì)中一非常重要、非常根基的設(shè)計(jì)思想,堪稱FPGA的靈魂,貫穿FPGA設(shè)計(jì)的始終。 02. 狀態(tài)機(jī)簡介 什么是狀態(tài)機(jī)狀態(tài)機(jī)通過不同的
    的頭像 發(fā)表于 11-05 17:58 ?7777次閱讀
    FPGA:<b class='flag-5'>狀態(tài)機(jī)</b>簡述

    什么是狀態(tài)機(jī)狀態(tài)機(jī)5要素

    玩單片機(jī)還可以,各個(gè)外設(shè)也都會(huì)驅(qū)動(dòng),但是如果讓你完整的寫一套代碼時(shí),卻無邏輯與框架可言。這說明編程還處于比較低的水平,你需要學(xué)會(huì)一好的編程框架或者一編程思想!比如模塊化編程、狀態(tài)機(jī)
    的頭像 發(fā)表于 07-27 11:23 ?2.1w次閱讀
    什么是<b class='flag-5'>狀態(tài)機(jī)</b>?<b class='flag-5'>狀態(tài)機(jī)</b>5要素

    狀態(tài)模式(狀態(tài)機(jī))

    share,作者:亞索老哥)),原來狀態(tài)機(jī)還可以這么簡單地玩~~亞索老哥提出的狀態(tài)機(jī)六步法(1)、定義狀態(tài)接口(2)、定義系統(tǒng)當(dāng)前狀態(tài)指針(3
    發(fā)表于 12-16 16:53 ?9次下載
    <b class='flag-5'>狀態(tài)</b>模式(<b class='flag-5'>狀態(tài)機(jī)</b>)

    Verilog狀態(tài)機(jī)類型

    有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。
    的頭像 發(fā)表于 06-01 15:23 ?2110次閱讀
    Verilog<b class='flag-5'>狀態(tài)機(jī)</b>的<b class='flag-5'>類型</b>

    什么是狀態(tài)機(jī)狀態(tài)機(jī)種類與實(shí)現(xiàn)

    狀態(tài)機(jī),又稱有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)或米利狀態(tài)機(jī)(Mealy Machine),是一描述系統(tǒng)狀態(tài)變化
    的頭像 發(fā)表于 10-19 10:27 ?1.1w次閱讀
    主站蜘蛛池模板: 天天碰天天操 | 国产情侣露脸 | 美女被免网站在线视频 | 天堂中文在线资源库用 | 国产精品人人爱一区二区白浆 | 天天鲁天天爽天天视频 | 夜夜骑天天操 | 日本三级视频在线观看 | 国产精品爱啪在线线免费观看 | 日本二区免费一片黄2019 | 在线女同免费观看网站 | 国产yw855.c免费观看网站 | 伊人久久大香线蕉影院95 | 国产精品区在线12p 国产精品任我爽爆在线播放6080 | 最新黄色免费网站 | 天天在线天天综合网色 | 加勒比一到三区 | 久青草视频在线播放 | va国产 | 午夜黄色大片 | 明日花在线观看 | 四虎最新网站 | 正在播放羽月希与黑人bd在线 | 96福利视频| 亚洲欧美网站 | 日日夜夜天天干干 | 日本理论在线 | 国产xxxxxx久色视频在 | 在线免费成人 | 一区二区三区欧美在线 | 永久免费观看视频 | 黄色网址在线免费观看 | qyule亚洲精品 | 九九热精品在线 | 国模私拍一区二区三区 | 精品一区二区三区视频 | 丁香综合激情 | 日本三级全黄三级a | 欧美一级黄色录相 | 在线天堂bt种子 | 四虎最新网站 |