您现在的位置: 主页 > 嵌入式处理器 > FPGA > 两段式状态机不可能完成的任 - FPGA/ASIC技术 -
本文所属标签:
为本文创立个标签吧:

两段式状态机不可能完成的任 - FPGA/ASIC技术 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-15 

  最近折腾状态机,发现一个小任务对于两段式状态机写法是不可能完成的。这个小任务很简单,先看用一段式状态机实现的代码:

  module test(

  clk,rst_n,

  din,dout

  );

  input clk;

  input rst_n;

  input din;

  output[3:0] dout;

  parameter IDLE = 3'd0;

  parameter STA1 = 3'd1;

  //一段式写法

  reg[2:0] cstate;

  reg[3:0] cnt;

  always @(posedge clk or negedge rst_n)

  if(!rst_n) cstate <= IDLE;

  else begin

  case(cstate)

  IDLE: begin

  cnt <= 4'd0;

  if(din) cstate <= STA1;

  else cstate <= IDLE;

  end

  STA1: begin

  cnt <= cnt+1'b1;

  if(cnt == 4'd10) cstate <= IDLE;

  else cstate <= STA1;

  end

  default: cstate <= IDLE;

  endcase

  end

  assign dout = cnt;

  endmodule

  同样的,用三段式状态机也能够实现这个功能:

 

              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 两段式状态机不可能完成的任 - FPGA/ASIC技术 -
 

"两段式状态机不可能完成的任 - FPGA/ASIC技术 -"的相关文章

网站地图

围观()