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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6201|回复: 0

[求助] QuartusII 状态机视图显示不完全,问题在哪里?

[复制链接]
发表于 2012-12-2 21:40:35 | 显示全部楼层 |阅读模式

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

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

x
用以下代码实现对输入信号中连续三个1的检测,当检测到连续的三个1后输出一个高电平。要求用状态机实现,代码如下。

问题:

代码在仿真是工作正常,但是在状态机视图中没有显示出完整的状态转换图,请问是代码有问题吗?比如存在一些隐含的错误?

另外,如果把状态机中S1,S2,S3中的任何一个状态不让其返回S0,那么可以得到一个相对完整的转换图,但是,一旦S1,S2,S3均有一条路径返回S0时,S1,S2,S3返回S0的路径就会同时消失掉,这是为什么呢?






  1. module mypro(
  2.     clk,
  3.     rst_n,
  4.     din,
  5.     dout
  6.     ); input clk;
  7. input rst_n;
  8. input din;
  9. output reg  dout; parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;

  10. reg [1:0] currentstate,nextstate;

  11. always @ (posedge clk or negedge rst_n)
  12. begin
  13.   if (!rst_n)
  14.   begin
  15.    currentstate<=S0;
  16.   end
  17.   else
  18.    currentstate<=nextstate;
  19. end always @ (currentstate or din)
  20. begin
  21.   case (currentstate)  
  22.   S0:
  23.    begin
  24.    dout=1'b0;
  25.     if(din)nextstate=S1;
  26.     else nextstate=S0;
  27.    end
  28.   S1:
  29.    begin
  30.     dout=1'b0;
  31.     if(din)nextstate=S2;
  32.     else nextstate=S0;
  33.    end
  34.   S2:
  35.    begin
  36.     dout=1'b0;
  37.     if(din)nextstate=S3;
  38.     else nextstate=S0;
  39.    end
  40.   S3:
  41.    begin
  42.     dout=1'b1;
  43.     if(din)nextstate=S3;
  44.     else nextstate=S0;
  45.    end  
  46.   endcase
  47. end
  48. endmodule


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-26 21:08 , Processed in 0.071524 second(s), 12 queries , Gzip On, Redis On.

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