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

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

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

3天內不再提示

使用枚舉類型表示狀態機進入死循環

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

在定義狀態機中的狀態時,除了可以使用宏(define)或者參數(parameter)聲明定義外,還可以使用枚舉類型,但是如果對于枚舉類型使用不正確的話,極易出現編譯仿真均沒有報錯,但是仿真時狀態機跳轉異常的情況.

本文將針對這種情況進行示例說明并給出解決方法.

1 數據類型

Verilog中所有的變量和線網都是4值數據類型,但在SystemVerilog中,對信號類型和數據類型進行了詳細的區分,其中信號類型保持與Verilog一樣,主要分為變量和線網類型,但是數據類型分為了2值類型(0和1)和4值類型(0,1,x和z),對信號的數據類型進行了擴展,但是保持了線網類型原有的數據類型,在默認狀態下,4值數據類型的默認值為x,2值類型的默認值為0.同時SystemVerilog結合C語言的特性,引入了其他一些類型,例如枚舉類型等,通過多種類型的引入,極大地豐富了SystemVerilog進行程序設計的靈活性.

圖片

2 枚舉類型

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

格式:

圖片

使用方式如下:

圖片

枚舉常量代表該枚舉類型的變量的可能取值的列表,編譯系統為每個枚舉常量指定一個數值,缺省狀態下這個數值從0開始,且數據類型為int,即2值型的整型.

3 問題描述

對下述代碼進行仿真時,狀態跳轉執行異常,核心代碼如下:

圖片

當上述狀態機運行時,狀態機將一直處于WAIT狀態,狀態執行異常.

4 問題分析

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

5 解決方法

出現上述問題主要是因為代碼中組合邏輯部分的敏感信號列表中的變量沒有發生變化,從而沒有出發進程的執行導致的,因此,解決方法主要是實現組合邏輯部分的有效執行,實現nstate_e的變化.

5.1 使用always_comb結構

always_comb在仿真開始的0時刻會自動調用一次,從而可以實現nstate_e狀態的更新,將組合結構中的always@(state_e)替換為always_comb即可.

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

圖片

在仿真開始時,因為枚舉類型的數據類型為logic型,所以變量state_e和nstate_e的默認狀態都為x態,那么在復位階段state_e被初始化為WAIT時,組合邏輯部分的always@(state_e

中的敏感信號state_e狀態從x態變化到了WAIT,即狀態發生變化,觸發組合邏輯部分進程的執行,nstate_e會被更新為LOAD,從而可以實現狀態機的推進.

5.3 指定枚舉常量的初始值

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

圖片

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

    關注

    14

    文章

    1017

    瀏覽量

    83721
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110075
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136692
  • 狀態機
    +關注

    關注

    2

    文章

    492

    瀏覽量

    27529
收藏 人收藏

    評論

    相關推薦

    Verilog狀態機+設計實例

    的是有限狀態機(Finite-State Machine,FSM),簡稱為狀態機表示在有限個狀態以及這些狀態之間的轉移和動作等行為的數學模
    的頭像 發表于 02-12 19:07 ?4059次閱讀
    Verilog<b class='flag-5'>狀態機</b>+設計實例

    labview狀態機基本類型順序結構

    ,依然要判斷急停,直到所有的FRAME都完成才能退出,在這個過程中,外層循環需要所有動作完成后才執行下一循環,對它改造一下,就可以形成順序狀態機結構.我曾經提到過,嚴格類型
    發表于 11-29 16:55

    FPGA/CPLD狀態機穩定性研究

    Mealy狀態機而言,由于其任何時刻的輸出與輸入有關,這種情況就更常見了.2 狀態機設計方案比較2.1 采用枚舉數據類型定義狀態值在設計中定
    發表于 01-12 10:48

    簡單的狀態機枚舉相結合的程序

    做的一個簡單的狀態機枚舉相結合的程序,挺簡單的。
    發表于 08-15 08:06

    有限狀態機有什么類型

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

    狀態機是什么?什么是消息觸發類型狀態機

    狀態機可歸納為哪幾個要素?狀態機可分為哪幾種?什么是消息觸發類型狀態機
    發表于 04-19 06:02

    狀態機舉例

    狀態機舉例 你可以指定狀態寄存器和狀態機狀態。以下是一個有四種狀態的普通狀態機。 // Th
    發表于 03-28 15:18 ?982次閱讀

    狀態機原理及用法

    狀態機原理及用法狀態機原理及用法狀態機原理及用法
    發表于 03-15 15:25 ?0次下載

    狀態機概述 如何理解狀態機

    本篇文章包括狀態機的基本概述以及通過簡單的實例理解狀態機
    的頭像 發表于 01-02 18:03 ?1w次閱讀
    <b class='flag-5'>狀態機</b>概述  如何理解<b class='flag-5'>狀態機</b>

    為什么單片的主程序是死循環

    任何一個可用程序都必然是死循環程序,這不僅僅是指單片程序。因為任何微處理器系統一旦開機,系統都在處理內部事件和外設響應,這個過程是一個循環過程,除非關機才能結束這個死循環程序。因此,
    發表于 07-15 17:38 ?5347次閱讀

    單片死循環有什么作用

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

    FPGA:狀態機簡述

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

    什么是狀態機狀態機5要素

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

    Verilog狀態機類型

    有限狀態機(Finite-State Machine,FSM),簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。
    的頭像 發表于 06-01 15:23 ?1843次閱讀
    Verilog<b class='flag-5'>狀態機</b>的<b class='flag-5'>類型</b>

    什么是狀態機狀態機的種類與實現

    狀態機,又稱有限狀態機(Finite State Machine,FSM)或米利狀態機(Mealy Machine),是一種描述系統狀態變化的模型。在芯片設計中,
    的頭像 發表于 10-19 10:27 ?9451次閱讀
    主站蜘蛛池模板: 98久久人妻少妇激情啪啪| 国产精品婷婷五月久久久久| 饥渴的新婚女教师| 热中文热国产热综合| 永久精品视频无码一区| 国产 日韩 欧美 高清 亚洲| 老师湿乎乎两半嫩| 亚洲国产综合久久久无码色伦| youjizz护士| 看电影来5566一区.二区| 小SAO货水真多把你CAO烂| MD传媒MD0021在线观看| 久久久精品久久| 亚洲H成年动漫在线观看不卡| 超碰98人人插| 摸老师丝袜小内内摸出水| 亚洲视频在线观看网站| 国产精品久久久久影院| 人妻满熟妇AV无码区国产| 2021扫黑风暴在线观看免费完整版| 好看的电影网站亚洲一区| 我就去色色| 东北成人社区| 青青青青草原国产免费| 97国产成人精品免费视频| 久久国产精品麻豆AV影视| 亚洲国产在线观看免费视频| 国产99久久久欧美黑人刘玥| 欧美日韩午夜群交多人轮换| 4480YY旧里番在线播放| 久久久精品久久久久特色影视| 亚洲AV无码久久流水呻蜜桃久色| 国产99久9在线| 日日操夜夜操狠狠操| 成年人免费在线视频观看| 欧美高清另类video| 91日本在线观看亚洲精品 | 国产午夜精品AV一区二区麻豆| 色偷偷网址| 疯狂小护士| 日日操夜夜操天天操|