微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 有关有限状态机独热码的问题

有关有限状态机独热码的问题

时间:10-02 整理:3721RD 点击:

最近写了端状态机的程序,状态参数用的独热码,定义如下:
parameter[15:0]
        IDLE                                                 =16'b0000000000000001,
        READ_STATUS_CMD                                =16'b0000000000000010,
        READ_STATUS_CMD_OVER                =16'b0000000000000100,       
        REQ_DONE_JUDGE                                =16'b0000000000001000,
        UNLOCK_BLOCK_CMD                        =16'b0000000000010000,
        UNLOCK_BLOCK_CMD_OVER           =16'b0000000000100000,
        UNLOCK_BLOCK_DONE                        =16'b0000000001000000,
        ERASE_BLOCK_CMD                                =16'b0000000010000000,
        ERASE_BLOCK_CMD_OVER                =16'b0000000100000000,
        ERASE_BLOCK_DONE                        =16'b0000001000000000,
        WRITE_WORD_CMD                                =16'b0000010000000000,
        WRITE_WORD_CMD_OVER                =16'b0000100000000000,
        WRITE_WORD_DONE                        =16'b0001000000000000,
        READ_WORD_CMD                                =16'b0010000000000000,
        READ_WORD_CMD_OVER                        =16'b0100000000000000,
        DATA_COMP                                        =16'b1000000000000000;
不知为什么最后一个状态总是进入不了,好像忽略了,改成用二进制的就没问题,还有将=16'b0000000000000000,一下依次类推,也没问题。
神马情况?

自己顶,高手在哪里

把你的代码贴出来!

肯定代码没写对。

晕了,原来多加了一个状态,没把状态机寄存器位数增加,导致最后一个状态忽略了,哎

某些状态进不去和你的设计有关,和你用什么编码有什么关系!

估计是代码出问题了状态转换的写错了一块

小编详细解释下呢,怎么解决的?没看太明白你写的。

内容哈哈还

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top