衡阳派盒市场营销有限公司

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

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

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

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

FPGA研究院 ? 來(lái)源:FPGA之家 ? 2023-04-07 09:52 ? 次閱讀

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

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

等等問(wèn)題,就這些問(wèn)題我收集了一些說(shuō)法,覺(jué)得很有意思,在這里我們一起討論下。

還是先簡(jiǎn)介下有限狀態(tài)機(jī):

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

Moore型有限狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移只取決于當(dāng)前狀態(tài),與輸入值無(wú)關(guān)。

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

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

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

我們采用兩種狀態(tài)編碼方式來(lái)實(shí)現(xiàn)這個(gè)有限狀態(tài)機(jī):

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)采用獨(dú)熱碼:

程序和上面的幾乎一樣,只需要改下,各個(gè)狀態(tài)對(duì)應(yīng)的編碼值即可,還有最后的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

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

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

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

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

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

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

那我把3—8譯碼器的真值表給出來(lái),確實(shí)如此。

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

審核編輯 :李倩

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

    關(guān)注

    1630

    文章

    21796

    瀏覽量

    605996
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5363

    瀏覽量

    121158
  • 輸出信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    291

    瀏覽量

    11936

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA設(shè)計(jì)的獨(dú)的使用和調(diào)試技巧的詳細(xì)概述

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

    FPGA Verilog HDL 設(shè)計(jì)實(shí)例系列連載--------有限狀態(tài)機(jī)設(shè)計(jì)

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

    FPGA有限狀態(tài)機(jī)

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

    為什么相對(duì)于來(lái)說(shuō),獨(dú)會(huì)使用更多的觸發(fā)器和更少的組合邏輯???

    在編寫(xiě)有限狀態(tài)機(jī)時(shí),為什么采用獨(dú)會(huì)占用更多的觸發(fā)器和更少的組合邏輯?從FPGA內(nèi)部結(jié)構(gòu)和數(shù)電
    發(fā)表于 03-02 00:33

    FPGA開(kāi)源教程連載】第七章 狀態(tài)機(jī)設(shè)計(jì)實(shí)例

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

    fpga Default Latch FPGA設(shè)計(jì)的獨(dú)的使用和調(diào)試技巧的詳細(xì)概述

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

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

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

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

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

    VHDL有限狀態(tài)機(jī)設(shè)計(jì)-ST

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

    初學(xué)者對(duì)有限狀態(tài)機(jī)(FSM)的設(shè)計(jì)的認(rèn)識(shí)

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

    如何使用FPGA實(shí)現(xiàn)序列檢測(cè)有限狀態(tài)機(jī)

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

    基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)介紹

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

    基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)介紹

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

    FPGA有限狀態(tài)機(jī)編寫(xiě)如何選擇狀態(tài)編碼

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

    有限狀態(tài)機(jī)分割設(shè)計(jì)

    有限狀態(tài)機(jī)分割設(shè)計(jì),其實(shí)質(zhì)就是一個(gè)狀態(tài)機(jī)分割成多個(gè)狀態(tài)機(jī)
    的頭像 發(fā)表于 10-09 10:47 ?689次閱讀
    现金百家乐官网技巧| 娱乐城免费送彩金| 百家乐官网一年诈骗多少钱| OK娱乐城| 世嘉百家乐的玩法技巧和规则| 百家乐官网游戏模拟| 真人斗地主| 百佬汇百家乐的玩法技巧和规则 | 澳门赌球网| 百家乐娱乐平台官网网| 红树林百家乐官网的玩法技巧和规则| 天台县| 大发888娱乐场奖金| 大赢家百家乐66| 网上百家乐官网导航| tt娱乐城开户| 百家乐EA平台| 百家乐官网顶尖高手| 金乡县| 大发888casino| 缅甸百家乐网络赌博解谜| 试玩百家乐官网游戏机| 仙桃市| 大发888娱乐城范本| 百家乐网上投注作弊| 网络百家乐官网可靠吗| 大发888娱乐场下载 df888ylc3403| 百家乐路单免费下载| 百乐坊百家乐官网娱乐城| 和政县| 大发888casino下载| 粤港澳百家乐娱乐场| 百家乐官网网址官网| 视频百家乐官网赢钱| 灌南县| 澳门娱乐城开户| 威尼斯人娱乐城真人赌博| 百家乐网站新全讯网| 百家乐官网路单| 易胜博娱乐城| 大发888娱乐城手机|