集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2149|回复: 0

如何在板子上调试符合要求的状态机?

[复制链接]
AAT 发表于 2010-6-26 00:19:52 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-11-19 06:48 编辑

如何在板子上调试符合要求的状态机?

小弟最近在写了一个简单的状态机,仿真是符合我的要求,就是启动之后,一直输出0010 0010 0010 0010 0010,可是为什么我在板子上用嵌入式逻辑分析仪一看输出的结果如下图所示输出的是01100001 000001 000011 ,很奇怪,要么是每隔5个0输出一个1,要么是每隔4个0输出2个1
我应该从哪下手调试呢?不知道哪位大哥能帮帮忙!
这是我写的代码:
module fsm(clk,clr,enable,outdata);
input clk,clr,enable;
output outdata;
reg outdata;
reg [1:0]state,next_state;
parameter state0=2'b00,state1=2'b01,
    state2=2'b11,state3=2'b10;

[email=always@(posedge]always@(posedge[/email] clk or negedge clr)
begin
if(!clr)state<=state0;
else state<=next_state;
end

[email=always@(state]always@(state[/email])
begin
case(state)
  state0:begin
  if(enable) next_state<=state1;
  end
  state1:begin
  if(enable) next_state<=state2;
  end
  state2:begin
  if(enable) next_state<=state3;
  end
  state3:begin
  if(enable) next_state<=state0;
  end
default:next_state<=state0;
endcase
end

[email=always@(state]always@(state[/email])
begin
case(state)
state0: outdata=1'b0;
state1: outdata=1'b0;
state2: outdata=1'b0;
state3: outdata=1'b1;
default : outdata=1'b0;
endcase
end

endmodule
是一个很简单的三段状态机,我测试的方法是enable一直加高电平,请大家帮帮忙!
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 15:54 , Processed in 0.056931 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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