搜索
bottom↓
回复: 8

关于状态机,状态超时的问题,请教大家

[复制链接]

出0入0汤圆

发表于 2012-4-17 21:13:54 | 显示全部楼层 |阅读模式
我想用VHDL写一个状态机,其中某些状态有特定的时间限制,如果超时就转换到别的状态
请问有没有什么好的实现方法

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-4-17 21:32:59 | 显示全部楼层
在状态机里面做计时啊.
THIS_STATE:
    if(condition)begin
        state <= NEXT_STAT;
    end
    else begin
        if(cnt == WAIT_TIME)begin
            state <= STATE_OVERTIME;
            cnt <= 0;
        end
        else begin
            cnt <= cnt +1'b1;
        end
    end

出0入0汤圆

发表于 2012-4-17 21:33:52 | 显示全部楼层
楼主,sorry。。。忘了看是VHDL了,不过基本思想是一样的,你自己改成VHDL代码吧。

出0入0汤圆

 楼主| 发表于 2012-4-17 21:55:58 | 显示全部楼层
Linux2.6 发表于 2012-4-17 21:33
楼主,sorry。。。忘了看是VHDL了,不过基本思想是一样的,你自己改成VHDL代码吧。 ...

谢谢你的回复,我看看

出0入0汤圆

发表于 2012-4-17 21:57:38 | 显示全部楼层
以前写两段状态机,也碰到超时问题,由于状态改变是在组合逻辑中处理,就碰到计时问题,因为计时要在带时钟的那一段处理,这样碰到多重源问题,没法,只好写成一段式的状态机。不知道哪位高人能在多段状态机中完美加入超时机制

出0入0汤圆

 楼主| 发表于 2012-4-17 22:04:23 | 显示全部楼层
NJ8888 发表于 2012-4-17 21:57
以前写两段状态机,也碰到超时问题,由于状态改变是在组合逻辑中处理,就碰到计时问题,因为计时要在带时钟 ...

也就是说两段式状态机就不能在组合逻辑状态转换的PROCESS里面进行count了,是吗

出0入0汤圆

发表于 2012-4-17 22:06:02 | 显示全部楼层
lijieamd 发表于 2012-4-17 22:04
也就是说两段式状态机就不能在组合逻辑状态转换的PROCESS里面进行count了,是吗 ...

真聪明,所以我一般都不使用两段式。

出0入0汤圆

发表于 2012-4-17 22:07:37 | 显示全部楼层
lijieamd 发表于 2012-4-17 22:04
也就是说两段式状态机就不能在组合逻辑状态转换的PROCESS里面进行count了,是吗 ...

能的,带时钟的计数,逻辑中判断。反正后来我换成单段的,综合结果资源也少。

出0入0汤圆

 楼主| 发表于 2012-4-17 22:07:41 | 显示全部楼层
Linux2.6 发表于 2012-4-17 22:06
真聪明,所以我一般都不使用两段式。

能否劳烦给一个一段式的VHDL示例,那个verilog的看不太明白
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 11:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表