chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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ī)與米利型狀態(tài)機(jī)的區(qū)別是什么

FPGA之家 ? 來源:FPGA探索者 ? 作者:FPGA探索者 ? 2022-03-14 17:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FSM有限狀態(tài)機(jī),序列產(chǎn)生,序列檢測(cè),是FPGA和數(shù)字IC相關(guān)崗位必須要掌握的知識(shí)點(diǎn),在筆試和面試中都非常常見。

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

(2)使用狀態(tài)機(jī)產(chǎn)生序列“11010110”,串行循環(huán)輸出該序列;

(3)使用狀態(tài)機(jī)檢測(cè)“1101”,串行輸入的測(cè)試序列為“11101101011010”,輸出信號(hào)為valid有效信號(hào),檢測(cè)到時(shí)輸出高,否則為低,考慮序列疊加情況,比如“1101101”,則有兩個(gè)“1101”,

即:

時(shí)鐘

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個(gè)時(shí)鐘檢測(cè)到序列,下一個(gè)時(shí)鐘輸出高電平;

11101101011010,在第8個(gè)時(shí)鐘檢測(cè)到序列,下一個(gè)時(shí)鐘輸出高電平;

11101101011010,在第13個(gè)時(shí)鐘檢測(cè)到序列,下一個(gè)時(shí)鐘輸出高電平;

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

【解答】:

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

狀態(tài)機(jī)由狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作、完成特定操作的控制中心。有限狀態(tài)機(jī)簡(jiǎn)寫為FSMFinite State Machine,主要分為2大類:

第一類,輸出只和狀態(tài)有關(guān)而與輸入無關(guān),則稱為Moore狀態(tài)機(jī);

第二類,輸出不僅和狀態(tài)有關(guān)而且和輸入有關(guān)系,則稱為Mealy狀態(tài)機(jī)。

Mealy:輸出信號(hào)不僅取決于當(dāng)前狀態(tài),還取決于輸入;

Moore:輸出信號(hào)只取決于當(dāng)前狀態(tài);

實(shí)現(xiàn)相同的功能時(shí),Mealy型比Moore型能節(jié)省一個(gè)狀態(tài)(大部分情況下能夠節(jié)省一個(gè)觸發(fā)器資源,其余情況下使用的資源相同,視狀態(tài)數(shù)和狀態(tài)編碼方式?jīng)Q定),Mealy型比Moore型輸出超前一個(gè)時(shí)鐘周期。

三段式狀態(tài)機(jī)

一段式一個(gè)always,既描述狀態(tài)轉(zhuǎn)移,又描述狀態(tài)的輸入輸出,當(dāng)前狀態(tài)用寄存器輸出。一段式寫法簡(jiǎn)單,但是不利于維護(hù),狀態(tài)擴(kuò)展麻煩,狀態(tài)復(fù)雜時(shí)易出錯(cuò),不推薦;

二段式兩個(gè)always,時(shí)序邏輯與組合邏輯分開,一個(gè)always塊采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移;另一個(gè)always塊采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律以及輸出,當(dāng)前狀態(tài)用組合邏輯輸出,可能出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn),產(chǎn)生毛刺,而且不利于約束,不利于綜合器和布局布線器實(shí)現(xiàn)高性能的設(shè)計(jì);

三段式三個(gè)always,一個(gè)always模塊采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移;一個(gè)always采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律;第三個(gè)always塊使用同步時(shí)序描述狀態(tài)輸出,寄存器輸出。

三段式與二段式相比,關(guān)鍵在于根據(jù)狀態(tài)轉(zhuǎn)移規(guī)律,在上一狀態(tài)根據(jù)輸入條件判斷出當(dāng)前狀態(tài)的輸出,從而在不插入額外時(shí)鐘節(jié)拍的前提下,實(shí)現(xiàn)了寄存器輸出。

狀態(tài)機(jī)序列檢測(cè)

使用三段式FSM有限狀態(tài)機(jī)進(jìn)行序列檢測(cè),使用摩爾型狀態(tài)機(jī),最終輸出與輸入無關(guān)。

使用狀態(tài)機(jī)檢測(cè)“1101”,串行輸入的測(cè)試序列為“11101101011010”,輸出信號(hào)為valid有效信號(hào),檢測(cè)到時(shí)輸出高,否則為低,考慮序列疊加情況,比如“1101101”,則有兩個(gè)“1101”,

即:

時(shí)鐘

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個(gè)時(shí)鐘檢測(cè)到序列,下一個(gè)時(shí)鐘輸出高電平;

11101101011010,在第8個(gè)時(shí)鐘檢測(cè)到序列,下一個(gè)時(shí)鐘輸出高電平;

11101101011010,在第13個(gè)時(shí)鐘檢測(cè)到序列,下一個(gè)時(shí)鐘輸出高電平;

根據(jù)待檢測(cè)的序列“1101”確定狀態(tài),其中:

S1為檢測(cè)到第1個(gè)有效位“1”;

S2為檢測(cè)到2個(gè)有效位“11”;

S3為檢測(cè)到3個(gè)有效位“110”;

S4位檢測(cè)到4個(gè)有效位“1101”;

IDLE為其他狀態(tài);

IDLE:初始狀態(tài),除S1~S4外的其他所有狀態(tài)

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

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

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

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

摩爾型,輸出和輸入無關(guān),S4時(shí)無論輸入什么,都輸出1

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

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

三段式FSM的代碼:

/**************************************************************   Author    :FPGA探索者公眾號(hào)**   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; //定義狀態(tài),這里采用的獨(dú)熱碼(One-Hot),F(xiàn)PGA中推薦用獨(dú)熱碼和格雷碼(Gray)//狀態(tài)較少時(shí)(4-24個(gè)狀態(tài))用獨(dú)熱碼效果好,狀態(tài)多時(shí)格雷碼(狀態(tài)數(shù)大于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;             //現(xiàn)態(tài)reg [4:0] next_state;                 //次態(tài) //三段式FSM,第一段,同步時(shí)序邏輯,描述狀態(tài)切換,這里的寫法固定always @ ( posedge clk )begin       if(!rst_n ) begin              current_state<= IDLE;       end       elsebegin              current_state<= next_state;       endend //三段式FSM,第二段,組合邏輯,判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律//這里面用"="賦值和用"<="沒區(qū)別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,第三段,同步時(shí)序邏輯,描述狀態(tài)輸出,摩爾型輸出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

其中,狀態(tài)機(jī)部分為:

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

這里的狀態(tài)機(jī)考慮到復(fù)位的情況,不論處在哪個(gè)狀態(tài),當(dāng)復(fù)位信號(hào)有效時(shí),均回到IDLE初始狀態(tài)。

仿真測(cè)試文件(TestBench):

/**************************************************************   Author    :FPGA探索者公眾號(hào)**   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”,檢測(cè)到3次有效的“1101”。

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


原文標(biāo)題:FPGA/數(shù)字IC筆試題——序列檢測(cè)(FSM狀態(tài)機(jī))【狀態(tài)機(jī)序列檢測(cè)】

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭菁

聲明:本文內(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)投訴
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    495

    瀏覽量

    28661
  • 摩爾
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    8746
  • 狀態(tài)寄存器
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    7365

原文標(biāo)題:FPGA/數(shù)字IC筆試題——序列檢測(cè)(FSM狀態(tài)機(jī))【狀態(tài)機(jī)序列檢測(cè)】

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    采用米利狀態(tài)機(jī)電路設(shè)計(jì)

    首先可以確定采用米利狀態(tài)機(jī)設(shè)計(jì)該電路。因?yàn)樵撾娐吩谶B續(xù)收到信號(hào)0101時(shí),輸出為1,其他情況下輸出為0,所以采用米利
    的頭像 發(fā)表于 09-08 14:06 ?8858次閱讀
    采用<b class='flag-5'>米利</b><b class='flag-5'>型</b>的<b class='flag-5'>狀態(tài)機(jī)</b>電路設(shè)計(jì)

    Spring狀態(tài)機(jī)的實(shí)現(xiàn)原理和使用方法

    說起 Spring 狀態(tài)機(jī),大家很容易聯(lián)想到這個(gè)狀態(tài)機(jī)和設(shè)計(jì)模式中狀態(tài)模式的區(qū)別是啥呢?沒錯(cuò),Spring 狀態(tài)機(jī)就是
    的頭像 發(fā)表于 12-26 09:39 ?2883次閱讀
    Spring<b class='flag-5'>狀態(tài)機(jī)</b>的實(shí)現(xiàn)原理和使用方法

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

    的是有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡(jiǎn)稱為狀態(tài)機(jī),表示在有限個(gè)狀態(tài)以及這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。 二、分類 在verilog中常使用的
    的頭像 發(fā)表于 02-12 19:07 ?5766次閱讀
    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ī)就是
    的頭像 發(fā)表于 06-25 14:21 ?1444次閱讀
    玩轉(zhuǎn)Spring<b class='flag-5'>狀態(tài)機(jī)</b>

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

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

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

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

    狀態(tài)機(jī)和組合邏輯的冒險(xiǎn)競(jìng)爭(zhēng)淺析

    有限狀態(tài)機(jī)(Finite State Machine, FSM),根據(jù)狀態(tài)機(jī)的輸出是否與輸入有關(guān),可分為Moore狀態(tài)機(jī)和Mealy
    發(fā)表于 06-25 08:42 ?4288次閱讀

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

    本篇文章包括狀態(tài)機(jī)的基本概述以及通過簡(jiǎn)單的實(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>

    正點(diǎn)原子開拓者FPGA視頻:狀態(tài)機(jī)

    狀態(tài)機(jī)狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作,完成特定操作的控制中心。狀態(tài)機(jī)分為
    的頭像 發(fā)表于 09-19 07:00 ?2890次閱讀
    正點(diǎn)原子開拓者FPGA視頻:<b class='flag-5'>狀態(tài)機(jī)</b>

    FPGA之狀態(tài)機(jī)的功能簡(jiǎn)述與學(xué)習(xí)建議

    狀態(tài)機(jī)狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作,完成特定操作的控制中心。狀態(tài)機(jī)分為
    的頭像 發(fā)表于 10-09 07:07 ?3985次閱讀

    FPGA之狀態(tài)機(jī)練習(xí):設(shè)計(jì)思路(4)

    狀態(tài)機(jī)狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號(hào)按照預(yù)先設(shè)定的狀態(tài)進(jìn)行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號(hào)動(dòng)作,完成特定操作的控制中心。狀態(tài)機(jī)分為
    的頭像 發(fā)表于 05-28 07:03 ?3289次閱讀

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

    信號(hào)是否與電路的輸入有關(guān)分為Mealy狀態(tài)機(jī)和Moore狀態(tài)機(jī)。電路的輸出信號(hào)不僅與電路當(dāng)前狀態(tài)有關(guān),還與電路的輸入有關(guān),稱為 Meal
    的頭像 發(fā)表于 11-16 17:39 ?2.8w次閱讀

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

    本文目錄 前言 狀態(tài)機(jī)簡(jiǎn)介 狀態(tài)機(jī)分類 Mealy 狀態(tài)機(jī) Moore 狀態(tài)機(jī)
    的頭像 發(fā)表于 11-05 17:58 ?8424次閱讀
    FPGA:<b class='flag-5'>狀態(tài)機(jī)</b>簡(jiǎn)述

    Verilog設(shè)計(jì)過程中狀態(tài)機(jī)的設(shè)計(jì)方法

    的基本要素有三個(gè):狀態(tài)、輸出和輸入。 根據(jù)狀態(tài)機(jī)的輸出是否與輸入條件有關(guān),可將狀態(tài)機(jī)分為: 摩爾(Moore)和米里(Mealy)
    的頭像 發(fā)表于 06-25 11:04 ?3168次閱讀

    什么是狀態(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.2w次閱讀