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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1807|回复: 4

[求助] 求教verilog综合问题

[复制链接]
发表于 2012-3-27 20:55:49 | 显示全部楼层 |阅读模式

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

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

x
RT.  遇到一个棘手的Problem,书中给的verilog源码用Quatus II 不能综合得到FSM,而自己修改了之后能够综合出FSM,而我却找不出二者的本质差别,希望高人指点,谢谢!

书中源码如下:

module mealyfsm2(a,clkc,reset,z);
input a,clkc,reset;
output z;
reg z;

parameter st0=2'd0,st1=2'd1,st2=2'd2;
reg [0:2] nextstate,mealystate;
//timing sequential logic
always @(posedge reset or posedge clkc)
  if(reset)
   begin
    mealystate<=0;
    mealystate[st0]<=1'b1;
   end
  else
   mealystate<=nextstate;
   
//combinational logic
always @(mealystate or a)
  begin
   nextstate=3'b0;
   z=1'b0;
   
   case (1'b1)
    mealystate[st0]:
     if(a)
     begin
      z=1'b1;
      nextstate[st2]=1'b1;
     end
     else
      nextstate[st0]=1'b1;
     
    mealystate[st1]:
     if(a)
     begin
      z=1'b1;
      nextstate[st0]=1'b1;
     end
     else
      nextstate[st1]=1'b1;
     
    mealystate[st2]:
     if(a)
      nextstate[st1]=1'b1;
     else
      nextstate[st2]=1'b1;
   endcase
  end
endmodule



  自己修改后改的代码如下:

module mealyfsm2_2(a,clkc,reset,z);
input a,clkc,reset;
output z;
reg z;
reg [0:2] nextstate,mealystate;

parameter st0=3'b100,st1=3'b010,st2=3'b001;

//timing sequential logic
always @(posedge reset or posedge clkc)
  if(reset)
   mealystate<=st0;
  else
   mealystate<=nextstate;
   
//combinational logic
always @(mealystate or a)
  
   case (mealystate)
    st0:
      begin
       z=(a)?1:0;
       nextstate=(a)?st2:st0;
      end  
    st1:
     begin
       z=(a)?1:0;
       nextstate=(a)?st0:st1;
      end
    st2:
     begin
       z=0;
       nextstate=(a)?st1:st2;
      end
    default:
     begin
      z=0;
      nextstate=st0;
     end
   endcase
endmodule
发表于 2012-3-27 22:13:54 | 显示全部楼层
个人觉得应该是 st0=2'd0; mealystate[st0]<=1'b1;有问题。one-hot状态机,这样写。头一回见到。
 楼主| 发表于 2012-3-28 09:45:14 | 显示全部楼层
那个是初始化,没问题啊。
 楼主| 发表于 2012-3-28 13:50:11 | 显示全部楼层
问题已解决,谢谢关注!
发表于 2012-3-30 16:20:56 | 显示全部楼层
楼主第一个代码中的case(1'b1) 从哪里来的, case 应该是一个信号哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 01:57 , Processed in 0.022325 second(s), 8 queries , Gzip On, Redis On.

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