色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

摩爾型狀態機與米利型狀態機的區別是什么

FPGA之家 ? 來源:FPGA探索者 ? 作者:FPGA探索者 ? 2022-03-14 17:42 ? 次閱讀

FSM有限狀態機,序列產生,序列檢測,是FPGA和數字IC相關崗位必須要掌握的知識點,在筆試和面試中都非常常見。

(1)了解狀態機:什么是摩爾型狀態機,什么是米利型狀態機,兩者的區別是什么?一段式、二段式、三段式狀態機的區別?

(2)使用狀態機產生序列“11010110”,串行循環輸出該序列;

(3)使用狀態機檢測“1101”,串行輸入的測試序列為“11101101011010”,輸出信號為valid有效信號,檢測到時輸出高,否則為低,考慮序列疊加情況,比如“1101101”,則有兩個“1101”,

即:

時鐘

1

2

3

4

5

6

7

8

9

10

11

12

13

14

輸入

1

1

1

0

1

1

0

1

0

1

1

0

1

0

輸出

0

0

0

0

0

1

0

0

1

0

0

0

0

1

11101101011010,在第5個時鐘檢測到序列,下一個時鐘輸出高電平;

11101101011010,在第8個時鐘檢測到序列,下一個時鐘輸出高電平;

11101101011010,在第13個時鐘檢測到序列,下一個時鐘輸出高電平;

給出WORDPDF版本的報告,包括但不限于文字說明、代碼、仿真測試圖等。

【解答】:

狀態機類型

狀態機由狀態寄存器和組合邏輯電路構成,能夠根據控制信號按照預先設定的狀態進行狀態轉移,是協調相關信號動作、完成特定操作的控制中心。有限狀態機簡寫為FSMFinite State Machine,主要分為2大類:

第一類,輸出只和狀態有關而與輸入無關,則稱為Moore狀態機;

第二類,輸出不僅和狀態有關而且和輸入有關系,則稱為Mealy狀態機。

Mealy:輸出信號不僅取決于當前狀態,還取決于輸入;

Moore:輸出信號只取決于當前狀態;

實現相同的功能時,Mealy型比Moore型能節省一個狀態(大部分情況下能夠節省一個觸發器資源,其余情況下使用的資源相同,視狀態數和狀態編碼方式決定),Mealy型比Moore型輸出超前一個時鐘周期。

三段式狀態機

一段式一個always,既描述狀態轉移,又描述狀態的輸入輸出,當前狀態用寄存器輸出。一段式寫法簡單,但是不利于維護,狀態擴展麻煩,狀態復雜時易出錯,不推薦;

二段式兩個always,時序邏輯與組合邏輯分開,一個always塊采用同步時序描述狀態轉移;另一個always塊采用組合邏輯判斷狀態轉移條件,描述狀態轉移規律以及輸出,當前狀態用組合邏輯輸出,可能出現競爭冒險,產生毛刺,而且不利于約束,不利于綜合器和布局布線器實現高性能的設計;

三段式三個always,一個always模塊采用同步時序描述狀態轉移;一個always采用組合邏輯判斷狀態轉移條件,描述狀態轉移規律;第三個always塊使用同步時序描述狀態輸出,寄存器輸出。

三段式與二段式相比,關鍵在于根據狀態轉移規律,在上一狀態根據輸入條件判斷出當前狀態的輸出,從而在不插入額外時鐘節拍的前提下,實現了寄存器輸出。

狀態機序列檢測

使用三段式FSM有限狀態機進行序列檢測,使用摩爾型狀態機,最終輸出與輸入無關。

使用狀態機檢測“1101”,串行輸入的測試序列為“11101101011010”,輸出信號為valid有效信號,檢測到時輸出高,否則為低,考慮序列疊加情況,比如“1101101”,則有兩個“1101”,

即:

時鐘

1

2

3

4

5

6

7

8

9

10

11

12

13

14

輸入

1

1

1

0

1

1

0

1

0

1

1

0

1

0

輸出

0

0

0

0

0

1

0

0

1

0

0

0

0

1

11101101011010,在第5個時鐘檢測到序列,下一個時鐘輸出高電平;

11101101011010,在第8個時鐘檢測到序列,下一個時鐘輸出高電平;

11101101011010,在第13個時鐘檢測到序列,下一個時鐘輸出高電平;

根據待檢測的序列“1101”確定狀態,其中:

S1為檢測到第1個有效位“1”;

S2為檢測到2個有效位“11”;

S3為檢測到3個有效位“110”;

S4位檢測到4個有效位“1101”;

IDLE為其他狀態;

IDLE:初始狀態,除S1~S4外的其他所有狀態

S11, 1則到S2(11),否則回到IDLE;

S211 0則到S3(110),否則保持S2(11)

S3110, 1則到S4(1101),否則回到IDLE;

S41101 1則到S2(11),否則回到IDLE

摩爾型,輸出和輸入無關,S4時無論輸入什么,都輸出1

1c485b6c-9645-11ec-952b-dac502259ad0.png

1c6177d2-9645-11ec-952b-dac502259ad0.png

三段式FSM的代碼:

/**************************************************************   Author    :FPGA探索者公眾號**   Times      :2020-7-7************************************************************/module FSM_SequDetection_1(       clk,       rst_n,       data_in,       data_valid); input clk;input rst_n;input data_in;output reg data_valid; //定義狀態,這里采用的獨熱碼(One-Hot),FPGA中推薦用獨熱碼和格雷碼(Gray)//狀態較少時(4-24個狀態)用獨熱碼效果好,狀態多時格雷碼(狀態數大于24)效果好parameter IDLE = 5'b00001;parameter S1       = 5'b00010;parameter S2       = 5'b00100;parameter S3       = 5'b01000;parameter S4       = 5'b10000; reg [4:0] current_state;             //現態reg [4:0] next_state;                 //次態 //三段式FSM,第一段,同步時序邏輯,描述狀態切換,這里的寫法固定always @ ( posedge clk )begin       if(!rst_n ) begin              current_state<= IDLE;       end       elsebegin              current_state<= next_state;       endend //三段式FSM,第二段,組合邏輯,判斷狀態轉移條件,描述狀態轉移規律//這里面用"="賦值和用"<="沒區別always @ (*)begin       if(!rst_n ) begin              next_state<= IDLE;       end       elsebegin              case(current_state )                     IDLE:    begin                            if(data_in == 1 )                                   next_state<= S1;                            else                                   next_state<= IDLE;                     end                     S1   :      begin                            if(data_in == 1 )                                   next_state<= S2;                            else                                   next_state<= IDLE;                     end                     S2   :      begin                            if(data_in == 0 )                                   next_state<= S3;                            else                                   next_state<= S2;                     end                     S3   :      begin                            if(data_in == 1 )                                   next_state<= S4;                            else                                   next_state<= IDLE;                     end                     S4   :      begin                            if(data_in == 1 )                                   next_state<= S2;                            else                                   next_state<= IDLE;                     end                     default   : begin                            next_state<= IDLE;                     end              endcase       endend //三段式FSM,第三段,同步時序邏輯,描述狀態輸出,摩爾型輸出always @ ( posedge clk )begin       if(!rst_n ) begin              data_valid<= 1'b0;       end       elsebegin              case(next_state )                     S4   : data_valid <= 1'b1;                     default   : data_valid <= 1'b0;              endcase       endend endmodule

綜合后的RTL圖:

1c8105ac-9645-11ec-952b-dac502259ad0.png

其中,狀態機部分為:

1c961460-9645-11ec-952b-dac502259ad0.png

這里的狀態機考慮到復位的情況,不論處在哪個狀態,當復位信號有效時,均回到IDLE初始狀態。

仿真測試文件(TestBench):

/**************************************************************   Author    :FPGA探索者公眾號**   Times      :2020-7-7************************************************************/`timescale 1 ns/1 ns
moduleFSM_2_tb();
reg clk;reg rst_n;reg data_in;wire data_valid;
FSM_SequDetection  U1(  .clk(clk),  .rst_n(rst_n),  .data_in(data_in),  .data_valid(data_valid));
initial begin   clk = 0;  rst_n = 0;  #15;  rst_n = 1;  data_in = 1;#10;  data_in = 1;#10;  data_in = 1;#10;  data_in = 0;#10;  data_in = 1;#10;  data_in = 1;#10;  data_in = 0;#10;  data_in = 1;#10;  data_in = 0;#10;  data_in = 1;#10;  data_in = 1;#10;  data_in = 0;#10;  data_in = 1;#10;  data_in = 0;#10;  #50;  $stop;  //停止仿真end 
always#5clk=~clk;
endmodule

ModelSim仿真如下,輸入“1_1101101_0_1101”,檢測到3次有效的“1101”。

1cc41b08-9645-11ec-952b-dac502259ad0.png


原文標題:FPGA/數字IC筆試題——序列檢測(FSM狀態機)【狀態機序列檢測】

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27779
  • 摩爾
    +關注

    關注

    0

    文章

    11

    瀏覽量

    8638
  • 狀態寄存器
    +關注

    關注

    0

    文章

    39

    瀏覽量

    7208

原文標題:FPGA/數字IC筆試題——序列檢測(FSM狀態機)【狀態機序列檢測】

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    采用米利狀態機電路設計

    首先可以確定采用米利狀態機設計該電路。因為該電路在連續收到信號0101時,輸出為1,其他情況下輸出為0,所以采用米利
    的頭像 發表于 09-08 14:06 ?8438次閱讀
    采用<b class='flag-5'>米利</b><b class='flag-5'>型</b>的<b class='flag-5'>狀態機</b>電路設計

    Spring狀態機的實現原理和使用方法

    說起 Spring 狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring 狀態機就是
    的頭像 發表于 12-26 09:39 ?2332次閱讀
    Spring<b class='flag-5'>狀態機</b>的實現原理和使用方法

    Verilog狀態機+設計實例

    的是有限狀態機(Finite-State Machine,FSM),簡稱為狀態機,表示在有限個狀態以及這些狀態之間的轉移和動作等行為的數學模型。 二、分類 在verilog中常使用的
    的頭像 發表于 02-12 19:07 ?4509次閱讀
    Verilog<b class='flag-5'>狀態機</b>+設計實例

    玩轉Spring狀態機

    說起Spring狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring狀態機就是
    的頭像 發表于 06-25 14:21 ?1096次閱讀
    玩轉Spring<b class='flag-5'>狀態機</b>

    狀態機舉例

    狀態機舉例 你可以指定狀態寄存器和狀態機狀態。以下是一個有四種狀態的普通狀態機。 // Th
    發表于 03-28 15:18 ?1020次閱讀

    狀態機原理及用法

    狀態機原理及用法狀態機原理及用法狀態機原理及用法
    發表于 03-15 15:25 ?0次下載

    狀態機和組合邏輯的冒險競爭淺析

    有限狀態機(Finite State Machine, FSM),根據狀態機的輸出是否與輸入有關,可分為Moore狀態機和Mealy
    發表于 06-25 08:42 ?4043次閱讀

    狀態機概述 如何理解狀態機

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

    正點原子開拓者FPGA視頻:狀態機

    狀態機狀態寄存器和組合邏輯電路構成,能夠根據控制信號按照預先設定的狀態進行狀態轉移,是協調相關信號動作,完成特定操作的控制中心。狀態機分為
    的頭像 發表于 09-19 07:00 ?2543次閱讀
    正點原子開拓者FPGA視頻:<b class='flag-5'>狀態機</b>

    FPGA之狀態機的功能簡述與學習建議

    狀態機狀態寄存器和組合邏輯電路構成,能夠根據控制信號按照預先設定的狀態進行狀態轉移,是協調相關信號動作,完成特定操作的控制中心。狀態機分為
    的頭像 發表于 10-09 07:07 ?3659次閱讀

    FPGA之狀態機練習:設計思路(4)

    狀態機狀態寄存器和組合邏輯電路構成,能夠根據控制信號按照預先設定的狀態進行狀態轉移,是協調相關信號動作,完成特定操作的控制中心。狀態機分為
    的頭像 發表于 05-28 07:03 ?3002次閱讀

    什么是狀態機 狀態機的描述三種方法

    信號是否與電路的輸入有關分為Mealy狀態機和Moore狀態機。電路的輸出信號不僅與電路當前狀態有關,還與電路的輸入有關,稱為 Meal
    的頭像 發表于 11-16 17:39 ?2.7w次閱讀

    FPGA:狀態機簡述

    本文目錄 前言 狀態機簡介 狀態機分類 Mealy 狀態機 Moore 狀態機
    的頭像 發表于 11-05 17:58 ?7632次閱讀
    FPGA:<b class='flag-5'>狀態機</b>簡述

    Verilog設計過程中狀態機的設計方法

    的基本要素有三個:狀態、輸出和輸入。 根據狀態機的輸出是否與輸入條件有關,可將狀態機分為: 摩爾(Moore)和米里(Mealy)
    的頭像 發表于 06-25 11:04 ?2736次閱讀

    什么是狀態機?狀態機的種類與實現

    狀態機,又稱有限狀態機(Finite State Machine,FSM)或米利狀態機(Mealy Machine),是一種描述系統狀態變化
    的頭像 發表于 10-19 10:27 ?1w次閱讀
    主站蜘蛛池模板: 九九热最新视频 | XXOO麻豆国产在线九九爱 | 成人特级毛片 | 秋霞最新高清无码鲁丝片 | 国产亚洲欧美日韩综合综合二区 | 国产欧美日韩精品a在线观看高清 | 绑着男军人的扒开内裤 | 天津相声广播在线收听 | 国产精品毛片AV久久97 | 精品国产乱码久久久久久夜深人妻 | 在线观看黄色小说 | 伊人久久精品AV一区二区 | 国产互换后人妻的疯狂VIDEO | 老师真棒无遮瑕版漫画免费 | 久久精品亚洲热综合一本奇米 | 67194con免费福和视频 | 国产AV精品无码免费看 | 亚洲字幕久久 | 亚洲午夜福利未满十八勿进 | 亚洲AV成人无码网天堂 | no视频在线观看 | 樱花之恋动漫免费观看 | 好紧好湿太硬了我太爽了文字 | 日本粉嫩学生毛绒绒 | 最近的2019中文字幕国语版 | 中文字幕在线观看亚洲 | 好男人免费观看在线高清WWW | 侮辱丰满美丽的人妻 | 国产精品2020观看久久 | 99视频在线免费观看 | 两个人在线观看的视频720 | 暖暖 免费 高清 日本在线 | 色女孩综合 | 免费国产成人手机在线观看 | 久久精品麻豆国产天美传媒果冻 | 亚洲乱亚洲乱妇13p 亚洲乱色视频在线观看 | 国产扒开美女双腿屁股流白浆 | 亚洲va精品中文字幕 | 男人J进女人P | 久久久无码精品无码国产人妻丝瓜 | 亚洲日本欧美国产在线视 |