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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2163|回复: 2

[求助] 关于状态机编码

[复制链接]
发表于 2013-9-27 15:02:40 | 显示全部楼层 |阅读模式

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

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

x
晚辈最近在看前辈的一段Verilog语言编写的FSM,但是总觉得这个状态机编写的有问题,可以前辈不屑的总是说:这个代码都测试通过了,不会有问题的。所以晚辈就自己照的编写了一段类似的代码,请论坛里的老师们帮忙给指导一下,代码如下:module fsm (Clock,Reset,A,K2,K1);
input Clock,Reset,A;
output K2,K1;
reg K2,K1;
reg [2:0] state,nextstate;

parameter
    Idle=3'b000,
    Start=3'b001,
    Stop=3'b010,
    Clear=3'b011,
    Duoyu=3'b100;

always @(posedge Clock)
   if(! Reset)
     state <=Idle;
   else
     state<=nextstate;

always @(state or A)
   case (state)
   Idle: if(A) nextstate =Start;
         else nextstate = Idle;
   Start:if(!A) nextstate =Stop;
         else nextstate = Start;
   Stop: if(A) nextstate =Clear;
         else nextstate =Stop;
   Clear: if(!A) nextstate = Idle;
          else nextstate = Duoyu;
   default: nextstate = 2'bxx;
  endcase

always @(state or Reset or A)
if (! Reset) K1 = 0;
else
  if (state == Clear && !A)
       K1=1;
  else K1=0;

always @(state or Reset or A)
if(! Reset) K2 =0;
else
  if (state == Stop && A)
         K2 = 1;
    else K2 = 0;

endmodule

代码中红色标注的这个状态貌似不会达到,并且在综合之后的网表中找不到对应的寄存器。
这样的代码会不会存在安全问题,健壮性怎么样呢?
发表于 2024-12-9 08:29:22 | 显示全部楼层
thanks
发表于 2024-12-11 11:33:40 | 显示全部楼层
没有duoyu这个分支?
default里面怎么写了x态
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-25 16:21 , Processed in 0.017074 second(s), 9 queries , Gzip On, Redis On.

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