在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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ī)進(jìn)入死循環(huán)

冬至子 ? 來源:芯光燦爛 ? 作者:Tianya ? 2023-11-07 17:46 ? 次閱讀

在定義狀態(tài)機(jī)中的狀態(tài)時(shí),除了可以使用宏(define)或者參數(shù)(parameter)聲明定義外,還可以使用枚舉類型,但是如果對(duì)于枚舉類型使用不正確的話,極易出現(xiàn)編譯仿真均沒有報(bào)錯(cuò),但是仿真時(shí)狀態(tài)機(jī)跳轉(zhuǎn)異常的情況.

本文將針對(duì)這種情況進(jìn)行示例說明并給出解決方法.

1 數(shù)據(jù)類型

Verilog中所有的變量和線網(wǎng)都是4值數(shù)據(jù)類型,但在SystemVerilog中,對(duì)信號(hào)類型和數(shù)據(jù)類型進(jìn)行了詳細(xì)的區(qū)分,其中信號(hào)類型保持與Verilog一樣,主要分為變量和線網(wǎng)類型,但是數(shù)據(jù)類型分為了2值類型(0和1)和4值類型(0,1,x和z),對(duì)信號(hào)的數(shù)據(jù)類型進(jìn)行了擴(kuò)展,但是保持了線網(wǎng)類型原有的數(shù)據(jù)類型,在默認(rèn)狀態(tài)下,4值數(shù)據(jù)類型的默認(rèn)值為x,2值類型的默認(rèn)值為0.同時(shí)SystemVerilog結(jié)合C語言的特性,引入了其他一些類型,例如枚舉類型等,通過多種類型的引入,極大地豐富了SystemVerilog進(jìn)行程序設(shè)計(jì)的靈活性.

圖片

2 枚舉類型

用戶可以通過枚舉類型定義特定的常量值的集合.

格式:

圖片

使用方式如下:

圖片

枚舉常量代表該枚舉類型的變量的可能取值的列表,編譯系統(tǒng)為每個(gè)枚舉常量指定一個(gè)數(shù)值,缺省狀態(tài)下這個(gè)數(shù)值從0開始,且數(shù)據(jù)類型為int,即2值型的整型.

3 問題描述

對(duì)下述代碼進(jìn)行仿真時(shí),狀態(tài)跳轉(zhuǎn)執(zhí)行異常,核心代碼如下:

圖片

當(dāng)上述狀態(tài)機(jī)運(yùn)行時(shí),狀態(tài)機(jī)將一直處于WAIT狀態(tài),狀態(tài)執(zhí)行異常.

4 問題分析

這里需要注意到,枚舉常量列表中的枚舉常量在缺省狀態(tài)下,枚舉常量的數(shù)值是從0開始遞增.且2值數(shù)據(jù)類型變量的初始值為0.所以在此例中,state_e和nstate_e的初始狀態(tài)都為0,即WAIT.當(dāng)復(fù)位撤銷后,state_e和nstate_e都為WAIT,那么組合邏輯部分always@(state_e)的敏感信號(hào)列表中的state_e將一直保持在WAIT狀態(tài),所以該部分組合邏輯將不會(huì)被執(zhí)行,從而導(dǎo)致nstate_e狀態(tài)不會(huì)被更新,因此,狀態(tài)既不能推進(jìn),將一直保持在初始的WAIT狀態(tài).

5 解決方法

出現(xiàn)上述問題主要是因?yàn)榇a中組合邏輯部分的敏感信號(hào)列表中的變量沒有發(fā)生變化,從而沒有出發(fā)進(jìn)程的執(zhí)行導(dǎo)致的,因此,解決方法主要是實(shí)現(xiàn)組合邏輯部分的有效執(zhí)行,實(shí)現(xiàn)nstate_e的變化.

5.1 使用always_comb結(jié)構(gòu)

always_comb在仿真開始的0時(shí)刻會(huì)自動(dòng)調(diào)用一次,從而可以實(shí)現(xiàn)nstate_e狀態(tài)的更新,將組合結(jié)構(gòu)中的always@(state_e)替換為always_comb即可.

5.2 將枚舉變量的數(shù)據(jù)類型指定為4值類型,如下所示:

圖片

在仿真開始時(shí),因?yàn)槊杜e類型的數(shù)據(jù)類型為logic型,所以變量state_e和nstate_e的默認(rèn)狀態(tài)都為x態(tài),那么在復(fù)位階段state_e被初始化為WAIT時(shí),組合邏輯部分的always@(state_e

中的敏感信號(hào)state_e狀態(tài)從x態(tài)變化到了WAIT,即狀態(tài)發(fā)生變化,觸發(fā)組合邏輯部分進(jìn)程的執(zhí)行,nstate_e會(huì)被更新為LOAD,從而可以實(shí)現(xiàn)狀態(tài)機(jī)的推進(jìn).

5.3 指定枚舉常量的初始值

枚舉列表中的枚舉常量列表中的第一個(gè)常量,默認(rèn)初始值為0-,其后常量數(shù)值依次遞增,但是這個(gè)起始值也可以在枚舉類型聲明定義時(shí)指定為其他值,從而可以使2值型枚舉變量的初始狀態(tài)-與枚舉變量列表中的常量起始值不一樣,在復(fù)位階段state_e被更新為非零值時(shí),更新后的值與類型的默認(rèn)值0不一樣,從而也可以實(shí)現(xiàn)組合邏輯部分敏感信號(hào)列表中信號(hào)的變化,從而使組合邏輯中的nstate_e狀態(tài)可以被更新,推進(jìn)狀態(tài)機(jī)的運(yùn)行,示例如下:

圖片

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

    關(guān)注

    14

    文章

    1028

    瀏覽量

    84691
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1364

    瀏覽量

    111460
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7628

    瀏覽量

    139669
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    27970
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    的是有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱為狀態(tài)機(jī)表示在有限個(gè)狀態(tài)以及這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模
    的頭像 發(fā)表于 02-12 19:07 ?4922次閱讀
    Verilog<b class='flag-5'>狀態(tài)機(jī)</b>+設(shè)計(jì)實(shí)例

    labview狀態(tài)機(jī)基本類型順序結(jié)構(gòu)

    ,依然要判斷急停,直到所有的FRAME都完成才能退出,在這個(gè)過程中,外層循環(huán)需要所有動(dòng)作完成后才執(zhí)行下一循環(huán),對(duì)它改造一下,就可以形成順序狀態(tài)機(jī)結(jié)構(gòu).我曾經(jīng)提到過,嚴(yán)格類型
    發(fā)表于 11-29 16:55

    FPGA/CPLD狀態(tài)機(jī)穩(wěn)定性研究

    Mealy狀態(tài)機(jī)而言,由于其任何時(shí)刻的輸出與輸入有關(guān),這種情況就更常見了.2 狀態(tài)機(jī)設(shè)計(jì)方案比較2.1 采用枚舉數(shù)據(jù)類型定義狀態(tài)值在設(shè)計(jì)中定
    發(fā)表于 01-12 10:48

    簡單的狀態(tài)機(jī)枚舉相結(jié)合的程序

    做的一個(gè)簡單的狀態(tài)機(jī)枚舉相結(jié)合的程序,挺簡單的。
    發(fā)表于 08-15 08:06

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

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

    狀態(tài)機(jī)是什么?什么是消息觸發(fā)類型狀態(tài)機(jī)

    狀態(tài)機(jī)可歸納為哪幾個(gè)要素?狀態(tài)機(jī)可分為哪幾種?什么是消息觸發(fā)類型狀態(tài)機(jī)
    發(fā)表于 04-19 06:02

    狀態(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 ?1057次閱讀

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

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

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

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

    為什么單片機(jī)的主程序是死循環(huán)

    任何一個(gè)可用程序都必然是死循環(huán)程序,這不僅僅是指單片機(jī)程序。因?yàn)槿魏挝⑻幚砥飨到y(tǒng)一旦開機(jī),系統(tǒng)都在處理內(nèi)部事件和外設(shè)響應(yīng),這個(gè)過程是一個(gè)循環(huán)過程,除非關(guān)機(jī)才能結(jié)束這個(gè)死循環(huán)程序。因此,
    發(fā)表于 07-15 17:38 ?5656次閱讀

    單片機(jī)死循環(huán)有什么作用

    單片機(jī)是可編程器件,在使用時(shí)需要編寫滿足需求的程序。其C語言程序在各個(gè)端口、配置初始化完成后,會(huì)進(jìn)入一個(gè)死循環(huán),一般用while(1){;}的形式。初始化完成后,單片機(jī)就在
    發(fā)表于 08-09 17:01 ?6011次閱讀
    單片<b class='flag-5'>機(jī)</b>的<b class='flag-5'>死循環(huán)</b>有什么作用

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

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

    什么是狀態(tài)機(jī)狀態(tài)機(jī)5要素

    玩單片機(jī)還可以,各個(gè)外設(shè)也都會(huì)驅(qū)動(dòng),但是如果讓你完整的寫一套代碼時(shí),卻無邏輯與框架可言。這說明編程還處于比較低的水平,你需要學(xué)會(huì)一種好的編程框架或者一種編程思想!比如模塊化編程、狀態(tài)機(jī)編程、分層思想
    的頭像 發(fā)表于 07-27 11:23 ?2.1w次閱讀
    什么是<b class='flag-5'>狀態(tài)機(jī)</b>?<b class='flag-5'>狀態(tài)機(jī)</b>5要素

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

    有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。
    的頭像 發(fā)表于 06-01 15:23 ?2124次閱讀
    Verilog<b class='flag-5'>狀態(tài)機(jī)</b>的<b class='flag-5'>類型</b>

    什么是狀態(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)變化的模型。在芯片設(shè)計(jì)中,
    的頭像 發(fā)表于 10-19 10:27 ?1.1w次閱讀
    主站蜘蛛池模板: 成人特黄午夜性a一级毛片 成人网18免费下 | 性欧美大胆高清视频 | 日本不卡毛片一二三四 | 中文字幕卡二和卡三的视频 | 国产在线视频资源 | 特黄一级真人毛片 | 在线看片你懂得 | 欧美成人伊人久久综合网 | 欧美性狂猛bbbbbbxxxx | 天天做天天爱天天做天天吃中 | 亚洲午夜综合网 | 手机福利在线 | 妇少香港三日本三级视频 | 国产一区二区三区波多野吉衣 | 国产三级日本三级在线播放 | 国产精品久久久久久久免费 | 欧美天天性影院 | 国产精品最新资源网 | 1024手机看片你懂得的 日韩欧美 | 在线亚洲日产一区二区 | 高颜值露脸极品在线播放 | 人人干天天操 | 欧美福利精品 | 啪啪伊人网 | 爱情岛网站亚洲禁18进入 | 1v1双性受整夜不拔bl | 久久99精品久久久久久久野外 | 久久dvd | 伊人天伊人天天网综合视频 | 在线看免费视频 | 老色批午夜免费视频网站 | 婷婷久久综合九色综合九七 | 57pao强力打造免费高清高速 | 亚洲国产日韩精品怡红院 | 一区二区三区亚洲视频 | 日本不卡视频在线视频观看 | 视频在线免费观看网址 | 色多多www网站 | 好男人社区www的视频免费 | 免费一级在线观看 | 亚洲综合啪啪 |