在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3254|回复: 1

关于状态机跑飞的问题

[复制链接]
发表于 2007-10-14 20:08:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我写了个状态机,大致如下

parameter  idle=0;
                state1=1;
                state2=2;
                state3=3;
                state4=4;
                state5=5;
                state6=6;
                state7=7;
......

always @(posedge mclk or negedge rst)
......
else
if(enable)
case(state)
     idle: if(k==3) k=16;state=state1;
           else k=k-1;
     state1: if(k==2) k=16;state=state2;
            else k=k-1;
     state2: if(k==1) k=16;state=state3;
            else k=k-1;
     .....
     state7: if(k==1) k=16;state=idle;
            else k=k-1;
default: state=idle;
.....


其中enable信号是由每5个mclk到来,便产生一个高电平,维持1个mclk后变低。
这里的问题是,当运行一段时间后,状态机的状态就不再变化,每次只进state1到state7其中一个状态中(具体停在哪个状态是随机的)
如果修改位always @(posedge enable or negedge rst) 就不会出现这个问题了,大家觉得问题可能出在什么地方呢?小弟弄了很久,一直没找到原因,请大家帮帮忙,谢谢了。
发表于 2007-10-14 21:43:54 | 显示全部楼层
代码不完整也看不出来 问题出在你的状态转换上 你要查查 看看为什么状态转换的条件不符 可以用modelsim等软件单步调试一下 看看状态转换条件出了什么问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-23 03:22 , Processed in 0.027741 second(s), 24 queries , Gzip On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表