首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

状态机的问题

状态机的问题

我用vhdl语言编了个程序,其中有一个进程是用复位和状态来触发的.进程的程序如下
process(state,reset)
begin
if reset='0' then
  sout1<=0;
  sout2<=0;
  counter<=0;
  elsif state=lose then
   counter<=counter;
   sout1<=2;
   sout2<=2;
  elsif state=win then
   counter<=counter;
   sout1<=8;
   sout2<=8;
  else
   counter<=counter+1;
  end if;
end process;
状态有8个,进程有两个,另一个进程是让state状态改变的.
这个程序的问题是我另一个进程里的状态没变.那么我贴的进程就不应该被触发,counter就不会动.但是计数器显示却一直在动(counter是计数器),而且确实有在计数(应该是,闪的太快看不清,但停下来时确实有数).我用程序仿真时,counter输出是不定态.想问一下是不是我用状态触发进程有问题啊?

不清楚,很想知道答案,帮你 顶一下
我不是高手
你代码怎么这样写呢?我不是太明白你的意思,也不知道你的程序处于哪一个状态。
你的进程怎么没有时钟触发,那计数器以什么东西来计数阿。
代码的格式也不要写成这样
if(reset)
xxxx
else
case()





在交流中前进,共同实现nios的应用。
很明显,你应该在敏感表里面加入一个时钟信号,并且靠它来触发counter计数。你的程序就是只要没有reset信号并且state的状态没变的时候就计数,显然不是你所要的。
[glow=255,red,2] FPGA NiosII开发板 USB-Blaster[/glow]-可配USB2.0、10M/100M网络、视频等扩展模块-http://www.21control.com
返回列表