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

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

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

3天內不再提示

MOORE型有限狀態機的設計方案分析

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-06-10 08:03 ? 次閱讀

1 、引言

隨著微電子技術的迅速發展,人們對數字系統的需求也在提高。不僅要有完善的功能,而且對速度也提出了很高的要求。對于大部分數字系統,都可以劃分為控制單元和數據單元兩個組成部分。通常,控制單元的主體是一個有限狀態機,它接收外部信號以及數據單元產生的狀態信息,產生控制信號序列。MOORE型有限狀態機的設計方法有多種,采用不同的設計方法,雖然可以得到相同功能的狀態機,但它們的速度、時延特性、占用資源可能有較大的差異。在某些對速度要求很高的場合,如內存控制器,則需要針對速度進行優化設計。

2 、MOORE型有限狀態機的幾種設計方法

2.1 輸出由狀態位經組合譯碼得到

它的實現方案是:現態與輸入信號經組合邏輯得到次態,在時鐘的上升沿到來時,狀態寄存器將次態鎖存得到現態,現態經過輸出組合邏輯譯碼得到輸出信號。如圖 1所示。由于輸出必須由現態的狀態位經過譯碼得到,這就需要在現態與輸出之間增加一級組合譯碼邏輯,從而加大了從狀態位到器件輸出管腳的傳輸延遲,同樣也增加了時鐘-輸出時延TCO。

MOORE型有限狀態機的設計方案分析

假設一個簡單的內存控制器的狀態轉換圖如圖2所示。一個完整的讀寫周期是從空閑狀態idle開始。在ready信號有效之后的下一個時鐘周期轉移到判斷狀態decision,然后根據read_write信號再轉移到read或write狀態。則采用這種設計方法的VHDL源程序如下:

MOORE型有限狀態機的設計方案分析

signalpresent_state,next_state:std_logic_vector(1 downto 0);

process(clk,ready,read_write,present_state)

begin

if(clk‘eventandclk=’1‘)then

casepresent_stateis

when idle=>oe<=’0‘;wr<=’0‘;

if ready=’1‘ then

next_state<=decision;

else next_state<=idle;

endif;

when decision=>oe<=’0‘;wr<=’0‘;

if(read_write=’1‘)then

next_state<=read;

else next_state<=write;

endif;

when read=>oe<=’1‘;wr<=’0‘;

if(ready=’1‘)then

next_state<=idle;

else next_state<=read;

endif;

when others=>oe<=’0‘;wr<=’1‘;

if(ready=’1‘)then next_state<=idle;

else next_state<=write;

endif;

endcase;endif;

endprocess;

state_clock:process(clk)begin

if(clk’eventandclk=‘1’)then

present_state<=next_state;

endif;

endprocess;

對此程序綜合出的電路如圖3所示。現態present_state與次態next_state均由兩個觸發器構成,輸出wr和oe均由 present_state經組合譯碼得到,因此從時鐘的上升沿到狀態機輸出的延遲為通過邏輯陣列的時鐘-輸出時延TCO2,而不是較短的時鐘-輸出時延 TCO,且輸出信號wr,oe直接來自組合邏輯電路,因而可能有毛刺發生。

MOORE型有限狀態機的設計方案分析

2.2 輸出由并行輸出寄存器譯碼得到

在第一種方法中,主要由于輸出組合邏輯引入了延時,從而加大了時鐘-輸出時延。為了縮短狀態機輸出到達管腳的延時,可以在鎖存狀態位之前,先進行輸出的組合邏輯譯碼并將其鎖存到專用寄存器中,時鐘上升沿到來時,專用寄存器中直接輸出wr和oe而沒有了組合邏輯引入的延時,從而使狀態機輸出的延遲為TCO。實現該方案的方框圖如圖4。采用這種設計方法的VHDL源程序如下:

MOORE型有限狀態機的設計方案分析

signalpresent_state:std_logic_vector(1 downto 0);

signalnext_state:std_logic_vector(1 downto 0);

signalwr_d,oe_d:std_logic;

begin

process(clk,ready,read_write)

begin

if(clk‘event and clk=’1‘)then

case present_stateis

when idle=>

if ready=’1‘thennext_state<=decision;

else next_state<=idle;

endif ;

when decision=>

if(read_write=’1‘) then next_state<=read;

else next_state<=write;

endif;

when read=>

if(ready=’1‘)then

next_state<=idle;

else next_state<=read;

endif;

when others=>

if(ready=’1‘)then

next_state<=idle;

else next_state<=write;

endif;

endcase;

endif;

endprocess;

withnext_stateselect

oe_d<=’0‘ whenidle|decision|write,’1‘when others;

withnext_stateselect

wr_d<=’0‘whenidle|decision|read,’1‘when others;

state_clock:process(clk)

begin

if(clk’eventandclk=‘1’)then

present_state<=next_state;

oe<=oe_d;

wr<=wr_d;

endif;

endprocess;

在此程序中,用到了兩個新的信號oe_d和wr_d,對次態next_state進行鎖存,不象第一種方案中將現態present_state進行譯碼從而得到在下一個時鐘周期oe和wr的取值。對此程序綜合出的電路如圖5所示。oe_d和wr_d作為鎖存器D1和D2的輸入。因此D1、D2的輸出為上一個次態(即現態)的值。clk的上升沿到來時,D1、D2即將oe_d和wr_d鎖存,從而得輸出oe和wr。因此從時鐘的上升沿到狀態機輸出的延遲為時鐘-輸出時延TCO而不是通過邏輯陣列的時鐘-輸出時延TCO2。又由于時鐘信號將輸出加載到附加的D觸發器中,因而消除了輸出信號的毛刺。然而,這種方法存在兩個缺點:(1)由于用到了輸出寄存器,它比第一種設計需要多用兩個寄存器;(2)雖然它的時鐘-輸出時延從TCO2減小到TCO,但從狀態機的狀態位到達oe和wr需要經過兩級組合邏輯,這就影響了系統時鐘的最高頻率。

MOORE型有限狀態機的設計方案分析

2.3 輸出直接從狀態位得到

為了能夠把時鐘-輸出時延限制在TCO內,也可以將狀態位本身作為輸出信號。對于狀態位不是很多的狀態機而言,這種方法也許較前兩種更為優越。某種情況下,可能會出現兩種不同狀態有相同的狀態位,此時只需增加一位狀態位加以區別即可。如此程序中,idle、decision、read、write四種狀態可分別編碼為000,001,100,010。采用這種方法所對應的程序如下:

signalpresent_state:std_logic_vector(2downto0);

state:process(clk,ready,read_write);

begin

if(clk‘eventandclk=’1‘)then

case present_stateis

when “000”=>ifready=’1‘ then present_state<=“001”;

else present_state<=“000”;

endif;

when “001”=>if(read_write=’1‘) then

present_state<=“100”;

else present_state<=“001”;

endif;

when “100”=>if(ready=’1‘)then

present_state<=“000”;

elsepresent_state<=“100”;

endif;

when “010”=>if(ready=’1‘) then present_state<=“000”;

else present_state<=“010”;

endif;

when others=>present_state<=“---”;

endcase;

endif;

endprocess;

oe<=present_state(2);

wr<=present_state(1);

對此程序綜合出的電路如圖6所示。從圖中可知,輸出信號未通過額外的邏輯對現態進行譯碼,而是直接來自狀態寄存器,因而輸出信號上沒有毛刺,并且它所用的宏單元少于通過并行輸出寄存器輸出的方式。

MOORE型有限狀態機的設計方案分析

3 、結論

從以上分析可知,普通MOORE型狀態機時延最長,速度最慢,可應用于對速度要求不高的場合。同時,由于它的輸出信號中有毛刺,更加限制了它的應用范圍。后兩種方案在相同的條件下,具有相同的時延,即速度是相同的,但第二 種方案所占用面積要比第三種大得多,且對時鐘頻率有一定限制。如果可能的話,選擇“輸出直接從狀態位得到”類型狀態機是一個理想的方案,因為其速度最快,面積最小,設計這種狀態機時,必須在VHDL源碼中對狀態的編碼加以明確的規定,使狀態和輸出信號的取值一致。所以只有在狀態機的規模較小時,才能很好地實現這種類型的設計。


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

    關注

    112

    文章

    16396

    瀏覽量

    178512
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120632
  • vhdl
    +關注

    關注

    30

    文章

    817

    瀏覽量

    128170
收藏 人收藏

    評論

    相關推薦

    有限狀態機有什么類型?

    在實際的應用中,根據有限狀態機是否使用輸入信號,設計人員經常將其分為Moore有限狀態機和Mealy
    發表于 04-06 09:00

    MOORE有限狀態機的幾種設計方法是什么

    MOORE有限狀態機的幾種設計方法是什么VHDL設計MOORE有限狀態機時速度問題是什么
    發表于 05-07 06:01

    fsm有限狀態機pdf

    利用 VHDL 設計的許多實用邏輯系統中,有許多是可以利用有限狀態機設計方案來描述和實現的。無論與基于 VHDL的其它設計方案相比,還是與可完成相似功能的 CPU 相比,狀
    發表于 06-04 10:33 ?75次下載

    有限狀態機的硬件描述語言設計方法

    實驗目的 1、 熟悉用硬件描述語言(VHDL)設計一般狀態機所包含的幾個基本部分;2、 掌握用硬件描述語言(VHDL)設計Moore和Mealy
    發表于 09-03 09:48 ?0次下載

    有限狀態機FSM在PLD中的實現分析

    本文通過舉例 利用VHDL 語言描述了不同模式的有限狀態機 分析有限狀態機在 PLD 中綜合的特點 。
    發表于 03-22 15:41 ?3次下載

    有限狀態機的建模與優化設計

    本文提出一種優秀 、高效的 Verilog HDL 描述方式來進行有限狀態機設計 介紹了 有限狀態機的建模原則 并通過一個可綜合的實例 驗證了 該方法設計的有限狀態機在面積和功耗上的優勢。
    發表于 03-22 15:19 ?1次下載

    VHDL有限狀態機設計-ST

    EDA的有限狀態機,廣義而言是指只要涉及觸發器的電路,無論電路大小都可以歸結為狀態機有限狀態機設計在學習EDA時是很重要的一章。
    發表于 06-08 16:46 ?3次下載

    初學者對有限狀態機(FSM)的設計的認識

    有限狀態機(FSM)是一種常見的電路,由時序電路和組合電路組成。設計有限狀態機的第一步是確定采用Moore狀態機還是采用Mealy狀態機
    發表于 02-11 13:51 ?4326次閱讀
    初學者對<b class='flag-5'>有限狀態機</b>(FSM)的設計的認識

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

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

    如何使用FPGA實現序列檢測有限狀態機

    有限狀態機是絕大部分控制電路的核心結構, 是表示有限狀態以及在這些狀態之間轉移和動作等行為的數學模型。有限狀態機是指輸出取決于過去輸入部分
    發表于 11-04 17:17 ?12次下載
    如何使用FPGA實現序列檢測<b class='flag-5'>有限狀態機</b>

    基于事件驅動的有限狀態機介紹

    ? 一、介紹 EFSM(event finite state machine,事件驅動有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。 EFSM的設計原則是:簡單
    的頭像 發表于 11-16 15:29 ?2367次閱讀

    如何以面向對象的思想設計有限狀態機

    有限狀態機又稱有限狀態自動機,簡稱狀態機,是表示有限狀態以及在這些
    發表于 02-07 11:23 ?4次下載
    如何以面向對象的思想設計<b class='flag-5'>有限狀態機</b>

    基于事件驅動的有限狀態機介紹

    EFSM(event finite state machine,事件驅動有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。
    的頭像 發表于 02-11 10:17 ?1061次閱讀

    一個基于事件驅動的有限狀態機

    EFSM(event finite state machine,事件驅動有限狀態機),是一個基于事件驅動的有限狀態機,主要應用于嵌入式設備的軟件系統中。 EFSM的設計原則是:簡單!EFSM的使用者只需要關心:
    的頭像 發表于 08-30 09:28 ?882次閱讀
    一個基于事件驅動的<b class='flag-5'>有限狀態機</b>

    有限狀態機分割設計

    有限狀態機分割設計,其實質就是一個狀態機分割成多個狀態機
    的頭像 發表于 10-09 10:47 ?652次閱讀
    主站蜘蛛池模板: 国产精品99| 野草观看免费高清视频| 高清不卡伦理电影在线观看| 亚洲国产中文字幕在线视频 | 九九热精品视频在线观看| www.黄色| 中文字幕一区二区三区在线不卡| 色戒无删减流畅完整版| 美国色吧影院| 九九在线精品视频| 国产午夜一级鲁丝片| 北岛玲手机在线观看视频观看| 一本到2v不卡区| 小夫妻天天恶战| 日韩欧美精品有码在线播放免费 | 99在线观看精品| 再深点灬舒服灬太大了在线视频| 午夜免费福利小电影| 日本19禁啪啪吃奶大尺度| 伦理片午夜在线视频| 精品国产精品人妻久久无码五月天| 国产成人免费片在线观看| 菠萝蜜国际一区麻豆| 99久久做夜夜爱天天做精品| 中文字幕绝色少妇性| 亚洲视频网站欧美视频网站| 亚洲 欧美 国产 综合久久| 手机在线播放成人亚洲影院电影| 年轻的搜子8中字在线观看| 老师在讲桌下边h边讲课| 久久精品电影久久电影大全| 狠狠色狠色综合曰曰| 国模孕妇模特季玥之粉红| 国产人成无码视频在线观看| 国产成人无码AV麻豆| 国产成人在线视频免费观看| 国产成人精选免费视频| 国产精品久久久久久AV免费不卡| 囯产精品久久久久免费蜜桃 | 大学生一级毛片免费看| 爆操大胸美女|