99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內不再提示

FPGA中有限狀態(tài)機的狀態(tài)編碼采用格雷碼還是獨熱碼?

FPGA研究院 ? 來源:FPGA之家 ? 2023-04-07 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

看《從算法設計到硬件邏輯的實現》這本電子書時,遇到了一個問題,就是有限狀態(tài)機的編寫中,狀態(tài)編碼是采用格雷碼還是獨熱碼呢?究竟采用哪一種編碼呢?

采用獨熱碼為什么節(jié)省許多組合電路?

等等問題,就這些問題我收集了一些說法,覺得很有意思,在這里我們一起討論下。

還是先簡介下有限狀態(tài)機:

有限狀態(tài)機是由寄存器組和組合邏輯構成的硬件時序電路,其狀態(tài)(即由寄存器組的1和0的組合狀態(tài)所構成的有限個狀態(tài))只可能在同一時鐘跳變沿的情況下才能從一個狀態(tài)轉向另一個狀態(tài),究竟轉向哪一狀態(tài)還是留在原狀態(tài)不但取決于各個輸入值,還取決于當前所在狀態(tài)。這里是指Mealy型有限狀態(tài)機。

Moore型有限狀態(tài)機的狀態(tài)轉移只取決于當前狀態(tài),與輸入值無關。

Verilog HDL中可以用許多種方法來描述有限狀態(tài)機,最常用的方法是用always語句和case語句。下面的狀態(tài)轉移圖表示了一個有限狀態(tài)機:

9d4a5008-d4d3-11ed-bfe3-dac502259ad0.png

上面的狀態(tài)轉移圖表示了一個四狀態(tài)的有限狀態(tài)機,它的同步時鐘是Clock,輸入信號是 A 和 rst_n ,輸出信號是 F 和 G。狀態(tài)的轉移只能在同步時鐘(Clock)的上升沿時發(fā)生,往哪個狀態(tài)的轉移則取決于目前所在的狀態(tài)和輸入的信號(Reset 和 A)。

我們采用兩種狀態(tài)編碼方式來實現這個有限狀態(tài)機:

1)采用格雷碼:

9d6a23ba-d4d3-11ed-bfe3-dac502259ad0.png

9d91226c-d4d3-11ed-bfe3-dac502259ad0.png

9da1abbe-d4d3-11ed-bfe3-dac502259ad0.png

在ISE中,綜合后,得到的RTL Schematic:

9db84f40-d4d3-11ed-bfe3-dac502259ad0.png

2)采用獨熱碼:

程序和上面的幾乎一樣,只需要改下,各個狀態(tài)對應的編碼值即可,還有最后的default:state 《= Idle;

還是給出程序吧:

9dcce13a-d4d3-11ed-bfe3-dac502259ad0.png

9ddff3a6-d4d3-11ed-bfe3-dac502259ad0.png

9df319ae-d4d3-11ed-bfe3-dac502259ad0.png

9e0cb08a-d4d3-11ed-bfe3-dac502259ad0.png

上面兩個程序的主要不同點是狀態(tài)編碼,2)采用了獨熱編碼,而1)則采用Gray碼,究竟采用哪一種編碼好要看具體情況而定。對于用FPGA實現的有限狀態(tài)機建議采用獨熱碼,因為雖然采用獨熱編碼多用了兩個觸發(fā)器,但所用組合電路可省下許多,因而使電路的速度和可靠性有顯著提高,而總的單元數并無顯著增加。采用了獨熱編碼后有了多余的狀態(tài),就有一些不可到達的狀態(tài),為此在CASE語句的最后需要增加default分支項,以確保多余狀態(tài)能回到Idle狀態(tài)。

上面所說的多余狀態(tài)是:4位編碼有16種,獨熱碼只列出了4種,剩下了12種,就是多余的狀態(tài)。

9e2428a0-d4d3-11ed-bfe3-dac502259ad0.jpg

9e435c3e-d4d3-11ed-bfe3-dac502259ad0.png

另一位大牛只說了一句話,但很有啟發(fā):

9e5682a0-d4d3-11ed-bfe3-dac502259ad0.png

那我把3—8譯碼器的真值表給出來,確實如此。

9e6960d2-d4d3-11ed-bfe3-dac502259ad0.png

審核編輯 :李倩

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

    關注

    1645

    文章

    22050

    瀏覽量

    618719
  • 寄存器
    +關注

    關注

    31

    文章

    5434

    瀏覽量

    124577
  • 輸出信號
    +關注

    關注

    0

    文章

    302

    瀏覽量

    12246

原文標題:FPGA中有限狀態(tài)機的狀態(tài)編碼采用格雷碼還是獨熱碼?

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    FPGA設計的的使用和調試技巧的詳細概述

    狀態(tài)機里面使用比價廣泛,這一塊有些人愛用,有些人嫌煩,有時候可以用用
    的頭像 發(fā)表于 05-05 10:15 ?8509次閱讀

    FPGA Verilog HDL 設計實例系列連載--------有限狀態(tài)機設計

    關系,因而在狀態(tài)圖中每條轉移邊需要包含輸入和輸出的信息。狀態(tài)編碼  數字邏輯系統(tǒng)狀態(tài)機設計中常見的編碼方式有:二進制
    發(fā)表于 03-09 10:04

    FPGA有限狀態(tài)機

    FPGA有限狀態(tài)機
    發(fā)表于 09-08 08:45

    為什么相對于來說,會使用更多的觸發(fā)器和更少的組合邏輯???

    在編寫有限狀態(tài)機時,為什么采用會占用更多的觸發(fā)器和更少的組合邏輯?從FPGA內部結構和數電
    發(fā)表于 03-02 00:33

    FPGA開源教程連載】第七章 狀態(tài)機設計實例

    各種狀態(tài),這也就分支出一種情況如何對狀態(tài)進行有效的編碼。編碼格式,最簡單的就是直接使用二進制進行表示,除此之外還有使用
    發(fā)表于 12-26 00:17

    fpga Default Latch FPGA設計的的使用和調試技巧的詳細概述

    狀態(tài)機里面使用比價廣泛,這一塊有些人愛用,有些人嫌煩,有時候可以用用
    發(fā)表于 06-07 17:57

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

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

    有限狀態(tài)機的建模與優(yōu)化設計

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

    VHDL有限狀態(tài)機設計-ST

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

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

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

    如何使用FPGA實現序列檢測有限狀態(tài)機

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

    基于事件驅動的有限狀態(tài)機介紹

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

    基于事件驅動的有限狀態(tài)機介紹

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

    FPGA有限狀態(tài)機編寫如何選擇狀態(tài)編碼?

    在Verilog HDL中可以用許多種方法來描述有限狀態(tài)機,最常用的方法是用always語句和case語句。
    發(fā)表于 03-23 14:06 ?792次閱讀

    有限狀態(tài)機分割設計

    有限狀態(tài)機分割設計,其實質就是一個狀態(tài)機分割成多個狀態(tài)機
    的頭像 發(fā)表于 10-09 10:47 ?914次閱讀